Mundarija:

Quyosh energiyali ESP32 ob -havo stantsiyasi: 9 qadam
Quyosh energiyali ESP32 ob -havo stantsiyasi: 9 qadam

Video: Quyosh energiyali ESP32 ob -havo stantsiyasi: 9 qadam

Video: Quyosh energiyali ESP32 ob -havo stantsiyasi: 9 qadam
Video: Quyosh energiyali zaryadka 2024, Iyun
Anonim
Image
Image
Quyosh energiyali ESP32 ob -havo stantsiyasi
Quyosh energiyali ESP32 ob -havo stantsiyasi
Quyosh energiyali ESP32 ob -havo stantsiyasi
Quyosh energiyali ESP32 ob -havo stantsiyasi

Ushbu qo'llanmada biz Wi -Fi orqali ishlaydigan ob -havo stantsiyasi loyihasini qurmoqchimiz.

Maqsad, deyarli barcha mumkin bo'lgan xususiyatlarga ega ob -havo stantsiyasini loyihalash:

  • Hozirgi sharoit, vaqt, harorat, namlik, bosimni ko'rsating
  • Keyingi kunlar uchun prognozni ko'rsating
  • Efirda yangilanish
  • Ma'lumotlarni konfiguratsiya qilish va namoyish qilish uchun veb -sayt o'rnatilgan
  • Tarix statistikasi uchun ma'lumotlarni bulutga yuklang
  • Aple Home Kit yoki MQTT bilan birlashtirilgan
  • Indepeded Accu mumkin quvvatlanish yoki quyosh paneliga ulanish

Men ko'proq va ko'proq tasavvur qo'sha olmayman, nima bo'lishi kerak yoki bo'lishi mumkin

1 -qadam: kerakli qismlar

Kerakli qismlar
Kerakli qismlar
Kerakli qismlar
Kerakli qismlar
Kerakli qismlar
Kerakli qismlar
  • ESP32 (men dev modulidan foydalanganman)
  • 2,8 dyuymli 240x320 TFT LCD SPI ILI9341
  • Plastik sumka
  • 3 x 18650 Accu
  • Harorat, namlik va bosimni o'lchash uchun BME280 ob -havo sensori
  • USB lityum zaryadlovchi moduli
  • DC-DC qadam UP18650
  • batareya ushlagichi (3 dona)
  • HC-SR505 harakat detektori
  • 220 Om qarshilik
  • 2x10 kOm rezistorlar
  • TIP120 NPN tranzistoridan (Darlington) boshqa har qanday mos keluvchi qurilmada foydalanish mumkin
  • ButtonWires, switch, lehim taxtasi ….

2 -qadam: simlarni o'rnatish va yig'ish

O'rnatish va ulash
O'rnatish va ulash
O'rnatish va ulash
O'rnatish va ulash
O'rnatish va ulash
O'rnatish va ulash
O'rnatish va ulash
O'rnatish va ulash

Birinchi qadam - stansiya quvvatlarini yig'ish.

Men plastik sumkani ikkita qismga ajratdim, ulardan biri batareya, kalit, USB zaryadlovchi va DC-DC uchun ishlatiladi, men bu qismga batareya ushlagichini qo'ydim va kalit va usb zaryadlovchining derazalarini yasadim. Bilingki, usb zaryadlovchi moduli juda zo'r, shuning uchun men alluminium plastinasidan foydalanganman va unga Star 922 elim yordamida USB zaryadlovchini qo'yganman.

Ikkinchi qadam - bu boshqaruv elementlarini yig'ish.

Ulanish sxemasiga qarang, uni qanday ulash kerak

Men bu maqsadda non taxtasini quyidagi amallar bilan ishlatganman

  • Lehimlash ESP32 ishlab chiqarish kartasi
  • TFT displeyini saqlash uchun lehim qalqoni
  • Boshqa elektron komponentlarni lehimlang: BME280, rezistorlar, tugmalar
  • Diagramma bo'yicha komponentlar orasidagi lehim simlari

Uchinchi qadam - plastmassa qutining ikkinchi qismiga non taxtasini o'rnatish. Men 3d printerimda ikkita chiziqni chop etdim, ularni vintlar bilan mahkamlagichga mahkamladim va displey uchun to'rtburchaklar kesib oldim.

Men plastmassa korpusining korpusiga tayanchlarni plastmassadan yopishtirdim. Endi elim quriganda, non taxta kabinasi vintlar bilan chiqariladi.

Keyingi qadam:

  • Quvvat manbai uchun lehim simlari
  • Batareya kuchlanish holati uchun lehim simlari
  • Harakat detektori va lehim

Yakuniy qadam:

  • chiqish voltajini 5v sozlash orqali shahar-shahar konvertorini sozlash
  • Stantsiya boshqaruvchisining ikkita qismini quvvat manbaiga ulang: elektr simlari va kuchlanish ko'rsatkichi

Harakat detektori va tugma uchun men yon tomonda qo'shimcha teshiklar qildim.

3 -qadam: Dasturiy ta'minotni ESP32 -ga yuklash

Ushbu loyiha uchun men o'zim ishlab chiqqan universal dasturlardan foydalandim

Iltimos, ESPHomeController github sahifasiga qarang. Bu erda kompilyatsiya va sozlash bo'yicha to'liq ko'rsatma mavjud.

! Agar siz kompilyatsiya va Arduino bilan tanish bo'lmasangiz, tayyor dasturiy ta'minotni yuklash bosqichiga qarang

Dasturiy ta'minotni birinchi marta yuklaganingizdan so'ng, ESP32 konfiguratsiya rejimida boshlanadi (kirish nuqtasi rejimi).

Siz ularni sozlashingiz kerak. Buning uchun mavjud Wi -Fi -ning har qanday qurilmalar ro'yxatini oching. HomeController -ni toping va unga ulaning. Asir portal avtomatik ravishda ishga tushishi kerak. Agar siz brauzer URL manziliga kirmasangiz: 192.168.4.1 va siz konfiguratsiya ekranini ko'rasiz

Ko'rsatmalarni bajaring va WiFi hisob ma'lumotlarini Wi -Fi tarmog'iga sozlang.

Shundan so'ng, ESP WiFi mijozi sifatida qayta boshlanadi va Wi -Fi tarmog'iga ulanadi.

Sson Firts ulanishi sodir bo'lganda, u avtomatik ravishda Spiffs fayl tizimini o'rnatadi va veb -portal uchun kerakli fayllarni yuklaydi:

  • index.html
  • filebrowse.html
  • js/bundle.min.js.gz

Yuklab olish https://github.com/Yurik72/ESPHomeController/tree/… jildidan amalga oshiriladi.

Endi siz veb -brauzer orqali fayl tarkibini ko'rishingiz mumkin. Buning uchun endi ESP32 -ning IP -manzilini ko'rsating

Siz uni quyidagi usullardan birida topishingiz mumkin:

  • ESP32 jurnallarini ko'rish uchun ketma -ket port monitoridan foydalanish
  • Tarmoq qurilmalarini skanerlash uchun har qanday tcp skaneridan foydalanish
  • Ob -havo stantsiyasidagi tugmani bosing va siz tizim haqida ma'lumotni ko'rasiz

Http: //192.168.0. XX/browse -ni ko'rib chiqing va siz ESP fayllar ro'yxatini ko'rasiz.

(192.168.0. XX - bu sizning qurilmangizning IP -manzili

Yakuniy sozlash uchun siz konfiguratsiya fayllarini tayyorlashingiz kerak.

4 -qadam: Tayyor dasturiy ta'minotni yuklash

Tayyor dasturiy ta'minot yuklanmoqda
Tayyor dasturiy ta'minot yuklanmoqda

Bu bo'lim maxsus dasturiy ta'minotni o'zingiz ishlab chiqmaydigan auditoriya uchun mo'ljallangan. Siz faqat "tayyor" dasturiy ta'minotni yuklashingiz kerak

1. Bu sahifadan flesh yuklash vositalarini yuklang

2. HomeController.bin va bootloader_qio_80m.bin biriktirilgan (arxivlardan ko'chirilgan) fayllarni qattiq diskka yuklab oling

3. ESP32 yuklab olish vositasini ishga tushiring va ekran tasviriga ko'ra qiymatlarni kiriting

4. Start tugmasini bosing

5 -qadam: Konfiguratsiya

Konfiguratsiyani tayyorlashni boshlashdan oldin sizga kerak:

  1. O'zingizning kanalingizni kalit so'zida yarating. 4 ta maydon tayyorlang va ularga to'g'ri nom bering: harorat, namlik, bosim, kuchlanish
  2. Api kalitini olish uchun Weather.com saytida ro'yxatdan o'ting

Ma'lumotlaringizni yuklash, tendentsiyalar va qadriyatlarni kuzatish uchun Thingspeak kerak

Ob -havo ma'lumotlarini olish uchun zarur.

Xo'sh, nihoyat, quyidagi tarkibga ega services.json faylini yaratish kerak

[{"xizmat": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp).org "," enablesleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}, {" service ":" BME280Controller "," name ":" BME "," yoqilgan ": true, "interval": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr":-3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "yoqilgan": rost, "interval": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & birliklari = m & til = uz -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "yoqilgan": rost, "interval": 1200000, "qiymat": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "begona o'tlar kapi "}, {" yoqilgan ": rost," interval ": 1," pin ":" "," xizmat ":" ButtonController "," ism ":" tugma "," pinlar ": [27]}]

! Iltimos, almashtiring

  • narsalar bilan gaplashish sizning appe kalitingiz bilan
  • ob -havo ma'lumoti sizning ob -havo kalitingiz bilan
  • bashorat qilishni istagan joylashuvingiz bilan geokod

Triggers.json ikkinchi faylini tayyorlang

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

Ikkala fayl ham esp ildiziga ko'tarilishi kerak.

Siz buni https://192.168.0. XX/browse brauzeri orqali qilishingiz mumkin, bu erda https://192.168.0. XX - qurilmangizning IP -manzili.

ESP -ni yuklagandan so'ng, uni qayta ishga tushirish kerak va hamma narsa to'g'ri bajarilgan. Esp yuqoridagi rasm va videodagi kabi to'g'ri ekranni ko'rsatadi

6 -qadam: ayyorlik va quvvat sarfi

Turing va quvvat sarfi
Turing va quvvat sarfi

Men qurilmamni quyosh paneliga ulangan holda ishlataman va uning "cheksiz" ishlashiga ishonch hosil qilaman.

Quvvat iste'moli muhim va bir necha tajribadan so'ng men ikkita asosiy fokusdan foydalandim

TFT ekranining asosiy LED sig'imini kamaytiring

O'lchovga ko'ra, u 15-20 mA (ko'p) yeydi, shuning uchun men Motion detektori bilan taktikani qo'lladim. U mukammal ishlaydi Harakat detektorlari har qanday aniqlanishni 8-10 metrgacha taniy oladi va signal kabelida kuchlanishni oshiradi. Bu tranzistorli teshiklar va orqa Led quvvat oladi. Odatda detektor bu holatni 10 soniyagacha ushlab turadi, bu monitorni ko'rish uchun etarli emas, lekin agar siz harakatni davom ettirsangiz, signal hali ham baland, LED esa yonadi.

Bunday yondashuv menga katta iqtisodni beradi, qo'shimcha effektlarsiz, men xohlagan vaqtda ekranimni ko'rish uchun hech qanday muammoga duch kelmayman

2. ESP32 tomonidan quvvat sarfini kamaytirish

ESP Wi-Fi tarmog'iga ulanganda, u doimo 7-10 mA ni tashkil qiladi, men doimiy vaqt haqida gapirayapman, ishga tushirish va birinchi ulanish emas. Agar siz har doim haqiqiy sana va vaqtni ko'rgan bo'lsangiz, tizimga Apple uy to'plamidan kirgan bo'lsangiz, bu qabul qilinishi mumkin

Mening quyosh energiyam qishda ham qo'shimcha energiya manbalarisiz ishlaydi.

Men vaqti -vaqti bilan ESP32 -ni uyqu rejimiga qo'yishga qaror qildim (ovqatlanish 1 mA dan kam). Bu men uchun yaxshi, masalan, ESP 20 daqiqa uxlayapti, uyg'onishdan ko'ra, ekranni yangilash (haqiqiy ma'lumotlar va prognoz) ma'lumotlarni gapirishga va yana uyqu holatiga qaytaradi.

Kamchiliklari:

  • Ob -havo ekrani eskirgan vaqt qiymatlarini ko'rsatadi
  • Kutish vaqtida stansiya brauzer va Apple Home Kit -ga kirmaydi

Qaysi biri muhimroq bo'lishini o'zingiz hal qilasiz, siz uni qayta sozlashingiz mumkin.

Iltimos, services.json faylini va satrini ko'ring

[{"xizmat": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp).org "," enablesleep ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"uxlashni yoqadi": haqiqiy uyquni ta'minlaydi, agar noto'g'ri bo'lsa yoki parametrni olib tashlasangiz (noto'g'ri bo'lsa, ESP hech qachon uxlamaydi)

"uyqu oralig'i": 900000 bu millis yoki 15 min, demak har 15 daqiqada ESP uyg'onadi va kerakli xodimlarni ishlaydi.

Shunday qilib, endi hamma kerakli darajada o'ynashi mumkin

7 -qadam: Sensorlarni sozlash

Ichki isitishning BME280 harorat sensori ta'sirini minimallashtirish

Firts Men sensori va teshiklari atrofida naycha qildim. LED rejimi o'chirilganida va ESP uxlab yotganida mening rejimim juda yaxshi. Boshqa hollarda, BME280 sensori ichki isitish ta'sirini istisno qilish uchun boshqa joyga siljishi kerak. Men topgan har qanday kichik ta'sir, shuning uchun kompensatsiya qilish uchun ikkita parametr mavjud

"hum_corr": 10.0

ya'ni, bu qiymatlar o'lchovdan so'ng qo'shiladi

Ikkinchisi - batareya zo'riqishini o'lchash, {"yoqilgan": "haqiqiy", "interval": 600000, "pin": 36, "xizmat": "LDRController", "ism": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "cvalmin": 0,0

"cvalmax": 7.2

Bu maqsadlar uchun, chunki rezistorlar bo'linishidan keyin kuchlanish o'lchanadi va 3,3 V bilan taqqoslaganda, cvalmax qiymati bilan o'ynab, siz multimetrli qiymat bilan aniq kuchlanish sozlamasiga erishishingiz mumkin.

8 -qadam: Qurilmani Apple Home Kit -ga qo'shish

Qurilmani Apple Home Kit -ga qo'shish
Qurilmani Apple Home Kit -ga qo'shish

Nihoyat, qurilmangiz to'g'ri ishlayotganda, uni Apple Home Kit -ga qo'shish mumkin va siz ko'rasiz

Apple bosh ekranidagi sensorlar qiymatlari.

Avval qurilmani qayta ishga tushirish kerak, chunki qurilma ishga tushishi bilan u uxlamaydi, 20 daqiqa etarli

IOS qurilmangizda Home Kit ilovasini oching va yangi Home1 -ni tanlang yoki yarating. Qo'shish tugmasini bosing (+)

2. Aksessuar qo'shish -ni tanlang.

3. Menda kod yo'q yoki skanerlash mumkin emas -ni bosing (skanerlashda qo'shimcha qilinadi)

4. Agar hamma narsa yaxshi bo'lsa, siz yangi esp qurilmangizni ro'yxatda ko'rishingiz kerak (rasmga qarang)

5. Qurilmani tanlang va rasmiy sertifikatsiz qo'shishni tasdiqlang

6. Parolni kiriting 11111111

7. Hammasi! Siz u muvaffaqiyatli ulangan qurilmani ko'rishingiz kerak, aks holda juftlashtirish jarayonini qaytadan boshlang.

Ushbu sozlamalarga asoslanib, siz Apple -da ikkita qurilmani ko'rasiz

1. Harorat sensori va Hum sensori, chuqurlikka kirsa, qiymatlarni to'liq ekranda aks ettiradi

2. Yorug'lik sensori:) Aslida Apple yorug'lik muhitini ko'rsatishi mumkin, lekin kuchlanish emas, shuning uchun akkumulyator zo'riqishi Lyuksda ko'rsatiladi.

9 -qadam: OTA: Havoda yangilanishlar

Har qanday yangilanishni boshlashdan oldin, ESP32 -ni qayta ishga tushirish yaxshiroqdir, yuqorida aytib o'tilganidek, u birinchi 20 daqiqada uxlamaydi

Yangilash uchun ikkita variant mavjud

  1. Http: //192.168.0. XX/browse yordamida konfiguratsiya yordamida siz ESP -da fayl tizimingizga kirishingiz va konfiguratsiya fayllarini o'zgartirishingiz mumkin.
  2. Siz dasturiy ta'minotni to'liq yangilashingiz mumkin. Buning uchun avval yangisini yaratish kerak. Buni Arduino yoki Visual Studio IDE orqali amalga oshirish mumkin. Keyin brauzerni kiriting https://192.168.0. XX/update, dasturiy ta'minotni tanlang va yangilashni bosing. Jarayon tugaguncha kutib turing va siz OK javob olasiz, aks holda qadamni yana takrorlang

Tavsiya: