Microcontroller Environmental Sensor System
In the interest of storing analytical data about environmental stimuli in and around the buildings at Kuckucksmuehle, an environmental sensor system has been created.
The sensor system measures:
- temperature
- humidity
- light level
The system can subsequently can send this data via wireless network connection to central data store.
Implementation
- A light-dependent resistor (LDR) to track changes in light level in the immediate environment of the sensor
- A DHT11 sensor to gather both temperature and humidity readings from the immediate environment of the sensor
- An ESP8266 module, called 'NodeMCUv2' for 2 purposes:
- To act as the central microntroller interpreting readings from all sensors (LDR & DHT11)
- A wireless networking device which can connect to a router in a LAN configuration and send pre-formatted data to specific ports
In terms of software the program operating chip is C++ adapted from a previous project published by Ben Picco: BlinkenDisplay. The software uses gcc 'make' functionalities to compile and flash the chip.
Schematic
Setting up the system for the first time
- Ensure that you have all necessary componentry as detailed by the schematic above:
- Wires
- NodeMCU v2 module
- Light-dependent-resistor
- DHT11 module
- 2x 10kΩ resistors
- 1x USB cable (MicroUSB v2 –> USB type A)
- Arrange the components on a breadboard as per the schematic
- Clone repoitory External Link
- Important: enter the cloned repository and open 'DHT_Unified_Sensor.ino'. Find the field which starts '#define HOST' and change the variable's value to the *IP address of your current computer* (if debugging/testing) or the *IP address of an appropriate server* (if putting it into production)
- Connect the usb cable between your workstation and the NodeMCU v2 module
- Open a terminal (Operating System dependent) and run './prepare.sh' in the cloned directory. Ensure there are no failures reported
- Run 'make' to ensure all files compile correcttly. Ensure there are no failures.
- Run 'make upload' to flash the NodeMCU v2 device with the program
Testing/debugging
If you have completed step 4 by entering the IP address of your computer into the .ino script, then the following steps apply.
- Ensure that the USB cable is connected to the ESP chip such that it has power
- Within the terminal of your current computer run 'nc -l -p 1337 -u' to monitor and print out incoming packets going to a specific port over LAN and print them out to screen on the terminal. N.B: you must specify the '-u' flag (UDP flag) otherwise no network traffic will be received from the ESP chip. Ensure there are readings for all 3 environmental stimuli (temperature, humidity, light)