문제
박스마다 온습도와 유통기한이 따라가게 해야 했던 기기
고객은 식품 박스를 쌓아 두는 창고의 유통기한과 보관 상태를 관리하려 했습니다. 박스가 늘수록 기한이 지난 박스를 늦게 찾는 일이 잦았습니다.
창고 담당자는 박스마다 붙은 라벨로 입고일과 유통기한을 확인합니다. 온습도는 창고 한쪽의 온습도계로만 봐서 박스 안 상태는 알 수 없습니다. 만기 박스를 찾으려면 랙을 돌며 라벨을 하나씩 봐야 합니다.
설계 조건은 박스가 자주 옮겨지고, 놓인 자리에 전원이 없을 수 있다는 것이었습니다.
그래서 박스 하나하나에 단말기를 걸기로 했습니다.
해결
LoRa 수집과 마스터키 입력으로 나눈 박스 관리
온습도는 LoRa로 올리고 박스 정보는 마스터키로 넣습니다.
- 박스 단말기: 박스에 거는 단말기가 박스 안 온도와 습도를 잽니다. E-Paper 화면에 날짜, 온도, 습도, 배터리 잔량을 띄웁니다. 화면의 "[+1]"은 입고 뒤 지난 날수이고, In·Out 버튼은 입출고를 표시합니다.
- LoRa 게이트웨이: 단말기의 온습도 값을 LoRa로 받아 인터넷으로 서버에 올립니다. 게이트웨이는 Raspberry Pi 3B+로 만들었습니다.
- 서버: 백엔드 서버가 값을 MariaDB에 쌓고 박스·계정·창고 정보를 관리합니다. 관리 사이트에서 박스 목록과 온습도 값을 봅니다.
- 마스터키: 입고 때 입고일, 유통기한, 박스 위치코드를 마스터키로 단말기에 넣습니다. 박스 정보의 수정과 제거도 같은 길로 합니다.
- 마스터키 앱: 창고 PC의 데스크톱 앱에서 박스 목록을 찾아봅니다. 박스마다 경고·위험·보관 시간과 랙 위치, 박스코드를 함께 봅니다. 입고 뒤 지난 시간이 경고시간이나 위험시간을 넘으면 목록에 표시됩니다.
- 담당자 확인: 센서를 바꿀 박스는 담당자가 앱 목록에서 골라 교체합니다. 교체할 때 박스 정보는 새 단말기로 옮겨 씁니다.


단말기와 게이트웨이는 LoRa로
단말기는 온습도 값을 LoRa로 게이트웨이에 보냅니다. 창고는 넓고 랙과 벽이 신호를 가립니다. LoRa는 적은 전력으로 멀리 보내 게이트웨이 하나로 창고를 덮습니다. 블루투스는 거리가 짧고, 와이파이는 배터리를 빨리 씁니다.
단말기 화면은 E-Paper로
단말기 화면은 E-Paper입니다. 전력 소모를 줄이려고 골랐습니다. E-Paper는 화면을 바꿀 때만 전력을 쓰고, 전원이 없어도 마지막 표시가 남습니다. 담당자는 박스 앞에서 날짜와 온습도를 늘 볼 수 있습니다.
박스 정보는 마스터키로 따로
입고일과 유통기한은 창고 PC에서 마스터키를 거쳐 단말기로 들어갑니다. LoRa는 값을 올리는 데만 씁니다. 서버에서 LoRa로 값을 내려보내면 단말기가 수신을 기다리느라 전력을 씁니다. 입고 때 박스 앞에서 한 번 넣으면 되는 값이라 마스터키로 충분했습니다.
결과
단말기가 온습도를 재고, 앱이 기한을 챙기는 박스 관리
시제품에서는 단말기 화면에 온도·습도와 배터리 잔량이 뜨는 것을 확인했습니다.
박스 단말기 케이스는 3D 프린트 시제품입니다. 양산, 배터리, 내구성 문제는 풀지 않은 단계입니다.