Sensor Nodes measuring temperature and humidity may be used to provide precision measuring data in ground-based and airborn weather stations, allowing real time and accurate monitoring and reporting of actual weather conditions or indoor climate conditions.
This time I am testing a MQTT network built from two D1 mini/DHT IoT Nodes measuring temperature and humidity to get infomation about the indoor climate. Additionally, I use a sensor ASH2200 for outdoor measurment.
The ASH2200 communicates via 866 MHz with the USB-WDE1-2 receiver which can be connected to a devices offering USB connectivity.
To access to the ASH2200 data we need a small Linux device, for example. I use a Raspberry Pi 2 Typ B w/ Raspbian Jessie installed.
Both kind of IoT nodes publish its measuring data to the CloudMQTT broker.
Furthermore, I use the myMQTT app on an Android device (smartphone or tablet) to monitor the traffic between MQTT broker and the connected MQTT clients.
The screenshot from myMQTT app shows the traffic in my network.
There are three NodeMCU/ESP8266 nodes connected. ESP8266-14695321 is a subscriber node sending a status message (DHT11/ESP8266-14695321/status) as life sign every minute. ESP8266-1138432 and ESP8266-1138645 sind two publisher nodes sending temperatur and humidity messages.
ASH2200 is a publishing node w/ a Mosquitto publisher client installed on a Raspberry Pi 2 Typ B. The shell script usb-wde1-2_mqtt.sh installed on Rasppberry Pi is reponsible for receiving the data sent from from the receiver every 3 min and for preparation of the two messages. Additionally, a Mosquitto subscriber client is running on Raspberry Pi for test purposes only.
In the myMQTT screenshot you can see all those messages with their content monitored.
At first I have to monitor the network. After finishing the tests successfully the software components will be available for download.
To get data from several measuring stations I implemented MQTT on DHT11/D1 mini-Module publishing temperature and humidity data to a MQTT broker.
To monitor these data I use myMQTT Android app on my Galaxy S5 and subscribed to the topic DHT11/+/# to see all messages send with the topic DHT11/<ESP-ID>/temperature, DHT11/<ESP-ID>/humidity and DHT11/<ESP-ID>/state.
The screenshot from that app shows temperature and humidity values sent by two sensor nodes with the ESP-ID ESP8266-1138645 and ESP8266-1138432.
As subscriber node I used a NodeMCU LoLin board which sends each minute the message “in operation” to the topic DHT11/<ESP-IS>/state. This messages is usefull to monitor the operation of such a subsriber node remotely. The screenshot shows this state sent by the node with the ESP-ID ESP8266-14695321.
These ESP-IDs are generated automatically from device ID.
The program samples dht_mqtt.lua and dht_subtemp.lua can be found at Sourceforge.
I got post from Aliexpress today. The WIFI Witty / Gizwits ESP-12F module arrived.
The ESP8266 module family grows and grows and prices come down. You can order such a module for 3 $ and less.
You get an ESP-12F module and a LDR, a RGB-LED and a switch on this board. Additionally there is a stackable programming board w/ a CH-341 USB chip. I flashed NodeMCU Firmware and now Lua is running on it. Two simple test programs (witty.lua & witty_pwm.lua) for this module showing the pin configuration for the existing peripherals (LDR, RGB-LED, Switch) are available on Sourceforge.
This project brings support for ESP8266 chip to the Arduino environment. It lets you write sketches using familiar Arduino functions and libraries, and run them directly on ESP8266, no external microcontroller required.
ESP8266 Arduino core comes with libraries to communicate over WiFi using TCP and UDP, set up HTTP, mDNS, SSDP, and DNS servers, do OTA updates, use a file system in flash memory, work with SD cards, servos, SPI and I2C peripherals.
The Arduino core can be installed on many ESP8266 device. You will find an overview on Github. NodeMCU/Lua is running on the same devices.
To measure the room conditions we can use a traditional Thermo-Hygrometer as shown in the image.
If you want to see these conditions from any location around your home then you can use a cheap DHTxx shield connected to a D1 mini and dweet its data to dweet.io. Use freeboard.io to make these data visible at any location. The program sample dht_dweet.lua can be downloaded from Sourceforge.
You can use your smartphone or a tablet to visualize the room conditions of the observed room (https://freeboard.io/board/BQK578).
Further information on NodeMCU and ESP8266 devices in “Building an IoT Node for less than 15 $” (http://amzn.com/3907857305; http://amzn.com/B018J1OVC4)
…build from DHT shield and D1 mini board
- Install last firmware version (for DHT commands)
- Use the floating point version nodemcu_float_0.9.6-dev_20150704.bin
- Download dht.lua and run it on DHT shield/D1 board package
- You will get the following output:
You can add a time stamp after calling a timeserver, for example.