Talaan ng mga Nilalaman:
- Hakbang 1: Kunin ang Lahat ng Mga Bahagi
- Hakbang 2: Ang ESP32
- Hakbang 3: Ang Pagpapakita ng Nextion
- Hakbang 4: BME280 Sensor
- Hakbang 5: Pagkonekta sa Mga Bahagi
- Hakbang 6: Ang Code ng Project
- Hakbang 7: Pangwakas na Mga Saloobin at Pagpapabuti
Video: ESP32 WiFi Weather Station Na may isang BME280 Sensor: 7 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Minamahal na mga kaibigan maligayang pagdating sa isa pang tutorial! Sa tutorial na ito magtatayo kami ng proyekto ng istasyon ng panahon na pinagana ang aWiFi! Gagamitin namin ang bago, kahanga-hangang chip ng ESP32 sa kauna-unahang pagkakataon kasama ang isang pagpapakita ng Nextion.
Sa video na ito, gagawin namin ito. Isa pa itong proyekto sa istasyon ng panahon na alam ko, ngunit sa pagkakataong ito ay ginagamit namin ang bagong chip ng ESP32! Gumagamit din kami ng bagong sensor ng BME280 na sumusukat sa temperatura, halumigmig, at presyon ng barometric. Kapag pinapagana namin ang proyekto, kumokonekta ito sa WiFi network, at kukunin nito ang pagtataya ng panahon para sa aking lokasyon mula sa openweathermap website. Pagkatapos ay ipapakita nito ang forecast sa 3.2 Nextion Touch Display na ito kasama ang mga pagbasa mula sa sensor! Ang mga pagbasa ay na-update bawat dalawang segundo at ang taya ng panahon bawat oras! Tulad ng nakikita mo, sa proyektong ito ginagamit namin ang pinakabagong mga teknolohiyang magagamit sa isang gumagawa ngayon! Kung ikaw ay isang beterano ng DIY, maaari mong buuin ang proyektong ito sa loob ng limang minuto.
Kung ikaw ay isang nagsisimula, kailangan mong manuod ng ilang mga video bago subukan ang proyektong ito. Maaari kang makahanap ng mga link sa video na ito sa Instructable na ito, huwag magalala.
Magsimula na tayo!
Hakbang 1: Kunin ang Lahat ng Mga Bahagi
Upang maitayo ang proyektong ito kailangan namin ang mga sumusunod na bahagi:
- Isang Lupon ng ESP32 ▶
- Isang sensor ng BME280 I2C ▶
- Isang 3.2 "Pagpapakita ng Nextion ▶
- Isang Maliit na Breadboard ▶
- Ang ilang mga wire ▶
Ang gastos ng proyekto ay humigit-kumulang na 30 $.
Sa halip na ang ESP32, maaari naming gamitin ang mas murang ESP8266 chip, ngunit nagpasya akong gamitin ang ESP32 upang makakuha ng ilang karanasan dito at makita kung ano ang gumagana at kung ano ang hindi.
Hakbang 2: Ang ESP32
Ito ang kauna-unahang proyekto na itinayo ko kasama ang bagong chip ng ESP32.
Kung hindi ka pamilyar dito, ang ESP32 chip ay ang kahalili ng sikat na ESP8266 chip na ginamit namin ng maraming beses sa nakaraan. Ang ESP32 ay isang hayop! Nag-aalok ito ng dalawang 32 na pagproseso ng mga core na nagpapatakbo sa 160MHz, isang napakalaking halaga ng memorya, WiFi, Bluetooth at maraming iba pang mga tampok na may halagang 7 $! Kamangha-manghang bagay!
Mangyaring panoorin ang detalyadong pagsusuri na inihanda ko para sa board na ito. Inilakip ko ang video sa Instructable na ito. Makakatulong itong maunawaan kung bakit babaguhin ng chip na ito ang paraan ng paggawa natin ng mga bagay magpakailanman!
Hakbang 3: Ang Pagpapakita ng Nextion
Gayundin, ito ang unang proyekto na binubuo ko na may ipinakitang touch na Nextion.
Ang mga ipinapakita na Nextion ay mga bagong uri ng pagpapakita. Mayroon silang sariling ARM processor sa likuran na responsable para sa pagmamaneho ng display at paglikha ng interface ng grapiko na gumagamit. Kaya, maaari naming gamitin ang mga ito sa anumang microcontroller at makamit ang kamangha-manghang mga resulta.
Naghanda ako ng isang detalyadong Nakagagabay tungkol sa display na Nextion na nagpapaliwanag nang malalim kung paano sila gumagana, kung paano gamitin ang mga ito at ang kanilang mga drawbacks. Maaari mo itong basahin sa pamamagitan ng pag-click dito:
Hakbang 4: BME280 Sensor
Ang BME280 sa isang bagong mahusay na sensor mula sa Bosch.
Sa ngayon ay gumagamit ako ng sensor ng BMP180 na maaaring masukat ang temperatura at presyon ng barometric. Maaaring sukatin ng sensor ng BME280 ang temperatura, halumigmig, at presyon ng barometric! Ang astig nito! Kailangan lang namin ng isang sensor upang makabuo ng isang kumpletong istasyon ng panahon!
Bilang karagdagan sa na, ang sensor ay napakaliit ng laki at napakadaling gamitin. Ang module na gagamitin natin ngayon ay gumagamit ng interface ng I2C kaya't napakadali ng pakikipag-usap sa Arduino. Tanging kumokonekta lamang kami ng kuryente at dalawa pang mga wire upang ito ay gumana.
Marami nang mga library na binuo para sa sensor na ito upang maaari natin itong magamit sa aming mga proyekto nang napakadali! Ang gastos ng sensor ay tungkol sa 5 $. Maaari mo itong makuha dito ▶
TANDAAN: Kailangan namin ang sensor ng BME280. Mayroon ding sensor na BMP280 na hindi nag-aalok ng pagsukat ng halumigmig. Mag-ingat upang mag-order sa sensor na kailangan mo.
Hakbang 5: Pagkonekta sa Mga Bahagi
Ang koneksyon ng mga bahagi ay prangka tulad ng nakikita mo mula sa diagram ng eskematiko.
Dahil ang sensor ng BME280 ay gumagamit ng interface ng I2C, kailangan lamang naming ikonekta ang dalawang wires upang makipag-usap sa ESP32. Inilakip ko ang sensor sa Pins 26 at 27. Sa teorya, ang bawat digital pin ng board ng ESP32 ay maaaring magamit sa mga peripheral ng I2C. Sa pagsasanay bagaman, nalaman ko na ang ilang mga pin ay hindi gumana sapagkat nakalaan ang mga ito para sa ibang gamit. Ang mga 26 at 27 ay mahusay na gumana!
Upang magpadala ng data sa display, kailangan lamang naming ikonekta ang isang kawad sa TX0 pin ng ESP32. Kinailangan kong yumuko ang pin na tulad nito upang ikonekta ang babaeng kawad ng display dahil ang ESP32 board ay masyadong malaki para sa breadboard na ito.
Matapos ikonekta ang mga bahagi, kailangan naming i-load ang code sa ESP32, at kailangan nating i-load ang GUI sa display na Nextion. Kung nagkakaproblema ka sa pag-upload ng programa sa board ng ESP32, pindutin nang matagal ang pindutan ng BOOT pagkatapos pindutin ang upload button sa Arduino IDE.
Upang mai-load ang GUI sa display ng Nextion, kopyahin ang WeatherStation.tft file na ibabahagi ko sa iyo sa isang walang laman na SD card. Ilagay ang SD card sa puwang ng SD card sa likuran ng display. Pagkatapos ay i-power up ang display, at mai-load ang GUI. Pagkatapos alisin ang SD card at ikonekta muli ang kuryente.
Matapos matagumpay na mai-load ang code ang proyekto ay makakonekta sa WiFi network, makukuha nito ang taya ng panahon mula sa openweathermap.org website, at ipapakita nito ang mga pagbasa mula sa sensor. Tingnan natin ngayon ang bahagi ng software ng proyekto.
Hakbang 6: Ang Code ng Project
Upang mai-parse ang data ng panahon, kailangan namin ng mahusay na Arduino JSON library. Kailangan din namin ng isang silid-aklatan para sa sensor.
? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:
Tingnan natin ang code ngayon.
Sa una, kailangan naming itakda ang SSID at ang password ng aming WiFi network. Susunod, kailangan nating ipasok ang libreng APIKEY mula sa operweathermap.org website. Upang lumikha ng iyong sariling API key, kailangan mong mag-sign up sa website. Ang pagkuha ng kasalukuyang data ng panahon at pagtataya ay libre, ngunit ang website ay nag-aalok ng maraming mga pagpipilian kung nais mong magbayad ng kaunting pera. Susunod, kailangan nating hanapin ang id ng aming lokasyon. Hanapin ang iyong lokasyon at kopyahin ang ID na maaaring matagpuan sa URL ng iyong lokasyon.
Pagkatapos ay ipasok ang id ng iyong lungsod sa variable ng CityID. Gayundin, ipasok ang altitude ng iyong bayan sa variable na ito. Ang halagang ito ay kinakailangan para sa tumpak na pagbabasa ng presyon ng barometric mula sa sensor.
const char * ssid = "yourSSID"; const char * password = "yourPassword"; String CityID = "253394"; // Sparta, Greece String APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Altitude sa Sparta, Greece
Ngayon handa na kaming magpatuloy.
Sa una, pinasimulan namin ang sensor, at kumokonekta kami sa WiFi Network. Pagkatapos ay humihiling kami ng data ng panahon mula sa server.
Nakakatanggap kami ng tugon kasama ang data ng panahon sa format na JSON. Bago ipadala ang data sa JSON library, manu-manong tinanggal ko ang ilang mga character na nagdudulot sa akin ng mga problema. Pagkatapos ang JSON library ay pumalit, at madali naming mai-save ang data na kailangan namin sa mga variable. Matapos naming mapanatili ang data sa mga variable, ang kailangan lamang gawin ay ipakita ang mga ito sa screen at maghintay ng isang oras bago humiling ng bagong data mula sa server. Ang tanging impormasyon na ipinakita ko lamang ay ang pagtataya ng panahon, ngunit maaari kang magpakita ng karagdagang impormasyon kung nais mo. Ang lahat dito ay nai-save sa mga variable. Pagkatapos ay nabasa namin ang temperatura, ang halumigmig at ang presyon ng barometric mula sa sensor at ipinapadala namin ang data sa display na Nextion.
Upang mai-update ang display, nagpapadala lamang kami ng ilang mga utos sa serial port na tulad nito:
walang bisa ang showConnectingIcon () {Serial.println (); String command = "weatherIcon.pic = 3"; Serial.print (utos); endNextionCommand (); }
Ang Nextion GUI ay binubuo ng isang background, ilang mga textboxes at larawan na nagbabago depende sa pagtataya ng panahon. Mangyaring panoorin ang tutorial sa pagpapakita ng Nextion para sa karagdagang impormasyon. Maaari mong mabilis na idisenyo ang iyong sariling GUI kung nais mo at ipakita ang maraming mga bagay dito.
Tulad ng dati maaari mong hanapin ang code ng proyekto na naka-attach sa Instructable na ito
Hakbang 7: Pangwakas na Mga Saloobin at Pagpapabuti
Tulad ng nakikita mo, ang isang may karanasan na gumagawa ngayon ay maaaring bumuo ng mga nakagaganyak na proyekto sa loob lamang ng ilang oras na may ilang mga linya ng code at tatlong bahagi lamang! Ang isang proyektong tulad nito ay imposibleng magawa kahit dalawang taon na ang nakakalipas!
Syempre, simula pa lang ito ng proyekto. Nais kong magdagdag ng maraming mga tampok dito, tulad ng mga graph, pindutin ang pag-andar na nawawala ngayon, marahil isang mas malaking display at syempre isang magandang hitsura na naka-print na enclosure ng 3D. Magdidisenyo din ako ng isang mas mahusay na naghahanap ng GUI at mga icon. Mayroon akong ilang mga sariwang ideya na ipapatupad!
Gusto kong marinig ang iyong opinyon tungkol sa proyekto ngayon. Anong uri ng mga tampok ang nais mong idagdag ko sa proyekto? Gusto mo ba ng hitsura nito? Paano mo nais na makita itong nagbabago? Mangyaring i-post ang iyong mga ideya sa seksyon ng mga komento sa ibaba; Gustung-gusto kong basahin ang iyong mga saloobin!
Runner Up sa Wireless Contest
Inirerekumendang:
Fanair: isang Weather Station para sa Iyong Kwarto: 6 Mga Hakbang (na may Mga Larawan)
Fanair: isang Weather Station para sa Iyong Silid: Maraming mga paraan upang malaman ang kasalukuyang panahon, ngunit pagkatapos ay alam mo lamang ang lagay ng panahon sa labas. Paano kung nais mong malaman ang panahon sa loob ng iyong bahay, sa loob ng isang tukoy na silid? Iyon ang tinatangka kong lutasin sa proyektong ito. Gumagamit ang Fanair ng mul
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na sa Tamang Daan: 8 Hakbang (na may Mga Larawan)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na ang Tamang Daan: Matapos ang 1 taon ng matagumpay na operasyon sa 2 magkakaibang mga lokasyon binabahagi ko ang aking mga plano sa proyekto ng istasyon ng solar Powered na solar at ipinapaliwanag kung paano ito nabago sa isang system na maaaring mabuhay nang matagal panahon mula sa solar power. Kung susundin mo
DIY Weather Station at WiFi Sensor Station: 7 Hakbang (na may Mga Larawan)
DIY Weather Station & WiFi Sensor Station: Sa proyektong ito ipapakita ko sa iyo kung paano lumikha ng isang istasyon ng panahon kasama ang isang istasyon ng sensor ng WiFi. Sinusukat ng istasyon ng sensor ang lokal na data ng temperatura at kahalumigmigan at ipinapadala ito, sa pamamagitan ng WiFi, sa istasyon ng panahon. Ipinapakita ng istasyon ng panahon ang
Bumuo ng isang Apple HomeKit Temperature Sensor (BME280) Gamit ang isang RaspberryPI at isang BME280: 5 Hakbang
Bumuo ng isang Apple HomeKit Temperature Sensor (BME280) Gamit ang isang RaspberryPI at isang BME280: Naglalaro ako sa paligid ng mga IOT device sa huling ilang buwan, at nag-deploy ng halos 10 magkakaibang mga sensor upang subaybayan ang mga kondisyon sa paligid ng aking bahay at maliit na bahay. At orihinal kong sinimulan ang paggamit ng AOSONG DHT22 temperate halumigmig na sens
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Panahon ng Panahon ay Tugma): 5 Mga Hakbang (na may Mga Larawan)
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Weather Stations ay Tugma): Nang binili ko ang Acurite 5 sa 1 istasyon ng panahon nais kong masuri ang lagay ng panahon sa aking bahay habang wala ako. Nang makauwi ako at naayos ko ito napagtanto ko na dapat kong magkaroon ng display na konektado sa isang computer o bumili ng kanilang smart hub,