안녕하세요.루리웹 없만갤에 오랜만에 다시 글을 올립니다.
개인적으로 라즈베리파이나 아두이노로 가끔 DIY 프로젝트를 진행하고 그 제작내용을 공유하고 있습니다.
- 라즈베리파이를 이용해 오락실 게임기 제작하기
- 없어서 다시 만들었습니다. 아두이노 한글시계
이번엔 아두이노를 이용한 CO2 농도를 체크하는 환경데이터를 시각화하는 프로젝트를 진행했습니다.
실내 공기에서 CO2농도가 높아지면 건강에 좋지 않은데,
환기를 잘 시키는 것 만으로도 CO2 의 농도는 현저히 줄어든다고 합니다.
기존에 시판중인 Birdie 와 동일한 외형으로 제작된 CO2 센서에는
심플한 카나리아의 모습을 한 장치에는 어떤 버튼도 어떤 디스플레이도 없습니다.
단지 CO2 농도에 따라 카나리아 모형이 앉아있다가 거꾸로 기절하는 액션만 직관적으로 제공함으로
사용자에게 환기 타이밍을 제공합니다.
주요 부품
- Arduino Pro Mini(5V), SCD40, SG90
- 18650배터리(5,000mAh), TP4056충전모듈
- 배터리체크용 저항(100k/47k), 캐패시터(16v, 100uF)
이번 프로젝트에는 설계와 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분 주기 딥슬립 및 장치 비활성화 등을 통한 저전력 구현
-> 배터리 완충으로 이론상 6개월 사용가능(전력손실, 자연방전률 계산 값)
✅ 배터리 잔여량 30% 일때 배터리충전 알림, 29%이하 강제 슬립모드 전환
✅ 안전장치 : USB 충전 감지/ CO2센서 오류처리 및 리셋 자동화/ EEPROM 정보 저장/ 워치독 타이머 오류처리/ 메모리 자가 모니터링/ 시스템 안전모드 및 자동복구 / 배터리보호 등 구현
정리된 내용이 길어 사진 중심으로만 올려봤습니다.
혹시 제작과정에 관심이 있으신 분들은 아래 제작후기에 전문을 담았으니 방문해보세요 :)
[제작후기]
Arduino CO2 Canary Sensor -카나리아센서 #1.하드웨어파트
Arduino CO2 Canary Sensor -카나리아센서 #2.소프트웨어&긴~완성 파트(feat.Claude)
P.S 코드는 완성되어 있고, 하우징과 PCB도 제작만 하면되어 추가제작이 용이한 상황입니다.
시중에 판매제품이 있어 완제품으로는 판매가 어렵겠지만, 취미와 교육 목적으로 개발킷 판매를 고민 중입니다.
(더이상 우리 아이들에게 조도 선세와 LED로 구성된 ‘IOT 스마트홈'킷만 주구장창 교육자료로 제공하지 않았으면 하는 바램으로…)
혹시 개발킷 구매에 관심있는 분들은 제작후기 전문에 댓글로 의향을 남겨주세요.
관심있는 분들이 많으시면 실행을 진지하게 고민해보려합니다.











(IP보기클릭)211.112.***.***
(IP보기클릭)61.74.***.***
좋게 봐 주시니 감사합니다. | 25.05.12 10:43 | |
(IP보기클릭)124.52.***.***