Step 1: Building
I describe just main parts for esp weatherstation, more details on my previous instructable projects.
I use ESP8266 - 12 microcontroller, you can use ESP8266 - 7 with antenna. For working esp chip, you need 3.3 V step down module, which convert voltage from Lithium ion battery to 3.3 V. I use Lithium ion battery from old notebook battery pack.
For charging battery, I use solar cell, basically you need solar cell, which give maximum 7 V (depend on TP4056 charging module) and around 200 mA maximum current from solar cell. Maximum current depend on battery, it is rule C/10 but for lithium batteries, you can charge with 500 mA too (C is capacity of battery).
For measure I use 3 themometers DS18b20, which are based on one wire concept. Also I check universal adress of each individual themoter. Why 3 meters? Check in next slide.
Also ESP can measure with wifi antenna! I measure strength of SSID which I connect. Usually it is in dB units. Also my esp check number of wifi nets around my house. Sometimes are 2, sometimes are 3 or 4.
Step 2: Measuring
For measuring I use 3 themometers, one measure temperature inside box, where is esp and all hardware. Second themometer measure temperature of air outside. I just attach sensor behind the board on balcony. Third themometer I use for measuring temperature inside bottle. When is sunny, air inside bottle is pretty hot. So it is like solar radiation detector.
Also I measure battery voltage with analog digital convertor (ADC). ESP use ADC with maximum 1 V, so I must divide votlage from Lithium battery to less then 1 V.
Also ESP measure strength of my SSID and number of wifi nets, around my house.
Step 3: Testing
For testing I use Thingspeak channel (https://thingspeak.com/channels/297517?fref=gc). I create 8 graphs, outside temperature, ADC (values from ADC, which measure voltage of battery), Difference (Temperature outside - temperature in bottle), temperature in box, Strength of wifi, Number of "wifies", Temperature on Sun =in bottle.
My esp send data to thingspeak every 28 minutes (I set on 30 minutes, but internal clock oscillate with a little noise, but basically, time interval is around 28 minutes)
It works pretty good, but last week, I find, that once a day, one value missing. Time interval is longer then 28 minutes = 56 minutes. Maybe Thingspeak server is a little bit problematic.
Also you can create graph from these values and add this graph to another channel on Thingspeak(use tools MATLAB Analysis and MATLAB Visualization). I use it, but maybe it causes a little missing in my values. (Missing values happend also after I delete my new graphs and new channels)
Step 4: Graphs
It is nice to checking temperature outside and analyse temperature in my bottle, which is like greenhouse. Temperature can reach over 30 °C (86 F) when outside is around 15 °C (59 F). Also my outside temperature is not accurate, on forecast website of my region I check, that outside temperaure which I measure is still higher. Maybe I need better isolation.