====== 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: [[https://github.com/benpicco/blinkendisplay|BlinkenDisplay]]. The software uses gcc 'make' functionalities to compile and flash the chip. ====Schematic==== A schematic which is representative of the system including the microcontroller is shown here: {{ :tutorials:it:environmental_sensor_schem.jpg?direct&400 |}} ====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 [[https://github.com/ScottA38/HAB_sensor/|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)