ESP32 Weather Station Interface PCB Shield (Temperature, Humidity, Pressure, Date and Time)
Build a Weather Station Interface PCB shield for the ESP32 board. It features a BME280 sensor, a light dependent resistor, a pushbutton, an OLED display and RGB LEDs.
- Suitable forB.Tech/Diploma IoT/ESP32 students
- Build time1-2 weeks
- LevelBeginner
- Available atAjvika Labs, Kakinada
About this project
In this project, you’ll learn how to build a Weather Station Interface PCB Shield for the ESP32 development board. The PCB features a BME280 temperature, humidity and pressure sensor, a light dependent resistor, a pushbutton, an OLED display and multiple WS2812B addressable RGB LEDs. The OLED displays the sensor readings and the LEDs produce different lighting effects to what is shown in the OLED. It also displays date and time.
Resources
You can find all the resources needed to build this project in the links below (or you can visit the
GitHub project
page):
ESP32 Code (Arduino IDE)
Gerber files
EasyEDA project to edit the PCB
Click here to download all the files
Project Overview
Weather Station PCB Hardware Features
The shield is designed with some headers pins to stack the ESP32 board. For this reason, if you want to build and use our PCB, you need to get the same ESP32 development board. We’re using the
ESP32 DEVKIT DOIT V1
board (the model with
36 GPIOs
).
If you want to follow this project and you have a different ESP32 model, you can assemble the circuit on a breadboard or you can modify the PCB layout and wiring to match the pinout of your ESP32 board. Throughout this project, we provide all the necessary files, if you need to modify the PCB.
The shield consists of:
BME280 temperature, humidity and pressure sensor;
LDR (light dependent resistor – luminosity sensor);
0.96 inch I2C OLED Display;
Pushbutton;
12 WS2812B addressable RGB LEDs;
If you’re going to replicate this project on a breadboard, instead of individual WS2812B addressable RGB LEDs, you can use an
addressable RGB LED strip
or an addressable RGB LED ring with the same number of LEDs (12).
Weather Station PCB Pin Assignment
The following table shows the pin assignment for each component on the shield:
Component
ESP32 Pin Assignment
BME280
GPIO 21 (SDA), GPIO 22 (SCL)
OLED Display
GPIO 21 (SDA), GPIO 22 (SCL)
Light Dependent Resistor (LDR)
GPIO 33
Pushbutton
GPIO 18
Addressable RGB LEDs
GPIO 27
Weather Station PCB Software Features
There are endless ways to program the same circuit to get different outcomes with different functionalities and features. In this particular project we’ll program the PCB as follows:
The OLED displays five different screens:
Current date and time;
Temperature
Humidity
Pressure
Luminosity
Each screen is shown for 15 seconds before going to the next one.
Alternatively, you can press the pushbutton to change screens.
In each screen the WS2812B addressable RGB LEDs show a different pattern:
On the date and time screen, the RGB LEDs display a rainbow effect;
On the other screens, the RGB LEDs work like a gauge. For example, 100% humidity lights up all LEDs, 50% humidify lights up half of the number of LEDs.
The color of the LEDs is different for each screen: green for the temperature, blue for the humidity, purple for pressure and yellow for luminosity.
Testing the Circuit on a Breadboard
Before designing and building the PCB, it’s important to test the circuit on a breadboard. If you don’t want to make a PCB, you can still follow this project by assembling the circuit on a breadboard.
Parts Required
To assemble the circuit on a breadboard you need the following parts (the parts for the actual PCB are shown in a later section):
DOIT ESP32 DEVKIT V1 Board
– read
Best ESP32 Development Boards
BME280
(4 pins)
I2C OLED Display
(4 pins)
Light dependent resistor
Pushbutton
2x 10k Ohm resistor
Breadboard
Jumper wires
You can use the preceding links or go directly to
MakerAdvisor.com/tools
to find all the parts for your projects at the best price!
After gathering all the parts, assemble the circuit by following the next schematic diagram:
Designing the PCB
To design the circuit and PCB, we used
EasyEDA
which is a browser based software to design PCBs. If you want to customize your PCB, you just need to upload the following files:
EasyEDA project files to edit the PCB
Designing the circuit works like in any other circuit software tool, you place some components and you wire them together. Then, you assign each component to a footprint.
Having the parts assigned, place each component. When you’re happy with the layout, make all the connections and route your PCB.
Save your project and export the Gerber files.
Note:
you can grab the project files and edit them to customize the shield for your own needs.
Download Gerber .zip file
EasyEDA project to edit the PCB
Ordering the PCBs at PCBWay
This project is sponsored by PCBWay.
PCBWay
is a full feature Printed Circuit Board manufacturing service.
Turn your DIY breadboard circuits into
professional PCBs
– get 10 boards for approximately $5 + shipping (which will vary depending on your country).
Once you have your Gerber files, you can order the PCB. Follow the next steps.
1. Download the Gerber files –
click here to download the .zip file
2. Go to
PCBWay website
and open the PCB Instant Quote page.
3. PCBWay can grab all the PCB details and automatically fills them for you. Use the “Quick-order PCB (Autofill parameters)”.
4. Press the “+ Add Gerber file” button to upload the provided Gerber files.
And that’s it. You can also use the OnlineGerberViewer to check if your PCB is looking as it should.
If you aren’t in a hurry, you can use the China Post shipping method to lower your cost significantly. In our opinion, we think they overestimate the China Post shipping time.
You can increase your PCB order quantity and change the solder mask color. I’ve ordered the Blue color.
Once you’re ready, you can order the PCBs by clicking “Save to Cart” and complete your order.
Unboxing
After approximately one week using the DHL shipping method, I received the PCBs at my office.
As usual, everything comes well packed, and the PCBs are really high-quality. The letters on the silkscreen are really well-printed and easy to read. Additionally, the solder sticks easily to the pads.
We’re really satisfied with the PCBWay service. Here’s some other projects we’ve built using the PCBWay service:
ESP32-CAM with
ESP32 IoT Shield PCB with Dashboard for Outputs and Sensors
Soldering the Components
The next step is soldering the components to the PCB. I’ve used SMD LEDs, SMD resistors and SMD capacitors. These can be a bit difficult to solder, but the PCB looks much better.
If you’ve never soldered SMD before, we recommend watching a few videos to learn how it’s done. You can also get an SMD DIY soldering Kit to practice a bit.
Here’s a list of all the components needed to assemble the PCB:
DOIT ESP32 DEVKIT V1 Board
(
36 GPIOs
)
12x SMD WS2812B addressable RGB LEDs
2x 10k Ohm SMD resistor
(1206)
12x 10nF capacitors (0805)
Pushbutton (0.55 mm)
Female pin header socket
(2.54 mm)
BME280
(4 pins)
Light dependent resistor
I2C SSD1306 0.96inch OLED display
(4 pins)
Here’s the soldering tools I’ve used:
TS80 mini portable soldering iron
Solder 60/40 0.5mm diameter
Soldering mat
Read our review about the TS80 Soldering Iron:
TS80 Soldering Iron Review – Best Portable Soldering Iron
Start by soldering the SMD components. Then, solder the header pins. And finally, solder the other components or use header pins if you don’t want to connect the components permanently.
Here’s how the ESP32 Shield looks like after assembling all the parts.
The ESP32 board should stack perfectly on the header pins on the other side of the PCB.
Programming the Weather Station Interface PCB
The code for this project displays sensors readings on different screens on the OLED display as well as date and time. The addressable RGB LEDs show different colors and animations accordingly to what is displayed on the screen.
You can program th
Resources
You can find all the resources needed to build this project in the links below (or you can visit the
GitHub project
page):
ESP32 Code (Arduino IDE)
Gerber files
EasyEDA project to edit the PCB
Click here to download all the files
Project Overview
Weather Station PCB Hardware Features
The shield is designed with some headers pins to stack the ESP32 board. For this reason, if you want to build and use our PCB, you need to get the same ESP32 development board. We’re using the
ESP32 DEVKIT DOIT V1
board (the model with
36 GPIOs
).
If you want to follow this project and you have a different ESP32 model, you can assemble the circuit on a breadboard or you can modify the PCB layout and wiring to match the pinout of your ESP32 board. Throughout this project, we provide all the necessary files, if you need to modify the PCB.
The shield consists of:
BME280 temperature, humidity and pressure sensor;
LDR (light dependent resistor – luminosity sensor);
0.96 inch I2C OLED Display;
Pushbutton;
12 WS2812B addressable RGB LEDs;
If you’re going to replicate this project on a breadboard, instead of individual WS2812B addressable RGB LEDs, you can use an
addressable RGB LED strip
or an addressable RGB LED ring with the same number of LEDs (12).
Weather Station PCB Pin Assignment
The following table shows the pin assignment for each component on the shield:
Component
ESP32 Pin Assignment
BME280
GPIO 21 (SDA), GPIO 22 (SCL)
OLED Display
GPIO 21 (SDA), GPIO 22 (SCL)
Light Dependent Resistor (LDR)
GPIO 33
Pushbutton
GPIO 18
Addressable RGB LEDs
GPIO 27
Weather Station PCB Software Features
There are endless ways to program the same circuit to get different outcomes with different functionalities and features. In this particular project we’ll program the PCB as follows:
The OLED displays five different screens:
Current date and time;
Temperature
Humidity
Pressure
Luminosity
Each screen is shown for 15 seconds before going to the next one.
Alternatively, you can press the pushbutton to change screens.
In each screen the WS2812B addressable RGB LEDs show a different pattern:
On the date and time screen, the RGB LEDs display a rainbow effect;
On the other screens, the RGB LEDs work like a gauge. For example, 100% humidity lights up all LEDs, 50% humidify lights up half of the number of LEDs.
The color of the LEDs is different for each screen: green for the temperature, blue for the humidity, purple for pressure and yellow for luminosity.
Testing the Circuit on a Breadboard
Before designing and building the PCB, it’s important to test the circuit on a breadboard. If you don’t want to make a PCB, you can still follow this project by assembling the circuit on a breadboard.
Parts Required
To assemble the circuit on a breadboard you need the following parts (the parts for the actual PCB are shown in a later section):
DOIT ESP32 DEVKIT V1 Board
– read
Best ESP32 Development Boards
BME280
(4 pins)
I2C OLED Display
(4 pins)
Light dependent resistor
Pushbutton
2x 10k Ohm resistor
Breadboard
Jumper wires
You can use the preceding links or go directly to
MakerAdvisor.com/tools
to find all the parts for your projects at the best price!
After gathering all the parts, assemble the circuit by following the next schematic diagram:
Designing the PCB
To design the circuit and PCB, we used
EasyEDA
which is a browser based software to design PCBs. If you want to customize your PCB, you just need to upload the following files:
EasyEDA project files to edit the PCB
Designing the circuit works like in any other circuit software tool, you place some components and you wire them together. Then, you assign each component to a footprint.
Having the parts assigned, place each component. When you’re happy with the layout, make all the connections and route your PCB.
Save your project and export the Gerber files.
Note:
you can grab the project files and edit them to customize the shield for your own needs.
Download Gerber .zip file
EasyEDA project to edit the PCB
Ordering the PCBs at PCBWay
This project is sponsored by PCBWay.
PCBWay
is a full feature Printed Circuit Board manufacturing service.
Turn your DIY breadboard circuits into
professional PCBs
– get 10 boards for approximately $5 + shipping (which will vary depending on your country).
Once you have your Gerber files, you can order the PCB. Follow the next steps.
1. Download the Gerber files –
click here to download the .zip file
2. Go to
PCBWay website
and open the PCB Instant Quote page.
3. PCBWay can grab all the PCB details and automatically fills them for you. Use the “Quick-order PCB (Autofill parameters)”.
4. Press the “+ Add Gerber file” button to upload the provided Gerber files.
And that’s it. You can also use the OnlineGerberViewer to check if your PCB is looking as it should.
If you aren’t in a hurry, you can use the China Post shipping method to lower your cost significantly. In our opinion, we think they overestimate the China Post shipping time.
You can increase your PCB order quantity and change the solder mask color. I’ve ordered the Blue color.
Once you’re ready, you can order the PCBs by clicking “Save to Cart” and complete your order.
Unboxing
After approximately one week using the DHL shipping method, I received the PCBs at my office.
As usual, everything comes well packed, and the PCBs are really high-quality. The letters on the silkscreen are really well-printed and easy to read. Additionally, the solder sticks easily to the pads.
We’re really satisfied with the PCBWay service. Here’s some other projects we’ve built using the PCBWay service:
ESP32-CAM with
ESP32 IoT Shield PCB with Dashboard for Outputs and Sensors
Soldering the Components
The next step is soldering the components to the PCB. I’ve used SMD LEDs, SMD resistors and SMD capacitors. These can be a bit difficult to solder, but the PCB looks much better.
If you’ve never soldered SMD before, we recommend watching a few videos to learn how it’s done. You can also get an SMD DIY soldering Kit to practice a bit.
Here’s a list of all the components needed to assemble the PCB:
DOIT ESP32 DEVKIT V1 Board
(
36 GPIOs
)
12x SMD WS2812B addressable RGB LEDs
2x 10k Ohm SMD resistor
(1206)
12x 10nF capacitors (0805)
Pushbutton (0.55 mm)
Female pin header socket
(2.54 mm)
BME280
(4 pins)
Light dependent resistor
I2C SSD1306 0.96inch OLED display
(4 pins)
Here’s the soldering tools I’ve used:
TS80 mini portable soldering iron
Solder 60/40 0.5mm diameter
Soldering mat
Read our review about the TS80 Soldering Iron:
TS80 Soldering Iron Review – Best Portable Soldering Iron
Start by soldering the SMD components. Then, solder the header pins. And finally, solder the other components or use header pins if you don’t want to connect the components permanently.
Here’s how the ESP32 Shield looks like after assembling all the parts.
The ESP32 board should stack perfectly on the header pins on the other side of the PCB.
Programming the Weather Station Interface PCB
The code for this project displays sensors readings on different screens on the OLED display as well as date and time. The addressable RGB LEDs show different colors and animations accordingly to what is displayed on the screen.
You can program th
Technologies used
Hardware components
- ESP32
- ESP32-CAM
- Arduino
- BME280
- SSD1306
- OLED
- LDR
Software & tools
- Arduino IDE
- EasyEDA
What you get
- Working project / hardware kit, tested before delivery
- Complete source code with explanation
- Project demo and guidance for your viva
- Project report, PPT and IEEE paper support (on request)
Delivery & Payment
Delivery takes a minimum of two weeks from the date your inquiry is confirmed.
Payment is in two parts:
• 50% advance to start the project
• Remaining 50% before delivery
Note:
• Documentation and PPT are not included by default
• If you need documentation/PPT, it can be arranged for extra time and cost
We'll confirm the exact timeline and cost with you after reviewing your requirements.