Inhoudsopgave:
- Stap 1: Verkrijg alle onderdelen
- Stap 2: De ESP32
- Stap 3: Het Nextion-scherm
- Stap 4: BME280-sensor
- Stap 5: De onderdelen aansluiten
- Stap 6: De code van het project
- Stap 7: Laatste gedachten en verbeteringen
Video: ESP32 WiFi-weerstation met een BME280-sensor - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Beste vrienden welkom bij een nieuwe tutorial! In deze tutorial gaan we een weerstationproject met wifi-ondersteuning bouwen! We gaan voor het eerst de nieuwe, indrukwekkende ESP32-chip gebruiken samen met een Nextion-display.
In deze video gaan we dit maken. Het is weer een ander weerstationproject dat ik ken, maar deze keer gebruiken we de nieuwe ESP32-chip! We gebruiken ook de nieuwe BME280-sensor die de temperatuur, de vochtigheid en de luchtdruk meet. Wanneer we het project opstarten, maakt het verbinding met het wifi-netwerk en haalt het de weersvoorspelling voor mijn locatie op van de openweathermap-website. Dan zal het de voorspelling weergeven op dit 3,2” Nextion Touch Display samen met de metingen van de sensor! De meetwaarden worden elke twee seconden bijgewerkt en de weersvoorspelling elk uur! Zoals je kunt zien, gebruiken we in dit project de nieuwste technologieën die tegenwoordig beschikbaar zijn voor een maker! Als je een doe-het-zelf-veteraan bent, kun je dit project in vijf minuten bouwen.
Als je een beginner bent, moet je een paar video's bekijken voordat je dit project probeert. Je kunt links naar deze video vinden in deze Instructable, maak je geen zorgen.
Laten we beginnen!
Stap 1: Verkrijg alle onderdelen
Om dit project te bouwen hebben we de volgende onderdelen nodig:
- Een ESP32-bord ▶
- Een BME280 I2C-sensor ▶
- Een 3,2-inch Nextion-scherm ▶
- Een kleine broodplank ▶
- Sommige draden ▶
De kosten van het project bedragen ongeveer 30 $.
In plaats van de ESP32 konden we de goedkopere ESP8266-chip gebruiken, maar ik besloot de ESP32 te gebruiken om er wat ervaring mee op te doen en te kijken wat wel en niet werkt.
Stap 2: De ESP32
Dit is het eerste project dat ik ooit heb gebouwd met de nieuwe ESP32-chip.
Mocht je er niet bekend mee zijn, de ESP32 chip is de opvolger van de populaire ESP8266 chip die we in het verleden al vaker hebben gebruikt. De ESP32 is een beest! Het biedt twee 32 verwerkingskernen die werken op 160 MHz, een enorme hoeveelheid geheugen, WiFi, Bluetooth en vele andere functies met een kostprijs van ongeveer $ 7! Geweldige dingen!
Bekijk de gedetailleerde recensie die ik voor dit bord heb opgesteld. Ik heb de video op deze Instructable bijgevoegd. Het zal helpen begrijpen waarom deze chip de manier waarop we dingen maken voor altijd zal veranderen!
Stap 3: Het Nextion-scherm
Dit is ook het eerste project dat ik bouw met een Nextion-aanraakscherm.
De Nextion-displays zijn een nieuw soort displays. Ze hebben hun eigen ARM-processor aan de achterkant die verantwoordelijk is voor het aansturen van het display en het creëren van de grafische gebruikersinterface. We kunnen ze dus met elke microcontroller gebruiken en spectaculaire resultaten behalen.
Ik heb een gedetailleerde Instructable over dit Nextion-display opgesteld waarin diepgaand wordt uitgelegd hoe ze werken, hoe ze te gebruiken en hun nadelen. Je kunt het lezen door hier te klikken:
Stap 4: BME280-sensor
De BME280 in een nieuwe geweldige sensor van Bosch.
Tot nu toe gebruikte ik de BMP180-sensor die temperatuur en luchtdruk kan meten. De BME280 sensor kan temperatuur, vochtigheid en luchtdruk meten! Hoe cool is dat! We hebben maar één sensor nodig om een compleet weerstation te bouwen!
Daarnaast is de sensor erg klein van formaat en erg makkelijk in gebruik. De module die we vandaag gaan gebruiken, maakt gebruik van de I2C-interface, zodat communicatie met Arduino heel eenvoudig is. We hoeven alleen de stroom en nog twee draden aan te sluiten om het te laten werken.
Er zijn al veel bibliotheken ontwikkeld voor deze sensor, dus we kunnen hem heel gemakkelijk in onze projecten gebruiken! De kosten van de sensor zijn ongeveer $ 5,-. Je kunt het hier krijgen ▶
OPMERKING: We hebben de BME280-sensor nodig. Er is ook een BMP280-sensor die geen vochtigheidsmeting biedt. Wees voorzichtig met het bestellen van de sensor die u nodig heeft.
Stap 5: De onderdelen aansluiten
De aansluiting van de onderdelen is eenvoudig, zoals u kunt zien in het schematische diagram.
Omdat de BME280-sensor de I2C-interface gebruikt, hoeven we slechts twee draden aan te sluiten om met ESP32 te communiceren. Ik heb de sensor aangesloten op pinnen 26 en 27. In theorie kan elke digitale pin van het ESP32-bord worden gebruikt met I2C-randapparatuur. In de praktijk kwam ik er echter achter dat sommige pinnen niet werkten omdat ze gereserveerd zijn voor ander gebruik. Pinnen 26 en 27 werken prima!
Om gegevens naar het display te sturen, hoeven we maar één draad aan te sluiten op de TX0-pin van de ESP32. Ik moest de pin zo buigen om de vrouwelijke draad van het display aan te sluiten, omdat het ESP32-bord te groot is voor dit breadboard.
Nadat we de onderdelen hebben aangesloten, moeten we de code naar de ESP32 laden en de GUI naar het Nextion-display laden. Als u problemen ondervindt bij het uploaden van het programma naar het ESP32-bord, houdt u de BOOT-knop ingedrukt nadat u op de upload-knop op de Arduino IDE hebt gedrukt.
Om de GUI naar het Nextion-scherm te laden, kopieert u het bestand WeatherStation.tft dat ik met u ga delen naar een lege SD-kaart. Plaats de SD-kaart in de SD-kaartsleuf aan de achterkant van het scherm. Schakel vervolgens het scherm in en de GUI wordt geladen. Verwijder vervolgens de SD-kaart en sluit de stroom weer aan.
Nadat de code met succes is geladen, maakt het project verbinding met het WiFi-netwerk, krijgt het de weersvoorspelling van de openweathermap.org-website en geeft het de meetwaarden van de sensor weer. Laten we nu de softwarekant van het project bekijken.
Stap 6: De code van het project
Om de weergegevens te ontleden, hebben we de uitstekende Arduino JSON-bibliotheek nodig. We hebben ook een bibliotheek nodig voor de sensor.
? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:
Laten we de code nu bekijken.
Eerst moeten we de SSID en het wachtwoord van ons wifi-netwerk instellen. Vervolgens moeten we de gratis APIKEY van de website operweathermap.org invoeren. Om uw eigen API-sleutel te maken, moet u zich aanmelden op de website. Het verkrijgen van actuele weergegevens en voorspellingen is gratis, maar de website biedt meer opties als u bereid bent wat geld te betalen. Vervolgens moeten we de id van onze locatie vinden. Zoek uw locatie en kopieer de ID die u kunt vinden op de URL van uw locatie.
Voer vervolgens de id van uw stad in de CityID-variabele in. Voer ook de hoogte van uw stad in deze variabele in. Deze waarde is nodig voor nauwkeurige luchtdrukmetingen van de sensor.
const char* ssid = "yourSSID";const char* wachtwoord = "yourPassword"; Tekenreeks Stads-ID = "253394"; //Sparta, Griekenland String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Hoogte in Sparta, Griekenland
Nu zijn we klaar om verder te gaan.
Eerst initialiseren we de sensor en maken we verbinding met het wifi-netwerk. Dan vragen we weergegevens op van de server.
We krijgen een antwoord met de weergegevens in JSON-formaat. Voordat ik de gegevens naar de JSON-bibliotheek stuur, heb ik handmatig enkele tekens verwijderd die me problemen gaven. Dan neemt de JSON-bibliotheek het over en kunnen we de gegevens die we nodig hebben eenvoudig opslaan in variabelen. Nadat we de gegevens in variabelen hebben bewaard, hoeven we ze alleen nog maar op het scherm weer te geven en een uur te wachten voordat we nieuwe gegevens van de server opvragen. De enige informatie die ik presenteer is de weersvoorspelling, maar u kunt meer informatie weergeven als u dat wilt. Het is hier allemaal opgeslagen in variabelen. Vervolgens lezen we de temperatuur, de luchtvochtigheid en de luchtdruk uit de sensor en sturen we de gegevens naar het Nextion-display.
Om het display bij te werken, sturen we eenvoudig een aantal commando's naar de seriële poort als volgt:
void showConnectingIcon(){ Serial.println(); String commando = "weatherIcon.pic=3"; Serial.print(opdracht); endNextionCommand(); }
De Nextion GUI bestaat uit een achtergrond, enkele tekstvakken en een afbeelding die verandert afhankelijk van de weersvoorspelling. Bekijk de Nextion display tutorial voor meer informatie. Je kunt snel je eigen GUI ontwerpen als je wilt en er meer dingen op weergeven.
Zoals altijd vindt u de code van het project dat aan deze Instructable is gekoppeld
Stap 7: Laatste gedachten en verbeteringen
Zoals je kunt zien, kan een ervaren maker tegenwoordig in slechts een paar uur spannende projecten bouwen met een paar regels code en slechts drie delen! Een project als dit zou zelfs twee jaar geleden onmogelijk zijn geweest!
Dit is natuurlijk nog maar het begin van het project. Ik zou er veel features aan willen toevoegen, zoals grafieken, touch functionaliteit die nu ontbreekt, misschien een groter display en natuurlijk een mooi uitziende 3D geprinte behuizing. Ik zal ook een beter uitziende GUI en pictogrammen ontwerpen. Ik heb een aantal zeer frisse ideeën om uit te voeren!
Ik zou graag uw mening horen over het project van vandaag. Welke functies wil je dat ik aan het project toevoeg? Vind je het leuk hoe het eruit ziet? Hoe wil je het zien evolueren? Plaats uw ideeën in de opmerkingen hieronder; Ik vind het leuk om je gedachten te lezen!
Tweede plaats in de draadloze wedstrijd
Aanbevolen:
Een condensator of een inductor meten met een mp3-speler: 9 stappen
Een condensator of een inductor meten met een mp3-speler: Hier is een eenvoudige techniek die kan worden gebruikt om de capaciteit en inductantie van een condensator en inductor nauwkeurig te meten zonder dure apparatuur. De meettechniek is gebaseerd op een gebalanceerde brug en kan eenvoudig worden geconstrueerd uit onde
Een lijn toevoegen aan een Boombox met een cassettespeler: 5 stappen
Een line-in toevoegen aan een boombox met een tapespeler: ** Zoals bij alle instructables, neem je je item / gezondheid / wat dan ook in eigen handen wanneer je het probeert! Houd rekening met hoge spanningen op het hoofdvoedingsbord, de hete soldeerbout, enz. Voorzichtig en geduldig zijn, zal u succes brengen. **NS
Een Halloween Scare Machine met behulp van een PIR, een 3D-geprinte pompoen en de Troll Arduino Compatible Audio Pranker/praktische Joke Board.: 5 stappen
Een Halloween Scare Machine met behulp van een PIR, een 3D-geprinte pompoen en het Troll Arduino-compatibele audio-pranker/praktische grapbord.: Het Troll-bord gemaakt door Patrick Thomas Mitchell van EngineeringShock Electronics, en niet zo lang geleden volledig gefinancierd op Kickstarter. Ik kreeg mijn beloning een paar weken te vroeg om te helpen bij het schrijven van enkele gebruiksvoorbeelden en het bouwen van een Arduino-bibliotheek in een po
Bouw een Apple HomeKit-temperatuursensorapparaat met een ESP8266 en een BME280: 10 stappen
Bouw een Apple HomeKit-temperatuursensorapparaat met behulp van een ESP8266 en een BME280: in de instructable van vandaag zullen we een goedkope temperatuur-, vochtigheids- en vochtsensor maken op basis van de AOSONG AM2302/DHT22 of BME280 temperatuur- / vochtigheidssensor, YL-69 vochtsensor en het ESP8266/Nodemcu-platform. En voor het weergeven van
Bedien tot 4 servo's met een smartphone of een ander apparaat met een audio-uitgang: 3 stappen
Bedien tot 4 servo's met behulp van een smartphone of elk apparaat met een audio-uitgang: hier presenteer ik een eenvoudige elektronische montage om maximaal vier servo's te besturen met elk apparaat dat een audiobestand kan lezen