Mundarija:
- 1 -qadam: kontur, old shartlar va qismlar
- 2 -qadam: Uskuna: quti, kalit va simlar
- 3-qadam: Uskuna: ESP-01
- 4-qadam: ESP-01 dasturlash
- 5 -qadam: Hammasini yig'ish
- 6-qadam: MQTT xabarida harakat qilish uchun Node-RED-dan foydalanish
- 7-qadam: Keyingi fikrlar
Video: MQTT va Wifi bilan ishlaydigan pochta qutisi bayrog'i: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Eslatma: yangi dasturiy ta'minot, sxema va dasturchi uchun maslahatlar bilan yangilandi
Bir necha yil men o'z uyimni avtomatlashtirish loyihasini boshladim. U PT2262 asosidagi arzon pultli kalitlarni almashtirish uchun Arduino bilan 433 MGts chastotali server boshqaruvi qurilishi bilan boshlandi. Keyinchalik men ob -havo stantsiyam uchun Arduino -ga asoslangan qabul qilgichni qo'shdim, elektr zaryadlovchining boshqaruv kontaktini uladim va hokazo. Vaziyat tobora ortib bordi (va murakkab!). Shunday qilib, bir necha oy oldin men hamma narsani xabar almashish uchun MQTT, avtomatlashtirish uchun Node-RED (ikkalasi ham bitta Raspberry Pi B+da ishlaydi) va MariaDb (mening Synology NAS-da ishlaydi) asosida standartlashtirishga qaror qildim. Keyinchalik men MQTT brokerini (Mosquitto) va Node-REDni NASga o'tkazdim.
Bu ko'rsatma uy infratuzilmasida mening ko'chaga o'rnatilgan pochta qutimga bog'langan o'yin-kulgi loyihasini tasvirlaydi. Gap shundaki, agar kimdir old eshikdan taxminan 10 metr narida devorga o'rnatilgan pochta qutisini ochsa, bu menga telefonimda va ehtimol boshqa qurilmalarda signal beradi.
1 -qadam: kontur, old shartlar va qismlar
Anahat
Yuqori darajada, pochta qutisi ochilganda, brokerga noyob MQTT xabarini yuborishi kerak, shunda bu mavzuga obuna bo'lganlar xabardor qilinadi. Node-RED ham obuna bo'ladi va ba'zi avtomatlashtirishlarni amalga oshiradi, bu holda telefonimga elektron pochta va/yoki push-xabar yuboriladi.
Pochta qutisi batareyalarda ishlaydi va kamida bir yil ishlashi kerak va buni WiFi tarmog'im yordamida amalga oshirish kerak. Mikrokontrollerni uyg'otish va Wi-Fi tarmog'iga ulanish bir necha soniya davom etishi mumkin, men quvvatni o'chirish uchun faollashtirish kalitidan foydalana olmadim. Buning o'rniga, pochta qutisi qopqog'i yopilganidan keyin protsessor o'z ishini tugatishi kerak.
Old shartlar
Menimcha, siz oddiy lehimlash qobiliyatiga egasiz, Arduino IDE bilan bir oz ishlagansiz va taxtalar menejeri yordamida ESP8266 taxtalarini o'rnatgansiz. Bundan tashqari, mikrokontrolerni dasturlash uchun sizda 3,3 voltli USB seriyali adapter bo'lishi kerak.
Menimcha, sizda MQTT brokeri va Node-RED serveri ishlaydi. Agar yo'q bo'lsa, Internetda juda ko'p ko'rsatma bor, lekin men uni dangasa yo'l bilan borishni va Piter Skargillning ajoyib o'rnatish skriptidan foydalanishni maslahat beraman, agar siz uni biron bir Pi yoki Ubuntu -da ishlatmoqchi bo'lsangiz yoki Pi Zero W uchun Andreas Spissning rasmidan foydalanmoqchi bo'lsangiz (havolalar ushbu videoning tavsifida), bu sizga ishlaydigan skriptlarning ishlashini bir necha soat davomida tejash imkonini beradi. Shu bilan bir qatorda, siz dasturiy ta'minotni elektron pochtaga to'g'ridan -to'g'ri yuborishingiz mumkin, lekin buning uchun siz ko'p moslashuvchanlikni yo'qotasiz.
Qismlar
- 1 ta yopiq, 3 ta AA batareya qutisi
- 2 ta AA batareyasi
- 1 ESP8266 moduli. Ushbu loyiha uchun men ESP-01 dan foydalanardim
- 1 ta mikro kalit
- 1 47K qarshilik
- 1 4M7 qarshilik
- 1 kondansatör 2.2 uF
- 1 ingichka plastik quvur. Men qalam ishlatardim
- 1 qalin, uzun gugurt yoki lolipop tayog'i. U plastmassa trubkaga osongina joylashishi va harakatlanishi kerak
2 -qadam: Uskuna: quti, kalit va simlar
Men eski Rojdestvo bezaklaridan eski batareya qutisidan boshladim. U AA o'lchamdagi uchta batareyaga mo'ljallangan. ESP8266 3 voltda yaxshi ishlaydi, men ikkita batareyani ishlatardim va mikro-nazoratchi uchun uchinchi pozitsiyani ishlatardim. E'tibor bering, qutida aktivlashtirish tugmasi uchun ishlatilishi mumkin bo'lgan kichik qo'shimcha bo'linma bor edi. Men rasmlarda ko'rsatilgan juda keng tarqalgan kalitni ishlatardim, lekin uni yoqish yoki o'chirish holatida ushlab turadigan kamonni olib tashladim. Men ikkita ingichka simni NK kontaktlariga lehimladim va qutiga mayda tomchi super elim bilan yopishtirdim.
Keyin, men yuqori qopqog'ida shar qalamdan olingan plastik naychaga mos keladigan teshik ochdim. Teshik tugmachaga to'g'ri keladi va qalin gugurt tayog'idan yasalgan pistonni boshqaradi.
Nihoyat, men yana ikkita simni batareya kontaktlariga lehimlab qo'ydim va to'rtta simni uchinchi batareyaning holatiga yo'naltirdim, u erda mikro-nazoratchi bo'ladi.
3-qadam: Uskuna: ESP-01
WiFi talabini hisobga olgan holda, butun loyiha ESP8266 deb baqiradi. Bu kichik Wi -Fi boshqaruvchisi 2,50 evrodan past narxda sotib olinadigan va o'z dasturlarini ishga tushirish uchun yetarli hajmga ega bo'lgan to'liq Wi -Fi va TCP/IP -ni o'z ichiga olgan modul sifatida xayolparastlarning sevimli ishchi otiga aylandi. Arduino IDE (yoki PlatformIO plaginli Atom) ESP8266 ni to'liq qo'llab -quvvatlaydi.
Men odatda ESP-12F ni olardim, lekin menda ish uchun juda mos bo'lgan va batareya qutisiga yaxshi mos keladigan kichik ESP-01 taxtasi bor edi. Yagona muammo shundaki, ESP-01-da dasturiy ta'minotni o'chirish juda murakkab. Bu haqda keyingi bosqichda batafsilroq. O'zgartirishlar kiritilishi mumkin: qizil LEDni taxtadan olib tashlashingiz kerak, chunki u doimiy ravishda 3mA chiziladi. LED o'chirilganida, modul bir necha o'nlab UA -ni chuqur uyqu rejimida ishlatadi, bu esa uni bir yildan ko'proq vaqt davomida ikkita AA sifatli batareyada ishlaydi.
Ma'lum bo'lishicha, men ESP-01-ni o'chirib tashlashim mumkin bo'lgan, bir nechta qo'shimcha komponentlar uchun 4 pinli ayol bosh va lehimdan bo'sh shaklda foydalanishim mumkin edi.
ESPni to'g'ri ulash juda muhimdir. Yuqoridagi hiyla -nayrangdan foydalanib, uni quyidagicha ulang.
- Batareya Vcc (D2), CH_PD (B2), RXD (D1), GPIO0 (C1), GPIO2 (B1) va 47K qarshilikka ega.
- Batareya GND (A1) va kalitning bitta simiga minus.
- 100nF kondansatör va 4M7 rezistorli kalitning boshqa simlari.
- Ikkala rezistorning ham, kondansatörning ham ochiq uchlari RST (C2).
- TXD (A2) ulanmagan holda qolishi mumkin.
Tartibga solish: Men ESP-01ni almashtirishim kerak edi, chunki men bema'ni xato qilib, uni yo'q qildim. Ma'lum bo'lishicha, yangi ESP-01 asl 100nF kondansatör bilan tiklanmagan. Ehtimol, u biroz boshqacha dizaynga ega. Men uni 2,2 uF bilan almashtirdim va endi u yana ishlaydi
Ish tugagach, hamma narsani qutiga o'rnatish mumkin, lekin ushlab turing, avval modulni dasturlashimiz kerak.
4-qadam: ESP-01 dasturlash
ESP-01-da dasturiy ta'minotni o'chirish uchun siz kichik dastgoh qurishingiz yoki taxminan 1 evroga (deyarli) to'liq dasturchi sotib olishingiz mumkin.
Dasturiy ta'minot uskunalari
ESP-01 uchun yana ikkita ayol boshli kichik burg'ulash qurilmasini yarating. Shuningdek, sizga 3,3 voltsli USB seriyali modul kerak. ESP8266 chipi 5 voltli qotmaganligini unutmang, shuning uchun bu erda xato modulingizni o'ldirishi mumkin. Yaxshiyamki, yana hiyla -nayrang yordamida qurilmangizni quyidagicha sim bilan ulang:
- USB Serial modulidan Vcc, CH_PD, RST va GPIO2 ga 3,3V.
- USB Serial modulining GND va GND va GPIO0.
- USB Serial modulining TXD -ni RXD -ga.
- USB Serial modulining RDX -ni TXD -ga.
Dastlabki dasturchi
O'zingizning shaxsiy buyumlaringizni yaratish qanchalik qiziqarli bo'lsa ham, eng achinarli sayt-ESP-01-dan seriyali interfeysni olish, yuqoridagi rasmga qarang. Bu qurilmaga qaraganda ancha sodda, ixcham va ishonchli. Biroq, ularning ba'zilari dasturchilar emas, faqat ketma -ket interfeyslar. Interfeysning orqa tomonidagi GND (A1 pin) va GPIO0 (pin C1) orasidagi simli ko'prikni lehimlashingiz kerak, ikkinchi rasmga qarang. ESP-01 antennani USB vilkasiga qaragan holda ulash lozim, aksincha emas!
Eslatma: ular kalit bilan ham mavjud, uchinchi rasmga qarang, juda yaxshi.
Dasturiy ta'minotni yuklang
Arduino IDE -ni 1.8.3 yoki undan yuqori deb hisoblasangiz, Asboblar> Kengash -ni tanlang va sizda mavjud bo'lgan taxtani tanlang. Men foydalangan ESP-01 uchun "Umumiy ESP8266 moduli" -ni tanlang va quyidagi variantlarni o'rnating (bu barcha standart sozlamalar bo'lishi kerak):
- Chaqnoq rejimi: DIO
- Chiroq chastotasi: 40 MGts
- CPU chastotasi: 80 MGts
- Fleshli hajmi: 512KB (64KB SPIFFS) Eslatma: agar siz qora ESP-01 kartasidan foydalansangiz, 1MB (64KB SPIFFS) ni tanlang.
- Tuzatish porti: o'chirilgan
- Nosozliklarni tuzatish darajasi: yo'q
- Qayta tiklash usuli: ck
- Yuklab olish tezligi 115200
- Port: USB Seriya interfeysiga ulangan portni tanlang. Ubuntu shaxsiy kompyuterim uchun bu /dev /ttyUSB0 edi
Qurilmani/dasturchini ulang, eskizni bu erda toping: https://gitlab.com/jeroenmeijer/Mailbox.git. WiFi va MQTT brokerining hisob ma'lumotlarini va IP -konfiguratsiyasini config.h da taqdim eting va Yuklab olishni tanlang.
5 -qadam: Hammasini yig'ish
Men pochta qutimning ichki qopqog'idagi plastmassa trubka uchun teshikni iloji boricha menteşaga yaqin burg'iladim, keyin batareya qutisini shu qopqoqning pastki qismiga issiq yopishtirdim. Keyin men qalin gugurtni piston sifatida ishlatardim. Tashqi qopqog'i yopilgan bo'lsa, kalit ochilib qolishi uchun men gugurtni uzunligiga kesib oldim. MQTT xabarlarini kuzatish uchun mosquitto_sub -ni ishga tushirayotganda qopqog'ini ochish orqali ulanishni tekshirdim (mqttbroker, foydalanuvchi va parolni MQTT konfiguratsiyasi bilan almashtiring):
$ mosquitto_sub -h mqttbroker -v -t "stat/#" -u foydalanuvchi -P parol
Tashqi qopqoq ochilgandan taxminan olti soniya o'tgach, quyidagi MQTT xabari e'lon qilinadi. Vaqt mikro-nazoratchini uyg'otish va WiFi va broker aloqasini o'rnatish uchun ishlatiladi.
stat/mailbox/trigger {"vcc": 3050, "flap": true, "prev": 0, "RSSI": 29, "version": "005"}
Bu vaqt mobaynida mikrokontroller taxminan 70mA ishlatgan. Ish tugagach, u chuqur uyquga ketadi va mening holimda u 20uA dan kam ishlatilgan. "flap" har doim to'g'ri bo'ladi, "vcc" batareyaning kuchlanishini mV va "prev" ning 0 bo'lishi kerakligini bildiradi. Agar u 1 yoki 2 bo'lsa, bu pochta qutisi ulanmaganligi uchun xabarni oldinroq jo'natolmaganligini bildiradi. WiFi yoki u MQTT brokeriga ulana olmagani uchun. "RSSI" - bu WiFi signalining kuchi. Har ikkisi ham muammolarni aniqlashda juda qulay.
Batareya zo'riqishini bir necha kun kuzatib turish maqsadga muvofiq ishlaydi va negadir batareyasi zaryadsizlanmaydi.
Dasturiy ta'minot, shuningdek, havoda (OTA) yangilanishi mumkin, lekin bu ko'rsatma doirasidan biroz tashqarida. Qiziquvchilar uchun OTA konfiguratsiyasi config.h da.
6-qadam: MQTT xabarida harakat qilish uchun Node-RED-dan foydalanish
Nihoyat, men Node-RED-da oddiy oqim yaratdim. Birinchi tugun pochta qutisi mavzusiga obuna bo'ladi (stat/pochta qutisi/tetik). Xabar qabul qilinganda, ikkinchi tugun elektron pochtani formatlaydi *). Oxirgi tugun uni gmail -ga SMTP -server sifatida ishlatib yuboradi. Keyin telefonim menga yangi xat haqida xabar beradi.
Men Node-RED oqimini gitlab parchasiga qo'shdim, shunda siz uni Node-RED oqimlariga import qilishingiz mumkin.
Albatta, siz bir nechta tugunlarni qo'shishingiz mumkin, masalan, pochta qutisidagi hodisalarni MariaDb yoki SqlLite -ga yozib qo'yish yoki batareya quvvati 2,7 voltsdan past bo'lganda qo'shimcha signallarni yaratish.
Baxtli pochta ovi!
*) Keyingi sahifaga qarang, men hozir elektron pochta o'rniga PushBullet -dan foydalanayapman.
7-qadam: Keyingi fikrlar
Hamma narsani yaxshiroq qilish mumkin degan tuyg'u doimo mavjud.
O'tish
Bir oz bema'ni piston usuli o'rniga (super) magnit va qamish kontaktidan foydalanishni ma'qul ko'rardim. Buning ikkita sababi bor edi. Birinchisi, bu ishni quti ochilganda kontakt yopilishi bilan amalga oshirishning iloji yo'q edi va uni har doim yopib qo'yish kichik oqim doimo oqishini bildirardi. Orqaga qarab, 4M7 rezistoridan o'tadigan 1uA dan kam batareya quvvati uchun katta ahamiyatga ega bo'lmaydi. Ikkinchisi esa amaliyroq edi. Men bu loyihani shanba kuni tuzdim va dasturiy ta'minotni yozdim, hammasini yakshanba kuni qurilgan narsadan qurdim. Menda axlat qutisida qamish bilan aloqa yo'q edi.
E'tibor bering: diy_bloke sharhlaganidek, qamish kontaktlari uzoq vaqt magnitlanganida yopishqoq bo'lib qoladi, shuning uchun piston umuman yomon fikr emas edi. Ko'ramiz. *)
Bo'shatish haqida xabar
Pochta qutisi uni bo'shatganda ham xabar yuboradi. Bu katta muammo emas, lekin uydagilar ogohlantirish olsalar, uning maqsadiga zid bo'lgan pochta qutisini tekshirish mumkin. Buning bir necha yo'li bor, masalan, ichki qopqoq ko'tarilganligini tekshirish, agar shunday bo'lsa, xabar yubormang. Yoki qopqoq kalitini ishlatishning o'rniga, pochta qutisining pastki qismiga detektorni o'rnating. Yoki bo'shatish paytida kichik reset tugmasini bosish kerak. Biroq, hamma narsa murakkablashadi va ehtimol ishonchliligi yomonlashadi.
Xabar yuborish
E -pochtani yuborish - bu ogohlantirishni o'chirishning juda samarali, ammo qo'pol usuli. Telefon ilovasi yanada oqilona bo'lardi, lekin men ma'lum bir xabar kelganida operatsion tizim ogohlantirishini ishga tushirish uchun sozlanadigan Android MQTT boshqaruv paneli ilovasini topmadim. Agar atrofdagilar bo'lsa, sharhlarga qo'shing. **)
*) Bir yildan ko'proq ishlaganidan so'ng, men ishlatgan lolipop tayog'i, asosan, qattiq o'ralgan qog'oz, kalit kamonining doimiy bosimi ostida qisqarish tendentsiyasiga ega ekanligi ma'lum bo'ldi. Muammo bartaraf etilgandan so'ng, men uni yog'och tayoq bilan almashtirdim.
**) Men hozir PushBullet -dan MQTT boshqaruv panelidan alohida xabarlar yuborish uchun foydalanayapman. Bu erda API uchun kichik tugunli-RED past interfeyslarni topish mumkin. "Qayta urinish" tugunida "Pushbulletga tayyorlaning" tuguniga kirish belgisini va orqaga qaytarish uchun elektron pochta manzilingizni kiritganingizga ishonch hosil qiling.
Tavsiya:
Aqlli pochta qutisi (Packr): 13 qadam (rasmlar bilan)
Aqlli pochta qutisi (Packr): Ba'zi odamlar xat yoki paketlarni tez -tez olmaydilar. Ular har kuni pochta qutisiga borib, yomg'ir paytida ham, quyosh nuri tushganda ham yangi pochta bor yoki yo'qligini tekshirishlari kerak. Bu vaqtni hayotlarida yaxshiroq ishlatish uchun mana bu aqlli pochta qutisi. Bu ma
Pochta qutisi va garaj eshiklari xabari: 5 qadam (rasmlar bilan)
Pochta qutisi va garaj eshiklari xabarnomasi: Bu ko'rsatma pochta qutisi xabari Yoxan Mobergga asoslangan. Loyihani taqqoslaganda, men ba'zi o'zgarishlarni amalga oshirdim: mening uyimdan uzoqroqda nafaqat pochta qutisi, balki garaj ham bor. Ular yo'lga yaqin bir joyda joylashgan va uy taxminan 5
Quyosh energiyasi bilan bog'langan pochta qutisi: 12 qadam (rasmlar bilan)
Quyosh energiyasi bilan bog'langan pochta qutisi: Men ikkinchi marta, siz bilan bog'langan pochta qutisi haqidagi asarlarimni tasvirlab beraman, bu ko'rsatmalarni o'qiganimdan so'ng (va boshqalar) va mening pochta qutim uyim yonida bo'lmaganligi uchun, men o'zimni ilhomlantirmoqchi edim. Pochta qutimni m -ga ulash uchun Green Energy ishlarini oching
Ha - Yo'q: Arduino boshqariladigan pochta qutisi: 4 qadam (rasmlar bilan)
Ha - Yo'q: Arduino boshqariladigan pochta qutisi: Ushbu loyihada biz sizga pochta qutisini qanday qiziqarli va foydali qilish kerakligini ko'rsatamiz. Ushbu pochta qutisi yordamida, agar sizning pochtangizda xat bo'lsa, sizda pochta bor yoki yo'qligini ko'rsatadigan yaxshi yorug'lik bor va siz bluetooth orqali bu pochta qutisini avtomatik boshqarishingiz mumkin
Frantsiya bayrog'i / Ozodlik bayrog'i: 6 qadam
Frantsiya bayrog'i / Ozodlik bayrog'i: frantsuz bayrog'i - bu ob'ektivga kiruvchi yorug'likni to'sib qo'yish uchun ishlatiladigan kamera asbobiga berilgan taxallus, bu odatda linzalarning yonishiga olib keladi yoki linzalarda axloqsizlikni aniqroq qiladi. Filmtools.com saytida topilgan Frantsiya bayrog'ini takrorlamoqchi edim