산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

부품 및 소모품

부품 수량
아크릴 시트 (3mm 펄스펙스 등) 1
아두이노 MKR FOX 1200 (Sigfox 내장) 1
SparkFun HX711 로드셀 앰프 1
5kg 로드셀 2
Adafruit BME280 온습도/기압 센서 1

필수 도구 및 장비

앱 및 온라인 서비스

프로젝트 개요

Really Smart Box는 일반 수납 박스(Rally Useful Box)를 IoT 지능형 수납함으로 변환하는 플랫폼입니다. Sigfox 네트워크를 사용하는 아두이노 MKR FOX 1200 기반으로, 박스 내 물품의 무게, 온도, 습도를 감지해 저전력 Sigfox 무선으로 전송합니다.

활용 사례 1: 3D 프린터 필라멘트 보관

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

필라멘트는 습도에 민감하므로 건조 상태 유지가 필수입니다. Really Smart Box로 필라멘트 잔량(무게 기준)과 박스 내부 습도를 모니터링해 실리카겔 교체 시점과 필라멘트 주문 시점을 알 수 있습니다.

활용 사례 2: 소모품 재고 관리

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

청소 용역 업체가 고객사 현장에 방향제, 핸드솝 등 소모품을 비치할 때, 고객사 와이파이 사용 불가나 전원 문제로 IoT 적용이 어려웠습니다. Sigfox는 별도 네트워크 불필요, 배터리 구동으로 장기간 동작 가능. 물품 단위 무게를 등록하면 개수 자동 계산해 재고 부족 시 알림 전송.

플랫폼 제작

기계적 구조

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

상하 두 장의 아크릴 판 사이에 로드셀 2개를 배치. 상판은 박스 벽에 걸리지 않게 약간 작게 제작. 하판에는 전자회로 장착용 컷아웃과 M3 탭 가공. 3D 프린팅 발판으로 수평 유지.

로드셀 및 HX711

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

두 개의 5kg 로드셀을 HX711의 A/B 채널에 각각 연결. 로드셀은 휘어짐 허용을 위해 상하 패딩 필요. 화살표 방향이 하중 방향(아래)으로 향하게 장착. 빨강/검정(전원) 공유, 녹색/흰색(센스)이 채널 A/B로 연결.

전자회로

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

ThingySticks 프로토타입 보드에 MKR FOX 1200, HX711, BME280 장착. 배터리 홀더는 하판 아크릴에 핫멜트로 고정. 평평한 안테나 설계로 플랫폼 두께 최소화.

로드셀 캘리브레이션

각 로드셀마다 고유 특성이 있어 y = mx + c 보정 필요:

  1. 빈 플랫폼 상태에서 오프셋(c) 측정
  2. 알려진 무게(예: 230g 방향제, 1.5kg 필라멘트) 올려 기울기(m) 계산
  3. Slope = (measured - offset) / weight(g)
  4. 완전 조립 후 2차 영점 조정(테어) 필요

Sigfox 연동

데이터 구조 (12바이트)

typedef struct __attribute__ ((packed)) sigfox_message {
  uint8_t status;        // 상태 플래그 (비트 필드)
  int8_t humidity;       // 습도
  int8_t temperature;    // 온도
  int16_t zeroWeight;    // 영점 무게
  int16_t weight;        // 현재 무게
  int16_t itemCount;     // 아이템 개수 × 100 (소수점 2자리 표현)
  int8_t driftCorrection;
  int8_t filler;
  int8_t lastStatus;
} SigfoxMessage;

상태 플래그 비트맵

Sigfox 커스텀 페이로드 설정


firstRun::bool:7 hx711Fault::bool:6 bmeFault::bool:5 temperatureAlarm::bool:4
humidityAlarm::bool:3 weightAlarm::bool:2 lowStock::bool:1 b0::bool:0
status::int:8 humidity::int:8 temperature::int:8
zeroWeight::int:16:little-endian weight::int:16:little-endian
itemCount::int:16:little-endian

리틀 엔디안 지정 필수 (아두이노는 리틀 엔디안, Sigfox 기본은 빅 엔디안).

디바이스 활성화

  1. 시리얼로 's' 전송 → Sigfox ID, PAC 코드 확인
  2. Sigfox 백엔드(activate)에서 디바이스 등록
  3. Device Type 생성 후 커스텀 콜백으로 Tinamous 연동

Really Smart Box 사용법

  1. 조립 완료 후 펌웨어 플래시, 배터리 장착
  2. 박스에 넣고 전원 인가 (2분 후 첫 Sigfox 메시지 전송, 다운링크 요청 포함)
  3. 다운링크로 영점 조정 가능 (또는 USB 시리얼, 12시간마다 자동 다운링크 요청)
  4. 이후 15분마다 무게, 개수, 온도, 습도, 알람 상태 전송
  5. 온도/습도/무게는 1분마다 측정해 알람 조건 체크

Tinamous로 모니터링

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

알림 설정

아이템 개수 필드 작업 범위 3-300 설정 → 범위 이탈 시 이메일/SMS 알림. 반복 알림은 '일일 1회 리셋'으로 설정해 스팸 방지.

결론

와이파이 설정 불필요, 배터리만 주기적 교체하면 되는 완전 무선 IoT 수납함. 케임브리지 메이크스페이스 필라멘트 보관함에 시범 적용 예정.

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

해결 과제

코드

Really Smart Box 아두이노 코드


// Really Smart Box
// 아크릴 두 장과 로드셀 2개로 무게 측정, BME280로 온습도 측정
// Sigfox로 데이터 전송, Tinamous로 모니터링
// Author: Stephen Harrison, License: MIT

#include 
#include 
#include 
#include 

// BME280 (I2C)
Adafruit_BME280 bme;

// HX711 (D0=DOUT, D1=CLK)
HX711 scales(0, 1, 128);
float gain[] = {128, 32};           // 채널 A=128, B=32
float offset[] = {0, 54940};        // 영점 오프셋
float scaleFactor[] = {378.0, 260.9}; // 스케일 팩터 (측정값/무게)

// Sigfox 메시지 구조체 (상단 참조)

// 상태 변수들
long lastPublish = 0;
long lastDownlink = 0;
uint8_t lastSigfoxStatus = 0;
bool isFirstCycle = true;
int mode = 0;  // 0: 측정, 1: 캘리브레이션
int calibrate_channel = 0;
float lastAverage[] = {0, 0};
float currentWeight = 0;
float unitWeight = 238;    // 단위 무게 (다운링크로 변경 가능)
float zeroWeight = 0;      // 영점 무게
bool bmeOk = true, hx711Ok = true;

// 알람 임계값
float minTemperature = 5, maxTemperature = 60;
float minHumidity = 0, maxHumidity = 60;
float maxWeight = 10000;
bool temperatureAlarm = false, humidityAlarm = false, weightAlarm = false;
float currentTemperature = 0, currentHumidity = 0;
float stockLevel = 0;
bool lowStock = false;
float minStock = 5;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
  bmeOk = bme.begin(0x76);  // 주소 확인 필요
  if (!bmeOk) Serial.println("Could not find a valid BME280 sensor!");
  delay(5000);
  Serial.println("Really Smart Box...");
  printHeader();
}

void loop() {
  switch (mode) {
    case 0: measureAndPublish(); delay(60000); break;  // 1분마다 측정
    case 1: calibrate(); delay(1000); break;
  }
  checkSerial();
  delay(100);
}

// 주요 함수들: measureAndPublish, measureWeight, measureTemperatureAndHumidity,
// publishMeasurements, buildMessage, parseDownlinkData, zeroScales 등
// (전체 코드는 GitHub 저장소 참조)

GitHub 저장소

https://github.com/Tinamous/ReallySmartBox

커스텀 파트 및 인클로저

회로도

Really Smart Box: IoT 스마트 수납 박스 – 무게/온습도 모니터링

제조공정

  1. 주스 박스 혁명: 역사, 디자인, 환경 영향
  2. 블랙박스 비행 기록 장치: 초기 시제품부터 미래 통합 설계까지
  3. 태양전지: 초기 실험부터 현대 광전지까지 - 기술, 생산, 미래 전망
  4. 스마트 바텐더: 라즈베리파이 기반 나만의 칵테일 스테이션 만들기
  5. 스마트 트래픽 라이트: IoT로 구동되는 적응형 가로등 시스템
  6. 지능형 스마트 폐기물 수거함: IoT 센서로 폐기물 수거 최적화
  7. DIY 월-E 영감 라즈베리 파이 CD-박스 로봇
  8. DIY UVC 살균기 키트 – 저비용, 간편 제작 UV 박스(의료/개인용품용)
  9. 아두이노와 애저(Azure)로 스마트 식물 IoT 온실 구축하기
  10. 스마트 블라인드: 아두이노와 태양광으로 자동 조명 제어