Mündəricat:

IoT Outdoor Pet Door: 6 Addım (Şəkillərlə birlikdə)
IoT Outdoor Pet Door: 6 Addım (Şəkillərlə birlikdə)

Video: IoT Outdoor Pet Door: 6 Addım (Şəkillərlə birlikdə)

Video: IoT Outdoor Pet Door: 6 Addım (Şəkillərlə birlikdə)
Video: Женщина подала на развод сразу после того, как увидела это фото... 2024, Noyabr
Anonim
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı
IoT Açıq Heyvan Qapısı

Avtomatik bir toyuq yuvası qapısı yaratmaq üçün bu təlimatdan ilham aldım. Yalnız toyuq yuvasının qapısını taymerdə görmək istəmirdim, həm də telefonla və ya kompüterimlə idarə etmək üçün qapını internetə bağlamaq istəyirdim. Bu qapı mənim toyuq yuvam üçün tikilmişdi, lakin müxtəlif ev heyvanları üçün digər ev tiplərinə asanlıqla tətbiq oluna bilərdi. İstifadə etdiyim köhnə avtomobil antenna motorundan başqa müxtəlif növ 12V mühərriklərdən də istifadə edə bilərsiniz.

Adafruit IO və IFTTT -ni ESP8266 -ya qurduqdan və bağladıqdan sonra toyuq yuvamın qapısı onlayn idarə oluna bilər. Qapı açıla və ya bağlana bilər:

1) Adafruit.io saytına daxil olduğum dəqiq vaxtlarda

2) Telefonumdakı düyməni basaraq

3) Müəyyən bir nömrəyə mətn mesajı göndərməklə

4) adafruit.io üzərindəki bir düyməni basaraq

5) Fiziki düyməyə basaraq

Bu xüsusiyyətlərin üstündə, toyuq yuvası qapısı IFTTT proqramı vasitəsi ilə telefonuma qapının açılmaması və ya bağlanmaması kimi hər hansı bir problem haqqında push bildirişləri göndərə bilər.

Toyuq yuvam WiFi yönləndiricimdən təxminən 500 fut kənarda olduğundan, bu layihəni həyata keçirmək üçün ESP8266 ilə qoşulmuş 433MHz RFM69HCW ötürücü və qəbuledici istifadə etdim. İnternete bağlı olan və mühərriki idarə edən boz bir açıq alıcı qutusu olan qara bir qapalı ötürücü qutusu var.

Bu təlimat, toyuq yuvamın qapısını açan və ya bağlayan 12V mühərriki idarə etmək üçün lazım olan avadanlıqların yaradılması prosesindən keçəcəkdir.

Aşağıdakı hissələrdən istifadə etdim:

Adafruit 32u4, 433MHz RFM69HCW ilə - 25 dollar

Adafruit MCP23017 I2C 16 giriş/çıxış port genişləndiricisi IC - 2.95 dollar

ESP8266 WiFi ilə Adafruit Lələk HUZZAH - 16.95 dollar

Adafruit Radio FeatherWing 433MHz RFM69HCW - 10 dollar

1,6 mm qalınlığında PCB üçün Adafruit SMA Konnektoru - 2,50 dollar

Adafruit uFL SMA Anten Konnektoru - 0,75 dollar

Adafruit RGB Push düyməsi - 10.95 dollar

12V enerji təchizatı - 7 dollar

5V USB enerji təchizatı - 7 dollar

Mikro USB Kabel - 5 dollar

4 Kanal Relay Board (2 kanaldan istifadə edə bilər)- 7 dollar

DC -DC Buck Dönüştürücü (yalnız bir istifadə olunur, ancaq 5 paket olaraq gəlir) - 20 dollar

Reed Switch (maqnit qapı açarı sensoru) - 9 dollar

2x 433MHz çox yönlü anten - 6 dollar

uFL -dən SMA Kabel Adaptörünə (yalnız bir istifadə olunur, ancaq 2 paket olaraq gəlir) - 5 dollar

Suya davamlı ABS layihə qutusu - 11 dollar

Qara ABS layihə qutusu - 10 dollar

20x4 Mavi Xarakterli LCD - 10 dollar

12V Avtomobil Anten Motoru - ebayda ~ 25 dollar

Tel və rezistorlar

Addım 1: Xarici Alıcı

Açıq qəbuledici
Açıq qəbuledici
Açıq qəbuledici
Açıq qəbuledici

Xarici qəbuledici, 12V mühərrikin gücünü açan və ya söndürən bir neçə röle ilə əlaqəli 433MHz RFM69HCW ilə Adafruit 32u4 -dən ibarətdir. Bu modullar və 12V-dan 5V-a qədər DC-DC çeviricisi suya davamlı boz bir layihə qutusunun içərisindədir. Nəhayət, 32u4 Arduino mikrokontrolörünün pinlərindən birinə bağlı olan bir qapı açarı sensoru var ki, qapının lazım olduqda açılıb -açılmadığını hiss edir.

Hər 15 saniyədə qapalı ötürücü "Aç" və ya "Bağla" mesajını göndərir. Alınan əmr əsasında Arduino 32u4 bir röleyi açacaq və ya söndürəcək. Köhnə bir avtomobil antenası olan seçdiyim motor üçün, motorun necə bağlandığına görə iki röleyi açmalı və ya söndürməli oldum. Əsasən gücü açmaq üçün bir röle və sonra motorun uzanmasını və ya geri çəkilməsini idarə edən başqa bir röle var idi.

Açıq və ya yaxın ötürmə alındıqdan sonra, xarici qəbuledici "sensorOpen" və ya "sensorClosed" ilə cavab verir ki, bu da qapı açarı sensorunun vəziyyətini göstərir. İdeal olaraq, "aç" əmri "sensorOpen" cavabı verərdi, ancaq qapı ilişib qalsa və ya motor sıxışsa, bunlar uyğun gəlməyəcək. Uyuşmadıqda, qapalı ötürücü bu məlumatı göstərəcək və telefonunuza bir push bildirişi göndəriləcək.

Addım 2: Xarici Alıcı Aparatının Bağlanması

Xarici Alıcı Avadanlıqlarının Bağlanması
Xarici Alıcı Avadanlıqlarının Bağlanması
Xarici Alıcı Avadanlıqlarının Bağlanması
Xarici Alıcı Avadanlıqlarının Bağlanması
Xarici Alıcı Avadanlıqlarının Bağlanması
Xarici Alıcı Avadanlıqlarının Bağlanması

Xarici alıcının aparatını bağlamaq o qədər də çətin deyil. İstifadə etdiyim sancaqlar asanlıqla baxıla bilməsi üçün aşağıda bir fritzing sxemini daxil etdim.

Yuxarıda qeyd etdiyim kimi istifadə etdiyim motor iki röle tələb edirdi. Pinout şəklini daxil etdim. Qırmızı telə 12V bağladığınızda, motor uzansa geri çəkiləcək. Qırmızı telə və yaşıl telefona eyni zamanda 12V bağlasanız, motor uzanacaq.

Yuxarıda bağladığım qamış açarı normal olaraq qapalı bir keçid olaraq bağlanmalıdır. Normalda açıq və normal olaraq bağlanan arasındakı fərq yuxarıda əlavə etdiyim şəkildə izah edilir. Proqramdan istifadə edərək, 32u4 üzərindəki giriş piminə bir daxili çəkmə rezistoru əlavə olunur, buna görə də qapı açarını giriş pininə və həmçinin yerə bağlamaq kifayətdir.

Adafruit 32u4 -ə anten bağlamalı olacaqsınız. Zəhmət olmasa Adafruit -in bu addımla bağlı çox yaxşı izah olunan dərsliyinə baxın. Daha yaxşı əhatə dairəsi əldə etmək üçün bir tel parçası yerinə xarici anten istifadə etməyi seçdim.

Addım 3: Daxili ötürücü

Daxili ötürücü
Daxili ötürücü
Daxili ötürücü
Daxili ötürücü
Daxili ötürücü
Daxili ötürücü

Daxili ötürücü, ESP8266 WiFi ilə Adafruit Lələk HUZZAH -ın üstünə yığılmış Adafruit Radio FeatherWing 433MHz RFM69HCW -dən ibarətdir. Bu modullar 20x4 xarakterli displeyə və qara layihə qutusunun içərisində RGB gümüş düyməsinə bağlıdır.

Ekranda NTC ilə senkronize edilmiş saat, RS -nin gücü dB (radio siqnallarının gücünü ölçür), toyuq yuvasının qapısının açılacağı vaxt, toyuq yuvasının qapısının bağlanacağı vaxt və qapının hazırkı vəziyyəti var. Qapı bağlandıqda düymə qırmızı, qapı açıq olduqda yaşıl rəngdədir.

Xarici alıcı gücünü itirərsə və ya 433MHz siqnalı hər hansı bir səbəbdən göndərilə bilmirsə, ekran və RGB düyməsi iki mümkün səhv rejimindən birincisinə keçəcək. İlk səhv rejimində ekranda "ERROR! Açıq alıcını yenidən başlatmağa çalışın" yazılacaq. və düymənin rəngi olmayacaq. Qapı açarı sensoru qapının düzgün bağlanmadığını və ya açılmadığını algılarsa, ekran və RGB düyməsi iki səhv rejimindən ikincisinə keçəcək. İkinci səhv rejimində ekranda "ERROR! Qapı və ya keçid sensoru problemi" yazılacaq. və düymənin rəngi olmayacaq. Problem öz həllini tapdıqda ekran və RGB düyməsi normal vəziyyətinə qayıdacaq. Bu səhv rejimlərindən hər hansı biri baş verərsə, telefonunuza push bildirişləri ala bilərsiniz (sonrakı mərhələdə bu quruluşa keçəcəyəm).

Addım 4: Bağlı Verici Avadanlığının Bağlanması

Daxili Verici Avadanlığının Bağlanması
Daxili Verici Avadanlığının Bağlanması
Daxili Verici Avadanlığının Bağlanması
Daxili Verici Avadanlığının Bağlanması

Adafruit Radio FeatherWing 433MHz RFM69HCW -ni ESP8266 WiFi ilə Adafruit Lələkli HUZZAH -ın üstünə yığdıqdan sonra götürülməmiş 2 pin qalır, I2C sancaqlar SDA və SCL. Bu səbəbdən MCP23017 inteqral dövrə (IC) ilə getdim. I2C üzərindəki hər hansı bir mikro nəzarətçiyə 16 -a qədər əlavə giriş/çıxış pinini bağlayan həqiqətən sərin bir IC. Üstəlik, Adafruit-RGB-LCD-Shield adlı əvvəlcədən yazılmış bir kitabxana var ki, bu IC-ni bu Adafruit məhsulu üçün texniki olaraq yazılmış bir xarakter ekranı ilə istifadə edir, lakin bu layihə üçün mükəmməl işləyir.

MCP23017 -ni bir xarakter göstəricisi ilə istifadə etmək fikri, bu çox yaxşı yazılmış təlimatlıdır. Zəhmət olmasa yoxlayın!

Təlimat verdim və IC -yə birdən çox düymə və RGB ekranı bağlamaq əvəzinə içərisində RGB LED və monoxrom ekranı olan bir düyməni bağladım. Bu, IC -nin PIN 1 -ini (adətən RGB ekranın mavi arxa işığı üçün istifadə olunur) monoxrom ekranın arxa işığı, PIN 28 -i (ümumiyyətlə RGB ekranın yaşıl arxa işığı üçün istifadə olunur) içərisində qırmızı LED olaraq təyin etməyə imkan verdi. düymə və PIN 27 (adətən RGB ekranın qırmızı arxa işığı üçün istifadə olunur) düymənin içərisində yaşıl LED olaraq. PIN 24 düymənin bir tərəfinə, digər tərəfi isə yerə bağlı idi. Yuxarıdakı fotoşəkildə düymənin ucunu görə bilərsiniz (mavi katodu ayırdım).

Ekranı bağlamağa kömək etmək üçün əlaqələndirdiyim təlimatı istifadə etməklə yanaşı, hər şeyi birləşdirməyinizə kömək edəcək bir dəhşətli sxem də daxil etdim.

Bu Adafruit dərsliyində izah edildiyi kimi FeatherWing 433MHz RFM69HCW -nin üstündəki üç sancağı qısa etməlisiniz. FeatherWing 433MHz RFM69HCW -ə də anten bağlamalı olacaqsınız. Zəhmət olmasa Adafruit -in bu addımla bağlı çox yaxşı izah olunan dərsliyinə baxın. Daha yaxşı əhatə dairəsi əldə etmək üçün bir tel parçası əvəzinə yan tərəfə quraşdırılmış SMA konnektoru olan xarici bir anten istifadə etməyi seçdim.

Addım 5: Adafruit. IO və IFTTT -yə qoşulmaq

Adafruit. IO və IFTTT -ə qoşulmaq
Adafruit. IO və IFTTT -ə qoşulmaq
Adafruit. IO və IFTTT -ə qoşulmaq
Adafruit. IO və IFTTT -ə qoşulmaq

Adafruit IO:

Hesabınız yoxdursa, Adafruit. IO -ya üzv olmaq üçün bu Adafruit dərsliyindəki təlimatları izləyin. Bir yemin və tablonun nə olduğunu da oxumalısınız.

Sadə dildə desək, tablosu qrafik istifadəçi interfeysi kimidir, lentlər isə internetdə saxlaya bilmək üçün məlumat göndərdiyiniz şeydir. 1 tablosuna və 4 keçid yaratmalısınız. Toyuq yuvasını necə düzgün yazacağımı bilmədən adımı verdim, bu səbəbdən səhv yazımı bağışlayın. Arduino kodundakı yem adlarının adını dəyişdirmək istəmirsinizsə, etdiyim addan istifadə edin.

Əvvəlcə dörd kanal yaradın:

1) "Toyuq zərbəsi" Bu Açıq/Qapalı keçid üçündür

2) "Toyuq Coup Timer" Bu açıq taymer üçündür

3) "Toyuq Coup Timer 2" Bu yaxın timer üçündür

4) "Toyuq Zərbəsi Hata Mesajı" Bu səhv mesajları üçündür

Növbəti Toyuq Zərbəsi adlı bir tablosu yaradın və mavi + düyməsini istifadə edərək 4 blok əlavə edin. Zəhmət olmasa yerləşdirməli olduğunuz blok növləri və blokların adları üçün yuxarıdakı şəklə baxın. Keçid statuslarını tam olaraq "Açıq" və "Bağlı" adlandırdığınızdan əmin olun

IFTTT:

Bu layihənin IFTTT hissəsi, telefonunuzdakı bir düyməni basmaq və toyuq yuvasının qapısını açmaq və ya bağlamaq üçün bir mətn göndərmək imkanı əlavə edir. IFTTT tətbiqinə, Toyuq Zərbəsi Səhv Mesajı yemində bir şey dərc edildiyi təqdirdə sizə təkan bildirişləri göndərməyə imkan verir. Bu imkanları istəmirsinizsə, bu bölməni atlaya bilərsiniz.

Əvvəlcə hesabınız yoxdursa, IFTTT hesabı qurun. Yaratdığım əvvəlcədən hazırlanan appletlərdən istifadə etmək istəyirsinizsə, sadəcə hesabıma gedin və istədiyiniz tətbiqləri açın. Əks təqdirdə, özünüz özünüzü yaratmalı və yuxarıda yaratdığınız adafruit yeminə abunə olmalı və ya dərc etməli olacaqsınız.

Addım 6: Kodun Yüklənməsi və WiFi SSID və Şifrəsinin Redaktə Edilməsi

Daxili ötürücüyə kod yükləyə bilmək üçün Adafruit təlimatının bu səhifəsindən keçməlisiniz.

Açıq alıcıya kod yükləyə bilmək üçün Adafruit təlimatının bu səhifəsindən keçməlisiniz.

RFM69 kitabxanasını, Adafruit_RGBLCDShield kitabxanasını, simpleDSTadjust adlı NTC saat kitabxanasını və qeyd kitabxanasını qurmalısınız. Bunun necə ediləcəyinə dair bir təlimatı burada tapa bilərsiniz.

Arduino IDE -ni açın və "Outdoor_Receiver.ino" kodunu USB kabeli üzərindən açıq Arduino 32u4 -ə yükləyin.

Sonra, "Indoor_Transmitter.ino" nu açın, config.h sekmesini açın və WiFi adınızı (SSID) və şifrənizi dırnaq işarələrinə daxil edin. Sonra, bu təlimat səhifəsini izləyərək Adafruit. IO istifadəçi adınızı və IO Açarınızı əldə edin və config.h sekmesine daxil edin.

Adafruit IO lentlərinin adlarını dəyişdirmisinizsə, kodu Indoor_Transmitter əsas sekmesinde düzəltməlisiniz. Aşağıdakıları redaktə edin:

AdafruitIO_Feed *toggleSwitch = io.feed ("Toyuq zərbəsi");

AdafruitIO_Feed *timer = io.feed ("Toyuq zərbəsi taymeri");

AdafruitIO_Feed *timer2 = io.feed ("Toyuq Coup Timer 2");

AdafruitIO_Feed *error = io.feed ("Toyuq Zərbəsi Xətası Mesajı");

Etməli olduğunuz hər şey bu olmalıdır! İki eskizin necə işlədiyini daha yaxşı başa düşmək istəyirsinizsə, kodu şərh etdim. Hər hansı bir sualınız varsa, mənə bildirin. Uğurlar!

Tövsiyə: