SOLAR POWERED ARDUINO WEATHER STATION

by:CTECHi     2019-11-29
[Play Video ]
In countries like India, most people depend on agriculture.
Weather forecasts are essential for effective planning of agriculture.
So the farmers are always very interested in the weather forecast.
As farmers live in remote areas, they have to wait for news updates on TV, radio or news papers.
Unfortunately, this weather information is not accurate data of the local environment, but data from the nearest weather forecast station.
As the son of a farmer, I decided to monitor the local weather and inform my father in advance.
So that he can make a decision in advance for his farm.
You can find all my projects at the weather station, usually consisting of two parts: 1.
The sensor is located outdoors to measure temperature, humidity, rainfall and air pressure.
This data is wirelessly sent to the display unit via the RF transmitter module.
I named the entire module as a launch module. (Tx). 2.
The display unit that resides inside in a convenient place so that anyone can read the external temperature, humidity, etc.
It is equipped with an RF receiver to receive data from the transmitter module.
I named it the receiver module (Rx).
Both modules are run by Arduino micro-controllers.
Since the transmitter module is deployed on site, we have to deal with power management issues.
Running long cables provide power to the position of the sensor is impractical.
This leads to relatively few practical options. 1.
Connect the Arduino board directly to the battery.
While this sounds good and obviously it will work, your battery will run out in a few days because of some components such as a voltage regulator, the Power led and USB interface chip on the arduino board are always powered.
But now large-capacity battery packs are available on the market.
The efficiency of solar panels is getting higher and cheaper.
Adding a boost converter to the circuit extracts the last drop of juice from the battery. 2.
Put Arduino in \"sleep mode\" to consume less power.
You can see it in the steps11 and 12.
In this guide I will teach you new skills on how to make solar battery packs for your Arduino and how to optimize Arduino power consumption by putting Arduino in sleep mode.
You can run sensor-related or any other stand by using the above Technology-
It has been a separate Arduino project for a long time. PARTS :1. Arduino Uno (Amazon /eBay)2. Arduino Nano (Amazon /eBay)3. DHT11 (Amazon / eBay)4. RF transmitter-Receiver pair (Amazon / eBay)5.
20x4 LCD screen (Amazon / eBay)6. LCD I2C module (Amazon / eBay)7. 3.
7 V lithium ion battery/2 AA Ni Mh rechargeable battery (Amazon /eBay)8.
Boost converter (Amazon / eBay)9.
Lithium Ion battery charging board (Amazon /eBay)10.
Battery Stand (Amazon / eBay)11. Solar Panel (Amazon / eBay)12. Resistor 10K (Amazon )13. Diode -IN4007 (Amazon )14.
Jumper/wire (Amazon )15. Bread Board (Amazon )16.
Solid-core conductors of 22 ad hoc working groups (
For making antennas)(Amazon )17.
Mats and taps in Scotland (Amazon )TOOLS :1.
Soldering iron, soldering tin (Amazon )2. Glue gun (Amazon )3. Hobby Knife (Amazon )4. Drill (Amazon )5.
Wire cutting machine/stripping device (Amazon )Why is solar energy?
The main drawback of the battery operating device is that it will run out after a certain period of time.
The use of natural resources such as solar, wind or hydropower can eliminate this disadvantage.
The most obvious free energy to charge the battery is solar energy.
This is a relatively simple, cheap and requires very few skills.
In rechargeable batteries, metal nickel hydrogen (NiMH)and Li-
Ion batteries are widely used in battery-powered equipment.
Fact of battery charging: the rule of thumb for charging Mh Ni batteries is 1/10 (
Commonly known as C/10).
Charging the battery pack at a rated current of 1/10 takes 16 hours of charging time (
Can see the picture).
Solar panels receive only 4 hours of optimal sunlight per day from 10. m. to 2 p. m.
Therefore, it takes four days for a completely ideal system to charge the battery pack. What is C/10?
For example, we have a 2xAA-sized 1300 mAh battery pack with a rated power of 1.
2 volts per battery.
Our pack output 2 is connected in series with the battery.
4 volts and 1300 mAh.
The capacity here C = 1300 mAhC/10 means 1300/10 = 130 mAhSo charges the above battery pack and we need a higher voltage (2. 4 to 3 V)
The maximum current is 130 mAh.
According to the C/10 rule, it takes 16 hours to fully charge the battery pack.
You have to ask what happens if we increase the current (>130mAh)?
There is no doubt that your battery will charge faster.
But the life of the battery will be reduced.
So my suggestion is to keep the current below the C/10 value.
The main source of power for sensor modules is solar panels.
Therefore, it must be able to provide the current that powers the Arduino and the current that charges the battery pack during the day.
In my experience, this is the most challenging part for novice users.
Don\'t worry, the following tips can help you buy the right solar panel. 1.
Voltage: Select 1.
5 times the battery pack voltage2.
Current: The current taken when the Arduino current is charged (
This should be the case: a battery pack is made of 2 AA Ni Mh batteries.
Battery Voltage = 1. 2 x 2= 2.
The required voltage for the solar panel is 4VSo = 2. 4 x 1. 5 = 3.
6 V through some margin we can choose a 4 V solar panel for it.
The sensor module current used with Arduino is 100 mAh.
The battery capacity is 1300 mAhC/10 = 130 mAh. The solar panel must provide the Arduino with a current of 100 mAh while the current does not exceed 130 mAh.
Let\'s charge the battery with 100 mAh, the total current required = 100 100 = 200 mAhFrom the above calculation, obviously we need a solar panel with 4 V and 200 mAh.
The following table shows the solar system configuration relationship between the battery and the micro solar panel. Battery ---->Solar Panel1. 2V ------>2V ~ 2. 5V2. 4V ------> 3. 5V ~ 4V 3. 6V------> 5V ~ 6V 6V------> 7. 5V ~ 9V12V------
> 15 V ~ 18 V note: solar panels that choose the exact rating are not strict rules, but approximate ratings.
I write based on my experience.
We need 5 v to power the Arduino.
There are two options 1.
Use 4 AA battery packs: total voltage = 1. 2V x4=4. 8V (nominal )
But when it is fully charged, the voltage exceeds 5 v.
This is not efficient. 2.
Use 2 AA battery packs: total voltage = 1. 2Vx2 =2.
In this case, we have to raise the voltage level to 5 v using a voltage boost circuit.
I recommend using this package.
Reliable and efficient.
Charging circuit: Nickel Metal hydrogen of standard size (NiMH)
The battery requires a simple charging circuit.
All you need is a solar panel, a diode, a battery, a battery box and a wire.
4 AA battery packaging solder the positive pole of the solar panel to the positive pole of the diode.
Weld the negative pole of the diode to the positive pole of the battery pack.
Weld the negative pole of the solar panel to the negative pole of the battery pack.
See above for welding.
2 AA battery pack since the battery pack voltage is not enough in this case, we have to make 5 v for Arduino using the boost circuit.
The boost converter is DC-to-
DC power converter (
Like boost transformer in AC)
The output voltage is greater than its input voltage.
The boost converter used in this project has the following specifications:> input voltage: 0. 9V-
5 v dc> transmission efficiency: 96% (max)
> Use USB Port> use work indicator> output current up to 200 ~ using an AA battery power supply ~ 300 mA,> the output current of the two AA batteries is 500 ~ 600 ma, you can buy from eBayAdafruit. It also designed a boost converter called minityboost for USB charging
You can also use it.
In our example, the input of the boost converter is 2.
4 V, output 5 V, enough to power the Arduino.
Weld the \"\" terminal of the boost converter to the front end of the battery. Solder the \'-
Connect the terminal of the boost converter to the battery negative terminal.
Of all the chargers I have discussed before, I like it the most.
This is the most powerful and efficient battery pack.
Interestingly, you can use it to charge up any USB powered gadget like your smartphone, tablet, MP3, etc.
If you look at the periodic table, you will find that on the far left of the first column, all the most reactive elements are there.
Note: Certain precautions must be taken when handling lithium ion batteries.
In order to maintain a very precise voltage when charging. The 3.
The 7 v battery we use in this guide requires a charging voltage of 4. 2V.
High voltage or low voltage can mean a chemical reaction that is out of control, which can lead to danger.
Don\'t worry, a suitable Li.
The above problem will be solved by the ion Battery Charging Controller.
The lithium battery charging board used in this project has the following specifications:> current-1A adjustable.
> Charging accuracy-1. 5%.
> Input voltage-4. 5V-5. 5V.
> Full charge voltage-4. 2V.
> Led indicator-
Red is charging and blue is charging.
> Input interface-mini USB.
> Working temperature--10℃ to +85℃.
You can buy from eBayCircuit Connection: the input positive terminal of the welding boost converter (red wire)
And the positive terminal of the battery seat (red wire)
BAT to the charging board
Welding the input negative pole of the boost converter (black wire)
Negative pole of battery seat (black wire)
BAT to the charging board-.
The Boost converter output is a USB terminal.
To power the breadboard circuit, we need two wires to connect.
So we have to modify something according to our requirements.
USB has four terminals (5V, D-, D+and GND).
Weld the red and black wires to and-
As shown separately on the back side of the boost converter.
Note: There is no mark for the boost converter.
So use my picture when welding.
The transmitter module contains the DHT11 sensor, a relatively cheap sensor for measuring ambient temperature and humidity.
20-good.
80% humidity reading, accuracy 5%, 0-
Temperature reading at 50 °c with ± 2 °c accuracy.
I ordered the air pressure sensor (BMP085)
Rainfall sensors from eBay can predict more weather data.
For the time being, I am only satisfied with the temperature and humidity.
Weather data is measured by DHT11, processed by Arduino nano/breadboard Arduino and wirelessly transmitted via RF transmitter.
DHT11 connection: the DHT11 sensor has 4 pins: 1->Vcc ,2->Data ,3->NC ,4 ->GNDDHT11 -->ARDUINOVcc-->5VData-->D8NC --
> No Connection-
> 10 k resistance between the data pins connected by the GNDConnect VCC and DHT11RF transmitter: the RF transmitter has 3 pins (
VCC, Data and GND). RF transmitter-->ARDUINOVCC --> 5VData-->D11GND--
> GNDNote: add the antenna to the RF transmitter to increase the range, Click Connect everything later, upload the attached Tx_code bellowI using the plastic box of the transmitter module housing
Make a hole in the top of the plastic box and plug in the wire from the solar panel.
Make small holes in the side wall (opposite face)
Fresh air entry (
Measure accurate data). see the pics.
Place the charging circuit (made earlier)inside the box.
Remove the wire from li-
Ion battery charger (IN+ and IN-)
Weld the positive pole of the solar panel to the positive pole of the diode and the negative pole of the diode to the red line of the charger.
Weld the black wire to the negative pole of the solar panel.
To install the solar panels and battery racks, I used the skotch mounting pad.
The mini breadboard has a built-in pad that can be glued to it.
Stick the wire with a tap. Connect 5 v (+)and GND (-)
Boost converter terminals to the red rail of the bread plate (+)and blue rail (-)respectively.
In order to test it exposed to the sun, you will see the red led (
Arduino, boost converter, charging)
The boards will shine.
The receiver module receives weather data through the RF receiver and is processed by Arduino UNO.
The processed data is displayed via a 20x4 character LCD display.
16x2 LCD is also available.
The main reason for using a 20x4 char LCD is the display, and I can display a lot of weather parameters.
I added an I2C module to the LCD to reduce the number of connections to the Arduino (
Only 4 wires are needed).
If there is no I2C module, go to my LCD Tutorial for connection and sample code.
LCD connection: only 4 pins for I2C LCD (
GND, VCC, SDA, scp)LCD-->ARDUINOGND-->GNDVCC-->5VSDA-->A4SCL--
> A5RF receiver connection: the RF receiver has 3 pins (
VCC, Data and GND). RF Receiver -->ARDUINOVCC --> 5V Data-->D11GND--
> GNDNote: add the antenna to the RF receiver to increase the range and click connect all of the following \". Upload the Rx_code attachment bellowThe receiver case is a card box.
Mark the outline of the LCD with a pencil or marker.
Use a hobby knife to cut the marked part.
Insert the LCD into the cutting part of the box.
Fix the hard tongue on the back of the LCD and place the bread plate receiver module prepared in the previous step.
I use a 12 v DC adapter to power the Arduino UNO.
Make a hole in the back of the carton for inserting the DC adapter cable.
Weather data will not change frequently.
So we can do a reading at a 5 minute interval.
When we do the reading every once in a while, it\'s a great way to save a lot of power.
With only two AA batteries, a system with a proper sleep schedule can run for months.
We are very lucky that Arduino has several sleep modes that can be used to reduce power consumption.
This is very useful for any sensor network.
You can use this trick in any individual sensor project.
After searching on the internet to use sleep mode, I found that rocket scream has a simple but powerful library with a lightweight low-power library that supports all power-off modes.
Each mode has an associated library method that can control sleep duration using a watchdog timer.
For novice programmers like me, it\'s very simple and easy to use.
How to use the LowPower Library: 1.
Download the library from github2.
Unzip the zip file to the Arduino library in your computer. 3.
Import the library in the code. 4.
Write the following line of code to save power. \"LowPower. powerDown(
Sleep _ 1 s, adc _ off, bod _ off);
\"You can also turn off individual peripherals with different parameters.
For different parameters and sleep times, please refer to the table provided by the lightweight, low-power Arduino library.
Example code: # include \"LowPower. h\"void setup(){
/This library does not need to be set}void loop(){
/Turn off the ADC module and BOD module with low power consumption and sleep 8 s. powerDown(
Sleep_8 S, ADC_OFF, BOD_OFF);
For example: reading sensors, recording data, transmitting data
Let\'s use it in the flashing code of the Arduino IDE example and apply the \"low power Library\" in the flashing code # including \"low power \".
H \"/import lowpoer library int led = 13; void setup(){pinMode(led, OUTPUT); }void loop(){digitalWrite(led, HIGH); LowPower. powerDown(
Sleep _ 1 s, adc _ off, bod _ off);
/Rather than delay (1000); digitalWrite(led, LOW); LowPower. powerDown(
Sleep _ 1 s, adc _ off, bod _ off);
/Rather than delay (1000); }
Before using the low-power Library Current obtained by arduino51.
When the led, the 7 mA is ON 47mA, when the led, in the use of low-
The source library current collected by Arduino34.
93 mA, when led, is on31.
73 mA, you are happy to reduce 32 when the led is off. 43 % power ? ?
Hey, there\'s room to reduce power consumption.
Your Arduino board has different power-absorbing components such as power led, voltage regulator, and USB interface chips that consume most of the power even when idle.
See next for other alternatives.
> The easiest way to reduce power consumption is to bypass the voltage regulator in the Arduino board.
Purchase a separate boost regulator circuit and connect its output to 5-
V pin on Arduino board, bypass 5-
Voltage Regulator on board.
This program is used in our project.
> Use the \"bare bone\" board instead of the Arduino board.
> Disable unnecessary led> If time precision is not required, then use the Atmega 328 internal 8 MHz crystal instead of the external 16 Mhz crystal.
> Operate Atmega 328 at 3.
3 V instead of 5 V> turn off the sensor as soon as possible. For more details on Arduino energy saving technology, click here. The maximum energy saving can be achieved by using the quasi-system board.
By using the bare board, power consumption can be reduced to a micro-level during sleep.
You can see the picture above.
You can easily make this on the breadboard by following the link: 1.
Arduino on the breadboard.
Arduino to the micro controller on the breadboard make the bare bone plate by following the link: single-sided real bare bone plate Arduino in the EAGLEI will highly recommend the bare bone plate for any battery-driven project (like sensors).
Battery life can be calculated by determining the average current of the circuit.
The average current is calculated using the general equation below. Iavg = (
Ton * ion Tsleep * is Lipp)/ (Ton +Tsleep)Ton (
Arduino active)= 250 ms =0.
25 s and Ion = 16 mATsleep = 5 min = 300 s, is Lipp = 200 uA (approx)
It is very difficult to measure current during sleep.
There was a time when my reading was zero. Iavg = 0.
205 working voltage = 5 VPavg = VxIavg = 5x. 205=1. 026 mWLi-
Ion battery capacity = 3000 mAh battery voltage = 3. 7VPower =3.
7x3000 = 11100 mWhBattery battery life = 11100/1. 026 =10,818.
7 hours = 15 months, it is clear from the above calculation that the theoretical use of a fully charged 3000 mAh Li-
We can run Arduino for 15 months.
Due to the battery itself, in practice
This number may be different.
Since the system is equipped with a solar charging system, we can run for several years without interruption.
Hope you enjoyed my tutorial.
Please comment if any errors are found.
This project is registered in 3 competitions. please vote for me.
Thank you very much.
Custom message
Chat Online 编辑模式下无法使用
Chat Online inputting...