update. 07/06 - 로직삭제 및 기능 추가가 되었습니다. 최종버전은 아래 블로그 포스트를 확인해주세요. :)
안녕하세요. 클리앙에 오랜만에 다시 글을 올립니다.
개인적으로 라즈베리파이나 아두이노로 가끔 DIY 프로젝트를 진행하고 그 제작내용을 공유하고 있습니다.
- 라즈베리파이를 이용해 오락실 게임기 제작하기
- 없어서 다시 만들었습니다. 아두이노 한글시계
이번엔 아두이노를 이용한 CO2 농도를 체크하는 환경데이터를 시각화하는 프로젝트를 진행했습니다.
실내 공기에서 CO2농도가 높아지면 건강에 좋지 않은데,
환기를 잘 시키는 것 만으로도 CO2 의 농도는 현저히 줄어든다고 합니다.
기존에 시판중인 Birdie 와 동일한 외형으로 제작된 CO2 센서에는
심플한 카나리아의 모습을 한 장치에는 어떤 버튼도 어떤 디스플레이도 없습니다.
단지 CO2 농도에 따라 카나리아 모형이 앉아있다가 거꾸로 기절하는 액션만 직관적으로 제공함으로
사용자에게 환기 타이밍을 제공합니다.
주요 부품
- Arduino Pro Mini(5V), SCD40, SG90
- 18650배터리(5,000mAh), TP4056충전모듈
- 배터리체크용 저항(100k/47k), 캐패시터(16v, 100uF)
- (추가) 안정적인 저전력을 위해 SG90 대기전력 제어용 Mosfet 2n7000 + 10K저항
이번 프로젝트에는 설계와 Claude를 이용한 코딩, 3D모델링과 프린트, PCB제작까지 대략 3개월이 걸렸습니다.
기본 설계도를 기반으로 브레드보드에 목업을 만들어 작동을 테스트하고, Claude 와 함께 코딩에서 수정하는 작업을 최소 수백번은 반복한 것 같습니다.
Fusion360으로 하우징을 모델링하고, 뱀부랩 3D프린터로 출력을 합니다.
Fusion360은 처음 사용해보는데, 정밀한 수치제작에는 Blender보다 편하더군요.
이번 프로젝트는 기능면으로도, 교육적/인테리어 측면으로도 매력적이어서 여러대를 제작해서 지인들에게 선물로 주려고 초기부터 계획했습니니다. 그런데 매번 저런 복잡한 선들로 납땜을 하는것이 번거롭기도 하고 보다 높은 기기 안정성을 확보하고 싶었기에, 이전부터 한 번 만들어 보고 싶었던 PCB제작을 시도해 보기로 했습니다.
esayEDA로 설계도와 PCB디자인을 완성하고 JLCPCB를 통해 PCB 주문제작을 넣은지 1주일만에 받아볼 수 있었습니다.
Avengers Assemble!
이제 모든 준비를 마치고 조립하여 완성했습니다.
최종 완성된 모습입니다.
코딩과 기기 수정의 반복을 마무리한 결과, 최종 1,600여 줄의 코드가 완성되었습니다.
배터리와 저전력으로 장기간 구동되는 장치이다보니 기본 CO2 센싱 기능 외에도 안전시스템 구현이 많이 추가되었네요.
최종 구현된 기능들은 다음과 같습니다.
✅ CO2측정으로 0~1100ppm 이내, 서보모터 0도 / 1100ppm 이상 180도 이동
-> 환기 후 0도 이동(1100ppm 초과 후 850ppm 이하로 떨어질 때)
✅ 서보모터 동작 CO2측정(0도, 180도), 배터리충전(90도), 시스템에러(45도)✅ 아두이노 10분 주기 딥슬립 및 장치 비활성화 등을 통한 저전력 구현
-> 배터리 완충으로 이론상 4개월 사용가능(전력손실, 자연방전률 계산 값, 배터리경고 임계점 상승으로 6->4개월)
✅ 배터리 잔여량 55% 일때 배터리충전 알림, 50%이하 강제 슬립모드 전환
(배터리 경고 안정성을 위해 임계점 30% -> 55%로 수정)
✅ 안전장치 :USB 충전 감지(효율적인 작동을 위해 감지 프로세스 삭제)/CO2센서 오류처리 및 리셋 자동화/ EEPROM 정보 저장/ 워치독 타이머 오류처리/ 메모리 자가 모니터링/ 시스템 안전모드 및 자동복구 / 배터리보호 등 구현
정리된 내용이 길어 사진 중심으로만 올려봤습니다.
혹시 제작과정에 관심이 있으신 분들은 아래 제작후기에 전문을 담았으니 방문해보세요 :)
[제작후기]
Arduino CO2 Canary Sensor -카나리아센서 #1.하드웨어파트
Arduino CO2 Canary Sensor -카나리아센서 #2.소프트웨어&긴~완성 파트(feat.Claude)
P.S 코드는 완성되어 있고, 하우징과 PCB도 제작만 하면되어 추가제작이 용이한 상황입니다.
시중에 판매제품이 있어 완제품으로는 판매가 어렵고, 취미와 교육 목적으로 개발킷을 고민 중입니다.
(더이상 우리 아이들에게 조도 선세와 LED로 구성된 ‘IOT 스마트홈'킷만 주구장창 교육자료로 제공하지 않았으면 하는 바램으로…)
혹시 개발킷에 관심있는 분들은 블로그에 의견을 남겨주세요. 관심있는 분들이 많으시면 실행을 진지하게 고민해보려합니다.













이런 글을 볼 때 마다 멋진 프로젝트 한 번 해보고 싶은 마음이 샘솟습니다.
이런 프로젝트가 하나 둘씩 쌓여가면서 제 경험도 같이 쌓여가고 있는것 같아 즐겁습니다.
장치 구조는 의외로 간단해요 :) 배터리 사용에 따른 전압과 충전 로직이 복병이었습니다. ㅠ
스피커 경고는 다음 버전을 제작하게 되면 고민해 보겠습니다. ㅎ
배터리 절약을 위한 저전력 구현에 시간을 많이 할애했습니다. USB 5V전원이 제일 편해요 ㅠ
Birdie 의 아이디어는 인정하나 선듯 구매하기에는 가격이 많이 사악해요.~
보통 공기질 측정기의 이산화탄소 센서가 수증기와 이산화탄소를 구별을 잘 못한다는 말이 있었는데
사용하신 센서는 그런 제한 없이 이산화탄소만 잘 센싱하는 제품인가요?
VOC 기반의 센서는 수증기와 이산화탄소를 구분히지 못하는데,
SCD40/41은 NDIR타입으로 이산화탄소가 발생하는 미세한 압력변화를 감지해서 정밀한 측정이 가능하다고 합니다. 특히 온도와 습도 센서가 내장되어 있어 자동보정이 되고, 저전력으로 작동한다고 해서 선택했어요 :)
가격도 일반 NDIR센서에 비해 저렴해서 알리기준으로 12달러 전후더라구요 :)
ESP32 로 공부해보고 있는데 알아야할게 너무많네요..
저도 연동앱을 같이 만들까 생각해서 ESP32를 메인보드로 하려 했는데, 아무래도 배터리를 이용한 저전력을 구현하려다보니 완제품으로는 아두이노프로미니밖에 없더라구요.
저 역동적인 동작에 깜짝깜짝 놀라기도하고, 서보모터에 무리를 줘서 최종버전은 많이 얌전(?)해졌습니다.
저도 기회가 되면 Birdie 를 구입해서 비교해보고 싶네요 :)
이번에 배터리로 구동되는 저전력 장치를 만들어보니
Birdie뿐 아니라, 출시된 모든 전자기기들이 다르게 보이더라구요. 구매하는게 제일 쌉니다 :)
제작후기 전문을 보시면 아시겠지만, Birdie는 외형만 참고를 했고 동작방식이나 부품선택과 코딩, 설계, 하우징/PCB제작까지 모두 직접 설계하고 제작했습니다~
관심있으신 분들이 많으면 제작/개발킷 버전으로 진행해볼까 고민 중입니다. :)
제작킷에 실제 얼마나 많은분들이 관심이 있으실지 모르겠지만 고민중입니다.
플랫폼 전략/기획을 하고 있고, 개발은 전혀 할 줄 모릅니다.(흐름 파악 정도만 가능)
AI를 활용할 수 있게 되면서 기획력과 실행력이 있다면 뭐든 할 수 있는 '대 기획자의 시대'가 도래한것 같아 즐겁게 도전하고 있습니다.
다른 국가에서도 디자인 보호를 받을 수 있는 조치를 취했는지는 모르겠네요. 아마 안했다면 큰 문제는 되지 않을수도 있겠네요. 그래도 키트를 만드실때는 디자인 변경을 하시는게 안전하실거 같습니다. 외관뿐만아니라 작동방식까지 같아 법적인 문제로 번지면 방어하시기 힘드실거 같아요.
만약 개발키트를 진행하게 되더라도 말씀주신대로 디자인은 일부 변경을 해야 할 듯 합니다.
다만, 프로젝트에 영감을 준 제품에 대해 어떠한 형태로라도 피해가 가는 행동은 하지 않을 생각입니다.
이미 Birdie라는 멋진 상용제품에 영감을 받아 제작한 프로젝트입니다.
관심있는 분들이 많으면, 디자인을 수정해서 제작킷으로 고민해보려합니다.
메모 추가하고 갑니다.
"금손"
클리앙에 '금손' 유저 리스트가 궁금하네요.
내용 보다가 궁금한 것이 있는데, 'USB 충전 감지' 라고 있던데요
회로도에선 TP4056 모듈에서 나오는 전원을 저항으로 전압분배 및 측정 부분만 있던데,
따로 감지하는 부분이 있는지요?
말씀대로 100k, 47k 풀업저항으로 구성하고 이를 A0 핀에 연결했습니다. 그리고 직전 사이클에서 저장한 전압값과 비교하여 일정구간 전압 상승/하락 여부로 충전감지 및 충전종료를 체크하고 있습니다. (TP4056 충전 라인을 따서 감지하면 정확도는 올라가는데, 그럼 전체 회로 구성이 복잡해지더라구요. 일단 최대한 간단하게(?) 회로를 구성하기 위해서 패스했습니다. ) 아 그리고, 캐패시터 추가로 오른 전압값을 보정하는 로직도 포함했습니다.
실기 사용으로 테스트 중인데 아직까지는 잘 작동하고 있습니다.
Birdie라는 완성도 높은 제품이 이미 판매중입니다. 매력적인 제품이라 이번기회에 직접만들었습니다.
바람이 많이 부는 날이거나, 실내에 인원이 적으면 CO2 농도가 낮아 거의 작동하지 않더라구요.
다만, 분명 움직이지 않는게 쾌적한환경을 의미하는건데, 테스트 기간인지라 움직이지 않으면 불안해요 ㅋ +_+;
제작킷이라 하면 어느정도 수준의 재능이 필요한가요?
감사합니다.
제작킷은 교육용으로 생각해서 라디오 따라 만들기 처럼 설계도를 보고 각 부품을 PCB의 해당위치에 납땜 하는 수 있는 수준이지 않을까합니다.