Satura rādītājs:

ESP32 WiFi laika stacija ar BME280 sensoru: 7 soļi (ar attēliem)
ESP32 WiFi laika stacija ar BME280 sensoru: 7 soļi (ar attēliem)

Video: ESP32 WiFi laika stacija ar BME280 sensoru: 7 soļi (ar attēliem)

Video: ESP32 WiFi laika stacija ar BME280 sensoru: 7 soļi (ar attēliem)
Video: Вездеход на гусеницах на ESP-32 Cam с камерой и с управлением по Wi-fi и через интернет 2024, Novembris
Anonim
Image
Image
ESP32 WiFi laika stacija ar BME280 sensoru
ESP32 WiFi laika stacija ar BME280 sensoru
ESP32 WiFi laika stacija ar BME280 sensoru
ESP32 WiFi laika stacija ar BME280 sensoru

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

Iegūstiet visas detaļas
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

Image
Image
ESP32
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

Image
Image
BME280 sensors
BME280 sensors

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 sensors
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 savienošana
Daļu savienošana
Daļu savienošana
Daļu savienošana
Daļu savienošana
Daļu savienoš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

Projekta kodekss
Projekta kodekss
Projekta kodekss
Projekta kodekss
Projekta kodekss
Projekta kodekss

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

Pēdējās domas un uzlabojumi
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!

Bezvadu konkurss
Bezvadu konkurss
Bezvadu konkurss
Bezvadu konkurss

Otrā vieta bezvadu konkursā

Ieteicams: