Introduction: Solar Powered WiFi Weather Station

In this Instructable, I am going to show you how to build a Solar powered WiFi Weather Station with a Wemos board.The Wemos D1 Mini Pro have small form-factor and wide range of plug-and-play shields make it an ideal solution for quickly getting started with programming the ESP8266 SoC. It is an inexpensive way to build Internet Of things ( IoT ) and is Arduino compatible.

The new Weather Station have following features:

1. The Weather Station can measure :Temperature, Humidity , Barometric Pressure , Altitude

2. You can monitor the above weather parameters from your Smartphone or from the web ( ThingSpeak.com )

3. The whole circuit along with power supply is put inside a 3D printed enclosure.

4. The range of the device is enhanced by using an 3dBi external antenna .It is around 100 meter.

Step 1: Parts and Tools Required

1. Wemos D1 Mini Pro ( Banggood )

2. TP 4056 Charging Board ( Amazon / Aliexpress )

3. Diode ( Aliexpress )

4. BME 280 sensor ( Aliexpress )

5. Solar Panel ( Banggood )

6. Perforated Board ( Banggood )

7. Screw Terminals ( Banggood )

8. PCB standoffs ( Banggood )

9. Li Ion Battery ( Banggood )

10. AA Battery Holder ( Amazon )

11. 22 AWG wire ( Amazon / Banggood )

12. Super Glue ( Amazon )

13. Duct Tape ( Amazon )

14. 3D printing filament -PLA ( GearBest )


Tools Used :

1.3D Printer ( Anet A8/ Creality CR-10 Mini )

2. Soldering Iron ( Amazon )

3. Glue Gun ( Amazon )

4. Wire Cutter / Stripper ( Amazon )

Step 2: Power Supply

My plan is to deploy the Weather station at a remote place ( my farm house).To run the Weather Station continuously, there must be a continuous power supply otherwise the system will not work .The best way to provide continuous power to the circuit is by using a battery.But after some days the battery juice will run out, and it is really difficult job to go there and charge it. So a solar charging circuit was proposed to user free energy from the sun to charge the batteries and to power the Wemos board.I have used a 14450 Li Ion battery instead of a 18650 battery because of its smaller size.The size is same as of an AA battery.

The battery is charged from a Solar panel through a TP4056 charging module. The TP4056 module comes with battery protection chip or without the protection chip.I will recommend to buy a module which have battery protection chip included.

About the TP4056 Battery Charger

The TP4056 module is perfect for charging single cell 3.7V 1 Ah or higher LiPo cells. Based around the TP4056 charger IC and DW01 battery protection IC this module will offer 1000 mA charge current then cut off when charging is finished. Furthermore when the battery voltage drops below 2.4V the protection IC will cut off the load to protect the cell from under voltage.It also protects against over voltage and reverse polarity connection.

Step 3: Measuring the Weather Data

In the earlier days weather parameters like ambient temperature,humidity and barometric pressure were measured with separate analog instruments: thermometer, hygrometer and barometer.But today the market is flooded with cheap and efficient digital sensors that can be used to measure a variety of environmental parameters.The best examples are sensors like DHT11, DHT 22, BMP180, BMP280 etc.

In this project we will use a BMP 280 sensor.

BMP 280 :

BMP280 is a sophisticated sensor that very accurately measures barometric pressure and temperature with reasonable accuracy. The BME280 is the next-generation of sensors from Bosch, and is the upgrade to the BMP085/BMP180/BMP183 - with a low altitude noise of 0.25m and the same fast conversion time.

The advantage of this sensor is that it can use either I2C or SPI for communication with microcontroller. For simple easy wiring, I will suggest to by I2C version board.

Step 4: Using an External Antenna ( 3dBi )

The Wemos D1 mini Pro board have a inbuilt ceramic antenna along with provision for connecting an external antenna to improve the range.Before using the external antenna, you have to reroute the antenna signal from the built-in ceramic antenna, to the external socket.This can be done by rotating the small surface mount (0603) Zero Ohm resistor (sometimes called a link).

You can watch this video made by Alex Eamesto rotate the zero ohm resistor.

Then snap the antenna SMA connector in to the Wemos Pro mini antenna slot.

Step 5: Solder the Headers

Wemos modules come with variety of headers but you have to solder it according your requirement.

For this project,

1. Solder the two male headers to the Wemos D1 pro mini board.

2. Solder a 4 pin male header to the BMP 280 module.

After soldering the headers the module will look as shown in the above picture.

Step 6: Adding Headers and Terminals

Next step is soldering the headers to the perforated board.

1. First place the Wemos board over the perforated board and mark the foot print.Then solder the two row of female headers over the marked position.

2. Then solder a 4 pin female headers as shown in the picture.

3. Solder a screw terminals for battery connection.

Step 7: Mount the Charging Board :

Stick a small piece of double sided tap on the back side of the charging module and then paste it on the perforated board as shown in the picture.During mounting care should be taken to align the board in such a way that the soldering holes will match with the perforated board holes.

Adding terminal for Solar Panel

Solder a screw terminal just near the micro USB port of the charging board.

You can solder this terminal in the earlier step also.

Step 8: Wiring Diagram

First I cut small pieces of different colors wires and strip out the insulation at the both ends.

Then I solder the wires according to the Schematic diagram as shown in the above picture.

Wemos -> BME 280

3.3 V - -> Vin

GND --> GND

D1 --> SCL

D2 --> SDA

TP4056 Connection

Solar Panel terminal -> + and - near the micro USB port

Battery Terminal -> B+ and B-

5V and GND of Wemos -> Out+ and Out-

Note :In the beginning , I forgot to solder the diode.Later I solder it near to the Solar panel terminal and connect it as per the wiring diagram.I have used a 1N4007 diode but I will recommend to use a low voltage drop schottky diode.

Step 9: Designing the Enclosure

This was the most time consuming step for me.I have spent around 4 hours to design the enclosure. I used Autodesk Fusion 360 to design it. The enclosure have two parts : Main Body and Front Cover

The main body is basically designed to fit all the components. It can accommodate the following components

1. 50x70mm circuit board

2. AA battery holder

3. 85.5 x 58.5 x 3 mm Solar Panel

4. 3dBi external antenna

Download the .stl files from Thingiverse

Step 10: 3D Printing

After completion of design, it is time to 3D print the enclosure.In Fusion 360 you can click on make and slice the model by using a slicer software.I have used cura to slice the model.

I used an Anet A8 3D printer and 1.75 mm green PLA to print out all the body parts. It took me about 11 hours to print the main body and around 4 hours to print the front cover.

I will highly recommend to use another printer for you that is Creality CR - 10. Now a mini version of the CR-10 is also available.The Creality printers are one of my favorite 3D Printer.

As I am new to 3D designing, my design was not optimistic.But I am sure, this enclosure can made by using lesser material ( less print time ). I will try to improve the design later.

My settings are:

Print Speed : 40 mm/s

Layer Height : 0.2

Fill Density : 15%

Extruder Temperature : 195 degC

Bed Temp : 55 degCr

Step 11: Installing the Solar Panel and Battery

Solder a 22 AWG red wire to the positive terminal and black wire to the negative terminal of the Solar panel.

Insert the two wires in to the holes in the roof of the main enclosure body.

Use super glue to fix the Solar Panel and press it some time for proper bonding.

Seal the holes from the inside by using hot glue.

Then insert the battery holder in to the slot at the bottom of the enclosure.

Step 12: Installing the Antenna

Unscrew the nuts and washers in the SMA connector.

Insert the SMA connector in to the holes provided in the enclosure.See the image above.

Then tighten the nut along with the washers.

Now install the antenna by properly aligning with the SMA connector.

Step 13: Installing the Circuit Board

Mount the standoffs at 4 corners of the circuit board.

Apply super glue at the 4 slots in the enclosure. Refer the above picture.

Then align the standoff with the 4 slots and place it.leave some to dry it out.

Step 14: Close the Front Cover

After printing the front cover, it may be not perfectly fit to the main enclosure body.If it is the case, just sand it at the sides by using a sand paper.

Slide the front cover in to the slots in the main body.

To secure it, use duct tape at the bottom.

Step 15: Programming

To use Wemos D1 with the Arduino library, you'll have to use the Arduino IDE with ESP8266 board support. If you haven't already done that yet, you can easily install ESP8266 Board support to your Arduino IDE by following this tutorial by Sparkfun.

Following settings are preferable :

PU Frequency:
80MHz 160MHz

Flash Size: 4M (3M SPIFFS) – 3M File system size 4M (1M SPIFFS) – 1M File system size

Upload Speed: 921600 bps

Arduino Code for Blynk App :

Sleep Mode :

The ESP8266 is a pretty power hungry device. If you want your project to run off a battery for more than a few hours, you have two options:

1. Get a huge battery

2.Cleverly put the Thing to sleep.

The best choice is the second option.Before using the deepsleep feature, Wemos D0 pin must be connected to the Reset pin.

Credit : This was suggested by one of the Instructables user " tim Rowledge ".

More Power Saving Option :

The Wemos D1 Mini has a small LED that lights when the board is powered.It consume lot of power.So just pull that LED off the board with a pair of pliers. It will drastically drop the sleep current down .

Now the device can run for long time with a single Li Ion battery.

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space<br>#include < ESP8266WiFi.h>
#include  <BlynkSimpleEsp8266.h ></p><p>
#include "Seeed_BME280.h"
#include < Wire.h>
BME280 bme280;
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "3df5f636c7dc464a457a32e382c4796xx";// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "SSID";
char pass[] = "PASS WORD";
void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
  Serial.begin(9600);
  if(!bme280.init()){
  Serial.println("Device error!");
  }
}

void loop()
{
  Blynk.run();
  
  //get and print temperatures
  float temp = bme280.getTemperature();
  Serial.print("Temp: ");
  Serial.print(temp);
  Serial.println("C");//The unit for  Celsius because original arduino don't support speical symbols
  Blynk.virtualWrite(0, temp); // virtual pin 0
  Blynk.virtualWrite(4, temp); // virtual pin 4
  //get and print atmospheric pressure data
  float pressure = bme280.getPressure(); // pressure in Pa
  float p = pressure/100.0 ; // pressure in hPa
  Serial.print("Pressure: ");
  Serial.print(p);
  Serial.println("hPa");
  Blynk.virtualWrite(1, p); // virtual pin 1
  //get and print altitude data
  float altitude = bme280.calcAltitude(pressure);
  Serial.print("Altitude: ");
  Serial.print(altitude);
  Serial.println("m");
  Blynk.virtualWrite(2, altitude); // virtual pin 2  //get and print humidity data
  float humidity = bme280.getHumidity();
  Serial.print("Humidity: ");
  Serial.print(humidity);
  Serial.println("%");
  Blynk.virtualWrite(3, humidity); // virtual pin 3
  ESP.deepSleep(5 * 60 * 1000000); // deepSleep time is defined in microseconds.
}

Step 16: Install Blynk App and Library

Blynk is an app that allows full control over Arduino, Rasberry, Intel Edision and many more hardware.It is compatible for both Android and IPhone.Right now the Blynk app is available with free of cost.

You can download the app from the following link

1. For Android

2. For Iphone

After downloading the app, installed it on your smartphone.

Then you have to import the library on to your Arduino IDE.

Download the Library

When you run the app for the first time, you need to sign in – so enter an email address and password. Click the “+” at the top-right of the display to create a new project.Then name it.

Select the target hardware " ESP8266 "Then click “E-mail” to send that auth token to yourself – you will need it in the code

Step 17: Make the Dash Board

The Dashboard is consists of different widgets.To add widgets follow the steps below :

Click “Create” to enter the main Dashboard screen.

Next, press “+” again to get the “Widget Box”

Then drag 4 Gauges.

Click on the graphs,it will pop up a settings menu as shown above.

You have to change the name "Temperature",Select the Virtual Pin V1, then change the range from 0 -50.Similarly do for other parameters.

Finally drag a graph and repeat the same procedure as in gauge settings.The final dashboard picture is shown in the above picture.

You can change the color also by clicking the circle icon on the right side of the Name.

Step 18: Uploading Sensor Data to ThingSpeak

First create an account on ThingSpeak.

Then create a new Channel on your ThingSpeak account.
Find How to Create a New Channel

Fill Field 1 as Temperature ,Field 2 as Humidity and Field 3 as pressure.

In your ThingSpeak account select “Channel” and then “My Channel”.

Click on your channel name.

Click on “API Keys” tab and copy the “Write API Key”

Open the Solar_Weather_Station_ThingSpeak code .Then write your SSID and Password.

Replace the “WRITE API ”with the copied “Write API Key”.

Required Library : BME280

Credit : This code is not written by me .I got it from the link given in a YouTube video by plukas.

Step 19: Final Test

Place the device on sunlight, the red led on TP 4056 charger module will lit up.

1. Blynk App Monitoring:

Open the blynk project.If everything is Ok,you will notice the gauge will live and the graph stat to plot the temperature data.

2. ThingSpeak Monitoring :

First open your Thingspeak Chanel.

Then go to “Private View” tab or “Public View” tab to see the Data Charts.

Thanks for reading my Instructable.

If you like my project, don't forget to share it.

Comments

author
EdithAndLucas (author)2017-05-28

What a very nice and well done tutorial, thank you very much sir!

I'd like to ask something: when using a TP4056 with a 3.7V battery cell, how is it possible to deliver 5V the Wemos board?
Isn't a DC-DC step-up converter necessary?

Thank you for sharing your thoughts!

author
deba168 (author)EdithAndLucas2017-05-30

No there is no need of a boost converter as ESP8266 working voltage is 3.3V

author
EdithAndLucas (author)deba1682017-05-30

Thanks for your prompt answer. Does that mean we can provide 3.3V directly to the 5V IN of the Wemos or we have to use another pin?

author

As I understand it, the WeMos board has a low dropout regulator (RT9013) in series with the 5V input. The regulator has a 250 mv dropout. As long as the 5V input pin is above 3.55 V, the board, including the ESP8266, will get 3.3V. If the 5V pin goes below 3.55V, the specs of the RT9013 are a bit obscure, but I think its output voltage probably tracks the input voltage with a 250 mv offset.

The TP4056 charger board, assuming it has the battery protection
function as recommended by deba168, delivers the current through a pair
of MOSFETs which are in series and have Rds ON of about 36 milli Ohms,
so the series pair has a resistance of 72 milli Ohms, When the WiFi is
transmitting, the current draw may be up to 170 ma so the voltage drop
across the MOSFETs will be about 12 milli volts so long as the over
charge or over discharge circuits are not activated.

SO:

When the sun is shining the TP4056 controls the battery voltage to be no more than 4.2V, and the ESP8266 gets its proper 3.3V.

When the sun is not shining, the battery voltage drops progressively from 3.7 V (fully charged). When it is above 3.562V (that is, 3.55 + 12 mV) the ESP8266 gets 3.3V. Once it falls below 3.562 V, the ESP8266 will get less than 3.3V. It should definitely work down to 3.0 V (battery voltage of 3.262 on my assumptions above) and possibly down to 2.5V (battery voltage of 2.762) based on some testing reported in one of the many blogs on this subject.

The DW01 overdischarge protection cuts in at a battery voltage of 2.4 volts, which is almost certainly below the point where the ESP8266 stops working.

If you look at my other comment on the sizing of the solar panel, you will see that the liklihood of the battery ever getting even half way discharged is very low. So the low-end performance is probably of no great concern anyway.

I hope this helps.

author
duelago (author)farmerkeith2017-09-11

I have some problems. My setup with a Wemos D1 mini (not pro) works fine if I give it power via the USB-port. However, I get a rapid blinking blue led on the Wemos when I try to power it via the 5V pad and a fully charged 18560 3.7v battery. I get the same result with the 3v3 connector.

Any advice. Do I need a voltage regulator?

author
farmerkeith (author)duelago2017-09-11

Do you have a multimeter so you can measure the voltage at various places?

If so I suggest the following test sequencee:

a) run the WeMos from the USB connector and measure the voltage at 5V and 3.3V pins (relative to GND of course). At the 5V pin you will probably get 4.7V or something close, and at the 3.3V pin you can expect to get exactly 3.3V.

b) Measure the voltage at the battery terminals when it is disconnected. Expect about 4V.

c) Connect the battery to the 5V pin of the Wemos (with USB unplugged) and measure the 2 WeMos voltages again. The 5V pin should be over 3.7V, the 3.3V should be 3.3V or a bit lower if the battery voltage is below 3.56 V.

d) you can connect the battery directly to the 3.3V pin but there are some risks of device failure if the battery voltage is higher than 3.6V, which is the maximum value given in the data sheet.

This link, https://forum.makehackvoid.com/t/esp8266-operatin... talks about going up to 4.7V. My guess is that up to 4.2V is probably fairly safe.

Again you should measure the battery voltage when it is connected to the 3.3V pin.

These tests will tell you if there is a problem with the battery, or not.

Good luck! Keith

author
duelago (author)farmerkeith2017-09-11

Thanks for the quick and good reply. I did a test and changed to a different battery. It works for now! I will dig out the multimeter from the closet and do some measurements to figure out why the original battery fails. It worked for maybe 15 minutes yesterday.

author
farmerkeith (author)duelago2017-09-11

Multimeter is probably the most important test tool, vital for many projects.

I am glad you found the essential problem, anyway.

When you de-closet your multimeter, I suggest you attach it to the battery (you may need some clips or at least some way of connecting it without having to hold the leads in your hands) and watch the battery voltage, to see if it declines over a period of time - a few minutes, or a few hours.

Have fun.

Keith

author
deba168 (author)farmerkeith2017-05-31

Thank you Keith for the detail explanation.

I hope it will be helpful for all.

author
do4bmw made it! (author)2017-09-02

first of all .. Nice Project ! i love it but i have a question

Any ideas how i get the numbers a bit shorter ?

like Temp only two digits after the point

humidity without a number behind the point, same for altitude and pressure ?!

20170902_202727000_iOS.png
author
farmerkeith (author)do4bmw2017-09-02

I assume you are using Blynk. If you use a Labelled Value widget for each display, you can control the display format in the "label" field. For example if you write "Temp./pin.##/C" it will display with 2 digits after the decimal point. If you need more text than you can get in the default size widget, you can increase its size by touching the widget in edit mode for a few seconds, which then allows you to move it around and increase the size.

author
do4bmw made it! (author)farmerkeith2017-09-02

hy, these are my current settings

Temp./pin0/C

if i use Temp./pin.00/C it writes me the full text into it :-/

20170903_060721000_iOS.png
author
farmerkeith (author)do4bmw2017-09-03

I had a look at using LCD. My earlier response was about Labelled Value. LCD is slightly different (but not much).

The instructions for Labelled Value say to use /pin.##/ which does what I understand you want.

The instructions for LCD in Simple mode are the same, but are actualy wrong. The correct format string is /pin0.##/ to get 2 decimal places on the first value. I have not tried it, but I think you need /pin1.##/ for 2 decimal places on the second value.

By the way if you want the "degrees" symbol (a tiny circle near the top of the line) it is in the second page of special characters, accessed with the button labelled "=\<" just above the "ABC" button.

author
do4bmw (author)farmerkeith2017-09-03

many thanks ... this works now ...

/pin0.##/

author
GeorgeS128 made it! (author)2017-07-03

Very good
project. Many thanks for the idea.

Finally we
made it (me and my son). We also monitor
the battery voltage. In order to save battery I used different “deep sleep”
time - above 3 Volts, 1 minute and below 3 Volts, 5 minutes.

Regarding
the battery, I bought a type 18650 battery and case. In order to place the case
inside I had to cut it case in the middle and put it inside in two parts. It
fits exactly.

The two-color case is because has finished the red material at the wrong
time. Later I will paint it all white.

Weather 2.jpgWeather 3.jpgWeather 4.pngWeather 5.pngWeather 1.jpg
author
do4bmw (author)GeorgeS1282017-09-02

can you provide some infos about the batteriy voltage monitor ?

author
ZaNgAbY (author)GeorgeS1282017-08-12

Hi,

Could you please give more details on how you implemented the monitor of the battery voltage?

author
donc146 (author)GeorgeS1282017-08-11

How do you monitor the bat voltage?

author
farmerkeith (author)GeorgeS1282017-08-05

Can you please provide details of how you monitor the battery voltage?

Thank you.

author
patipon.ae2 (author)GeorgeS1282017-08-05
I need the code
author
farmerkeith (author)patipon.ae22017-08-05

The software for Blynk is at the end of step 15 and for ThingSpeak is at the end of step 18.

author
TobozoTagada (author)GeorgeS1282017-08-01

Great project ! I had a lot of fun building it.

I'm planning to add a light sensor, and also measure battery voltage.

What would be the best approach to this ? Measuring the battery while it's being charged returns me a lower voltage (about 10-20 millivolts difference between day and night) so I guess there are some factors.

voltmeter.jpg
author
deba168 (author)GeorgeS1282017-07-03

Excellent work dear.I am really happy to see your build pictures.

And thank you for adding the battery voltage monitoring feature in it.I hope it will be helpful for all.

I like the dual color 3D printed case though :)

author
edortaprz (author)2017-08-20

It´s great! Congratulations.

One quesion, is possible to attach both codes into one, in order to have both data services available?

Thanks.

author
wube (author)2017-06-30

Can you tell me how this weather station behave when outside temperature is below zero Celsius?

author
farmerkeith (author)wube2017-08-12

Last night my version experienced about -7 Celsius with no apparent problems.

author
deba168 (author)farmerkeith2017-08-12

Thank you Keith for confirming it.

author
deba168 (author)wube2017-07-03

I am sorry.I can't say about this.

author
Needlerp (author)2017-08-03

I love your project and would like to expand on it, adding in a few sensors: rain, wind speed, wind direction, UV, battery voltage. However I'm a total novice when it comes to electronics and am hoping the community can help. I've attached my draft layout, and would really welcome any feedback on what I've got wrong!! Specific questions are as follows:

1. The rain sensor and wind speed will be interrupts based on reed switches. Is it Ok to connect the reed switch directly between GND and a digital pin, or do I need resistors in there somewhere?

2. I've multiplexed the Analog pin to read the wind direction potentiometer, UV sensor and battery monitor. Again, am I resistors missing here?

3. I've proposed a PNP transistor controlled via D2 to turn on/off the voltage monitor, with a 1k resistor - do I need it and if so is 1k sufficient?

4. I've put a momentary switch between D5 and GND which will be used to boot the D1 Mini into WIFI AP config mode to set SSID, add WeatherUnderground API etc.

As you can see from the questions, I know that I don't know much about the resistors, but I'm sure that there are other basic errors that I don't know about!

Thanks in advance for your support.

Weather Station Project.fzzWeather Station Project_bb.jpg
author
farmerkeith (author)Needlerp2017-08-05

Its quite ambitious. I suggest you go one step at a time.

Re your questions:

1. no resistors needed, provided you activate the pull-up resistors built in to the ESP8266 (rain on D8 and Wind speed on D7)

2. I think you need to study your multiplexer for the analog voltage input more carefully. Its a bit hard to understand from the picture you provided, but I think you intend to use D2 (for Vcc), D6 (for wind direction) and D7 (for UV level). D6 and D7 will be set Low when not measuring and High when measuring. D2 (for Vcc) will be the reverse, that is Low when measuring and High when not measuring. The emitter of the PNP transistor is connected to Vcc, the base goes to D2 via a 1K resistor, and the collector goes to A0 via a diode.

You need to provide a resistive voltage divider for these measurements, because the analog input can only measure between 0 and 1 Volt. The divider could be (say) 23K and 10K so that 3.3V at the junction of the 3 diodes will translate to 1.0V at pin A0. The values you should use depend on the resistance of your UV sensor, and the pot you are using for wind direction. There are good articles on resistive voltage dividers on the internet.

Also depending on the diodes you use, the voltage drop in the diodes will affect the values you get, which will need to be compensated if you want accurate results.

3. The size of the resistor from D2 to the base of the PNP transistor should be less than the resistance of the above voltage divider, and the minimum current gain of the PNP transistor you are using.

4. No resistor needed as long as you set the internal pull-up. I don;t understand how you will use this input, so I can't comment on the function you intend.

Other comments:

I see your picture has the battery charge controller without undervoltage cut-off.. I think the undervoltage cut-off is a very desirable function to get, to protect your battery from over dischage, which can ruin it.

Good luck and enjoy the journey.

author
spypen2 (author)2017-07-27

I have made the circuit and copied your code, changing the auth. code and wifi ssid and password. While uploading the code, I received the error code "

#include Seeed_BME280.h is missing." Any suggestions how to fix this problem?

author
farmerkeith (author)spypen22017-07-31

You can download this library from GitHub. Then follow the usual process to install a library in the Arduino IDE.

author
ГеннадийБ2 made it! (author)2017-07-05

Very good project! I do not have a 3 d printer, so I made it from improvised tools. Added the ability to monitor the supply voltage! I also want to add the possibility of uploading data to the Russian site "People's Monitoring" (narodmon.ru) Thanks for the idea !!!

IMG_20170704_145428.jpgIMG_20170704_145443.jpgIMG_20170704_145459.jpgIMG_20170704_145506.jpgIMG_20170704_145514.jpgIMG_20170704_151102.jpgIMG_20170704_151115.jpgIMG_20170704_151122.jpgIMG_20170704_151137.jpgIMG_20170704_151143.jpgIMG_20170704_151148.jpgIMG_20170704_151156.jpgIMG_20170704_175509.jpgIMG_20170705_080413.jpg
author

Congratulations !!!

Thank you for sharing the pictures.

author
RAJB43 (author)2017-06-28

can I use this lipo battery

https://www.aliexpress.com/item/3-7V-4000mAh-Lithium-Polymer-LiPo-Rechargeable-Battery-cells-For-Mp3-Power-bank-PSP-mobile-phone/32736666760.html?spm=2114.40010208.4.13.z23WAC

author
deba168 (author)RAJB432017-07-03

You can use Lipo Battery. But the 3d printed case will not support it

author
JonathanM257 (author)2017-06-22

My station is working perfectly ! Thanks for your help and your great work ;)

author
deba168 (author)JonathanM2572017-07-03

Glad my project is helpful for you.

author
Rehmma (author)2017-06-23

verry cool project - super tutorial -many thanks

author
deba168 (author)Rehmma2017-07-03

Thank You dear.

author
ГеннадийБ2 (author)2017-06-15

Cool project! Collected same! I used two solar panels, from one I can not charge! Be sure to put the sleep mode, otherwise it consumes the battery for 3-4 hours! I'm worth 1600ma 14500 LI. Test measurements can be found here: thingspeak.com/channels/285318 I'm really looking forward to the ability to monitor the voltage in the battery. Thanks for the idea, very cool!

author
leonline (author)2017-06-08

Excelente projeto. Saudações do Brasil.

Excellent project. Greetings from Brazil

author
deba168 (author)leonline2017-06-13

Thank You.

author
JonathanM257 (author)2017-05-29

Hi, nearly working ! Waiting for the batterie but I'm testing without it before.

Everything is working except a lot of disconnection. The device is disconecting regularly between measurement. Do you have this issue?

author
deba168 (author)JonathanM2572017-05-30

Congratulations!

Yeah I am also facing the same issue for Blynk App but thingspeak upload is working perfectly.

author
JonathanM257 (author)deba1682017-06-02

OK ! THX :) Just receive the battery that I order in the link but they are bigger than yours :p Can't make them fit into the 1xAA holder :s

author
farmerkeith (author)JonathanM2572017-06-07

Hi JonathanM257, I guess you ordered a battery type 18650 which means it is 18 mm in diameter and 65 mm long. The AA battery size is 14500 (14 mm diameter and 50 mm long). You can buy holders for a 18650 battery, they are on Ebay and other places too.

author
farmerkeith (author)deba1682017-05-30

Maybe I have misunderstood, but don't you expect the WeMos to be disconnected all the time, except for a few seconds every 5 minutes when it is reporting data?

author
deba168 (author)farmerkeith2017-05-31

Hi keith,

May be that was the reason, I have not looked in to it.

author
farmerkeith (author)2017-06-01

Hi. I am gradually getting to understand the internet connections.

My current understanding is that this WeMos WiFi weather station can be talking to EITHER Blynk (which you monitor with the Blynk app on a mobile phone) OR to ThingSpeak (which you monitor on a computer with a web browser). It does not do both of these at the same time, because you have different software. One software sketch works with Blynk. The other software sketch works with ThingSpeak. Please confirm this is correct.

The Blynk software includes the ESP.deepSleep command which conserves power, but results in intermittent connection.

The ThingSpeak software uses a delay() function which does not conserve power, and gives you a continuous connection (although you probably can't do anything with it because the processor is in a busy loop) for 5 minutes).

I think there may be a problem with the power consumption exceeding what the solar panel can provide. In tnterpret the ESP8266 datasheet as saying it will use 56 mA when receiving but not transmitting, which I think corresponds to the delay() loop. 56 mA for 24 hours is 1344 mAH. To get this from a 120 mA solar panel requires 11.2 hours of full sun per day, which is essentially impossible. So for the ThingSpeak software, you either need to change the delay() into a ESP.deepSleep function, or use a bigger solar panel.

I think the ESP.deepSleep is the better option. I can't try it out myself at the moment because I am still waiting for parts to come in the mail.

About This Instructable

65,325views

876favorites

License:

Bio: I am an Electrical Engineer.I love to harvest Solar Energy and make things by recycling old stuffs. I believe &quot;&quot;IF YOU TRY YOU MIGHT ... More »
More by deba168:DIY Acrylic RGB LED SignHow to Make a Bench Power SupplySolar Powered WiFi Weather Station
Add instructable to: