Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Garden Angel for Arduino Uno

The garden angel is an electronic system that monitor air humidity, temperature and light. Data is acquired every second. Due to the low level of available memory on board, system is actually able to store 36 hours of data with a point every 28 minutes. Data stored is an average value of the collected data over the storage period. The board is also able to report last measured values on the 7 segments digit when a user push the garden angel button.

Pushing the garden angel button will also result in a CSV table conveniently displayed on the serial console to allow end-users to cut & paste results and to build charts in any CSV capable software.

Required hardware

Arduino Uno board

DHT11 : humidity and temperature sensor

+ 100nF capacitor
+ 10KOhms resistor
+ digital pin read capacity

photoresistor : light sensor

+ 10KOhms resistor
+ analog pin read capacity

7 segments digit (. to be considered as h segment) :

+ 220Ohms resistor
+ digital pin write capacity

1 push button :

+ 10KOhms resistor
+ digital pin read capacity

Sources used to build this project :

Photoresistor sensor circuit

DHT11 sensor circuit

7 segments display circuit

push button circuit

The Garden Angel Circuit

Garden Angel Circuit

Messages produced on the serial console

Garden Angel v0.1 - Freddy Frouin <>

Data History length : 1.50 day
Data History resolution : 28 minutes
Data acquired every second : average values are pushed to history

push the button to display the history or to show last values collected on the 7 segments digit

Configure clock and adjust size of data history tables

You can adujst the history length and the archive size if your board as more memory available, you may get best data resolution in the data history. Do not forget to recompile with your local time in order the board to report correct timestamp. All this has to be configured in the history.h file :

time_t LOCAL_TIME=1475397109; // 2 oct 2016, 10:31:~47 (UTC+0200)

const int HIST_CAPACITY=76; // history table index size
float HIST_LENGTH=86400*1.5; // history length in seconds

The board will report to you on the serial console the number of day available for data storage and the history resolution in minutes.

To display the history, just push the button on board until next data acquisition and you'll get a CSV output of collected data on the serial console of the board.

CSV Output

1/10/2016 9:54:35;43.00;22.00;90.00;0
1/10/2016 10:23:0;42.00;22.00;92.00;1
1/10/2016 10:51:26;42.00;22.00;94.00;2
You can’t perform that action at this time.