With the weather getting a little chilly I wanted to monitor the temperature in my kids room.
I had a Raspbery PI 2 Ver B lying around and I ordered some bits and bobs off trademe for a bit of messing about.
- DHT11 Temperature sensor
- OLED display
- Breadboard and resistors
Running RASPBIAN JESSIE WITH PIXEL OS
- Version:April 2017
- Release date:2017-04-10
- Kernel version:4.4
1 Installing updates
Not 100% sure if updating is totally necessary, however we do need nodejs and npm installed
sudo apt-get updatesudo apt-get upgradesudo apt-get install nodejs npm1.1 Alternate method is to upgrade Node to version 7 on Raspbian
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -sudo apt-get update && sudo apt-get upgradesudo apt-get install build-essential2 Patch v8.h to fix REPLACE_INVALID_UTF8 build issue
Raspbian 2017-04-10 ships with node version 0.10.29. However in order to build the libraries in this project requires editing the /usr/include/nodejs/deps/v8/include/v8.h file. more info
- Open using command ‘sudo nano /usr/include/nodejs/deps/v8/include/v8.h’
- Search for WriteOptions
enum WriteOptions { NO_OPTIONS = 0, HINT_MANY_WRITES_EXPECTED = 1, NO_NULL_TERMINATION = 2, PRESERVE_ASCII_NULL = 4,};- Add the REPLACE_INVALID_UTF8 = 0 line (note the comma on previous line)
enum WriteOptions { NO_OPTIONS = 0, HINT_MANY_WRITES_EXPECTED = 1, NO_NULL_TERMINATION = 2, PRESERVE_ASCII_NULL = 4, REPLACE_INVALID_UTF8 = 0};3 Blynk
3.1 Install Blynk libraries
sudo npm install -g onoffsudo npm install -g blynk-library3.2 Test Blynk
export NODE_PATH=/usr/local/lib/node_modulesblynk-client 715f8cafe95f4a91bae319d0376caa8cProject 1 (Easy): Make an LED turn off and on using Blynk
Hardware requirements
- LED
- Resistor 330-500 ohm or there abouts
- Breadboard
- 2 x wire connectors Male to Female.
Project 2: Temperature sensor
Hardware requirements
- DHT11 sensor
- 10K resistor
- 2 x wire connectors Male to Female.
- Follow instructions to wire up the DHT11 to PI
- Follow instructions to create Blynk project and install node DHT sensor library
- Create temp.js file with contents below set with your AUTH key. Note: The below script has an additional virtual port 2 to display a temp digital readout
var blynkLib = require('blynk-library'); var sensorLib = require('node-dht-sensor');
var AUTH = 'YOUR KEY HERE';
// Setup Blynk var blynk = new blynkLib.Blynk(AUTH);
// Setup sensor, exit if failed var sensorType = 11; // 11 for DHT11, 22 for DHT22 and AM2302 var sensorPin = 4; // The GPIO pin number for sensor signal if (!sensorLib.initialize(sensorType, sensorPin)) { console.warn('Failed to initialize sensor'); process.exit(1); }
// Automatically update sensor value every 2 seconds setInterval(function() { var readout = sensorLib.read(); var temp = readout.temperature.toFixed(1); var humidity = readout.humidity.toFixed(1); blynk.virtualWrite(2, temp); blynk.virtualWrite(3, temp); blynk.virtualWrite(4, humidity);
console.log('Temperature:', temp + 'C'); console.log('Humidity: ', humidity + '%'); }, 5000);- Next run the temp script
sudo NODE_PATH=/usr/local/lib/node_modules node ./temp.jsProject 3: OLED display
- Follow instructions
- TODO Display temp and humidity to OLED
Reference
Raspberry PI PIN diagram


