Category Archives: 08_Rasberry Pi

시계 구현 1단계 완료

액정에 글자를 나오게 하는 것에 좌절하고 있었다.

고민하다가 인터넷에서 참고로 한 사람과 동일한 액정 모델에 동일한 핀 배열을 맞추어서 실행을 해보니 놀랍게도 되었다.

예전에 만들어준 코드를 다시 액정에서 사용할 수 있도록 변경한 다음 내구성 확인하는 중.

NTP 설정

사람마다 라즈베리를 사용하는 환경이 다르겠지만, 집에서 사용한다고 했을 경우에는 공유기 하단에 연결되게 된다. 또 그럴 경우에는 DHCP 방식으로 IP를 할당받아 사용하게 된다.

사실 전혀 사용하는데 문제가 없지만, 내가 겪은 문제는 내가 사용하는 공유기인 Mikrotik 에서는 이 부분이 문제를 일으킨다는 것이다. 여러번 구글 검색을 통하여 확인한 바에 의하면 다음과 같은 문제를 일으키는 것 같다.

Mikrotik 에서 NTP server 설정을 사용하여 시간 설정을 하는 경우라면 아마도 문제가 발생하지 않을텐데 라즈베리에서 NTP 설정을 하고 이 것을 서버로 사용하여 Mikrotik 에서 정보를 받게 되면서 부터 문제가 발생하기 시작한다.

Mikrotik 에서 NTP client 에 사용한 IP 주소를 라즈베리가 받아간다는 점이다. IP 할당을 DHCP 방식으로 하는 경우에 이 문제가 생긴다. 라즈베리에서 DHCP 설정이 되어 있을 경우 /var/lib/ntp 폴더에 ntp.conf.dhcp 파일이 생성되게 되며, 이 경우 NTP 서버는 DHCP 서버를 따르게 된다. DHCP 서버로 동작하는 Mikrotik 은 라즈베리에서 NTP 정보를 받아오는데, 일종의 루프가 형성되게 되는 셈.

Mikrotik이 아닌 라즈베리를 사용하려고 하는 이유는 Mikrotik 에서는 NTP Pool 서버 사용이 가능하지 않기 때문이다. 라즈베리 파이에서 항상 사전에 설정된 /etc/ntp.conf 파일에 설정된 되로 하는 것이 필요했다.

결국 가장 단순한 방법으로 해결했는데 라즈베리 네트워크 설정을 DHCP 가 아닌 고정 IP 방식으로 받아오는 것이다.

나의 경우에는 다음과 같이 수정했다. 

/etc/network/interfaces

# iface eth0 inet dhcp

iface eth0 inet static

address 192.168.10.185

netmask 255.255.255.0

network 192.168.10.0

broadcast 192.168.10.255

gateway 192.168.10.1

/etc/resolv.conf 파일에서 DNS 설정이 되어 있는지 확인하고 없다면

nameserver 210.220.163.82

nameserver 219.250.36.130

이런 식으로 혹은 자신이 사용하는 DNS 서버 주소를 입력하면 된다.

액정 사용

라즈베리파이에서 사용할 액정을 납땜하여 보았다.

사실 납땜 자체는 많이 어려운 것이 아니었다. 몇 번 해보니 요령이 생겨서 비교적 쉽게 할 수 있었다. 전반적으로 바깥쪽으로 기울여진 상태로 되기는 했지만 적어도 전원 부분에 관련된 4개는 제대로 연결이 된 것을 확인할 수 있었다.

그리고 그 다음으로 깨달은 것은 액정에 글자를 보이게 하는 것은 보통일이 아니라는 것이다. 아무래도 천천히 하나씩 검토해 보아야 할 듯하다.

시계 알고리즘 구현

D-day 기능과 NTP를 통한 시간의 동기화 기능이 구현된 시계가 있었으면 좋겠다고 예전부터 생각’만’ 하고 있다가 라즈베리파이로 구현해 보기로 마음을 먹었다.

라즈베리파이에서도 R이 구현 가능할 것 같기는 했는데, 그 보다도 액정에 글을 뿌려주는게 python 으로 구현되어 있는걸 쓰는게 일반적인듯 했다. 그래서 python 으로 구현해야만 했다.

R과는 조금은 다른 문법 구조와 체계 때문에 인터넷 검색을 여러번 해본 끝에 비슷하게 구현하는데 성공했다. 이제 남은 것은 코드를 조금 더 최적화시키고, 생각해둔 기능을 추가로 구현시켜서 쓰는 것이다.