Satura rādītājs:
- 1. darbība: iegūstiet visas detaļas
- 2. darbība: ESP32
- 3. darbība. Nextion displejs
- 4. solis: BME280 sensors
- 5. darbība: detaļu pievienošana
- 6. solis: projekta kods
- 7. darbība. Pēdējās domas un uzlabojumi
Video: ESP32 WiFi laika stacija ar BME280 sensoru: 7 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Dārgie draugi, laipni lūdzam citā apmācībā! Šajā apmācībā mēs izveidosim ar Wi -Fi iespējotu laika staciju projektu! Mēs pirmo reizi izmantosim jauno, iespaidīgo ESP32 mikroshēmu kopā ar Nextion displeju.
Šajā video mēs to gatavosim. Tas ir vēl viens man zināms meteoroloģisko staciju projekts, bet šoreiz mēs izmantojam jauno ESP32 mikroshēmu! Mēs izmantojam arī jauno BME280 sensoru, kas mēra temperatūru, mitrumu un barometrisko spiedienu. Kad mēs ieslēdzam projektu, tas izveido savienojumu ar WiFi tīklu, un tas no vietnes openweathermap izgūs laika prognozi par manu atrašanās vietu. Tad tas parādīs prognozi šajā 3,2 collu Nextion skārienekrānā kopā ar sensora rādījumiem! Rādījumi tiek atjaunināti ik pēc divām sekundēm un laika prognoze katru stundu! Kā redzat, šajā projektā mēs izmantojam jaunākās tehnoloģijas, kas šodien pieejamas ražotājam! Ja esat DIY veterāns, varat izveidot šo projektu piecās minūtēs.
Ja esat iesācējs, pirms šī projekta izmēģināšanas jums ir jānoskatās pāris videoklipi. Saites uz šiem video varat atrast šajā pamācībā, neuztraucieties.
Sāksim!
1. darbība: iegūstiet visas detaļas
Lai izveidotu šo projektu, mums ir nepieciešamas šādas daļas:
- ESP32 tāfele ▶
- BME280 I2C sensors ▶
- 3,2 collu Nextion displejs ▶
- Neliels maizes dēlis ▶
- Daži vadi ▶
Projekta izmaksas ir aptuveni 30 USD.
ESP32 vietā mēs varētu izmantot lētāku ESP8266 mikroshēmu, bet es nolēmu izmantot ESP32, lai iegūtu kādu pieredzi ar to un redzētu, kas darbojas un kas nē.
2. darbība: ESP32
Šis ir pirmais projekts, ko jebkad būvēju ar jauno ESP32 mikroshēmu.
Ja jūs to neesat pazīstams, ESP32 mikroshēma ir populārās ESP8266 mikroshēmas pēctecis, ko mēs esam izmantojuši daudzas reizes agrāk. ESP32 ir zvērs! Tas piedāvā divus 32 apstrādes kodolus, kas darbojas 160 MHz, milzīgu atmiņas apjomu, WiFi, Bluetooth un daudzas citas funkcijas, kuru izmaksas ir aptuveni 7 USD! Apbrīnojamas lietas!
Lūdzu, skatieties detalizētu pārskatu, ko esmu sagatavojis šai padomei. Esmu pievienojis video šai instrukcijai. Tas palīdzēs saprast, kāpēc šī mikroshēma uz visiem laikiem mainīs veidu, kādā mēs veidojam lietas!
3. darbība. Nextion displejs
Turklāt šis ir pirmais projekts, ko izveidoju ar Nextion skārienekrānu.
Nextion displeji ir jauna veida displeji. Viņiem aizmugurē ir savs ARM procesors, kas ir atbildīgs par displeja vadīšanu un grafiskā lietotāja interfeisa izveidi. Tātad, mēs varam tos izmantot ar jebkuru mikrokontrolleri un sasniegt iespaidīgus rezultātus.
Esmu sagatavojis detalizētu instrukciju par šo Nextion displeju, kurā ir izskaidrots, kā tie darbojas, kā tos izmantot un to trūkumi. To varat izlasīt, noklikšķinot šeit:
4. solis: BME280 sensors
BME280 jaunā lieliskā Bosch sensorā.
Līdz šim es izmantoju BMP180 sensoru, kas var izmērīt temperatūru un barometrisko spiedienu. BME280 sensors var izmērīt temperatūru, mitrumu un barometrisko spiedienu! Cik forši tas ir! Mums ir nepieciešams tikai viens sensors, lai izveidotu pilnīgu laika staciju!
Turklāt sensors ir ļoti mazs un ļoti ērti lietojams. Modulis, kuru mēs šodien izmantosim, izmanto I2C saskarni, tāpēc tas padara saziņu ar Arduino ļoti vienkāršu. Mēs tikai pievienojam strāvu un vēl divus vadus, lai tas darbotos.
Šim sensoram jau ir izstrādātas daudzas bibliotēkas, lai mēs to varētu ļoti viegli izmantot savos projektos! Sensora izmaksas ir aptuveni 5 USD. To var iegūt šeit ▶
PIEZĪME: Mums ir nepieciešams sensors BME280. Ir arī BMP280 sensors, kas nepiedāvā mitruma mērīšanu. Esiet piesardzīgs, pasūtot nepieciešamo sensoru.
5. darbība: detaļu pievienošana
Daļu savienojums ir vienkāršs, kā redzams no shematiskās diagrammas.
Tā kā BME280 sensors izmanto I2C saskarni, mums ir nepieciešams tikai savienot divus vadus, lai sazinātos ar ESP32. Esmu pievienojis sensoru 26. un 27. tapai. Teorētiski katru ESP32 plates digitālo tapu var izmantot ar I2C perifērijas ierīcēm. Tomēr praksē es uzzināju, ka dažas tapas nedarbojās, jo tās ir rezervētas citām vajadzībām. 26. un 27. tapas darbojas lieliski!
Lai nosūtītu datus uz displeju, mums ir jāpievieno tikai viens vads ESP32 TX0 tapai. Man nācās saliekt tapu, lai savienotu displeja sieviešu vadu, jo ESP32 tāfele ir pārāk liela šim maizes dēlim.
Pēc detaļu pievienošanas mums ir jāielādē kods ESP32, un mums ir jāielādē GUI Nextion displejā. Ja jums ir problēmas ar programmas augšupielādi ESP32 panelī, pēc Arduino IDE augšupielādes pogas nospiešanas turiet nospiestu pogu BOOT.
Lai ielādētu GUI Nextion displejā, nokopējiet failu WeatherStation.tft, ar kuru es dalīšos ar jums, uz tukšu SD karti. Ievietojiet SD karti SD kartes slotā displeja aizmugurē. Pēc tam ieslēdziet displeju un GUI tiks ielādēts. Pēc tam izņemiet SD karti un atkal pievienojiet strāvu.
Pēc veiksmīgas koda ielādes projekts izveidos savienojumu ar WiFi tīklu, tas saņems laika prognozi no vietnes openweathermap.org un parādīs sensora rādījumus. Tagad apskatīsim projekta programmatūras pusi.
6. solis: projekta kods
Lai parsētu laika apstākļu datus, mums ir nepieciešama izcilā Arduino JSON bibliotēka. Mums ir nepieciešama arī sensora bibliotēka.
? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:
Tagad apskatīsim kodu.
Sākumā mums ir jāiestata mūsu WiFi tīkla SSID un parole. Tālāk mums jāievada bezmaksas APIKEY no vietnes operweathermap.org. Lai izveidotu savu API atslēgu, jums ir jāreģistrējas vietnē. Pašreizējo laika apstākļu datu un prognožu iegūšana ir bezmaksas, taču vietne piedāvā vairāk iespēju, ja esat gatavs maksāt naudu. Tālāk mums jāatrod mūsu atrašanās vietas ID. Atrodiet savu atrašanās vietu un nokopējiet ID, kas atrodams jūsu atrašanās vietas URL.
Pēc tam ievadiet pilsētas ID mainīgajā CityID. Šajā mainīgajā ievadiet arī savas pilsētas augstumu. Šī vērtība ir nepieciešama precīziem barometriskā spiediena rādījumiem no sensora.
const char* ssid = "yourSSID"; const char* parole = "yourPassword"; String CityID = "253394"; // Sparta, Grieķija String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Augstums Spartā, Grieķijā
Tagad mēs esam gatavi doties tālāk.
Sākumā mēs inicializējam sensoru un izveidojam savienojumu ar WiFi tīklu. Tad mēs pieprasām laika ziņas no servera.
Mēs saņemam atbildi ar laika apstākļu datiem JSON formātā. Pirms datu nosūtīšanas uz JSON bibliotēku manuāli izdzēsu dažas rakstzīmes, kas man radīja problēmas. Pēc tam pārņem JSON bibliotēka, un mēs varam viegli saglabāt nepieciešamos datus mainīgajos. Pēc tam, kad esam saglabājuši datus mainīgos, viss, kas mums jādara, ir parādīt tos ekrānā un pagaidīt stundu, pirms pieprasīt jaunus datus no servera. Vienīgā informācija, ko es sniedzu, ir laika prognoze, taču, ja vēlaties, varat parādīt vairāk informācijas. Šeit viss tika saglabāts mainīgajos. Pēc tam mēs nolasām temperatūru, mitrumu un barometrisko spiedienu no sensora un nosūtām datus uz Nextion displeju.
Lai atjauninātu displeju, mēs vienkārši nosūtām dažas komandas uz seriālo portu, piemēram:
void showConnectingIcon () {Serial.println (); String komanda = "weatherIcon.pic = 3"; Serial.print (komanda); endNextionCommand (); }
Nextion GUI sastāv no fona, dažām tekstlodziņām un attēla, kas mainās atkarībā no laika prognozes. Lūdzu, skatiet Nextion displeja apmācību, lai iegūtu vairāk informācijas. Ja vēlaties, varat ātri izveidot savu GUI un parādīt tajā vairāk lietu.
Kā vienmēr, jūs varat atrast projekta kodu, kas pievienots šai instrukcijai
7. darbība. Pēdējās domas un uzlabojumi
Kā redzat, šodien pieredzējis veidotājs var izveidot aizraujošus projektus tikai dažu stundu laikā, izmantojot dažas koda rindas un tikai trīs daļas! Šādu projektu nebūtu bijis iespējams realizēt pat pirms diviem gadiem!
Protams, tas ir tikai projekta sākums. Es vēlētos tam pievienot daudzas funkcijas, piemēram, grafikus, skārienfunkciju, kuras tagad trūkst, varbūt lielāku displeju un, protams, skaistu 3D drukātu korpusu. Es izveidošu arī labāku GUI un ikonas. Man ir dažas ļoti svaigas idejas, kuras īstenot!
Gribētu dzirdēt jūsu viedokli par šodienas projektu. Kādas funkcijas vēlaties, lai es pievienotu projektam? Vai jums patīk, kā tas izskatās? Kā jūs vēlaties redzēt tā attīstību? Lūdzu, ievietojiet savas idejas komentāru sadaļā zemāk; Man patīk lasīt tavas domas!
Otrā vieta bezvadu konkursā
Ieteicams:
Profesionāla laika stacija, izmantojot ESP8266 un ESP32 DIY: 9 soļi (ar attēliem)
Profesionāla meteoroloģiskā stacija, izmantojot ESP8266 un ESP32 DIY: LineaMeteoStazione ir pilnīga laika stacija, ko var savienot ar Sensirion profesionālajiem sensoriem, kā arī ar kādu Davis instrumenta sastāvdaļu (lietus mērītājs, anemometrs) Projekts ir paredzēts kā DIY laika stacija, bet tikai prasa
DIY laika stacija un WiFi sensora stacija: 7 soļi (ar attēliem)
DIY laika stacija un WiFi sensora stacija: Šajā projektā es jums parādīšu, kā izveidot laika staciju kopā ar WiFi sensoru staciju. Sensora stacija mēra vietējās temperatūras un mitruma datus un nosūta tos, izmantojot WiFi, uz meteoroloģisko staciju. Pēc tam meteoroloģiskā stacija parāda t
Telpas laika stacija, izmantojot Arduino un BME280: 4 soļi
Telpas meteoroloģiskā stacija, izmantojot Arduino un BME280: Iepriekš es koplietoju vienkāršu laika staciju, kas parādīja vietējās temperatūras un mitruma līmeni. Problēma bija tā, ka atjaunināšana prasīs laiku, un dati nebija precīzi. Šajā apmācībā mēs izveidosim iekštelpu laika monitoru
Laika stacija, izmantojot Wemos D1 Mini, BME280 un Sensate .: 6 soļi
Meteoroloģiskā stacija, izmantojot Wemos D1 Mini, BME280 un Sensate .: Iepriekšējos ziņojumos esmu dalījies dažādās metodēs, kā izveidot meteoroloģisko staciju. Ja neesat to pārbaudījis, šeit ir saite. Šajā pamācībā es parādīšu, kā izveidot vienkāršu laika staciju, izmantojot Wemos un IoT platformu ar nosaukumu Sensate
Laika stacija ar Arduino, BME280 un displeju, lai redzētu tendenci pēdējo 1-2 dienu laikā: 3 soļi (ar attēliem)
Laika stacijas ar Arduino, BME280 un displeju, lai redzētu tendenci pēdējo 1-2 dienu laikā: Sveiki! Šeit ir norādījumi par laika apstākļiem, kas jau ir ieviesti. Tie parāda pašreizējo gaisa spiedienu, temperatūru un mitrumu. Līdz šim viņiem trūka kursa prezentācijas pēdējo 1-2 dienu laikā. Šim procesam būtu