Mundarija:
- Ta'minotlar
- 1 -qadam: Xususiyatlar
- 2 -qadam: PCB
- 3 -qadam: yig'ish
- 4 -qadam: Dasturlashning umumiy ko'rinishi
- 5 -qadam: kirish
- 6 -qadam: Chiqish
- 7 -qadam: ro'yxatga olish
- 8 -qadam: Buzzer
- 9 -qadam: IoT -ning tashqi integratsiyasi
- 10 -qadam: Foydalanish
- 11 -qadam: Kelgusi rejalar
Video: ESP32 Smart Home Hub: 11 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Sensorli ma'lumotlarning katta hajmini boshqaradigan, bir nechta chiqishga ega bo'lgan, Internetga yoki mahalliy tarmoqqa ulanadigan tizim yaratish uzoq vaqt va katta kuch talab qiladi. Ko'pincha, o'z uylarini aqlli uy tarmog'iga aylantirmoqchi bo'lgan odamlar, maxsus komponentlarni topib, kattaroq tizimga yig'a olmaydilar. Shuning uchun men IoT-ga ulangan sensorlar va chiqishni osonlashtiradigan modulli va boy platformani yaratmoqchi edim.
Ushbu loyihaga homiylik qilgan DFRobot va PCBGOGO.com saytlariga rahmat!
Qo'shimcha ma'lumot olish uchun Github repo-ga tashrif buyuring:
Ta'minotlar
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
DHT22 sensori
www.dfrobot.com/product-1102.html
-
APDS9960 yorug'lik va imo -ishoralar sensori
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD moduli
www.dfrobot.com/product-590.html
-
Analog RGB LED tasmasi
www.dfrobot.com/product-1829.html
- DRV8825 qadamli motorli haydovchilar
- SD -kartani o'quvchi
- NEMA17 qadamli motorlar
1 -qadam: Xususiyatlar
Ushbu taxtaning asosiy xususiyati - bu barcha aloqalarni, sensorlarning o'qilishini va chiqishini boshqaradigan ESP32 FireBeetle Development Board. Ikki bipolyar qadamli dvigatelni boshqaradigan ikkita qadamli dvigatellar mavjud.
I2C avtobusi APDS9960 yoki LCD kabi komponentlar bilan ishlash uchun ham ajratilgan. Haroratni o'qish uchun DHT22 sensoriga ulanish uchun singan pinlar, shuningdek, atrofdagi yorug'lik darajasini o'qish uchun fotorezistor mavjud.
Bortda LED chiroqlarini boshqarish uchun uchta MOSFET o'rnatilgan analog yorug'lik chizig'ini qo'llab -quvvatlash mavjud.
2 -qadam: PCB
Men tenglikni loyihalash jarayonini birinchi bo'lib Eagle -da sxemani tuzishdan boshladim. ESP32 FireBeetle kutubxonasini topa olmaganim uchun, men uning o'rniga ikkita pinli 1x18 pinli sarlavhalarni ishlatardim. Keyin, men 12Vni shahar barreli uyasi orqali qabul qilib, datchiklar va ESP32 -ni quvvatlantirish uchun 5v ga aylantiradigan quvvatni boshqarish sxemasini yaratdim.
Sxema tugagandan so'ng, men PCBni loyihalashga o'tdim.
Men bilardimki, shahar barreli vilkasi taxtaning old tomoniga yaqin bo'lishi kerak va 100uF quvvat manbai yumshatuvchi kondansatörler step motorli haydovchi quvvat manbalariga yaqin bo'lishi kerak edi. Hammasi joyiga qo'yilgach, men izlarni yo'naltira boshladim.
Oshpark yuqori sifatli tenglikni ishlab chiqarsa -da, ularning narxi ancha yuqori. Yaxshiyamki, PCBGOGO.com ham arzon narxda ajoyib tenglikni ishlab chiqaradi. Men Oshpark.com saytidan faqat uchta karta uchun 52 dollar to'lash o'rniga, atigi 5 dollarga o'nta tenglikni sotib oldim.
3 -qadam: yig'ish
Umuman olganda, taxtani yig'ish juda oson edi. Men sirtga o'rnatilgan qismlarni lehimlashdan boshladim, so'ngra bochka ulagichi va regulyatorini biriktirdim. Keyinchalik, men haydovchilar va FireBeetle kabi komponentlar uchun pin sarlavhalarini lehimladim.
Lehimlash tugagandan so'ng, men multimetrni qarshilik o'lchash rejimiga o'tkazib, qarshilik ma'lum miqdordan oshib ketganini bilib, taxtani qisqa tutashuv uchun sinab ko'rdim. Kengash o'tdi, shuning uchun men har bir komponentni ulashga muvaffaq bo'ldim.
4 -qadam: Dasturlashning umumiy ko'rinishi
Men ushbu taxtaning kodini modulli va ishlatish uchun qulay bo'lishini xohlardim. Bu ma'lum funktsiyalarni bajaradigan bir nechta sinflar va kichiklarini birlashtirgan kattaroq o'rash sinfiga ega bo'lishni anglatardi.
5 -qadam: kirish
Kirishlarni boshqarish uchun men "Hub_Inputs" deb nomlangan sinf yaratdim, bu uy tugmachalari va sig'imli sensorli interfeyslarni yaratish va boshqarish bilan bir qatorda APDS9960 bilan aloqa qilish imkonini beradi. U quyidagi funktsiyalarni o'z ichiga oladi:
Yaratish tugmasi
Agar tugma bosilsa, oling
Tugmalar bosilishi sonini oling
Eng yangi imo -ishorani oling
Sensorli sensorli qiymatni oling
Tugmalar uchta atributga ega bo'lgan struktura sifatida saqlanadi: is_pressed, numberPresses va pin. Har bir tugma, yaratilganda, uzilishga biriktiriladi. Qachonki bu uzilish ishga tushsa, uzilishlar xizmati tartibi (ISR) tugmachaning ko'rsatgichidan o'tadi (tugmalar qatorida uning xotira manzili sifatida ko'rsatiladi) va tugmalar bosilishi sonini ko'paytiradi, shuningdek is_pressed mantiqiy qiymatini yangilaydi.
Kapasitiv sensorli qiymatlar ancha sodda. Ular sensorli pinni touchRead () funktsiyasiga o'tkazish orqali olinadi.
So'nggi imo -ishora APDS9960 so'rovi va yangi imo -ishora aniqlanganligini tekshirish orqali yangilanadi va agar aniqlangan bo'lsa, shaxsiy imo -ishora o'zgaruvchisini ushbu ishoraga o'rnating.
6 -qadam: Chiqish
Aqlli uy uyida ma'lumotni chiqarish va chiroqlarni o'zgartirishning bir necha usullari mavjud. I2C avtobusini sindirib tashlaydigan pinlar mavjud, bu foydalanuvchilarga LCD displeyni ulash imkonini beradi. Hozircha LCD displeyning faqat bitta o'lchami qo'llab -quvvatlanadi: 20 x 4. "hub.display_message ()" funktsiyasidan foydalangan holda, foydalanuvchilar simli ob'ektni o'tkazib, LCD displeyda xabarlarni ko'rsatishi mumkin.
Analog LEDlar qatorini ulash uchun pin sarlavhasi ham mavjud. "Hub.set_led_strip (r, g, b)" funktsiyasini chaqirib, chiziq rangini belgilaydi.
Ikki pog'onali dvigatellar DRV8825 juft haydovchi platalari yordamida boshqariladi. Men motorni boshqarish uchun BasicStepper kutubxonasidan foydalanishga qaror qildim. Kengash ishga tushirilganda, ikkita qadamli ob'ekt yaratiladi va ikkala dvigatel ham yoqiladi. Har bir dvigatelga qadam qo'yish uchun "hub.step_motor (motor_id, qadamlar)" funktsiyasi ishlatiladi, bu erda motor identifikatori 0 yoki 1 bo'ladi.
7 -qadam: ro'yxatga olish
Kengashda bir nechta datchiklar bo'lgani uchun men ma'lumotni lokal ravishda yig'ish va qayd etish qobiliyatini xohlardim.
Jurnalni boshlash uchun "hub.create_log (fayl nomi, sarlavha)" bilan yangi fayl yaratiladi, bu erda ustun ustunlarni bildiruvchi CSV fayl qatorini yaratish uchun ishlatiladi. Birinchi ustun har doim Yil oyi kun soati: Min: sek formatidagi vaqt tamg'asi. Vaqtni olish uchun hub.log_to_file () funktsiyasi basic_functions.get_time () funktsiyasi bilan vaqt oladi. Keyin tm vaqt tuzilmasi ma'lumot va fayl nomi bilan birga jurnalga yozish funktsiyasiga o'tkaziladi.
8 -qadam: Buzzer
Agar musiqa o'ynay olmasangiz, IoT taxtasidan nima foyda? Shuning uchun men tovushlarni ijro etish funktsiyasiga ega zerikarli signalni qo'shdim. "Hub.play_sounds (ohang, davomiylik, uzunlik)" deb nomlansa, qo'shiq ijro etila boshlaydi, uning ohanglari notalar chastotasi, davomiyligi notaning davomiyligi sifatida, uzunligi esa notalar soni.
9 -qadam: IoT -ning tashqi integratsiyasi
Hub hozirda IFTTT veb -kancalarini qo'llab -quvvatlaydi. Ularni Hub_IoT.publish_webhook (url, ma'lumotlar, voqea, kalit) yoki Hub_IoT.publish_webhook (url, ma'lumotlar) funktsiyasini chaqirish orqali ishga tushirish mumkin. Bu berilgan URL manziliga POST so'rovini, agar kerak bo'lsa, voqea nomi bilan birga yuboriladi. IFTTT integratsiyasining namunasini o'rnatish uchun avval yangi applet yarating. So'ngra so'rov qabul qilinganda ishga tushadigan webhook xizmatini tanlang.
Keyin, tadbirni "high_temp" deb nomlang va uni saqlang. Keyin, "Bu" qismi uchun Gmail xizmatini tanlang va "O'zimga elektron pochta yuborish" variantini tanlang. Xizmat sozlamalarida "Harorat yuqori!" Yozing. mavzu uchun, keyin men "{{OccurredAt}} da {{Value1}} o'lchangan harorati") qo'ydim, u o'lchangan harorat va voqea boshlangan vaqtni ko'rsatadi.
Uni o'rnatgandan so'ng, IFTTT tomonidan yaratilgan veb -kancaning URL manzilini joylashtiring va tadbirlar bo'limiga "high_temp" ni kiriting.
10 -qadam: Foydalanish
Smart Home Hub -dan foydalanish uchun setup () yoki loop () -da kerakli funktsiyalarni chaqirish kifoya. Men allaqachon misolni qo'ydim, masalan, joriy vaqtni chop etish va IFTTT hodisasini chaqirish.
11 -qadam: Kelgusi rejalar
Smart Home Hub tizimi oddiy avtomatlashtirish va ma'lumotlarni yig'ish vazifalari uchun juda yaxshi ishlaydi. U deyarli hamma narsada ishlatilishi mumkin, masalan, LED chizig'ining rangini belgilash, xonaning haroratini kuzatish, chiroqning yoqilganligini tekshirish va boshqa ko'plab potentsial loyihalar. Kelajakda men funksionallikni yanada kengaytirmoqchiman. Bunga yanada kuchli veb -server, mahalliy fayllarni joylashtirish va hatto Bluetooth yoki mqtt qo'shilishi mumkin.
Tavsiya:
NodeMCU o'rni moduli yordamida Alexa Smart Home tizimi: 10 qadam
NodeMCU o'rni moduli yordamida Alexa Smart uy tizimi: Bu IoT loyihasida men NodeMCU ESP8266 yordamida Alexa Smart Home Automation tizimini yaratdim & O'rnimizni moduli. Ovozli buyruq yordamida yorug'lik, fanat va boshqa maishiy texnikani osongina boshqarishingiz mumkin. Echo Dot aqlli dinamikini ulanish uchun
Wifi Smart Switch ESP8266 Alexa va Google Home Automation bilan ishlaydi: 7 qadam
Wifi Smart Switch ESP8266 Alexa va Google Home Automation bilan ishlaydi: Globallashuv dunyosida hamma yangi va aqlli texnologiyalarga intiladi. Wi -Fi Smart Switch, hayotingizni yanada oqilona va qulay qiladi
ESP32 bilan ishlashni boshlash - Arduino IDE -da ESP32 taxtalarini o'rnatish - ESP32 miltillovchi kod: 3 qadam
ESP32 bilan ishlashni boshlash | Arduino IDEda ESP32 taxtalarini o'rnatish | ESP32 Blink kodi: Ushbu ko'rsatmalarda biz esp32 bilan qanday ishlashni va esp32 platalarini Arduino IDE -ga qanday o'rnatishni ko'rib chiqamiz va biz esp 32 -ni arduino ide yordamida miltillovchi kodni ishga tushirishni dasturlashtiramiz
IOT CA2 Secure Smart Home/Room: 8 qadam
IOT CA2 Xavfsiz Smart Uy/Xona: Mundarija 1 Smart Secure Home -ga umumiy nuqtai 2 Uskuna talablari + O'rnatish3 Dasturiy ta'minot talablari + O'rnatish4 Raspberrypi -ni bir narsa sifatida ro'yxatdan o'tkazish5 S3 chelak 6 DynamoDB -ni sozlash + Qoidalar7 Kutilayotgan natija8 Kodlari (Pastebindan) 9 ManbalarO'rganish
Tutorial Do Projeto Final Do Curso IoT Aplicada Smart Home Inatel / Novembro 2017: 4 qadam (rasmlar bilan)
O'qituvchi yakuniy yakuniy Curso IoT -ni aqlli uyga yozib qo'yadi Inatel / Novembro 2017: Hech qanday ma'lumot yo'q, chunki siz hech qachon Android -ni, shuningdek, Android -ni qayta o'rnatishni xohlamaysiz. Notebook daftarchasi uchun Windows 10. Essa plataforma chama-se Ionic, q