Description

I needed a way of remotely monitoring the temperature and relative humidity in a greenhouse used by my local garden club. We grow and graft tomato plants for our annual plant sale. Careful control of the T and RH is helpful to insuring the success of the grafting process. Given the large T and RH changes that a greenhouse can experience we wanted to measure what was happening 24 hours a day, seven days a week. After exploring commercial recording hygro-thermographs and determining them to be cost prohibitive I decided to build my own.

The device and software sketch includes the following functionality:
1- Measure T, RH, BP on dual BME280 sensors
2- Records data on SD card with date and time stamp
3- Has a web server to dump the data on the SD card
4- Uploads T, RH, BP, date and time to ThingSpeak
5- Displays the data on a 2 line LCD with one line scrolling

Details

I needed a way of remotely monitoring the temperature and relative humidity in a greenhouse used by my local garden club. We grow and graft tomato plants for our annual plant sale. Careful control of the T and RH is helpful to insuring the success of the grafting process. Given the large T and RH changes that a greenhouse can experience we wanted to measure the conditions 24 hours a day, seven days a week. After exploring commercial recording hygro-thermographs and determining the cost to be prohibitive I decided to build my own.

The basic design specs for this device were:

Have the ability to:

1. Measure T and RH with two separate sensors

2. Record the date, time, T and RH on an on-board memory card

3. Dump the contents of the memory card via web connection to the device

4. Upload real-time measurements to an IoT website

5. View the data graphically as a function of time

When I started the project a year ago I was an Arduino/IoT/C++ NOOB. The closest I had come to building something like this was replicating MightyOhm’s WiFi Radio based on a hacked ASUS WL-520GU router. As this project evolved the WiFi radio experience turned out to be very helpful. As you might imagine the project described in this Instructable is the result of countless iterations along a very interesting learning journey. This most recent iteration uses BME280 temperature, relative humidity and barometric pressure sensors. My previous version used DHT22 sensors. My thanks to everyone who has shared their learning, wisdom and code on the internet. I would not have been able to write the code for this without all of the functions and code snippets that I borrowed from everyone who shared. I have tried to note and thank these authors at the top of my sketch and throughout this Instructable.

Note that the BME280 sensor is available in many slightly different packages from Adafruit, Sparkfun, Amazon, etc. The Adafruit version has the logic level convertor onboard eliminating the need for the Sparkfun device on the list above.