Mundarija:
- 1 -qadam: kerakli qismlar
- 2 -qadam: simlarni o'rnatish va yig'ish
- 3 -qadam: Dasturiy ta'minotni ESP32 -ga yuklash
- 4 -qadam: Tayyor dasturiy ta'minotni yuklash
- 5 -qadam: Konfiguratsiya
- 6 -qadam: ayyorlik va quvvat sarfi
- 7 -qadam: Sensorlarni sozlash
- 8 -qadam: Qurilmani Apple Home Kit -ga qo'shish
- 9 -qadam: OTA: Havoda yangilanishlar
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
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
- 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
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
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:
- O'zingizning kanalingizni kalit so'zida yarating. 4 ta maydon tayyorlang va ularga to'g'ri nom bering: harorat, namlik, bosim, kuchlanish
- 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
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
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
- Http: //192.168.0. XX/browse yordamida konfiguratsiya yordamida siz ESP -da fayl tizimingizga kirishingiz va konfiguratsiya fayllarini o'zgartirishingiz mumkin.
- 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