볼트 IoT: DHT11과 아두이노로 고급 온습도 모니터링 시스템 구축하기
부품 및 소모품
| 부품 | 수량 |
| DHT11 온습도 센서 (4핀) | 1 |
| 볼트 IoT 볼트 와이파이 모듈 | 1 |
| 아두이노 우노 | 1 |
앱 및 온라인 서비스
프로젝트 개요
볼트 팀이 최근 BoltIoT-Arduino-Helper 라이브러리를 업데이트했고, 이를 테스트해보기로 했습니다. 이 라이브러리에는 DHT 센서를 볼트 클라우드와 연동하는 예제가 포함되어 있으며, 이 프로젝트는 바로 그 예제를 구현하는 것입니다.
하드웨어 설정
볼트듀이노(아두이노 우노 r2 커스텀 버전)를 사용했지만, 일반 아두이노 우노로도 동일하게 구현 가능합니다. 볼트듀이노가 없는 메이커들을 위해 프릿징 다이어그램은 아두이노 우노 기준으로 작성했습니다.
1단계: 볼트를 볼트듀이노(아두이노)에 연결
볼트듀이노에는 볼트 와이파이 모듈을 꽂을 수 있는 핀아웃이 있어 간단합니다. 일반 아두이노 우노를 사용하는 경우, 수-수 버그 핀 와이어 4개로 볼트 모듈을 연결하면 됩니다.
볼트 와이파이 모듈과 아두이노 연결
2단계: DHT11 센서 연결
DHT11 센서 배선도
3단계: 필수 라이브러리 설치
이 프로젝트에는 다음 3개 라이브러리가 필요합니다:
- BoltIoT-Arduino-Helper
- Adafruit_Sensor
- DHT-Sensor-library
각 라이브러리 GitHub 페이지에서 'Clone or download' → 'Download ZIP'으로 다운로드한 후, 아두이노 IDE에서 '스케치 > 라이브러리 포함 > .ZIP 라이브러리 추가'로 설치하세요. 반드시 3개 모두 설치해야 합니다.
ZIP 라이브러리 추가 메뉴
4단계: 코드 업로드
아두이노 IDE에서 '파일 > 예제 > BoltIoT-Arduino-Helper > DHT2Cloud'를 열어 예제 코드를 불러옵니다. 볼트듀이노를 PC에 연결하고 업로드 버튼을 누르세요.
주의: 아두이노 우노 사용자는 코드 업로드 시 볼트 모듈을 아두이노에서 분리해야 합니다.
소프트웨어 설정 (볼트 클라우드)
볼트 와이파이 모듈 관련 프로젝트가 여럿 진행되었으므로, 독자가 이미 볼트 클라우드 계정을 만들고 모듈을 연동했다고 가정합니다. 그렇지 않다면 볼트 공식 문서를 먼저 참조하세요.
1단계: 볼트 클라우드에서 새 제품 생성
'Input Devices'와 'UART' 옵션을 선택하세요.
새 제품 생성 화면
2단계: 제품 구성
소프트웨어 구성 코드는 공유된 예제를 참고하세요. 저장 후 제품 구성 화면을 빠져나옵니다.
3단계: 볼트 디바이스를 제품에 연결
디바이스 연결 후 'Deploy Configurations' 버튼을 반드시 클릭하세요.
4단계: 데이터 확인
클라우드는 5분마다 디바이스를 폴링하여 데이터를 가져옵니다. 약 20~25분 후 데이터를 확인하세요.
볼트 클라우드에서 온습도 데이터 그래프 확인
결론
이 프로젝트를 직접 구현해보시고, 온습도 모니터링 시스템이 마음에 드신다면 인디고고에서 저희를 후원해주시고 널리 알려주세요! 개발자 전용 할인이 있으며, 첫 번째 볼트 배치는 2018년 2월에 출하됩니다.
볼트 IoT 플랫폼 관련 다른 흥미로운 프로젝트들
- 볼트 IoT 데모 및 도어 모니터링 (독일어)
- 식물 모니터링 알림 시스템
- 볼트 IoT를 이용한 쓰레기통 모니터링
- 볼트 IoT CPU 스트레스-오-미터
- 볼트 IoT를 이용한 암호화폐 알림 시스템
- 5분, 4단계로 "OK 구글, 불 켜줘" 구현
- 볼트 IoT로 구동되는 흄 석션
- 볼트 IoT로 만든 가난한 자의 테레민
- 단 4단계, 5분, $12로 음성 제어 조명 만들기
- 스마트 가든 IoT 식물 모니터링 시스템 구축
- 중요 이메일 놓치지 않기
- 볼트 IoT 데스크 버디
코드 (볼트 클라우드 제품 구성용 JavaScript)
var lineGraph1 = new boltGraph();
lineGraph1.setChartType("lineGraph");
lineGraph1.setAxisName('X-Axis Name', 'Temperature->');
lineGraph1.plotChart('time_stamp', 'Temperature');
var lineGraph2 = new boltGraph();
lineGraph2.setChartType("lineGraph");
lineGraph2.setAxisName('X-Axis Name', 'Humidity->');
lineGraph2.plotChart('time_stamp', 'Humidity');
회로도
볼트듀이노를 사용하는 경우 볼트 와이파이 모듈 배선 부분은 건너뛰세요.
프릿징 회로도 파일: dht11boltarduino_5THd5r6p4C.fzz