Mündəricat:
- Təchizat
- Addım 1: Xüsusiyyətlər
- Addım 2: PCB
- Addım 3: Montaj
- Addım 4: Proqramlaşdırmaya Baxış
- Addım 5: Girişlər
- Addım 6: Çıxışlar
- Addım 7: Qeydiyyat
- Addım 8: Buzzer
- Addım 9: Xarici IoT inteqrasiyası
- Addım 10: İstifadə
- Addım 11: Gələcək Planlar
Video: ESP32 Smart Home Hub: 11 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Böyük miqdarda sensor məlumatlarını idarə edə bilən, birdən çox çıxışı olan, internetə və ya yerli bir şəbəkəyə qoşula bilən bir sistemin yaradılması uzun müddət və böyük səy tələb edir. Çox vaxt öz ağıllı ev şəbəkələrini yaratmaq istəyən insanlar, xüsusi komponentləri daha böyük bir sistemə yığa bilməklə mübarizə aparırlar. Bu səbəbdən IoT ilə əlaqəli sensorlar və çıxışların qurulmasını asanlaşdıracaq modul və xüsusiyyət baxımından zəngin bir platforma yaratmaq istədim.
Bu layihəyə sponsorluq etdikləri üçün DFRobot və PCBGOGO.com saytına təşəkkürlər!
Daha ətraflı məlumat üçün Github reposunu ziyarət edin:
Təchizat
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
DHT22 Sensoru
www.dfrobot.com/product-1102.html
-
APDS9960 İşıq və Jest Sensoru
www.dfrobot.com/product-1361.html
-
I2C 20x4 LCD Modulu
www.dfrobot.com/product-590.html
-
Analog RGB LED şeridi
www.dfrobot.com/product-1829.html
- DRV8825 Step Motor Sürücüləri
- SD Kart Oxuyucusu
- NEMA17 Stepper Motorlar
Addım 1: Xüsusiyyətlər
Bu lövhənin əsas xüsusiyyəti, bütün ünsiyyət, sensor oxunuşları və çıxışları idarə edən bir ESP32 FireBeetle İnkişaf Lövhəsidir. İki bipolyar pilləli mühərriki idarə edən iki pilləli motor sürücüsü var.
I2C avtobusu, APDS9960 və ya LCD kimi komponentlərlə istifadə üçün də ayrıldı. İstiliyi oxumaq üçün, DHT22 sensoruna qoşulmaq üçün qırılan pinlər və ətrafdakı işıq səviyyələrini oxumaq üçün bir fotorezistor var.
Lövhədə LED işıqlarını idarə etmək üçün üç MOSFET olan analoq işıq şeridi dəstəyi var.
Addım 2: PCB
PCB dizayn prosesinə əvvəlcə Eagle -da bir sxem quraraq başladım. ESP32 FireBeetle kitabxanası tapa bilmədiyim üçün əvəzinə iki pinli 1x18 pin başlığı istifadə etdim. Daha sonra, sensorları və ESP32 -ni işə salmaq üçün bir DC barel yuvası vasitəsilə 12v qəbul edə bilən və 5v -ə çevirən bir güc idarəetmə dövrəsi yaratdım.
Sxem tamamlandıqdan sonra PCB -nin dizaynına keçdim.
DC barel fişinin lövhənin önünə yaxın olması lazım olduğunu və 100uF enerji təchizatı hamarlaşdırıcı kondansatörlərin step motor sürücüsünün güc girişlərinə yaxın olması lazım olduğunu bilirdim. Hər şey düzəldildikdən sonra izləri istiqamətləndirməyə başladım.
Oshpark yüksək keyfiyyətli PCB istehsal etsə də, qiymətləri olduqca yüksəkdir. Şükürlər olsun ki, PCBGOGO.com həm də əlverişli qiymətə əla PCB istehsal edir. Oshpark.com -dan yalnız üç lövhə üçün 52 dollar ödəmək əvəzinə cəmi 5 dollara on PCB ala bildim.
Addım 3: Montaj
Ümumiyyətlə, lövhənin yığılması olduqca asan idi. Səthə quraşdırılmış komponentləri lehimləməklə başladım və sonra barel jak konnektorunu və tənzimləyicisini bağladım. Sonra, motor sürücüləri və FireBeetle kimi komponentlər üçün pin başlıqlarını lehimlədim.
Lehimləmə tamamlandıqdan sonra, bir multimetr müqavimət ölçmə rejiminə keçirərək müqavimətin müəyyən bir həddən artıq olub olmadığını görərək lövhəni qısaqapanma üçün sınadım. Lövhə keçdi, buna görə də hər bir komponenti qoşa bildim.
Addım 4: Proqramlaşdırmaya Baxış
Bu lövhənin kodunun modul olmasını və istifadəsi asan olmasını istədim. Bu, müəyyən funksiyaları yerinə yetirən bir neçə sinifin və daha kiçik olanları birləşdirən daha böyük bir sarğı sinifinin olması demək idi.
Addım 5: Girişlər
Girişləri idarə etmək üçün "Hub_Inputs" adlı bir sinif yaratdım ki, bu da ev mərkəzinin düymələr və tutumlu toxunma interfeysləri yaratmaq və idarə etməklə yanaşı APDS9960 ilə əlaqə qurmasına imkan verir. Aşağıdakı funksiyaları ehtiva edir:
Yarat düyməsi
Düyməsinə basıldığı təqdirdə alın
Düymə basma sayını əldə edin
Ən son jesti əldə edin
Kapasitiv toxunma dəyəri əldə edin
Düymələr üç xüsusiyyətə malik bir quruluş olaraq saxlanılır: is_pressed, numberPresses və pin. Hər bir düymə yaradıldıqda kəsilməyə bağlanır. Bu kəsilmə tetiklendiğinde, kəsmə xidməti rutini (ISR) bu düymənin göstəricisindən keçir (düymələr sırasındakı yaddaş ünvanı olaraq verilir) və is_pressed Boolean dəyərinin yenilənməsi ilə birlikdə düymələrə basma sayını artırır.
Kapasitiv toxunma dəyərləri daha sadədir. Toxunma pinini touchRead () funksiyasına ötürərək əldə edirlər.
Ən son jest, APDS9960 sorğusu və yeni bir jestin aşkarlanıb -aşkarlanmadığını yoxlamaqla yenilənir və aşkar edildikdə, xüsusi jest dəyişənini bu jestə təyin edin.
Addım 6: Çıxışlar
Ağıllı ev mərkəzində məlumat çıxarmaq və işıqları dəyişdirmək üçün bir neçə yol var. İstifadəçilərə bir LCD bağlamağa imkan verən I2C avtobusunu qıran pinlər var. İndiyə qədər yalnız bir LCD ölçüsü dəstəklənir: 20 x 4. "hub.display_message ()" funksiyasından istifadə edərək, istifadəçilər bir simli obyekt keçərək LCD -də mesajları göstərə bilərlər.
Bir analog LED -ləri birləşdirmək üçün bir pin başlığı da var. "Hub.set_led_strip (r, g, b)" funksiyasına zəng edərək, zolağın rəngini təyin edir.
İki pilləli mühərriklər bir cüt DRV8825 sürücü lövhəsi ilə idarə olunur. Motor nəzarətini idarə etmək üçün BasicStepper kitabxanasından istifadə etmək qərarına gəldim. Lövhə açıldıqda iki pilləli obyekt yaradılır və hər iki mühərrik işə düşür. Hər bir motoru addımlamaq üçün, motor idinin 0 və ya 1 olduğu "hub.step_motor (motor_id, addımlar)" funksiyasından istifadə olunur.
Addım 7: Qeydiyyat
Lövhədə bir neçə sensorlar olduğu üçün məlumatları yerli olaraq toplamaq və qeyd etmək qabiliyyətini istədim.
Daxil olmağa başlamaq üçün "hub.create_log (fayl adı, başlıq)" ilə yeni bir fayl yaradılır, burada başlıq sütunları ifadə edən bir CSV fayl satırı yaratmaq üçün istifadə olunur. İlk sütun həmişə İl Ay Gün Saat: Min: San formatında bir zaman damgasıdır. Vaxtı almaq üçün hub.log_to_file () funksiyası basic_functions.get_time () funksiyası ilə vaxt alır. Tm zaman quruluşu, məlumat və fayl adı ilə birlikdə qeyd funksiyasına istinadla ötürülür.
Addım 8: Buzzer
Musiqi ifa edə bilmirsinizsə, IoT lövhəsinin nə xeyri var? Bu səbəbdən səsləri çalmaq funksiyasına malik bir səs siqnalı daxil etdim. "Hub.play_sounds (melodiya, uzunluq, uzunluq)" deyərək melodiyanın not tezlikləri, müddəti notların bir sıra olaraq, uzunluğun isə notların sayı olduğu bir mahnı çalmağa başlayır.
Addım 9: Xarici IoT inteqrasiyası
Hub hazırda IFTTT veb qarmaqlarını dəstəkləyir. Hub_IoT.publish_webhook (url, data, hadisə, açar) və ya Hub_IoT.publish_webhook (url, data) funksiyasına zəng edərək tetiklenebilir. Lazım gələrsə, bir hadisə adı ilə birlikdə verilən URL -ə bir POST sorğusu göndərilir. IFTTT inteqrasiya nümunəsi qurmaq üçün əvvəlcə yeni bir tətbiq yaradın. Sonra bir sorğu alındıqda işə salınan webhook xidmətini seçin.
Sonra hadisəni "high_temp" adlandırın və qeyd edin. Sonra, "O" hissəsi üçün Gmail xidmətini seçin və "Özümə bir e -poçt göndər" seçimini seçin. Xidmətin qurulmasında "İstilik yüksəkdir!" Yazın. mövzu üçün və sonra "Ölçülmüş temperaturu və hadisənin tetiklendiği vaxtı göstərən {{OccurredAt}} 'da {{Value1}} ölçülmüş temperaturu" qoydum.
Quraşdırdıqdan sonra, IFTTT tərəfindən yaradılan webhook URL -ni yapışdırın və hadisə hissəsinə "high_temp" qoyun.
Addım 10: İstifadə
Smart Home Hub -dan istifadə etmək üçün lazım olan hər hansı bir funksiyanı ya setup () ya da loop () -da axtarın. Cari vaxtı çap etmək və IFTTT hadisəsinə zəng etmək kimi funksiya çağırışlarını artıq qoydum.
Addım 11: Gələcək Planlar
Smart Home Hub sistemi sadə ev avtomatlaşdırılması və məlumat toplama vəzifələri üçün çox yaxşı işləyir. Bir LED şeridinin rəngini təyin etmək, bir otağın istiliyini izləmək, bir işığın yanmadığını yoxlamaq və bir çox başqa potensial layihə kimi demək olar ki, hər şey üçün istifadə edilə bilər. Gələcəkdə funksionallığı daha da genişləndirmək istərdim. Bura daha güclü bir veb serveri, yerli fayl yerləşdirmə və hətta Bluetooth və ya mqtt əlavə etmək də daxil ola bilər.
Tövsiyə:
Wifi Smart Switch ESP8266 Alexa və Google Home Automation ilə işləyir: 7 addım
Wifi Smart Switch ESP8266 Alexa və Google Home Automation ilə işləyir: Qloballaşma dünyasında hər kəs ən son və ağıllı texnologiyaya can atır
SONOFF, ZigBee Smart Cihazlarına Alexa və Google Home Voice Control əlavə edir: 3 addım
SONOFF, ZigBee Ağıllı Cihazlarına Alexa və Google Ev Səs İdarəçiliyini əlavə edir: Wi-Fi ağıllı açarlarından və fişlərindən ZigBee ağıllı açarlarına və fişlərinə qədər səsli idarəetmə məşhur ağıllı əllərsiz idarəetmə giriş nöqtəsidir. Amazon Alexa və ya Google Home ilə işləməklə ağıllı fişlər, bağlı evə birbaşa nəzarət etməyinizə imkan verir
ESP32 ilə işə başlayın - Arduino IDE -də ESP32 lövhələrinin quraşdırılması - ESP32 Blink Kodu: 3 addım
ESP32 ilə işə başlayın | Arduino IDE -də ESP32 lövhələrinin quraşdırılması | ESP32 Blink Kodu: Bu təlimatlarda esp32 ilə işləməyə necə başlayacağımızı və esp32 lövhələrini Arduino IDE -yə necə quracağımızı görəcəyik və arduino ide istifadə edərək yanıb -sönmə kodunu işə salmaq üçün esp 32 -ni proqramlaşdıracağıq
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 addım
Sonoff B1 Firmware Home Automation Openhab Google Home: Sonoff açarları üçün Tasmota firmware proqramını çox sevirəm. Ancaq Sonoff-B1-dəki Tasmota firmware-dən çox məmnun deyildim. Openhab -a inteqrasiya etməkdə və Google Home vasitəsilə idarə etməkdə tam müvəffəqiyyət qazana bilmədim. Buna görə də öz firmamı yazdım
Honeywell Vista Alarmı Smart Hub ilə (Wink/Smartthings): 7 addım (şəkillərlə)
Honeywell Vista Siqnalının Smart Hub ilə İnterfeysi (Wink/Smartthings): Salam! Honeywell Vista siqnalizasiya sistemimi ağıllı mərkəzimə necə inteqrasiya etdiyimə dair qısa bir dərs vermək istədim. Bu dərs üçün Wink istifadə edirəm, amma bu hər hansı bir ağıllı mərkəzlə işləməlidir (Smartthings/Iris/və s.) Başlamazdan əvvəl gedirsən