라즈파이로 온도, 습도 정보 취득(DHT11 센서)

목적



방의 온도, 습도를 센서로 취득한다.

준비



- 라즈파이
-Node-RED( 라즈파이 3에 Node-RED 환경 구축 )
- DHT11 센서

배선




라즈파이
DHT11


5V(PIN2)
VCC

GPIO04(PIN7)
DATA

GND(PIN30)
GND


Node-RED에 DHT11 노드 설치



Node-RED에서 DHT11을 사용할 수 있도록 노드를 추가합니다.



Npde-RED 팔레트 관리에서 "node-red-contrib-dht-sensor"를 추가합니다.


참고 자료



node-red-contrib-dht-sensor

DHT11 노드를 설정합니다.



왼쪽의 노드 목록에서 "Raspberry Pi"→ "rpi dht22"를 선택하고 흐름에 배치합니다.


노드를 더블 클릭하여 편집 화면을 표시합니다.


각 항목을 아래 표와 같이 설정합니다.


설정 항목
설정값


센서 모델
DHT11

Pin numbering
BCM GPIO

Pin number
4


처리주기 결정



주기 실행 타이머 추가



DHT11로부터 온도, 습도를 취득하는 타이밍을 결정한다.
"inject"모듈을 사용한다.


주기 설정



1초마다 반복하는 설정으로 한다.



DHT11로부터 데이터를 취득한다.



DHT11에서 취득한 데이터는 msg 오브젝트로 출력된다.
"debug"노드를 "rpi-dht22"노드에 연결하여 전체 msg 객체를 얻습니다.


디버그 정보로부터 「payload」에 온도, 「humidity」에 습도가 캐릭터 라인으로 세트 되고 있다.


대시보드로 출력



Node-RED에는 출력 결과를 표시하는 대시보드가 ​​있다.
여기서는 "gauge"노드를 사용합니다.


온도 게이지를 설정합니다.



온도 정보는 msg.payload에 설정되어 있으므로 "value format"으로 설정합니다.
그 이외는 적절하게 설정한다.


습도 게이지를 설정합니다.



습도 정보는 msg.humidity에 설정되어 있으므로 "value format"으로 설정한다.
그 이외는 적절하게 설정한다.


대시보드 화면 표시







전체 흐름



Node-RED는 플로우를 JSON으로 표현할 수 있다.

[{"id":"46b259d0.6696e8","type":"tab","label":"흐름 1","disabled":false,"info":""},{"id":"5b2c5419 .7052ec","type":"ui_gauge","z":"46b259d0.6696e8","name":"","group":"2fb4fd33.8cdef2","order":1,"width":4 ,"height":2,"gtype":"gage","title":"온도[℃]","label":"℃","format":"{{msg.payload}}","min ":"-5","max":"45","colors":["#00b500","#e6e600","#ca3838"],"seg1":"25","seg2":"35 ","x":520,"y":140,"wires":[]},{"id":"ab6090c7.4d72b","type":"ui_gauge","z":"46b259d0.6696e8","name":"","group":"2fb4fd33.8cdef2","order":4,"width":4,"height":2,"gtype":"gage","title":"습도 [%]","label":"%","format":"{{msg.humidity}}","min":"20","max":"80","colors":["# 00b500","#e6e600","#ca3838"],"seg1":"40","seg2":"70","x":520,"y":200,"wires":[]}, {"id":"c3c64c67.521b1","type":"rpi-dht22","z":"46b259d0.6696e8","name":"","topic":"rpi-dht22","dht ":"11","pintype":"0","pin":"4","x":320,"y":80,"wires":[["5b2c5419.7052ec","ab6090c7.4d72b ","72eea165.55a95"]]},{"id":"dec320d9.e064c","type":"inject","z":"46b259d0.6696e8","name":"","props ":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"1","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":80,"wires":[["c3c64c67.521b1"]]},{"id":"72eea165.55a95","type":"debug","z":"46b259d0.6696e8","name":"","active":true, "tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":490,"y":80,"wires":[]},{"id":"2fb4fd33.8cdef2","type":"ui_group","z":"","name":"센서","tab":"21ab0c69.4ac974","order":1,"disp":true,"width":11,"collapse":false},{"id":"21ab0c69.4ac974","type":"ui_tab","z":"","name":"온도 및 온도","icon":"dashboard","order":1,"disabled":false,"hidden":false} ]

좋은 웹페이지 즐겨찾기