Sisukord:

ESP32 WiFi ilmajaam BME280 anduriga: 7 sammu (piltidega)
ESP32 WiFi ilmajaam BME280 anduriga: 7 sammu (piltidega)

Video: ESP32 WiFi ilmajaam BME280 anduriga: 7 sammu (piltidega)

Video: ESP32 WiFi ilmajaam BME280 anduriga: 7 sammu (piltidega)
Video: ESP32 IoT Weather Station 2024, Juuli
Anonim
Image
Image
ESP32 WiFi ilmajaam BME280 anduriga
ESP32 WiFi ilmajaam BME280 anduriga
ESP32 WiFi ilmajaam BME280 anduriga
ESP32 WiFi ilmajaam BME280 anduriga

Kallid sõbrad, tere tulemast teise õpetuse juurde! Selles õpetuses ehitame WiFi -toega ilmajaama projekti! Kasutame esimest korda uut muljetavaldavat ESP32 kiipi koos Nextion -ekraaniga.

Selles videos me seda teeme. See on veel üks ilmajaama projekt, mida ma tean, kuid seekord kasutame uut ESP32 kiipi! Kasutame ka uut BME280 andurit, mis mõõdab temperatuuri, niiskust ja õhurõhku. Kui käivitame projekti, ühendub see WiFi -võrguga ja see otsib minu asukoha ilmaprognoosi openweathermap veebisaidilt. Seejärel kuvab see prognoosi sellel 3,2 -tollisel Nextioni puutetundlikul ekraanil koos anduri näitudega! Näitu uuendatakse iga kahe sekundi tagant ja ilmateadet iga tund! Nagu näete, kasutame selles projektis uusimaid tehnoloogiaid, mis tegijale täna saadaval on! Kui olete DIY veteran, saate selle projekti viie minutiga üles ehitada.

Kui olete algaja, peate enne selle projekti proovimist paar videot vaatama. Nende videote linke leiate käesolevast juhendist, ärge muretsege.

Alustame!

Samm: hankige kõik osad

Hankige kõik osad
Hankige kõik osad

Selle projekti loomiseks vajame järgmisi osi:

  • ESP32 tahvel ▶
  • BME280 I2C andur ▶
  • 3,2 -tolline Nextion -ekraan ▶
  • Väike leivalaud ▶
  • Mõned juhtmed ▶

Projekti maksumus on umbes 30 dollarit.

ESP32 asemel võiksime kasutada odavamat ESP8266 kiipi, kuid otsustasin kasutada ESP32, et saada sellega kogemusi ja vaadata, mis töötab ja mis mitte.

Samm: ESP32

Image
Image
ESP32
ESP32

See on esimene projekt, mille ma kunagi uue ESP32 kiibiga ehitasin.

Kui te pole sellega tuttav, on ESP32 kiip järg populaarsele ESP8266 kiibile, mida oleme varem mitu korda kasutanud. ESP32 on metsaline! See pakub kahte 32 töötlemissüdamikku, mis töötavad sagedusel 160 MHz, tohutul hulgal mälu, WiFi, Bluetooth ja palju muid funktsioone, mille maksumus on umbes 7 dollarit! Hämmastav värk!

Palun vaadake üksikasjalikku ülevaadet, mille olen selle plaadi jaoks ette valmistanud. Lisasin video selle juhendi juurde. See aitab mõista, miks see kiip muudab igaveseks viisi, kuidas me asju teeme!

3. samm: Nextion -ekraan

Image
Image
BME280 andur
BME280 andur

Samuti on see esimene projekt, mille koostan Nextioni puutetundliku ekraaniga.

Nextion -kuvarid on uut tüüpi kuvarid. Nende tagaküljel on oma ARM -protsessor, mis vastutab ekraani juhtimise ja graafilise kasutajaliidese loomise eest. Seega saame neid kasutada mis tahes mikrokontrolleriga ja saavutada suurepäraseid tulemusi.

Olen selle Nextioni ekraani kohta koostanud üksikasjaliku juhendi, mis selgitab põhjalikult nende toimimist, nende kasutamist ja nende puudusi. Saate seda lugeda, klõpsates siin:

4. samm: BME280 andur

BME280 andur
BME280 andur

BME280 Boschi uues suurepärases anduris.

Siiani kasutasin BMP180 andurit, mis suudab mõõta temperatuuri ja õhurõhku. BME280 andur suudab mõõta temperatuuri, niiskust ja õhurõhku! Kui lahe see on! Täieliku ilmajaama ehitamiseks vajame vaid ühte andurit!

Lisaks on andur väga väike ja seda on lihtne kasutada. Moodul, mida me täna kasutama hakkame, kasutab I2C liidest, nii et see muudab Arduinoga suhtlemise väga lihtsaks. Me ühendame ainult toite ja veel kaks juhtmest, et see toimiks.

Selle anduri jaoks on juba välja töötatud palju raamatukogusid, nii et saame seda oma projektides väga lihtsalt kasutada! Anduri hind on umbes 5 dollarit. Selle saate siit ▶

MÄRKUS. Vajame andurit BME280. Samuti on olemas BMP280 andur, mis ei võimalda niiskuse mõõtmist. Olge vajaliku anduri tellimisel ettevaatlik.

Samm: osade ühendamine

Osade ühendamine
Osade ühendamine
Osade ühendamine
Osade ühendamine
Osade ühendamine
Osade ühendamine

Osade ühendamine on lihtne, nagu näete skemaatiliselt.

Kuna BME280 andur kasutab I2C liidest, peame ESP32 -ga suhtlemiseks ühendama ainult kaks juhet. Olen anduri kinnitanud tihvtidele 26 ja 27. Teoreetiliselt saab iga ESP32 plaadi digitaalset tihvti kasutada koos I2C välisseadmetega. Praktikas sain aga teada, et mõned tihvtid ei töötanud, kuna need on reserveeritud muuks otstarbeks. Pistikud 26 ja 27 toimivad suurepäraselt!

Andmete ekraanile saatmiseks peame ühendama ainult ühe juhtme ESP32 TX0 tihvtiga. Ma pidin nööpnõela niimoodi painutama, et ühendada ekraani sisetraat, kuna ESP32 plaat on selle leivalaua jaoks liiga suur.

Pärast osade ühendamist peame koodi laadima ESP32 -sse ja GUI laadima Nextioni kuvale. Kui teil on probleeme programmi ESP32 tahvlile üleslaadimisega, hoidke pärast Arduino IDE üleslaadimisnupu vajutamist all nuppu BOOT.

GUI Nextioni ekraanile laadimiseks kopeerige fail WeatherStation.tft, mida ma teiega jagan, tühjale SD -kaardile. Asetage SD -kaart ekraani tagaküljel asuvasse SD -kaardi pesasse. Seejärel lülitage ekraan sisse ja GUI laaditakse. Seejärel eemaldage SD -kaart ja ühendage toide uuesti.

Pärast koodi edukat laadimist loob projekt ühenduse WiFi -võrguga, saab ilmateate saidilt openweathermap.org ja kuvab anduri näidud. Vaatame nüüd projekti tarkvara poolt.

6. samm: projekti kood

Projekti kood
Projekti kood
Projekti kood
Projekti kood
Projekti kood
Projekti kood

Ilmaandmete analüüsimiseks vajame suurepärast Arduino JSON -i raamatukogu. Samuti vajame anduri jaoks raamatukogu.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Vaatame nüüd koodi.

Esialgu peame määrama oma WiFi -võrgu SSID ja parooli. Järgmisena peame sisenema tasuta APIKEY -le veebisaidilt operweathermap.org. Oma API võtme loomiseks peate veebisaidil registreeruma. Praeguste ilmaandmete ja prognooside hankimine on tasuta, kuid veebisait pakub rohkem võimalusi, kui olete nõus raha maksma. Järgmisena peame leidma oma asukoha ID. Leidke oma asukoht ja kopeerige ID, mille leiate oma asukoha URL -ist.

Seejärel sisestage muutujale CityID oma linna ID. Sisestage sellesse muutujale ka oma linna kõrgus. Seda väärtust on vaja anduri täpsete õhurõhu näitude jaoks.

const char* ssid = "yourSSID"; const char* parool = "yourPassword"; String CityID = "253394"; // Sparta, Kreeka String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Kõrgus Spartas, Kreekas

Nüüd oleme valmis edasi liikuma.

Alguses lähtestame anduri ja loome ühenduse WiFi -võrguga. Seejärel küsime serverilt ilmateavet.

Vastuse saame ilmaandmetega JSON -vormingus. Enne andmete saatmist JSON -i teeki kustutan käsitsi mõned märgid, mis tekitasid mulle probleeme. Seejärel võtab üle JSONi teek ja me saame hõlpsasti salvestada vajalikud andmed muutujatesse. Pärast andmete muutujate hoidmist peame vaid neid ekraanile kuvama ja tund aega ootama, enne kui serverilt uusi andmeid küsime. Ainus teave, mida ma esitan, on ilmateade, kuid soovi korral saate rohkem teavet kuvada. Siin on kõik salvestatud muutujateks. Seejärel loeme andurilt temperatuuri, niiskust ja õhurõhku ning saadame andmed Nextioni kuvale.

Ekraani värskendamiseks saadame lihtsalt jadaporti mõned käsud:

void showConnectingIcon () {Serial.println (); String käsk = "weatherIcon.pic = 3"; Serial.print (käsk); endNextionCommand (); }

Nextioni graafiline kasutajaliides koosneb taustast, mõnest tekstikastist ja pildist, mis muutub sõltuvalt ilmaprognoosist. Lisateabe saamiseks vaadake Nextioni kuvaõpetust. Soovi korral saate kiiresti kujundada oma GUI ja kuvada sellel rohkem asju.

Nagu alati, leiate selle juhendile lisatud projekti koodi

7. samm: lõplikud mõtted ja täiustused

Lõplikud mõtted ja täiustused
Lõplikud mõtted ja täiustused

Nagu näete, saab täna kogenud tegija mõne koodirea ja vaid kolme osaga ehitada põnevaid projekte vaid mõne tunniga! Sellist projekti oleks isegi kaks aastat tagasi võimatu teha!

Loomulikult on see alles projekti algus. Tahaksin lisada sellele palju funktsioone, näiteks graafikuid, puudutusfunktsioone, mis on nüüd puudu, võib -olla suuremat ekraani ja loomulikult ilusa välimusega 3D -prinditud korpust. Kavandan ka parema välimusega GUI ja ikoonid. Mul on väga värskeid ideid, mida ellu viia!

Tahaksin kuulda teie arvamust tänase projekti kohta. Milliseid funktsioone soovite, et ma projektile lisan? Kas teile meeldib, kuidas see välja näeb? Kuidas soovite selle arengut näha? Palun postitage oma ideed allpool olevasse kommentaaride sektsiooni; Mulle meeldib teie mõtteid lugeda!

Traadita võistlus
Traadita võistlus
Traadita võistlus
Traadita võistlus

Juhtmeta võistluse teine koht

Soovitan: