Interactief Nextion HMI-weerstation met Arduino Mega en sensoren
Onderdelen en benodigdheden
| Arduino Mega 2560 | 1 |
| Arduino Mega Proto Shield | 1 |
| Nextion HMI-display 2,4" | 1 |
| SD-kaartlezer | 1 |
| DHT22 temperatuursensor | 1 |
| BME280 atmosferische sensor (temperatuur, vochtigheid, druk) | 1 |
| DS3231 RTC-module (real-time clock) | 1 |
| RXB6 433MHz superheterodyne ontvanger | 1 |
| Weerstand 10kΩ | 1 |
| Weerstand 475Ω | 1 |
| NE555 timer | 1 |
| AC-DC voeding 5V | 1 |
Benodigde tools
- Solderbout
Apps en online diensten
- Arduino IDE
- Nextion Editor - voor het ontwerpen van de display-schermen
Over dit project
Kan een Nextion-display programma-geheugen besparen op Arduino?
Kleurrijke graphics vragen veel geheugen (bibliotheken, afbeeldingen op SD-kaart). De Arduino heeft beperkte resources. Een Nextion-display lost dit op: afbeeldingen worden in het display opgeslagen, en voor de controller is het slechts een serieel apparaat – niet zwaarder dan een simpel LCD.
Op een Arduino UNO blijft de functionaliteit beperkt (geen historische grafieken). Met een Arduino Mega 2560 bouw je wel een volwaardig weerstation met data-logging, grafieken en meerdere draadloze sensoren.
Hoofdidee
We ontvangen weerdata van externe sensoren (bijv. Oregon THGN123N). De centrale eenheid:
- Toont temperatuur, vochtigheid, luchtdruk
- Slaat data periodiek op SD-kaart met tijdstempel
- Tekent historische grafieken
- Maakt weerforecast op basis van drukveranderingen
Uniek: Het forecast wordt getoond als volledige achtergrondafbeelding, niet als klein icoontje.
Display-uitdagingen en oplossing
Nextion ondersteunt geen transparante afbeeldingen. Tekstwidgets hebben een 'geknipt' achtergrond nodig. Bij achtergrondwisseling moeten alle widget-achtergronden meegaan. Oplossing: maak 8 complete schermen (3 weertypes × dag/nacht):
- Zonnig (dag/nacht)
- Bewolkt (dag/nacht)
- Regen (dag/nacht)
- Sneeuw (dag/nacht)
Alle schermen delen dezelfde widget-namen voor sensordata. De controller kiest het juiste scherm en werkt de waarden bij.
Hoofdscherm-indeling
Bovenste balk: Interne sensor (huistemp/vocht), luchtdruk, tijd/datum.
Linkerhelft: Hoofdsensor (buiten) – temperatuur & vochtigheid. Sensor-ID instelbaar via setup-scherm.
Rechterhelft: Data van alle sensoren (max. 4 extern + intern), rolerend.
De DS3231 RTC zorgt voor nauwkeurige tijd, logging, dag/nacht-forecast en display-helderheidsregeling.
Extra schermen
- Zonsop-/ondergang & maanfase – tik op datum
- Instellingen – tik op tijd
- RTC aanpassen
- Historische data – tik op temperatuur of druk
Historische data-scherm
Twee modi: 1 dag of 8 dagen (tik op grafiek om te wisselen). Linker toolbar: sensor-ID kiezen (0 = intern). Bovenste toolbar: datatype (druk/temp/vocht).
Instellingenscherm
- Hoofdsensor-ID instellen
- Ochtend/avond-tijden voor helderheidswisseling
- Display-helderheid configureren
Watchdog tegen vastlopen
Een externe watchdog-circuit (NE555-timer) reset de Arduino na ~2-3 minuten als er geen signaal op pin A2 komt. Dit verhoogt de stabiliteit enorm – het systeem draait al een half jaar zonder problemen.
Code
Broncode: GitHub - Weather_nextion.ino
Schema
Compleet schema: GitHub - weather_mega_nextion.jpg
Productieproces
- Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
- Slimme spaarpot bouwen: Muntenacceptor besturen met Arduino Nano
- Arduino Temperatuurbewaking & Realtime Klok met 3.2" TFT-display
- Een LED bedienen via Bluetooth met Arduino – Eenvoudige DIY Handleiding
- Arduino Mega koppelen aan een NEO‑6M GPS-module: stapsgewijze handleiding
- Bouw een DIY Voltmeter met Arduino en Nokia 5110 Display – Stap-voor-Stap Handleiding
- BME280 Temperatuur, Vochtigheid & Druk Weergeven op Nextion Touchscreen
- Uitgebreide Arduino Trainingskit met Mega 2560, Sensoren, Motoren en Custom PCB
- De Fridgeye-app bouwen met een Nextion-display: stapsgewijze handleiding
- Accurate zonnestralingsmeting met Arduino UNO en Ethernet Shield
- Arduino GPS en TFT Touchscreen Shield Project: Real-Time Locatieweergave