Here are the steps I took to install Node-RED on my Raspberry Pi B, and then to wire it up to a DHT22 humidity and temperature sensor to log the conditions in my office. It’s based on my work last year using Node-RED to log electricity and water consumption data.
First, I wired up the DHT22 on a breadboard connected to my Raspberry Pi’s GPIO port by ribbon cable, using the helpful Adafruit guide here. The result looked like this:
wget http://node-arm.herokuapp.com/node_0.10.36_armhf.deb sudo dpkg -i node_0.10.36_armhf.deb sudo npm install -g --unsafe-perm node-red
That last step took a while (5 to 10 minutes). I was patient.
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.44.tar.gz tar zxvf bcm2835-1.44.tar.gz cd bcm2835-1.44 ./configure make sudo make check sudo make install
sudo su - cd /usr/local/lib/node_modules/node-red npm install firstname.lastname@example.org npm install node-red-contrib-dht-sensor
I then started up Node-RED, running as root because this is required for Node to be able to read the DHT22:
sudo /usr/local/bin/node-red-pi --max-old-space-size=128 -u /root/.node-red
I was then able to see Node-RED from a browser at http://hostname-or-ip-address:1880/
I created a Node-RED workflow to read the temperature and humidity every 5 minutes and upload it to a PHP script on my webserver that squirrels it away in a MySQL database:
The key here was figuring out the settings for the DHT22 node, which required selecting BCM GPIO as the “pin numbering” scheme:
After that it was simple as running a functio node to make a URL for posting to my server:
and sending that to an HTTP Request node.
I fired things up and the data started to flow:
And from there I was able to export the data and make pretty charts: