By: +David Herron; Date: May 27, 2018
Why spend a zillion dollars on a commercial weather station that doesn't do what you want? With some time and ingenuity you can design and build your own weather station.
The design here uses an ESP8266 microcontroller to run Arduino code. There are sensors for light level, humidity, and air pressure. There are no sensors for wind speed however.
Measuring light level is simple - use a photoresistor to make a resistor bridge and read the voltage using an analog input.
Measuring humidity and air pressure is simple - get special purpose boards for that purpose.
The system is installed outdoors in a case made of PVC tubing. Since it is outdoors, you cannot simply plug it into a power outlet. Therefore the design uses some solar panels to keep an Lithium-Iron-Phosphate 18650 cell charged. Instead of an official charge controller, the design uses a simple voltage regulator chip to limit the voltage going to the 18650.
When charging lithium cells, you must not over charge the cells. Hence, the voltage regulator chip is configured to keep the charging voltage within the safe range.
Also because it is outdoors, the system cannot have a wired connection to a local ethernet. Instead, it uses the built-in WiFi capability of the ESP8266 to connect to an MQTT broker on the local network. That MQTT broker routes data from the microcontroller over to a NODE-RED instance which handles displaying pretty graphs.