아두이노 피지컬컴퓨팅 교구로 활용할 수 있는 실 생할용품 메이킹 프로젝트(워터맨IOT) 다섯번째.
온습도 센서
1) 필요라이브러리 : DHT 라이브러리
- IDE 스케치 메뉴 -> 라이브러리 포함하기 -> 라이브러리관리하기 화면에서"DHT" 를검색하여 설치
- ”Adafruit_Sensor.h: No such file or directory” 에러가 발생하면 다음 사이트에서 zip파일을 다운로드 받아 [스케치] -> [라이브러리포함하기]->[.zip라이브러리추가]메뉴에서 설치
https://github.com/adafruit/Adafruit_Sensor
2) DHT.h 해더파일 include
3) 센서가 연결된 핀번호( Digital 6번핀) 와 센서타입을 지정
4) 센서 초기화
5) 센서값이 필요할 때 eadTemperature() 함수로 온도를, readHumidity() 함수로 습도값을 integer로 읽어 낼 수 있다.
1) 필요라이브러리 : BH1750
- https://github.com/claws/BH1750 사이트에서 zip파일을 다운로드 받아 [스케치] -> [라이브러리포함하기]->[.zip라이브러리추가]메뉴에서 설치
2) BH1750.h 해더파일 include
3) 본 센서는 I2C방식으로 데이터를 전송하므로 별도로 핀번호를 지정할 필요는 없다.( D1 Mini에는 D1,D2핀이 이미 할당 되어 있음 )
4) 센서 초기화
5) 센서값이 필요할 때 readLightLevel()함수로 조도값을 읽는다. BH1750조도센서에서는 조도값을 LUX단위로 변환해서 보내주기 때문에 별도 변환작업 없이 LUX값으로 사용할 수 있다.
1) 필요라이브러리 : 없음
- 토양수분센서는 두 전극사이의 저항값을 측정하는 방식이므로 별도 라이브러리 불필요
2) 전극사이의 저항값을 측정하기 위해서는 전압을 가해 주어야 하는데, 이 전압을 항상 가해 전류가 계속 흐르면 구리로된 전극이 부식될 수 있고 불필요하게 전력이 낭비된다. 따라서 토양수분을 측정할 때에만 D5 핀에 전압을 가해준다. (line10)
3) A0 핀을 통해 저항값을 측정하는데 이 값은 0 ~ 1023 사이의 값이다.
4) 이 0~1023 사이의 저항값을 100에서 0의 수분량값으로 mapping한다.
센서통합테스트
18~35 line: 전체 센서값들을 읽는 기능들을 모아 별도 함수로 설정
21~26 line: 온습도 센서값이 비정상으로 읽히는 현상이 있기 때문에 정상적인 값이 읽힐 때까지 반복.
49~62 line: 3초 간격으로 내장LED 를 깜박이고 워터펌프의 전원을 공급하여 가동시킨다.
따라서 본 프로그램으로 워터맨IOT 모듈에 장착된 온습도센서,조도센서,토양수분센서와 워터펌프 전원장치가 제대로 작동되는지 확인할 수 있다.
'아두이노 피지컬컴퓨팅 키트 > 워터맨IOT' 카테고리의 다른 글
(피지컬컴퓨팅키트) 워터맨 IOT 7.ThingSpeak 소개와 설정 (2) | 2019.01.03 |
---|---|
(피지컬컴퓨팅키트) 워터맨 IOT 6. ESP8266의 WIFI기능 (0) | 2019.01.02 |
(피지컬컴퓨팅키트) 워터맨 IOT 4. 하드웨어 조립 (0) | 2018.12.31 |
(피지컬컴퓨팅키트) 워터맨 IOT 3.ESP8266 개발환경 및 테스트 (0) | 2018.12.30 |
(피지컬컴퓨팅키트) 워터맨 IOT 2.ESP8266 소개 (0) | 2018.12.29 |