몇 년 전에 샤오미에서 나온 e-ink 패널을 쓴 시계(LYWSD02)를 소개해 드렸습니다.
https://gigglehd.com/gg/hard/9285645
생김새는 이렇게 생겼었죠.
온습도계가 달린 적당한 크기에 CR2032 배터리 2개로 1년 정도 동작하기 때문에, 집안 곳곳에 달아 놨습니다. 다만 이 장치의 단점이 한달에 30초 혹은 그 이상 오차가 나기 때문에 시계 동기화가 필수입니다. 시계 동기화를 하려면 MI HOME app에다 기계를 등록해서 동기화를 해야 합니다.
한 동안 ipad에 mi home 앱을 깔아서 동기화를 했었습니다. 그런데 mi home 앱이 종종 먹통이 되더군요 - 뭔가 꼬이는지 등록한 장비와 더 이상 통신을 하지 못합니다. 그런 일이 발생하면 mi home 앱을 지웠다가 다시 깔고, 장치를 일일이 새로 등록해 준 후에야 시간 동기화를 할 수 있습니다.
귀찮죠?
저는 프로그래머이기 때문에, mi home 앱을 안 쓰고 동기화 할 수 있는 방법을 찾았습니다. github을 뒤져보니, python 에서 동기화 할 수 있는 라이브러리를 공개한 사람이 있습니다. 한동안 라즈베리 파이에 이 스크립트를 사용해서 시간 동기화를 했었습니다.
https://github.com/h4/lywsd02
그런데 라즈베리 파이는 전원이 필요합니다. 동기화 할 때마다 집안 곳곳에 설치해둔 시계를 라즈베리 파이 근처로 가져와서 동기화를 한 후에 다시 갖다 놔야 했습니다.
귀찮죠?
그래서 코로나 기간 동안에 Windows 랩톱에서 동작하는 동기화 프로그램을 만들자! 라고 결심을 했고, 2년 정도 지난 후에야 rust를 공부하는 김에 첫번째 프로그램을 xiaomi 시계 동기화 프로그램으로 만들어 봤습니다. 여기에다 공개해 뒀으니 필요하신 분들은 받아서 컴파일해서 쓰시면 됩니다.
https://github.com/laphir/rs/tree/main/xiaomi
다음은 동작하는 움짤입니다. "xiaomi scan" 명령으로 주변의 시계를 탐색할 수 있습니다.
이어서 "xiaomi sync" 명령으로 시간 동기화를 진행할 수 있습니다. 만약 어떤 시계는 5분 빠르게, 어떤 시계는 미국 시간대로 하고 싶다면 toml 파일을 작성해서 exe랑 같이 두면 됩니다.
글이 너무 무미건조 한 것 같아서 BING 선생이 창조하신 그림을 몇장 첨부합니다. 아니 생각보다 퀄리티가 너무 좋은데요.
시계를 맞추는 세일러문:
노트북을 들여다 보는 세일러 문:
프로그래밍 하시는 세일러 문: