Personalized Professional Weather Station DIY, LineaMeteoStazione V2.0! Using EZSBC Boards ESP32, ESP8266, Attiny85

LineaMeteoStazione,

in the improved version, is a complete weather station solar powered which can be interfaced with professional sensors from Sensirion as well as some Davis Instrument component (Rain Gauge, Anemometer)

It also can be interfaced with a less expensive set of anemometer and rain gauge from Misol. It also adds the feature of having a solar radiation measurement and a real UV sensor as well as a very accurate monitoring of the SOC of the battery provided by the EZSBC board ESP32 Battery Pro with also very low sleep current of just 12uA, email notifications and alert and other services.

The project is aimed as DIY weather station with customized choose of sensors and solar shields and just requiring the assembly part. Compared to other weather station in the market where most of the time they sell a complete product which actually doesn’t test the real accuracy of the weather station shield and sensors, this weather station allow you to choose between different professional sensor and different types and also different solar shields, rain gauge and anemometer. So, the goal is to make a weather station that is up to you how much you want to make it accurate! Based on experience and meteorological passion you can source material and use one of the top sensors on the market, SHT35. The boards will already be given programmed by me as well as the complete PCB. The code will be shared Opensource for the people who wants to try to do it from the beginning or modify it! See GitHub Link for prices and configurations also.

Features

· Can be interfaced with Sensirion SHT30/31/35 as a probe or as breakout board with RJ12 cable board adapter included in the kit.

· Can be interfaced with an extra sensor Sensirion SHT20/21/25 as a probe or as breakout board with RJ12 cable board.

· Can be interfaced with every rain gauge tipping bucket and it is possible to calibrate and set the resolution of the rain gauge in the settings in the database.

· Can be interfaced with 2 different type of anemometer, one is an entry level from Misol brand and the other is a Davis Anemometer. The anemometer can be calibrated for accurate Wind direction with the Offset setting.

· It has an UV REAL index measurement and also a separate Solar Radiation measurement calculated with a very wide Lux range sensor.

· It has on board an accurate State of Charge of the battery provided by the EZSBC prototype board ESP32, to track in accurate way if the battery need replacement or if it is too low voltage.

· It has EMAIL ALERTS (Italian or English) as battery alerts and hour or daily report of the weather condition.

· It has Max and Min Temperature and Humidity alert of the main Temperature and Humidity sensor and alert of UV index, as well as Alert of the second sensor Max and Min Temperature and Humidity and Rain and Rain Intensity Alert and Gust alert.

· 3 seconds time sampling of Wind Speed and Gust and real time Rain intensity and Rain sampling.

· Sample time or upload time of all the sensors can be modified! Choose between 45 seconds to hours. Usually should not be as frequent as 1 minute to improve battery life and to avoid sampling error of the temperature sensor caused by adjustment of the sensor to the new temperature of the air.

· Can send data to Wunderground, Weathercloud, Blynk, ThingSpeak and LineaMeteo weather network! The frequency of sending data is also selectable in the menu config for all services in the database.

· In the Display you can select languages between Italian and English and between metric and imperial unit of measurement of data.

Step 1: List of Components

I used the EZSBC board ESP32 Battery pro with Gas Gauge for monitoring the battery level. It has a real deep sleep current of just 12uA, I definitely recommend all boards from EZSBC!

EZSBC ESP32 BAT PRO LINK

EZSBC SHOP

It works with a combination of ESP8266 and ESP32 development boards and is composed mainly of 4 devices:

1. DEVICE 1 (OUTSIDE UNIT): EZSBC battery Pro ESP32 board + designed PCB + Attiny85 + Solar Charger Board and SOLAR PANEL (Solar Panel and Battery not included)

This is the part which will be outside and it consist in one development board and the PCB.

It is used to collect the weather data which will be sent to the Firebase of Google.

The DEVICE 1 need to be installed with a protection
provided underneath to avoid damage of the PCB as well as the solar charger board. LIGHT SENSOR MUST BE CONNECTED WHEN OPERATING, OTHERWISE IT WON’T WORK. Please install the board in a weather proof box with IP65 standard minimum.

2. DEVICE 2: WEMOS D1 MINI PRO + BMP180 Pressure

This is the part that handle all the network communications and it also collect the data from the Firebase of Google.

The duties of the board consist in:

· Collecting the data

· Sharing some data to an IP Address in a format ready to be used to communicate with LineaMeteo weather network.

· Send Data to Weathercloud

· Send Data to Wunderground

· Send Data to Thingspeak

· Send Data to Blynk

· Pressure Sensor

· Email Notifications

The case is 3D printed from https://www.thingiverse.com/thing:4081064


3. DEVICE 3: EZSBC BAT PRO ESP32 + PCB designed + INK Display + BME680

This is the part that just handle the visualization of the data on the display and it has also a sensor that monitor the air quality, temperature and humidity.

The display used is a 4.2 Inch ink display, can be used a WaweShare or GoodDisplay brands.

The case
is inspired by:

Box for ePaper + ESP32 Information Display by sidoh10 – Thingiverse

4. BOX FOR LIGHT AND UV SENSOR

This is the box that contains the MAX44009 and the VEML6075. The Light sensor has a diffuser dome and the UV sensor has a Teflon 0.4mm thick with an aperture window of 10mm. The sensor is separated from the window of almost 5mm in order to avoid the light reaching the corner of the sensor.

Step 2: SETUP WEATHER STATION STEP BY STEP FIREBASE

STEP 1: Getting Started with Firebase!

First of all we need to create a Firebase account. To do that you will need an account Google which you can create if you don’t already have one.

To setup the Firebase account you need to follow the following steps:

1. Go to FIREBASE and click on ‘Get Started’

2. Sign IN to your Google account

3. Click on ‘Add a project’ ‘Aggiungi progetto’

4. Give a name to your project! Click ‘Continue’ ‘Continua’. Follow the steps and Create the project. Use the default account for Firebase.

5. ‘Go on ‘project overview’ ‘Panoramica del progetto’ on top and select ‘project settings’ ‘Impostazioni progetto’

6. Click on ‘Service Account’ ‘Account di Servizio’ and ‘Create Service Account’ ‘Crea account di servizio’

7. Go back to ‘Project Overview’ and Create Realtime Database ‘Crea database’ and follow the steps and select the nearest location for the database.

8. ALL DONE! Now save your project link that you can find in the real time database and also the secret that you can find ‘Service Account’ ‘Account di servizio’ under ‘Database Secret’ ‘Segreti Database’

You will need just the one highlighted in the picture below and the database secret to program the weather station! To send you the board already programmed I will need those credentials.

Step 3: Setup DEVICE 1(Outside)

This is the installation which requires to secure the

weather station outside. A solar radiation shield Is required for the ambient temperature and humidity sensor. Is also required a weather proof box for the correct storage of the battery and PCB. DEVICE 1 is powered up by a single 18650 battery and the battery need to be installed otherwise the device won’t work properly if just powered up directly by USB.

OVERVIEW

Below the photo to describes the board:

1. Install the board in weather proof box and install the battery (BE CAREFUL + AND – AND BATTERY SHOULD BE ENOUGH CHARGED BEFORE FIRST START):

2. Connect all the available sensor on the board using the RJ12 connectors or the screw terminal, depending on the type of sensor used. (Refer to the list of ‘Compatible sensor and specification) (SENSORS ARE CONNECTED WITH AN ADAPTOR BOARD DESIGNED SPECIFICALLY FOR SOME I2C DEVICES AND THE SHT35 ON TINDIE ) Those board will be provided. SEE PHOTOS

3. Plug IN the battery connector provided from the SolarCharger Board into the EZSBC BAT PRO and setup the Wi-Fi connection as explained below. (Please, use just the cable provided or any crossover cable)

Step 4: SETUP WI-FI (PROCEDURES FOR ALL DEVICES)

If you can’t see one of the DEVICES in the WIFI

network, remember that you have just 5 minutes to setup the Wi-Fi connection for all DEVICES once is ON, otherwise it will need to be restarted to appear again.

To setup the Wi-Fi connection follow the following steps:

· Once either of DEVICES are ON you will find them in the Wi-Fi connections available on your smartphone or computer with the name of LineaMeteoStazioneS for DEVICE 1, LineaMeteoStazioneR for DEVICE 2 and LineaMeteoStazioneVisual for DEVICE 3.

· Try to connect and it will ask a password. PASSWORD: LaMeteo2005 (Same for all devices)

After that it will prompt you in a page as the following:

· Click on configure Wi-Fi and select your Wi-Fi network and enter your password and click Save. Now the DEVICE will try to connect and if fails you will be required to start again the procedures followed before.

· Once the DEVICE 1 is ready outside it is time to setup the DEVICE 2 with the same procedures. The last to setup will be the display DEVICE 3.

Step 5: Configure Weather Station Settings Using Firebase

ATTENTION: EVERY SETTINGS IS CASE SENSITIVE.

FOR SOME SETTINGS AS EMAIL ACCOUNT, API’S AND ID OF THE SERVICES THE DEVICE 2 NEED TO BE RESTARTED IN ORDER FOR THE SETTING TO EFFECTIVE. Remember to always use “” when adding data that contains words.

Once DEVICE 2 is ready, you should have a page like this in the Database.

The database is categorized as following:

·Battery

Here you can see the current level of the battery voltage, as well as the battery percentage. You can also set if you want the AutomaticBatteryManagement “ON” or “OFF”. The ABS simple adjust the consumption of DEVICE 1 depending on the Battery Voltage. Sample Time will change based on the condition of the battery. You can put this setting OFF if you want to manage the Sample Time on your own, but when the battery level is more than 4.1V or less than 3.45 the Sample Time will be adjusted automatically independently if is ON or OFF.

·Connection

Connection is used to know your current IP address of DEVICE 2 and to monitor the Wi-Fi signal strength of DEVICE 1. Try to keep DEVICE 1 with at least -75 or more of signal strength.

IPAddress can be used to port forwarding the IP in order to setup your devices in the LineaMeteo weather network. (PortForwarding can be done in the router, but every router is different, so you need to know yours. External port should be 4600 and internal port should be 80)

·Display

These are the Display Settings. Here you can set the language between “en” (English) or “it” (Italian) of the Display and the Unit, from “imperial” or “metric”. You can also set if you want a Fast or Slow refresh mode. If the Fast mode is used the display need to be connected to the USB power otherwise it will run out of battery in a day. In FastRefresh mode every settings made in the Display section requires to press the button on the Display for the settings to actually change. Select “YES” or “NO” to activate or deactivate the FastRefresh mode.

·Inside

Here is where is stored the data of the Indoor condition of Temperature, Humidity and AirQuality score.

·Light

Here is stored the Light Data, like Solar Radiation and UV index. You can also Calibrate the Solar Radiation Value using the Calibration line. The value in calibration is a multiplication value of the Solar Radiation, for example 2 will be double.

·Pressure

Here is stored the value of the Pressure and also is possible to Calibrate it based on sea level. Refer to some near weather station or look the current atmospheric pressure on the forecast. Every number added or subtracted on Calibration means +- 1Pa and the value of Pressure shown is in hPa.

·Rain

Here is stored the value of the rain in 24H and also other values related to the rain. You can use every tipping bucket rain gauge so this means that you will need to calibrate how much every tipping count for. Modify ‘mmGoccia’ to change the tipping count in mm. Default is 0.2mm. This option can be used also to calibrate the Rain Gauge.

·SHT2x

This contain the data of the Sensirion SHT20 and can also be set an Offset if some calibration is needed. Offset is in degree Celsius and can be set with every decimal place, for example even 0.01. When Offset is applied and different than 0, it will appear in database the Temperature Adjusted, otherwise it will be deleted automatically.

·SHT3x

This contain the data of the Sensirion SHT3x and can also be set an Offset if some calibration is needed. Offset is in degree Celsius and can be set with every decimal place, for example even 0.01. When Offset is applied and different than 0, it will appear in database the Temperature Adjusted, otherwise it will be deleted automatically.

·Services

This contain all the services available to use with this weather station and also the Email Alert settings.

BLYNK

Here you can set your Blynk details and also if you want that Blynk is ON or OFF, that will decide if the data is actually sent to Blynk or not. (FOR THIS SETTINGS DEVICE 2 NEED TO BE RESTARED)

Blynk values sent are:

· V0 = Main Temperature

· V1 = Main Humidity

· V2 = Pressure

· V3 = Uv Index

· V4 = Wind Speed

· V5 = Direction of The Wind

· V6 = Rain

· V7 = Battery Voltage

· V8 = Temperature Indoor

· V9 = Humidity Indoor

· V10 = Lux

· V11 = Solar Radiation

· V12 = Air Quality

· V13 = Temperature Second Sensor

· V14 = Humidity Second Sensor

EMAILALERT

If you want the Email Report just leave “ON” the EmailReport settings. If you want to turn ON or OFF all Email Alert notification based on some condition you can set “ON” or “OFF” on the EmailAlert settings. You can also set if you would like the notification individually with the “Enable” setting “ON” or “OFF”. EmailAlert must be “ON” if you want to set the notification individually:

You can set all the alert threshold value here for Rain, Rain Intensity, Temperature Max and Min for the SHT2x and SHT3x and also for their Humidity values Max and Min. You can also set alert for UV index, Gust and HeatIndex. It is also possible to set the language of the email between Italian and English.

LINEAMETEO

Here you can set some of your personal data for Linea Meteo weather network.

OPENWEATHER

You can setup your own account on OpenWeather for current condition weather description on DEVICE 3 Display (find My API Keys and copy in the API in Services, OpenWeather.)

Hemisphere type ‘north’ if you live in northern hemisphere or ‘south’ in southern hemisphere to display correct astronomy section on display.

Latitude and longitude to display correct weather condition description on DEVICE 3 Display.

THINGSPEAK

Create an account on ThingSpeak and find the WriteAPIkey and copy in myWriteAPIKey, to see the difference with graphics between the SHT2x and SHT3x series if both sensor are connected, or to just monitor the SHT2x. You will also see on ThingSpeak other values such as current Wind Speed, Gust and Solar Radiation. You can also select the Time Upload in seconds, but be mindful of the maximum amount of data that can be sent on ThingSpeak free version.

WeatherCloud

You can link the weather station to Weather Cloud network using this option. Go to Settings on your devices and select ‘Link’, it will give you the ID and Key that you can copy in the database. You can also set the Time Upload to WeatherCloud in seconds, but with the free version this is capped to a maximum of every 10 minutes.

WunderGround

You can link the weather station to WunderGround using this option.

Find the ID and Key on My Devices and copy it to the database.

You can also set the Time Upload of the data to WunderGround in seconds.

·Time

This option is used to set your TIMEZONE which will be your time (need to modified when day light saving apply) and to set the SampleTime in seconds. It is recommended to don’t upload the data faster than 45 seconds to save the battery life of DEVICE 1. Data is also read just every 45 seconds maximum from DEVICE 2 so it won’t make much difference to make it faster.

CurrentDay, PreviousDay and RESETDATA don’t need to be touched. To reset all data in database enter 0 in RESETDATA.

·Wind

This contain the values of the Wind, like degrees of the Wind Direction and also the Wind Speed and the Gust. In order for the DEVICE 1 to know which anemometer you’re using between the Misol and the Davis Anemometer you have to select the type of the Anemometer in Wind/Anemometer. Type 2 for Misol and 1 for Davis.

It is also possible to adjust the Offset here, in order to point the right direction of the Wind Direction of the Anemometer. 0 degrees or 360 degrees should point North. Or it is best to adjust the anemometer itself to point that direction. The WindDirection adjusted will appear if Offset is applied.

SEE MANUAL ON GITHUB FOR MORE PHOTOS AT THE BOTTOM OF THIS INSTRUCTABLES.

Source: Personalized Professional Weather Station DIY, LineaMeteoStazione V2.0! Using EZSBC Boards ESP32, ESP8266, Attiny85


About The Author

Muhammad Bilal

I am a highly skilled and motivated individual with a Master's degree in Computer Science. I have extensive experience in technical writing and a deep understanding of SEO practices.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top