팜 시스템

아두이노로 인터넷 표준시간 표시하기

user1016 2025. 5. 31. 20:15

 오늘부터 드디어 본격적인 IoT실습에 들어간다. 오늘 할것은 인터넷에 접속하여 시간을 받아오고 한국 시간을 LCD에 표시하는 시간표시 장치를 만드는 것이다.

 

1.부품설명

부품은 처음 서보는 I2C LCD 모듈이 있다.

LCD에 대해 간단히 살펴보자면 VCC,GND는 각각 전원과 그라운드에 연결해주면 되고 SDA,SCL은 I2C방식에서 사용하는 선으로클락선과 데이터선이다. 여기서 짚고 가야할 부분이 LCD에는 0x27과 같은 주로가 할당되있는데 이는 I2C방식에서의 slave선택 방식이 slave select선으로 선택하는게 아닌 slave에 할단된 주소로 slave를 선택하기 때문이다.

 

2.실습 코드 1:인터넷 시간을 받아 시리얼 통신으로 출력

 

5,6,14: 아두이노 보드를 WI-Fi에 연결하려고 쓰는 코드,2.4GHz만 가능

 

8: WIFiUDP는 UDP통신을 위한 클래스(객체 타입), UDP는 인터넷에서 빠르게,가볍게 데이터를 주고받는 방식, ntpUDP는 그 객체의 이름

 

9: 이것도 8과 같이 객체와 객체이름, ()안에 있는것은 생성자에게 넘기는 재료

 

26: 사람이 읽기 쉬운 형태로 바꿔서 문자열 출력, detminute/의 형태로 분만 따로 출력 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이와 같은 모습으로 1초마다 시간이 출력된다.

 

 

 

 

 

 

 

 

 

3.실습코드 2:LCD에 한국 시간 출력하기

 

7: lcd 한 줄에 16글자, 2줄 출력 가능, slave주소 0x27

 

13: 사용할 ntp 서버주소, 32400은 국제 표준 시간을 한국시간으로 바꿔주는 수. 3600000ms 즉 1시간 마다 NTP시간 다시 받아오기

 

27: lcd초기화 해서 내부 설정 세팅, 아두이노와 lcd사이 통신 준비 완료

 

28: lcd 뒷면의 백라이트를 키는 명령어.

 

29: LCD 글씨 쓰기를 시작할 곳의 위치를 설정하는 코드

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 시간이 정상적으로 출력이 되는 모습을 볼 수 있습니다. 여기서 한가지 의문이었던 점은 와이파이가 끊어지면 시간이 계속 출력될까? 였고 답은 계속 출력되지만 한 국제 표준시간하고는 멀어질 수 있다. 입니다. 또한 와이파이를 끊었을때 나타나는 한가지 현상이 시간이 1초마다 표기되는게 아니라 2초마다 표기되었습니다. 이 결과가 나온 이유는 국제 표준 시간을 받아오는 과정에서 와이파이가 없어 실패해서 계속해서 시도하는 과정에서 지연이 발생해 그러는 것 같습니다.

 

4. 후기

 여태까지는 그냥 실습하고 서로 모르는것을 물어보면서 했지만 내가 지금 공부하고 의문가지고 있는 내용을 필기를 하면서 하니 나중에 정리할때 더욱 디테일 하게 정리 할 수 있었습니다. 또한 내가 아무것도 모르는 영역의 자료를 공부할때 무작정 의문을 따라서 가는게 아닌 일단 이해가 안되더라도 계속해서 정리를 하며 구조화 하려고 하는게 이해가 더 좋은 것 같습니다. 이상으로 5번째 스터디를 마치며 다음에는 물체를 감지해 구글 메일 보내기 실습을 해보겠습니다.