Environment Data Monitor

Jeremy Schmidt

Overview

The goal of this project was to create a low power environmental monitor with data logging to a cloud server and a local display.

Graphs

Hardware

Hardware used:

General view

Software

I use Simplicity Studio 5 for programming in C. The program starts with setup and initialization of the sensor, display, WiFi and low energy timer. Once initialized, the program will loop with wait timer setup on a low energy timer that is currently set with a 1 second wait time. The main loop will only update the local display to conserve the power without using the WiFi on every cycle. I also found that the gas monitor used for the air quality measurement is sensitive when measuring and works better when continuously measuring due to the heater the sensor uses when taking measurements. The WiFi is setup on an increment counter set to 600, or every 10 minutes, to connect to the local network and send an update string to Thingspeak. For the display I used the files from the SSD1306 project shown in class, and the WiFi used the files from the WROOM02 project shown in class. The BME680 driver required a bit of debugging to correct some connection issues but there was a large amount of online information for this. I also found some issues with the WROOM002 files using while loops when waiting for acknowledgements: if the internet response was lost the program would be stuck in the while loop. I added a cycle increment counter to the loop to reset the WiFi adapter communication in the case of a communication failure.

Final Thoughts

I took this project to create a low power remote environment monitor that can be set anywhere to monitor mainly temperature and humidity. This project provided me with something that I will be able to use, as well as learning how to put it all together along the way. I still need to 3D print an enclosure to house everything but that will not happen until after this class has concluded. I enjoyed this project and have become much more comfortable working with micro controllers.

Downloads