Introduction: Power From Trees!! and Using This Power to Collect Data Form the Environment.

It is very well known that when putting a copper and a zinc rod into a potato, a voltage can be measured across the two rods, that is how the potato clock works. However we can take this idea further using a tree. As a tree has a higher volume than a potato, more energy can be transferred from the zinc to the copper. If multiple rods are used in a parallel combination in multiple trees, enough energy can be transferred to power an Arduino board. This is clearly an ideal way to produce energy, and literally one of the "greenest" forms of energy production causing practically no damage to the environment. Arguably it could improve the state of the environment as it incentivises people to grow more trees that clear out the CO2 in the air improving the overall condition of our planet.

Another problem that this project addresses is the issue of forest fires, causing a large amount of CO2 to enter the atmosphere, but worse destroying hundreds or even thousands of trees and the natural habitat of countless animals. One of the most effective ways of stopping forest fires is by either catching the fire as soon as possible, or monitoring the conditions of the forest and creating an alert when dangerous conditions arise, i.e high temperature and low humidity. This project uses a DHT22 sensor that monitors the temperature and humidity of the environment, so using the Arduino we can monitor the input readings of the DHT22 and create an output signal if they are hazardous.

Additionally this project and also be used to ensure that the plant-life in a certain area has sufficient water to survive, this can be calculated with the average humidity an the dew point (dependent on temperature and humidity), and comparing these values with the equivalent ones of the specific species of plan in said area.

One final use for his project (that I can think of) is using the data form the DHT22 (that is saved on a micro SD card) to use the temperature and humidity information form your local area to help a "citizen science" project. This improves the quality of data collected by these projects, and could lead astounding breakthroughs in science for instance, better meteorological predictions, further knowledge about climate change... A great place to find these crowd sourcing data projects involving the data that we can collect with this gizmo is:

I hope you enjoy making/using this!!

Step 1: Step 1:The Materials and Tools

The materials and tools that are needed to construct this project are:


DTH22 sensor x1
Piezoelectric buzzer x1
NPN transistor x1
Arduino UNO board x1
Ethernet shield for Arduino UNO x1
Red LED x1
RGB LED x1 (Bule led will also work but I didn't have one to hand)
100k ohm resistor x1
1k ohm resistor x1
680 ohm resistor x1
330 ohm resistor x2
220 ohm resistor x1
4.7K ohm resistor x1
Micro SD card x1
Micro SD adapter x1
Veroboard x1
Breadboard x1
Copper nails aprox. 10
Zinc nails aprox. 10
Jump leads + croc-clips aprox. 12
3mm bolt x3
3mm nuts x6
3mm washers x6
Wire about 0.5m
Blue tack
PC with the Arduino software
A-B USB cable
Power in plug for the Arduino UNO board


Soldering iron
Screwdriver (for 3mm bolt)
Wire cutters
Wire pliers
Digital Multimeter

Step 2: Step 2: Build Circuit on Breadboard

Before we solder the parts in it is a good idea to make the circuit on a breadboard and test it first to ensure it does exactly what we want it to do. The image above shows how each component should be connected to the breadboard.

Form the Ethernet shield (that's connected to the equivalent Arduino UNO pins), connect the data out pin of the DHT22 to pin 2, the analogue out (pin 4, orange cable) to one of the red (positive) rails, the GND pin to the blue (negative) rail and the +5V pin to the other red (positive) rail as shown in the diagram.

Step 3: Step 3: Uploading the Sketch Onto the Arduino UNO Board

The upload the code, first we need the Arduino software, download from:

Then open the program, copy and paste the DTH22_code file into the Arduino working environment (DTH22_code.txt is an attached file and should open on note pad).

Once the code is in the Arduino working environment, press verify (tick button), then plug the board into the USB cable type A/B into the Aduino UNO board and unto a USP port on the PC and press upload (the arrow button). When the sketch it uploaded you are good to test it out.

N.B If the intention of this project is to monitor the conditions over a long person of time (i.e months) I recommend using a Micro SD with large storage space (32GB for instance) and increasing the delay in the sketch, so instead of looping the code every minute it does so every hour or so.

Step 4: Step 4: Test

While in the Arduino working environment, and whilst the board is plugged into the PC, the serial monitor can be opened (by pressing ctrl+shift+m) and the data revived directly form the Arduino board can be monitored, this is ideal for monitoring indoor temperature and humidity. It also ensures everything is in order, you will know that everything is in order if the serial monitor looks like the screenshot above, and there are no error messages displayed within the serial monitor.

Check the SD card by plugging it in to the computer, there should be a csv (comma separated values) file called DATALOG.cvs, open it with Excel (or a similar program). There should be three columns displayed, the first one is the humidity readings in % , the second is the temperature in degrees Celsius and the third is the dew point in degrees Celsius.

Another thing to check is the dangerous conditions output, there is two was to do this, either create a fire (not advisable) or temporarily changing what the Arduino board "thinks" is a dangerous condition (the later it a lot safer!!!). To do that all that needs to be done is to change the if statement for the float variable ff to be > than 0 rather than 2.5, alternatively you can download the DTH22_test.txt file above and replace the old code. Then re-compile the sketch and upload it. You'll know if the test has been successful if the red led turns on and the buzzer makes a loud piercing noise. Remember to recompile and reload the original sketch before moving on the the next test.

One final test, and the simplest is simply punting a finger over the LDR, the blue led should turn on. This is a feature included to made the device visible at night.

Step 5: Step 5: Build the Device

First its is necessary to solder the components onto a Veroboard if you have no experience soldering I strongly suggest practicing first with a spare Veroboard and some wire. Here is a great video on how to solder on to a Veroboard (ignore the part about making breaks, we will not need to use that):

Once all the components are soldered on it should look something like in the image above, plug the lines into the corresponding pins on the Arduino, i.e GND to the GND pin, the data pin of then DTH22 to pin 2...

Then align it on top of the Arduino board and drill a whole through the Veroboard, ensuring the hole is inline with the holes in the Arduino and the Ethernet shield.

WARNING: Don't drill the hole on the same strip as the soldering

Use the nut and bolt to secure the Veroboard at the optimum height, and then secure the Veroboard to another part of the Ethernet shield so it can still be moves for later repairs.

Then attach the power input plug for Arduino UNO to two bolts, securing the cable with nuts, as shown in the picture.

OPTIONAL: Add a piece of sting in a loop to one of the unused holes in the Arduino board so it can be hung from a nail.

The sensor unit should now be complete, the photos above show what it should look like.

Step 6: Step 6: Wire Up the Trees

From the fist photo it can be seen that one tree can produce 0.9V, so a combination of 9 trees roughly produce 8V, enough to power the Arduino board. All that has to be done is set it up. Using the hammer, one copper and one zinc nail is hamered in per tree, at a separation of aprox. 5cm. Then using the leads with croc clips attached to either end, the copper and zinc nails need to be attached as shown in the diagram above.

Then the sensor needs to be connected as shown in the diagram, and voilà a tree powered data collector, that can measure the temperature and humidity of the environment.

Step 7: Example of Data Collected

Then knowing that a data value is collected every x amount of time (whatever the delay is in the code), we can observe the change in temperature and humidity over time.

Remember when looking at the example data that the first column is humidity, the second temperature and the third dew point.

Thank so much for reading, this is my first inscrutable, and I hope you enjoy building the project !!!

Robin Milward.

Explore Science Contest

Participated in the
Explore Science Contest

MAKE ENERGY: A US-Mexico Innovation Challenge

Participated in the
MAKE ENERGY: A US-Mexico Innovation Challenge