Turinys:

ESP32 „WiFi“oro stotis su BME280 jutikliu: 7 žingsniai (su nuotraukomis)
ESP32 „WiFi“oro stotis su BME280 jutikliu: 7 žingsniai (su nuotraukomis)

Video: ESP32 „WiFi“oro stotis su BME280 jutikliu: 7 žingsniai (su nuotraukomis)

Video: ESP32 „WiFi“oro stotis su BME280 jutikliu: 7 žingsniai (su nuotraukomis)
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Liepa
Anonim
Image
Image
ESP32 „WiFi“oro stotis su BME280 jutikliu
ESP32 „WiFi“oro stotis su BME280 jutikliu
ESP32 „WiFi“oro stotis su BME280 jutikliu
ESP32 „WiFi“oro stotis su BME280 jutikliu

Mieli draugai, kviečiame į kitą pamoką! Šioje pamokoje mes sukursime „Wi -Fi“įgalintą orų stoties projektą! Pirmą kartą kartu su „Nextion“ekranu naudosime naują įspūdingą ESP32 lustą.

Šiame vaizdo įraše mes tai padarysime. Tai dar vienas man žinomas orų stoties projektas, tačiau šį kartą mes naudojame naują ESP32 mikroschemą! Mes taip pat naudojame naują BME280 jutiklį, kuris matuoja temperatūrą, drėgmę ir barometrinį slėgį. Kai įjungiame projektą, jis prisijungia prie „WiFi“tinklo ir ketina nuskaityti mano vietos orų prognozę iš „openweathermap“svetainės. Tada jis parodys prognozę šiame 3,2 colio „Nextion“jutikliniame ekrane kartu su jutiklio rodmenimis! Rodmenys atnaujinami kas dvi sekundes, o orų prognozės - kas valandą! Kaip matote, šiame projekte mes naudojame naujausias technologijas, kurias šiandien turi gamintojas! Jei esate „pasidaryk pats“veteranas, šį projektą galite sukurti per penkias minutes.

Jei esate pradedantysis, prieš bandydami šį projektą turite pažiūrėti keletą vaizdo įrašų. Nuorodas į šiuos vaizdo įrašus rasite šioje instrukcijoje, nesijaudinkite.

Pradėkime!

1 žingsnis: Gaukite visas dalis

Gaukite visas dalis
Gaukite visas dalis

Norėdami sukurti šį projektą, mums reikia šių dalių:

  • ESP32 lenta ▶
  • BME280 I2C jutiklis ▶
  • 3,2 colio „Nextion“ekranas ▶
  • Maža duonos lenta ▶
  • Kai kurie laidai ▶

Projekto kaina yra apie 30 USD.

Vietoj ESP32 galėtume naudoti pigesnę ESP8266 mikroschemą, tačiau nusprendžiau naudoti ESP32, kad įgyčiau tam tikros patirties ir pažiūrėčiau, kas veikia, o kas ne.

2 žingsnis: ESP32

Image
Image
ESP32
ESP32

Tai pirmas projektas, kurį kada nors sukūriau su naujuoju ESP32 lustu.

Jei nesate su juo susipažinę, ESP32 lustas yra populiaraus ESP8266 lusto, kurį mes daug kartų naudojome praeityje, įpėdinis. ESP32 yra žvėris! Jis siūlo du 32 apdorojimo branduolius, kurie veikia 160 MHz dažniu, didžiulį atminties kiekį, „WiFi“, „Bluetooth“ir daugybę kitų funkcijų, kurių kaina yra apie 7 USD! Nuostabūs dalykai!

Prašome žiūrėti išsamią apžvalgą, kurią paruošiau šiai lentai. Pridedu vaizdo įrašą prie šios instrukcijos. Tai padės suprasti, kodėl ši mikroschema amžinai pakeis mūsų kūrimo būdą!

3 žingsnis: „Nextion“ekranas

Image
Image
BME280 jutiklis
BME280 jutiklis

Be to, tai yra pirmasis mano sukurtas projektas su „Nextion“jutikliniu ekranu.

„Nextion“ekranai yra naujo tipo ekranai. Jie turi savo ARM procesorių gale, kuris yra atsakingas už ekrano valdymą ir grafinės vartotojo sąsajos kūrimą. Taigi, mes galime juos naudoti su bet kokiu mikrovaldikliu ir pasiekti įspūdingų rezultatų.

Aš paruošiau išsamią instrukciją apie šį „Nextion“ekraną, kuriame išsamiai paaiškinta, kaip jie veikia, kaip juos naudoti ir kokie yra jų trūkumai. Ją galite perskaityti spustelėję čia:

4 žingsnis: BME280 jutiklis

BME280 jutiklis
BME280 jutiklis

BME280 yra naujas puikus „Bosch“jutiklis.

Iki šiol naudojau BMP180 jutiklį, kuris gali matuoti temperatūrą ir barometrinį slėgį. BME280 jutiklis gali matuoti temperatūrą, drėgmę ir barometrinį slėgį! Argi tai ne šaunu! Mums reikia tik vieno jutiklio, kad galėtume sukurti pilną oro stotį!

Be to, jutiklis yra labai mažas ir labai paprastas naudoti. Modulis, kurį šiandien naudosime, naudoja I2C sąsają, todėl labai lengva bendrauti su „Arduino“. Mes tik prijungiame maitinimą ir dar du laidus, kad jis veiktų.

Šiam jutikliui jau sukurta daug bibliotekų, todėl galime labai lengvai jį naudoti savo projektuose! Jutiklio kaina yra apie 5 USD. Ją galite gauti čia ▶

PASTABA: mums reikia BME280 jutiklio. Taip pat yra BMP280 jutiklis, kuris nesiūlo drėgmės matavimo. Būkite atsargūs užsakydami reikiamą jutiklį.

5 žingsnis: dalių prijungimas

Dalių sujungimas
Dalių sujungimas
Dalių sujungimas
Dalių sujungimas
Dalių sujungimas
Dalių sujungimas

Dalių sujungimas yra paprastas, kaip matote iš schemos.

Kadangi BME280 jutiklis naudoja I2C sąsają, mums reikia tik prijungti du laidus, kad galėtume bendrauti su ESP32. Aš prijungiau jutiklį prie kaiščių 26 ir 27. Teoriškai kiekvienas skaitmeninis ESP32 plokštės kaištis gali būti naudojamas su I2C išoriniais įrenginiais. Tačiau praktikoje sužinojau, kad kai kurie kaiščiai neveikė, nes jie yra skirti kitiems tikslams. 26 ir 27 kaiščiai puikiai veikia!

Norėdami siųsti duomenis į ekraną, prie ESP32 TX0 kaiščio turime prijungti tik vieną laidą. Turėjau taip sulenkti kaištį, kad prijungčiau ekrano laidą, nes ESP32 plokštė yra per didelė šiai duonos plokštei.

Prijungę dalis, turime įkelti kodą į ESP32, o GUI - į „Nextion“ekraną. Jei kyla problemų įkeliant programą į ESP32 plokštę, paspauskite „BOOT“mygtuką, paspaudę „Arduino IDE“įkėlimo mygtuką.

Norėdami įkelti „GUI“į „Nextion“ekraną, nukopijuokite „WeatherStation.tft“failą, kurį ketinu su jumis bendrinti, į tuščią SD kortelę. Įdėkite SD kortelę į SD kortelės angą, esančią ekrano gale. Tada įjunkite ekraną ir bus įkelta GUI. Tada išimkite SD kortelę ir vėl prijunkite maitinimą.

Sėkmingai įkėlus kodą, projektas prisijungs prie „WiFi“tinklo, jis gaus orų prognozę iš „openweathermap.org“svetainės ir parodys jutiklio rodmenis. Dabar pažvelkime į programinę projekto pusę.

6 žingsnis: projekto kodas

Projekto kodeksas
Projekto kodeksas
Projekto kodeksas
Projekto kodeksas
Projekto kodeksas
Projekto kodeksas

Norėdami išanalizuoti orų duomenis, mums reikia puikios „Arduino JSON“bibliotekos. Mums taip pat reikia jutiklio bibliotekos.

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

Dabar pažiūrėkime kodą.

Iš pradžių turime nustatyti savo „WiFi“tinklo SSID ir slaptažodį. Toliau turime įvesti nemokamą APIKEY iš operweathermap.org svetainės. Norėdami sukurti savo API raktą, turite užsiregistruoti svetainėje. Dabartinių orų duomenų ir prognozių gavimas yra nemokamas, tačiau svetainė siūlo daugiau galimybių, jei norite sumokėti šiek tiek pinigų. Toliau turime rasti savo vietos ID. Raskite savo vietą ir nukopijuokite ID, kurį galite rasti savo vietos URL.

Tada įveskite savo miesto ID kintamajame „CityID“. Be to, į šį kintamąjį įveskite savo miesto aukštį. Ši vertė reikalinga tiksliam jutiklio barometrinio slėgio rodmenims.

const char* ssid = "yourSSID"; const char* password = "yourPassword"; Eilutės miesto ID = "253394"; // Sparta, Graikija Styginė APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Aukštis Spartoje, Graikijoje

Dabar esame pasiruošę judėti toliau.

Iš pradžių mes inicijuojame jutiklį ir prisijungiame prie „WiFi“tinklo. Tada iš serverio prašome orų duomenų.

Gauname atsakymą su orų duomenimis JSON formatu. Prieš siunčiant duomenis į JSON biblioteką, rankiniu būdu ištrinu kai kuriuos simbolius, kurie man sukėlė problemų. Tada JSON biblioteka perima ir mes galime lengvai išsaugoti mums reikalingus duomenis kintamuosiuose. Po to, kai išsaugojome duomenis kintamuosiuose, viskas, ką turime padaryti, tai parodyti juos ekrane ir palaukti valandą prieš paprašant naujų duomenų iš serverio. Vienintelė informacija, kurią pateikiu, yra orų prognozė, tačiau, jei norite, galite pateikti daugiau informacijos. Čia viskas išsaugota kintamaisiais. Tada iš jutiklio nuskaitome temperatūrą, drėgmę ir barometrinį slėgį ir siunčiame duomenis į „Nextion“ekraną.

Norėdami atnaujinti ekraną, mes tiesiog siunčiame kai kurias komandas į nuoseklųjį prievadą:

void showConnectingIcon () {Serial.println (); Styginių komanda = "weatherIcon.pic = 3"; Serial.print (komanda); endNextionCommand (); }

„Nextion“GUI sudaro fonas, kai kurie teksto laukeliai ir paveikslėlis, kuris keičiasi priklausomai nuo orų prognozės. Daugiau informacijos rasite „Nextion“ekrano mokymo programoje. Jei norite, galite greitai sukurti savo GUI ir joje rodyti daugiau dalykų.

Kaip visada, projekto kodą galite rasti prie šios instrukcijos

7 žingsnis: paskutinės mintys ir patobulinimai

Galutinės mintys ir patobulinimai
Galutinės mintys ir patobulinimai

Kaip matote, šiandien patyręs kūrėjas gali sukurti įdomius projektus vos per kelias valandas su keliomis kodo eilutėmis ir tik trimis dalimis! Tokio projekto būtų buvę neįmanoma įgyvendinti net prieš dvejus metus!

Žinoma, tai tik projekto pradžia. Norėčiau pridėti daug funkcijų, tokių kaip grafikai, jutiklinės funkcijos, kurių dabar trūksta, galbūt didesnis ekranas ir, žinoma, gražiai atrodantis 3D spausdintas gaubtas. Taip pat sukursiu geriau atrodančią GUI ir piktogramas. Turiu labai šviežių idėjų, kurias reikia įgyvendinti!

Norėčiau išgirsti jūsų nuomonę apie šiandienos projektą. Kokias funkcijas norite pridėti prie projekto? Ar jums patinka, kaip tai atrodo? Kaip norite matyti, kaip ji vystosi? Prašome paskelbti savo idėjas žemiau esančiame komentarų skyriuje; Man patinka skaityti tavo mintis!

Belaidžio ryšio konkursas
Belaidžio ryšio konkursas
Belaidžio ryšio konkursas
Belaidžio ryšio konkursas

Antroji vieta belaidžio ryšio konkurse

Rekomenduojamas: