바야흐로 아두이노 세상에 살고 있다. 초등생, 혹은 유치원생부터 청장년층에 이르기까지 코딩 좀 한다 하면 아두이노의 경험이 있다. 예외도 있지만, 이렇게 많은 사람들의 관심과 노력 속에 아두이노도 많은 발전을 거듭했다. 이제는 보드 하나면 WiFi, Bluetooth까지 연결이 가능하니 말이다. 이 프로젝트는 다음의 순서에 따라 진행했다.

*전통적인 프로젝트 진행 방식과는 다를 수 있다.

 

●제품 컨셉 구상

●사양 정의

●구현

●제품 디자인

●제작 및 시연


1. 제품 컨셉 구상

 

 책상에 올려둘 수 있는 아기자기한 인테리어 소품이 뭐가 있을까 며칠을 고민했다. 이런저런 아이디어들을 고민하다가 다다른 곳은 날씨와 시계였다. 날씨와 시간은 하루에 한 번씩은 들여다보게 되어 있으므로. 그래서 정한 프로젝트의 이름은 다음과 같다.

Weather clock

 


2. 사양 정의

보드는 정했으나 어떤 인터페이스를 제공할지가 문제였다. 모든 센서를 적용하고 포털 사이트나 스마트폰 어플 정도의 기능을 지원하면 좋다고 생각했다. 하지만 부품 비용을 최소화하고 기간을 단축하는 것에 집중했다. 사양은 다음과 같다.

 

·하드웨어

MCU : ESP32 (WiFi, Bluetooth 내장)

공식 홈페이지

LCD : TFT LCD 2.4인치 (SD card 인터페이스 포함)

중국산이라 공식 홈페이지를 찾기 어렵다.


Weather clock에서 지원해야 하는 기능은 다음과 같다.

구분

설명

·필수 기능

시간 서버 동기화

기상청 RSS 받아오기

날씨와 시간 화면 출력 (JPG 이미지 출력)

··부가 기능

서버 통신 중 로고 띄우기(GIF 이미지 출력)

 


3. 구현

실제 구현 내용을 별도로 기록하지 않는 이유는 다음과 같다.

첫째, 구현 내용이 광범위하다.

둘째, 기억이 나지 않는다.

다른 블로그에서 참조해서 진행한 내용이 대부분이며 상세하게 잘 기록되어 있으니 그 부분을 참고하는 편이 좋다.


·필수 기능

ㄱ. 시간 서버 동기화

비교적 간단하다. WiFi 연결 후 time.bora.net등 익히 알고 있는 시간 서버에 연결해 time 구조체에 시간을 받아와 그대로 출력한다. 시간 출력하는 예제를 조금만 응용하면 된다.

 

ㄴ. 기상청 RSS 받아오기

3시간 단위 기상 예보만 받아올 수 있다. 욕심을 내서 구글이나 다른 곳에 있는 기상 정보로 실시간 날씨 정보를 표출하고 싶었지만 꾹 참았다. 애초에 실시간 기상 정보를 띄우기로 기획한 것은 아니었기 때문에. 추후에 기회가 된다면 진행해 볼 수도 있다.

 

ㄷ. 날씨와 시간 화면 출력(JPG 이미지 출력)

이제 받아온 시간과 날씨를 표출할 차례다. 날씨 이미지 표출은 SD card jpg 출력 예제를 활용했다. 앞서 언급한 시간 출력 예제를 함께 활용하면 큰 문제는 없다.

 

··부가 기능

ㄱ. 서버 통신 중 로고 띄우기(GIF 이미지 출력)

프로젝트 진행 중 가장 큰 문제에 봉착했다. 서버와 통신해서 받아온 데이터를 표출하기 전까지 검은 화면만 보여주게 생긴 것이다. 사전에 파악한 정보를 다시 되짚어 보았다. 눈에 띄는 정보 하나가 있었다.

Dual core

ESP32, 이건 정말 물건이다 싶었다. 바로 펌웨어 구조 수정에 들어갔다. 한쪽 코어로는 서버 통신 중에 로딩 이미지를 띄우고 다른 코어로는 서버 통신을 담당하도록 지정했다.


4. 제품 디자인

어떤 디자인을 할까 크게 고민하지 않았다. 구관이 명관이다. 존경해 마지않는 디자인, 애플의 초기 매킨토시를 참고했다.

디자인도 디자인이지만 케이스 제작이 문제였다. 무드 등을 만드는 프로젝트에서 방망이 깎는 노인처럼 했던 톱질. 그 고생을 또다시 할 수 없었다.

*톱질에 대한 이야기는 아래 DIY 아두이노 무드 등 만들기 참고.

2020/05/11 - [주전부리 레시피/berryMixLab] - DIY 아두이노 무드등 만들기

 

DIY 아두이노 무드등 만들기

나 때는 말이야.  이 글은 이렇게 시작한다. 처음 직장 생활을 시작했을 때, 스마트폰의 물결이 시작되고 있었다. 옴니아가 아이폰의 대항마로 등장했을 즈음 말이다. 그때만 해도 개발 보드 같�

berrymixstreet.tistory.com

그래서 샀다. 3D 프린터. 가성비를 최우선으로 고려했다.

Ender 5 Plus

제대로 된 물건을 출력할 때까지 애 많이 먹었다.


5. 제작 및 시연

https://youtu.be/HxMA5mHx_1g

 

완성 후 아내를 불러 동작하는 모습을 보여주었다. 그 당시에도 반응은 나쁘지 않았는데 한참이 지나 나를 다시 부른다.

“그거 부품 한 세트 밖에 없지?”

“왜?”

“있으면 하나 더 만들어서 친구 하나 줄까 했지.”

 

▶ Trouble shooting.

1. ESP32의 프로그램 업로드가 되지 않았다.

다른 호환 보드들도 이런 문제가 있는지 모르겠지만 프로그램 업로드 시 프로그램 Write 진행률이 표시될 때까지 Boot 스위치를 누르고 있어야 한다.

2. 아두이노 라이브러리로 추가한 예제로 LCD가 동작하지 않았다.

중국산이라 그런지 LCD IC의 chip 아이디가 읽히지 않아 한참 애먹었다. 예제에서 chip ID를 하나하나 선택해보면 언젠가는 동작한다.

3. ESP32와 LCD를 연결하는 핀맵 정보가 부족하다.

구글링으로 간신히 찾은 자료를 참고하여 LCD 연결에 성공했다. 판매되고 있는 TFT 2.4인치 LCD의 종류가 참 다양하다.

4. 배송사고

첫 택배는 분실됐다. 어떤 이의 손아귀에 들어갔는지 알 수는 없다. 그것도 아니라면 고물상에. 분실 보상은 받았으니 나쁠 것은 없다.

 

+ Recent posts