Talaan ng mga Nilalaman:

ESP32 Weather Station Solar Powered: 9 Mga Hakbang
ESP32 Weather Station Solar Powered: 9 Mga Hakbang

Video: ESP32 Weather Station Solar Powered: 9 Mga Hakbang

Video: ESP32 Weather Station Solar Powered: 9 Mga Hakbang
Video: Advanced ESP32 Internet Weather Station with 5 day Forecast 2024, Hunyo
Anonim
Image
Image
Ang ESP32 Weather Station Solar Powered
Ang ESP32 Weather Station Solar Powered
Ang ESP32 Weather Station Solar Powered
Ang ESP32 Weather Station Solar Powered

Sa tutorial na ito magtatayo kami ng isang proyekto ng istasyon ng panahon na pinagana ng WiFi.

Ang target ay upang magdisenyo ng istasyon ng Panahon na may halos lahat ng mga posibleng feathure:

  • Ipakita ang kasalukuyang mga kundisyon, oras, temperatura, halumigmig, presyon
  • Ipakita ang forecast para sa mga susunod na araw
  • Mag-update sa hangin
  • Itinayo sa web site para sa pagsasaayos at muling pagkilala sa data
  • Mag-upload ng data sa cloud para sa mga istatistika ng kasaysayan
  • Isinama sa Aple Home Kit o MQTT
  • Ang Indepede Accu ay pinalakas ng posibleng recharge o kumonekta sa solar panel

Hindi ako maaaring magdagdag ng higit pa at hindi mas maraming imahinasyon kung ano pa ang dapat o maaari

Hakbang 1: Mga Bahagi Alin ang Kinakailangan

Mga Bahagi Alin ang Kinakailangan
Mga Bahagi Alin ang Kinakailangan
Mga Bahagi Alin ang Kinakailangan
Mga Bahagi Alin ang Kinakailangan
Mga Bahagi Alin ang Kinakailangan
Mga Bahagi Alin ang Kinakailangan
  • ESP32 (Gumamit ako ng dev module)
  • 2.8 "240x320 TFT LCD SPI ILI9341
  • Kaso ng plastik
  • 3 x 18650 Accu
  • Weather sensor BME280 upang sukatin ang Temperatura, Humidity at Pressure
  • Module ng USB lithium charger
  • DC-DC hakbang UP18650
  • may hawak ng baterya (3pc)
  • HC-SR505 Motion detector
  • 220 risistor
  • 2x 10 kOm resistors
  • Maaaring magamit ang TIP120 NPN transistor (Darlington) sa anumang iba pang katugma
  • Mga ButtonWires, switch, solder board ….

Hakbang 2: Mga Kable at Assembling

Mga Kable at Assembling
Mga Kable at Assembling
Mga Kable at Assembling
Mga Kable at Assembling
Mga Kable at Assembling
Mga Kable at Assembling
Mga Kable at Assembling
Mga Kable at Assembling

Ang unang hakbang ay ang pagtitipon ng mga kapangyarihan sa istasyon.

Hinati ko ang plastic case sa dalawang pars, isa sa mga ito ang ginamit para sa baterya, switch, USB charger, at DC-DC na hakbang patungo sa bahaging ito inilalagay ko ang may hawak ng baterya at gumawa ng mga bintana para sa switch at usb charger. Magkaroon ng kamalayan sa module ng charger ng usb medyo nag-iiba kung gayon nagamit ko ang plate ng alluminium at inilagay ang USB charger dito gamit ang kola ng Star 922.

Pangalawang hakbang ay ang pagtitipon ng mga bahagi ng mga tagakontrol.

Tingnan ang mga diagram ng mga kable kung paano ito dapat na konektado

Gumamit ako ng Bread board para sa hangaring ito sa mga sumusunod na hakbang

  • Solder ESP32 dev board
  • Panghinang na kalasag upang mapanatili ang pagpapakita ng TFT
  • Maghinang ng iba pang mga elektronikong sangkap: BME280, resistors, pindutan
  • Mga panghinang na kable sa pagitan ng mga bahagi ayon sa diagram

Pangatlong hakbang ay ihanda ang pag-mount ng board ng tinapay sa pangalawang bahagi ng plastic case. Na-print ko sa aking 3d printer ang dalawang mga bar, i-mount ang mga ito sa bredboard ng mga turnilyo at gumawa ng hugis-parihaba na pagputol para sa display screen.

Nagdikit ako ng mga plastik na bar na sumusuporta sa katawan ng plastic case. Ngayon kapag ang pandikit ay tuyo, ang taksi ng board board ay maalis sa pamamagitan ng mga turnilyo.

Susunod na hakbang ay:

  • Mga panghinang na kable para sa mapagkukunan ng Power
  • Mga panghinang na kable para sa katayuan ng boltahe ng baterya
  • Solder at i-mount ang paggalaw ng paggalaw

Pangwakas na hakbang:

  • setup DC-DC converter sa pamamagitan ng pag-tunning ng output voltage 5v
  • ikonekta ang dalawang bahagi ng station controller sa lakas: mga wire ng kuryente at pagbabasa ng boltahe

Para sa mga detektor ng paggalaw at pindutan nagawa ko ang isang karagdagang mga butas sa gilid ng mukha.

Hakbang 3: Pag-upload ng Firmware sa ESP32

Para sa proyektong ito Gumamit ako ng unibersal na software, na binuo ng aking sarili

Mangyaring tingnan ang pahina ng github na ESPHomeController. Naglalaman ito ng buong tagubilin kung paano mag-ipon at mag-setup.

! Kung hindi ka pamilyar sa pagtitipon at ang Arduino ay may isang hakbang sa pagtingin sa Pag-upload ng handa na firmware

Sa sandaling mag-upload ka ng firmware sa unang pagkakataon ay magsisimula ang ESP32 sa configuartion mode (Access Point mode)

Dapat mong i-configure ang mga ito. Para sa layuning ito buksan sa anumang listahan ng aparato ng magagamit na WiFi. Hanapin ang HomeController at kumonekta dito. Ang captive portal ay dapat na awtomatikong magsimula. Kung hindi ipasok sa iyong browser url: 192.168.4.1 at makikita mo ang screen ng pagsasaayos

Sundin ang tagubilin at i-configure ang mga kredensyal ng WiFi sa iyong WiFi network.

Magre-restart ang ESP pagkatapos nito bilang WiFi client at makakonekta sa iyong Wifi.

Tulad ng nangyari sson firts na koneksyon awtomatiko nitong mai-mount ang file ng Spiff file system at i-download ang mga kinakailangang file para sa web portal:

  • index.html
  • filebr gallery.html
  • js / bundle.min.js.gz

Nangyayari ang pag-download mula sa https://github.com/Yurik72/ESPHomeController/tree/… folder

Ngayon ay maaari mong makita ang nilalaman ng file sa pamamagitan ng web browser. para dito dapat mo na ngayong ip address ng iyong ESP32

Mahahanap mo ito sa pamamagitan ng isa sa mga sumusunod na paraan:

  • Paggamit ng serial port monitor upang makita ang isang mga tala ng ESP32
  • Paggamit ng anumang tcp scanner upang i-scan ang iyong mga aparato sa network
  • Pindutin ang isang pindutan sa istasyon ng panahon at makikita mo ang impormasyon ng system

Ilagay sa pag-browse https://192.168.0. XX/browse at makikita mo ang isang listahan ng file ng iyong ESP

(Ang 192.168.0. XX ay IP address ng iyong aparato

Para sa pangwakas na pag-tune kailangan mong maghanda ng mga file ng pagsasaayos.

Hakbang 4: Pag-upload ng Ready Firmware

Pag-upload ng Ready Firmware
Pag-upload ng Ready Firmware

Ang seksyong ito ay espesyal para sa pandinig na hindi makagawa ng firmware ng iyong sarili. Kailangan mo lang i-upload ang "handa" na firmware

1. Donwload flash mga tool sa pag-upload mula sa pahinang ito

2. Mag-download ng naka-attach (i-extract mula sa mga archive) na mga file ng HomeController.bin at bootloader_qio_80m.bin sa iyong hard drive

3. Simulan ang tool sa pag-download ng ESP32 at ipasok ang mga halaga ayon sa screenshot

4. Pindutin ang pagsisimula

Hakbang 5: Pag-configure

Bago simulan ang paghahanda ng pagsasaayos kailangan mo:

  1. Lumikha ng iyong channel sa bagay na bagay at susi para sa iyong channel. Maghanda ng 4 na patlang at wastong pangalanan ang mga ito Temperatura, Humidity, Pressure, Boltahe
  2. Magrehistro sa Weather.com upang makuha ang iyong api key

Kailangan ang Thingspeak upang mai-upload ang iyong data at subaybayan ang mga uso at halaga

Kailangan ang panahon upang makakuha ng data ng pagtataya.

Ok, sa wakas kailangan mo ng lumikha ng services.json file na may sumusunod na nilalaman

[{"service": "TimeController", "name": "Oras", "pinagana": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp, true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr": - 3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "pinagana": totoo, "agwat": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & unit = m & wika = en -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," pinagana ": totoo," agwat ": 500}, {" pinagana ":" totoo "," agwat ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "pinagana": totoo, "agwat": 1200000, "halaga": [1, 1, 1, 0, 0, 0, 0], "apiKey": "bagaypea kapi "}, {" pinagana ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [27]}]

! Palitan po

  • bagaypeakapi kasama ang iyong mga bagay na bagay keype api
  • Weatherapi kasama ang iyong key ng panahon api
  • geocode kasama ang iyong lokasyon kung saan nais mong makakuha ng pagtataya

Kaysa maghanda ng pangalawang file triggers.json

[{"type": "BMEToWeatherDisplay", "source": "BME", "patutunguhan": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Oras", "patutunguhan": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," patutunguhan ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," patutunguhan ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "patutunguhan": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "source": "LDR", "patutunguhan": "ThingSpeak", "ch": 4}]

Ang parehong mga file ay dapat na naka-uplode sa root ng esp.

Maaari mo itong gawin sa pamamagitan ng browser https://192.168.0. XX/browse, kung saan ang https://192.168.0. XX ay IP adress ng iyong aparato

Matapos ang pag-upload ng ESP ay dapat na muling simulang at lahat ay tapos na nang tama. Ipapakita ni Esp ang tamang screen tulad ng larawan at video sa itaas

Hakbang 6: Pag-tune at Pagkonsumo ng Lakas

Pag-tune at Pagkonsumo ng Lakas
Pag-tune at Pagkonsumo ng Lakas

Ginagamit ko ang aking aparato na may koneksyon sa Solar Panel at upang matiyak na maaari itong gumana nang "walang hanggan"

mahalaga ang pagkonsumo ng kuryente at pagkatapos ng maraming eksperimento ay gumamit ako ng dalawang pangunahing mga trick

Bawasan ang pagkonsumo ng bacground LED ng TFT screen

Ayon sa pagsukat ay kumakain ito ng 15-20 mA (maraming) samakatuwid nagamit ko ang mga taktika sa Motion detector. Gumagawa ito ng perpektong Motion detector na makilala ang anumang pagtuklas hanggang sa 8-10 metro at itaas ang boltahe sa signal cable. Ito ay ang pagbubukas ng isang transistor at backround Led na makatanggap ng isang lakas. Kadalasan ang detektor ay panatilihin ang estado na ito hanggang sa 10 seg na kung saan ay higit pa sa nais na makita ang monitor, ngunit kung magpapatuloy ka sa paggalaw ang signal ay mataas pa rin at ang LED ay ilaw.

Ang ganitong diskarte ay nagbibigay sa akin ng isang malaking ekonomiya, nang walang karagdagang mga epekto, hindi ako nakakatugon sa anumang problema upang makita ang aking screen kapag nais ko

2. Bawasan ang pagkonsumo ng kuryente ng ESP32

Kapag ang ESP ay konektado sa WiFi, patuloy itong eatinmg 7-10 mA, pinag-uusapan ko ang pare-pareho ang oras, hindi startup at unang koneksyon. Maaari itong tanggapin kung palagi mong nakikita ang aktwal na petsa at oras, i-access ang iyong system mula sa Apple home kit

Para sa aking solar power sa taglamig oras din ito upang tumugma sa mga gumagana nang walang mga mapagkukunang addiiotnal power, Samakatuwid nagpasya akong pana-panahong ilagay ang ESP32 sa mode ng pagtulog (ang pagkain ay mas mababa sa 1 mA). Ito ay Ok sa akin, halimbawa ang ESP ay natutulog ng 20 minuto, kaysa sa paggising, ang refresh screen (tunay na data at pagtataya) ay nagpapadala ng data sa bagay na bagay at bumalik sa mode ng pagtulog muli

Ang mga minus ay:

  • Nagpapakita ang screen ng panahon ng hindi napapanahong mga halaga ng oras
  • Ang istasyon ay hindi maaaring makuha mula sa browser at Apple Home Kit sa oras ng pagtulog

Nasa sa iyo ang magpasya kung ano ang mas mahalaga, maaari mong simpleng i-configure muli iyon.

Mangyaring magkaroon ng isang hitsura services.json file at linya

[{"service": "TimeController", "name": "Oras", "pinagana": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," nagbibigay-daan sa pagtulog ": totoo," type ng pagtulog ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"nagbibigay-daan sa pagtulog": totoo ay nagbibigay-daan sa pagtulog sa lahat, kung ilagay doon maling o alisin ang paramater (false ay default) hindi kailanman makakatulog ang ESP

"sleepinterval": 900000 ito ay millis, o 15 min, nangangahulugang tuwing 15 minutong gagising ang ESP at gagawa ng mga tauhang kailangan

Kaya, ngayon ang lahat ay madaling maglaro alinsunod sa lakas

Hakbang 7: Pag-tune ng Mga Sensor

Upang i-minimize ang epekto ng panloob na pag-init sa sensor ng temperatura ng BME280

Gumawa ako ng ilang tubo sa paligid ng sensor at mga butas. Ang Hovewer sa aking mode kapag ang normal na LED ay naka-patay at ang ESP ay natutulog ay hindi masyadong nai-import. Sa ibang mga kaso ang sensor ng BME280 ay dapat lumipat sa kung saan upang maibukod ang impluwensya ng panloob na pag-init. Anumang kung gaano kaliliit na impluwensya ang nakita ko samakatuwid mayroong dalawang mga parameter upang mabayaran

"hum_corr": 10.0

na nangangahulugang maidaragdag ang mga halagang iyon pagkatapos ng pagsukat

Pangalawa ay i-calibrate ang pagsukat ng boltahe ng baterya, {"pinagana": "totoo", "agwat": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0.0

"cvalmax": 7.2

ay para sa mga hangaring ito, ang boltahe ng beca ay sinusukat pagkatapos ng mga divider ng resistors at ihinahambing sa 3.3 V, na naglalaro ng halagang cvalmax maaari mong maabot ang eksaktong boltahe na pag-tune sa iyong multimetr na halaga

Hakbang 8: Pagdaragdag ng Device sa Apple Home Kit

Pagdaragdag ng Device sa Apple Home Kit
Pagdaragdag ng Device sa Apple Home Kit

Panghuli kapag gumagana nang maayos ang iyong aparato maaari itong maidagdag sa Apple Home Kit at makikita mo ito

mga halaga ng sensor sa home screen ng Apple.

Una kailangan mo ng pag-restart ng aparato, tulad ng pagsisimula ng aparato ay hindi ito matutulog ng 20 minuto ay higit pa sa inaasahan

Kaysa sa buksan ang Home Kit App sa iyong iOS device, at pumili o lumikha ng bagong Home1. Pindutin ang Idagdag (+)

2. Piliin ang Magdagdag ng accessory.

3. Pindutin ang Wala akong Code o Hindi ma-scan (karagdagang sa pag-scan ay idadagdag)

4. kung ang lahat ay maayos dapat mong makita ang iyong bagong esp aparato sa isang listahan (tingnan ang larawan)

5. Piliin ang aparato at kumpirmahin ang pagdaragdag nang walang opisyal na sertipikasyon

6. I-type ang password 11111111

7. Iyon Lahat! Dapat mong makita ang aparato na matagumpay na naipares, kung hindi man simulan muli ang proseso ng pagpapares..

Batay sa setting ng thid makikita mo ang dalawang mga aparato sa Apple

1. Temp sensor & Hum sensor, pagpunta sa malalim ito ay magpapakita ng mga halaga sa buong screen

2. Light sensor:) Sa totoo lang ay maipakita ng Apple ang ligth Ambiance, ngunit hindi Boltahe, samakatuwid ang boltahe ng baterya ay ipinapakita sa Lux

Hakbang 9: OTA: Sa Pag-update ng Air

Bago simulan ang anumang pag-update ay mas mahusay na i-reboot ang ESP32, tulad ng nabanggit bago ito ay hindi matulog muna 20 minuto

Mayroong dalawang posibilidad na mag-update

  1. Ang pag-configure gamit ang https://192.168.0. XX/br gallery maaari mong ma-access ang iyong file system sa ESP at baguhin ang mga file ng pagsasaayos
  2. Maaari mong kumpletong i-update ang firmware. para sa mga hangaring ito kailangan mo munang lumikha ng bago. Maaari itong magawa sa pamamagitan ng Arduino o Visual Studio IDE. Pagkatapos mag-type sa browser https://192.168.0. XX/update, piliin ang iyong firmware at pindutin ang pag-update. Maghintay hanggang matapos ang proseso at makakakuha ka ng OK na tugon, kung hindi man ay ulitin muli ang hakbang

Inirerekumendang: