Skip to content

ESP8266 NodeMCU Based Solar Powered WiFi Weather Station - Record Temperature (x2), Humidity, Pressure, Rain, and Voltage


Notifications You must be signed in to change notification settings


Folders and files

Last commit message
Last commit date

Latest commit



15 Commits

Repository files navigation


ESP8266 NodeMCU Based Solar Powered WiFi Weather Station


This project builds a solar powered Weather Station to return wather data via WiFi. The project uses:

  • ESP8266 NodeMCU - Arduino controller with WiFi
  • BME280 module to measure Temperature, Humidity, and Pressure
  • (optional) DS18B20 One-Wire bus temperature sensor for secondary measurement.
  • 2N2222 NPN transitor powered water detector circuit to detect Rain.
  • 5V Solar cell, 3.7V lithium ion battery and a TP4056 constant-current/constant-voltage linear charger to charge the battery during the day.


Note: Currently the circuit prototype is being tested.


Circuit Board

List of Materials


  • 1 x ESP8266 NodeMCU - Amazon


  • 1 x BME280 module - Amazon
  • 1 x DS18B20 (optional) - Amazon
  • 1 x 2N2222 NPN (rain detector) - Amazon
  • 1 x KY-003 / A3144E Hall Sensor - Amazon

Solar Power Supply

  • 1 x 2.5W 5V/500mAh Solar Cell - Amazon
  • 1 x 5V Micro USB 1A TP4056 Lithium Battery Charging Board with Protection Charger Module Amazon
  • 1 x 3.7V 3000mAh 755068 Battery Rechargeable Lithium Polymer ion Battery Pack - Amazon
  • 1 x 3.3V Linear Regulator 250MA MCP1700-3302E/TO - DigiKey


  • 1 x GK1007 Solder-able Breadboard Amazon
  • 1 x 440 Ohm Resistor
  • 1 x 1k Ohm Resistor
  • 1 x 5.1k Ohm Resistor (Optional for DS18B20)
  • 1 x 51k Ohm Resistor
  • 1 x 100k Ohm Resistor
  • 1 x Red LED
  • 1 x 100uF Electrolytic Capacitor DigiKey
  • 1 x 220uF Electrolytic Capacitor
  • 1 x 0.1uF Ceramic Capactior - Amazon


I tested the prototpye for over a week. The solar cell is able to charge the battery sufficiently to last through the night with very little drop in voltage. The following demonstrates the voltage plotted over several days. This data came directly from the ESP8266 as polled on the analog (A0) input every 5 minutes.

Voltage over Time

3D Printed Parts

ANEMOMETER: An anemometer to detect wind speed can be 3D printed from here. I inserted a small 5x1mm cylinder magnet in the cover and added a KY-003 module (a tiny circut board with an A3144E Hall Sensor) in the post to measure the rotation. I removed the built-in LED by cutting the circuit trace from the LED to the signal line in order to save power (and keep the anemometer from flashing all night).

BOX: To house the ESP8266 circuit board, battery and sensors, I create a project box with vents (for the sensor). It can be downloaded here.

SOLAR CELL HOLDER: A designed a simple solar panel bracket with TinkerCad and it can be downloaded here.



ESP8266 NodeMCU Based Solar Powered WiFi Weather Station - Record Temperature (x2), Humidity, Pressure, Rain, and Voltage








No releases published