|
WEMOS-D1-MINI |
x 1 | |
|
Lolin 2.13 |
x 1 | |
|
TP4056 |
x 1 | |
|
18650 |
x 1 | |
|
18650 Battery Holder |
x 1 |
|
Soldering Iron Kit |
|
|
arduino IDEArduino
|
Wifi Weather Station - Display unit
WiFi Weather Station - Display Unit
In this technologically advanced age, countless electronics projects incorporate various components to collect, process, and display data for a wide range of applications. This custom display unit, coined as the WiFi Weather Station, functions as a robust, adaptable platform allowing seamless data display from a Wemos D1 Mini, an 18650 battery and a holder, a TP4056 charge module, and a 2.13" Lolin e-paper display.
Disclaimer:
Please note that this WiFi Weather Station - Display Unit is designed to work in conjunction with a corresponding Sensor Unit. The data displayed by this unit is collected by the Sensor Unit, which contains various environmental sensors. For the Display Unit to function correctly, it must receive data from the Sensor Unit.
Possible Applications:
- Weather Monitoring: Consolidating data from various sensors and presenting them in an accessible, user-friendly format, the WiFi Weather Station proves to be a powerful tool for weather monitoring and forecasting, making it perfect for outdoor enthusiasts, farmers, and researchers.
- Portable Devices: Owing to the compact design and the battery power supply, this WiFi Weather Station can be a useful tool in various portable devices, including portable weather monitors, camping gadgets, and hiking equipment.
- IoT and Smart Home Devices: The small and modular design of this WiFi Weather Station makes it an excellent fit for various IoT and smart home devices, like smart thermostats, weather stations, or even digital picture frames.
Building Guide - Display Unit
- Gather the necessary tools and materials: Ensure you have a Wemos D1 Mini, an 18650 battery and holder, a TP4056 charge module, a 2.13" Lolin e-paper display, soldering iron, solder, flux, desoldering wick or pump, brass sponge or steel wool for cleaning the soldering iron tip, heat-resistant surface or soldering mat, and tweezers or small pliers for holding components.
- Prepare the PCB board: Clean the PCB board with isopropyl alcohol and a lint-free cloth to remove any dust or grease, ensuring proper solder adherence.
- Prepare the components: Inspect each component and their male pins (headers) for any damage. Correct any bent pins and trim excessive leads if needed.
- Insert the male pins into the components: For the Wemos D1 Mini and the Lolin e-paper display, gently insert the pins into the suitable holes. Make sure the pins are correctly aligned and securely inserted.
- Secure the components to the PCB: Place each component on the PCB, aligning the male pins with the corresponding solder pads or holes. Secure the components with masking tape, Blu-Tack, or a tiny amount of hot glue.
- Heat up the soldering iron: Switch on your soldering iron and let it reach the appropriate temperature (around 350°C or 650°F for 60/40 solder).
- Tin the soldering iron tip: Apply a small amount of solder to the iron tip to create a thin layer of molten solder. This process, known as "tinning," enhances heat transfer and simplifies the soldering process.
- Solder the components to the PCB: Hold the soldering iron in one hand and the solder in the other. Touch the iron tip to the junction of the component lead (or male pin) and the PCB pad. After a brief moment, introduce the solder to the joint. The solder should flow smoothly and create a shiny, concave fillet. Simultaneously remove the solder and the iron, allowing the joint to cool. Repeat for each component lead or pin.
- Inspect the solder joints: Use a magnifying glass or microscope to scrutinize the solder joints for any cold solder, bridges, or other defects. Cold solder joints appear dull or grainy and may result in poor connections. Bridges are undesired solder connections between adjacent pads or traces and may cause short circuits.
- Fix any issues: If you find any solder joint problems, use a desoldering wick or pump to remove the excess solder, clean the area, and try again. If a component is poorly aligned or damaged, carefully remove it, clean the area, and replace it with a new component.
- Clean the PCB: After successfully soldering all components, clean the PCB with isopropyl alcohol and a lint-free cloth to remove any residual flux.
- Test the assembled board: After the PCB has dried, power up the board using the 18650 battery, and test its functionality. If everything works as expected, congratulations! You've successfully assembled your custom Display Unit.
- Program the board: Use the provided Arduino code to test the display unit, making sure it functions as expected. Then, customize the code to meet your specific requirements.
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <GxEPD2_BW.h>
#include <Wire.h>
// Display parameters for Lolin 2.13" ePaper Display
GxEPD2_BW<GxEPD2_213_B72, GxEPD2_213_B72::HEIGHT> display(GxEPD2_213_B72(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4));
// WiFi network details
const char* ssid = "your_AP_name";
const char* password = "your_AP_password";
const char* host = "192.168.4.1"; // IP of device 1
// Time delay for changing displayed data
unsigned long delayTime = 10000; // Change every 10 seconds
unsigned long lastChange = 0;
int dataItem = 0;
void setup() {
Serial.begin(9600);
// Connect to WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Initialize the display
display.init(115200);
display.setRotation(1);
display.setFont(&FreeMonoBold9pt7b);
display.setTextColor(GxEPD_BLACK);
display.setFullWindow();
}
void loop() {
// Change displayed data every 10 seconds
if (millis() - lastChange > delayTime) {
lastChange = millis();
dataItem = (dataItem + 1) % 6; // Cycle through 6 data items
// Fetch data from device 1
WiFiClient client;
if (!client.connect(host, 80)) {
Serial.println("Failed to connect to device 1");
return;
}
client.print(String("GET /") + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(10);
// Read JSON response
String json = "";
while (client.connected()) {
String line = client.readStringUntil('\r');
json += line;
}
// Parse JSON
StaticJsonDocument<200> doc;
DeserializationError error = deserializeJson(doc, json);
if (error) {
Serial.println("Failed to parse JSON");
return;
}
// Display sensor data
display.firstPage();
do {
display.fillScreen(GxEPD_WHITE);
String displayText;
switch (dataItem) {
case 0: displayText = "Temperature: " + String((float)doc["temperature"]); break;
case 1: displayText = "Pressure: " + String((float)doc["pressure"]); break;
case 2: displayText = "UV Index: " + String((int)doc["uvIndex"]); break;
case 3: displayText = "Humidity: " + String((float)doc["humidity"]); break;
case 4: displayText = "Time: " + String((const char*)doc["time"]); break;
case 5: displayText = "CO2: " + String((float)doc["co2"]); break;
}
display.setCursor(0, 15);
display.println(displayText);
} while (display.nextPage());
}
}
Wifi Weather Station - Display unit
*PCBWay community is a sharing platform. We are not responsible for any design issues and parameter issues (board thickness, surface finish, etc.) you choose.
- Comments(1)
- Likes(1)
- Engineer Apr 23,2024
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Inaki Iturriaga
- GPS Mobile Beacon Building a GPS Emergency Beacon: A DIY TutorialWelcome to our latest DIY project: creating a GPS Eme...
- Wireless RFID Card Copier. Wireless RFID Card CopierIn today's digital world, security and accessibility are of paramount impor...
- Piezo Alert System. Within the fast-evolving sphere of security tools and home automation, creativity often paves the wa...
- Wifi Weather Station - Sensors board WiFi Weather Station - Sensor unitIn our digital era, many electronics projects integrate diverse se...
- RC Receiver Build Your Own RC ReceiverHarnessing advanced electronics and precise control systems, the RC Receiv...
- Universal RC Controller Build Your Own Universal RC RemoteHarnessing the power of custom PCBs and wireless communication, th...
- Continuous GPS Tracker This compact and efficient tracker provides real-time location updates, making it ideal for surveill...
- Air Quality Monitor Welcome to our DIY tutorial on assembling an Air Quality Monitoring Device. This project is perfect ...
- Automatic Watch Winder Automatic Watch WinderIn the realm of luxury timepieces and watch aficionados, an automatic watch is...
- Handheld GPS Within the swiftly advancing realm of portable technology and travel essentials, innovation often sh...
- Dual Motor Controller for Model Robotics In the thrilling world of robotics and DIY engineering, innovation continues to soar to new heights....
- Altitude Indicator with Beeper for Rocketry Altitude Indicator for Model RocketryIn our ever-advancing technological landscape, countless projec...
- Wifi Weather Station - Display unit WiFi Weather Station - Display UnitIn this technologically advanced age, countless electronics proje...
- Positon Breakout Board Position Sensors Breakout Board In today's era of advanced technology, many electronics projects req...
- Ambient Sensors Breakout Board In today's world, electronics projects often require the integration of multiple sensors to collect ...
- Infrared Launch Controller IntroductionHave you ever wanted to remotely launch a rocket, drone or other device using infrared t...
- Altimeter Datalogger with Display. Building TutorialAltimeter Datalogger with Display.Components needed:BMP280 sensorI2C to 16x2 displa...
- Remote Igniter + 3D printed Case. Remote IR Igniter.Build an Infrared remote ignitor for model rocket testing and launching!This guide...
-
-
-
kmMiniSchield MIDI I/O - IN/OUT/THROUGH MIDI extension for kmMidiMini
124 0 0 -
DIY Laser Power Meter with Arduino
173 0 2 -
-
-
Box & Bolt, 3D Printed Cardboard Crafting Tools
163 0 2 -