2017 멀티캠퍼스/Python

[Raspberry Pi/Python] 현재 시간 FND에 출력하기

꿈꾸는어린이 2018. 1. 16. 18:55

//

일시 : 2018.01.16

내용 : 프로젝트 기능 1. 현재 날짜를 FND에 출력

//

★★ 라즈베리파이 시간 설정 실패
$ sudo raspi-config를 이용해 라즈베리파이 내의 시간설정 시도했으나 변경 실패 
$timedatectl 명령으로 현재 날짜 확인.



  • 현재 시간을 나타내는 코드

    라즈베리파이의 현재 시간을 받아와서 리스트에 저장 후 return

import time

def timeCheck():
   while True :
       now = time.localtime()
       time_list = []
           
       now_hour = str(now.tm_hour)
       if len(now_hour) == 1:
           time_list.append(0)
           time_list.append(now_hour)
       elif len(now_hour) == 2:
           for i in range(0, len(now_hour)):
               time_list.append(now_hour[i])
                   
       time_list.append("")
       time_list.append("")
                   
       now_min = str(now.tm_min)
       if len(now_min) == 1:
           time_list.append(0)
           time_list.append(now_min)
       elif len(now_min) == 2:
           for i in range(0, len(now_min)):
               time_list.append(now_min[i])
                   
       return time_list




  • main 함수

import smbus2 as smbus
import time
from time_class import *

bus = smbus.SMBus(1)
addr = 0x20
config_port = 0x06
out_port = 0x02

data = (0xFC,0x60,0xDA,0xF2,0x66,0xB6,0x3E,0xE0,0xFE,0xF6)
digit = (0x7F, 0xBF, 0xDF, 0xEF,  0xF7, 0xFB)
out_disp = 0


try:
   bus.write_word_data(addr, config_port, 0x0000)
   ##timeCheck()에서 return 받은 리스트를 저장
   time_list = []
   ##return받은 리스트의 상태 변화를 확인하기 위해 사용
   tmp = []

   while True:
       time_list = timeCheck()
       if tmp != time_list :
           tmp = time_list
           print("now time : %s%s시 %s%s분" % (tmp[0], tmp[1], tmp[4], tmp[5]))
           
       for i in range(0, 6):
           if tmp[i] == "":
               continue
           out_disp = data[int(tmp[i])] << 8 | digit[i]
           bus.write_word_data(addr, out_port, out_disp)
           time.sleep(0.0000000005)
     
except KeyboardInterrupt:
   pass