Mündəricat:

Alexa və Arduino istifadə edərək ağıllı ev monitorinqi: 9 addım (şəkillərlə)
Alexa və Arduino istifadə edərək ağıllı ev monitorinqi: 9 addım (şəkillərlə)

Video: Alexa və Arduino istifadə edərək ağıllı ev monitorinqi: 9 addım (şəkillərlə)

Video: Alexa və Arduino istifadə edərək ağıllı ev monitorinqi: 9 addım (şəkillərlə)
Video: Zigbee двусторонний энергомонитор постоянного тока MSH - интеграция DC UPS в Home Assistant 2024, Noyabr
Anonim
Image
Image
Materialların toplanması
Materialların toplanması

İndiki dünyada insanlar evlərində deyil, iş yerlərində daha çox vaxt keçirirlər. Bu səbəbdən iş yerində insanların evin şərtləri ilə tanış ola biləcəyi ev monitorinq sisteminə ehtiyac var. İş vaxtı "kimdənsə" evini soruşmaq daha da yaxşı olar. İstifadəçiyə evləri haqqında lazım olan məlumatı verə biləcək köməkçi olaraq Amazon Alexa -dan istifadə etməklə bunu etmək olar.

İstifadəçilər yalnız İş Yeri deyil, İnternet bağlantısı və Amazon Alexa olduğu müddətdə dünyanın istənilən yerində evin vəziyyəti ilə tanış ola bilərlər.

Bu layihədə aşağıdakı funksiyalar həyata keçirilir:

1) Fan və işıq kimi ev cihazlarını idarə edin

2) Cihazların vəziyyətini bildirir

3) Evin hava şəraitini (temperatur və rütubət) bildirir

4) Evin daxili görünüşünü lazım olduqda Gmail vasitəsilə istifadəçiyə göndərir.

5) aşağıdakı hallarda bildiriş göndərir:

* İşğalçı (şəkil də göndərir)

* Yanğın

* Qonaq (şəkil də göndərir)

Addım 1: Materialların toplanması

Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması

Tələb olunan materiallar

Arduino Uno

ESP8266 Wifi Modulu

Linkit Smart 7688 Duo

DHT11

Relaylər

IR maneə sensoru

Vebkamera

Amazon Echo Dot

Çörək taxtası və tullanan tellər

Proqram təminatı və onlayn xidmətlər:

Thingspeak.com

Arduino IDE

Amazon Alexa bacarıq dəsti

Amazon Alexa Echosim.io (Test bacarığı üçün)

Arxasız

PushingBox

Addım 2: Arduino və ESP8266 proqramlaşdırılması

Arduino və ESP8266 proqramlaşdırılması
Arduino və ESP8266 proqramlaşdırılması
Arduino və ESP8266 proqramlaşdırılması
Arduino və ESP8266 proqramlaşdırılması

Arduino IDE -ni rəsmi veb saytından yükləyin:

Arduino IDE-ni açın və əlavə lövhə meneceri URL növündə fayl-> üstünlüklərə-> gedin-https://arduino.esp8266.com/stable/package_esp8266…

Alətlər -> lövhələr -> İdarəetmə menecerinə gedin və nəhayət tapılan esp8266 paketini quraşdırın.

Arduino proqramlaşdırmaq üçün USB kabelini arduinodan kompüterə qoşun və alətlər> lövhələrdə Arduino/Genuino UNO seçin. Alətlərdəki COM portlarının hüquqlarını seçdiyinizə əmin olun (COM port nömrəsini Cihaz menecerində tapa bilərsiniz). Lazımi proqramı yazın, tərtib edin və səhv yoxdursa yüklə düyməsini basın.

ESP8266 proqramlaşdırmaq üçün əlaqəni diaqramda göstərildiyi kimi edin. usb -ni arduinodan kompüterə qoşun. Alətlər-> lövhədə-> Ümumi ESP8266 seçin və eyni zamanda sağ COM portunu seçin. Lazımi proqramı yazın, tərtib edin və səhv yoxdursa yüklə düyməsini basın. Arduino RST -ni GND -yə bağladığınızdan əmin olun (arduino, ESP8266 -a proqramçı kimi çıxış edir).

Bu Layihədə əvvəlcə ESP8266 proqramlaşdırılır və sonra dövrə əlaqələri çıxarılır. Sonra "Dövrə Bağlantıları" adlı Şəkildə göstərildiyi kimi Dövrə yenidən bağlanır. Və sonra arduino proqramlaşdırılır.

Addım 3: Thingspeak.com -u konfiqurasiya edin

Thingspeak.com -un konfiqurasiyası
Thingspeak.com -un konfiqurasiyası

Thingspeak.com saytında bir hesab yaradın.

Cihaz idarəetmə məlumatlarını saxlamaq və arduino/alexa -ya yönləndirmək üçün şeyi danışanda kanallardan istifadə edirik. kanallarda temperatur və rütubət dəyərlərini də saxlayırıq. Məlumat saxlama yeri kimi.

Thingspeak -ə daxil olun, kanallarıma keçin və yeni bir kanal yaradın. Kanallarınıza ad və təsvir verin. Layihəmizdə 8 kanala ehtiyacımız var (işi daha az kanal istifadə edərək edə bilərsiniz, ancaq proqramlaşdırma zamanı bir az çətin olacaq). Həm də bir şeyi yeniləyərkən Thingspeak -in vaxt məhdudiyyəti var. Müəyyən bir kanalın ardıcıl olaraq yenilənməsi arasında 10-15 saniyəlik bir boşluq olmalıdır.

Dəyərləri və mənaları ilə səkkiz kanal aşağıda verilmişdir

kanal adı (dəyər1 mənası, dəyər2 mənası və s.):

1) Cihaz idarəsi (0-işıqlı, 1- işıq sönmüş, 2- fan AÇIQ, 3- Fan söndürülmüş)

2) işıq vəziyyəti (0- işıq sönür, 1- işıq yanır)

3) fan vəziyyəti (0- fan sönmüş, 1- fan açıq)

4) rütubət (rütubətin dəyəri)

5) temperatur (temperaturun dəyəri)

6) qəsbkar bildirişi (1- müdaxilə xəbərdarlığı)

7) yanğın bildirişi (1- yanğın siqnalı)

8) qonaq bildirişi (1- qonaq siqnalı)

hər hansı bir kanala tıkladığınızda onun kanal idini görə bilərsiniz və API düymələri sekmesinde API düymələrini yaza bilərsiniz. Kanaldakı məlumatı/ dəyəri əldə etmək üçün kanal id tələb olunur. Və kanalda bir dəyər saxlamaq üçün yazma açarı tələb olunur.

Bir kanalın yenilənməsi üçün http sorğusu:

api.thingspeak.com/update?api_key=&field1=

kanalın müvafiq yazma düymələri ilə əvəz olunur və ola bilər (cihaz idarəçiliyində və ya temperatur/rütubət dəyərlərində 0/1)

Bir kanaldan dəyər oxumaq üçün http sorğusu:

api.thingspeak.com/channels//field/field1/last.html

oxumaq istədiyimiz kanalın xüsusi kanal id ilə əvəz olunur.

Addım 4: Proqram

Proqram 3 hissəyə bölünür:

A) Arduino üçün proqram: arduino proqramı çox sadədir. ESP8266 -dan məlumatları ardıcıl olaraq alır və alınan məlumatlara əsasən cihazlar idarə olunur. Proqram haqqında daha çox məlumatı proqramın özündə olan şərhlərdə tapa bilərsiniz.

B) ESP8266 proqramı: ESP8266 proqramı 3 şeyi əhatə edir

1) http sorğusundan istifadə edərək temperatur və rütubətin yenilənməsi

client.print (String ("GET") + "/update? key = & field1 =" + nem + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); // rütubəti yeniləyin

client.print (String ("GET") + "/update? key = & field1 =" + temperatur + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); // temperaturu yeniləyin

müvafiq olaraq rütubət və temperatur üçün danışma kanalında olan müvafiq yazma düyməsi ilə əvəz olunur. və ev sahibi api.thingspeak.com.

dht kitabxanasını buradan yükləyin:

2) əldə edilən dəyərlərə əsaslanaraq danışma və nəzarət cihazının müvafiq kanallarından oxumaq: client.print (String ("GET") + "/kanallar//field/field1/last.html HTTP/1.1 / r / n" + " Ev sahibi: " + ana +" / r / n " +" Bağlantı: bağla / r / n / r / n ");

Thingspeak -də tapılan müvafiq kanal id ilə əvəz olunur.

3) Yüksək temperaturda itələyici qutu vasitəsilə xəbərdarlıq göndərilməsi

String host1 = "api.pushingbox.com";

client.print (String ("GET") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Host:" + host1 + "\ r / n" + "Bağlantı: bağla / r / n / r / n ");

pushingbox -da cihaz idinizlə əvəz olunduğu yer.

Addım 5: Linkit Smart 7688 Duo və Veb Kamerasını konfiqurasiya edin

Linkit Smart 7688 Duo və Veb Kameranın konfiqurasiyası
Linkit Smart 7688 Duo və Veb Kameranın konfiqurasiyası
Linkit Smart 7688 Duo və Veb Kameranın konfiqurasiyası
Linkit Smart 7688 Duo və Veb Kameranın konfiqurasiyası
Linkit Smart 7688 Duo və Veb Kameranın konfiqurasiyası
Linkit Smart 7688 Duo və Veb Kameranın konfiqurasiyası

Bu layihədə veb kamera və linkit smart 7688 dueti lazım olan fotoşəkili çəkib istifadəçiyə göndərmək üçün istifadə olunur. Arduino kamera modulundan istifadə edə və arduino ilə əlaqələndirə və ya hər hansı bir IP kameradan istifadə edə bilərsiniz.

Lövhəni sıfırlamaq üçün linkit smart 7688 üzərindəki wifi düyməsini 20 saniyə basıb saxlayın. Wifi parametrləri sıfırlandıqdan sonra simsiz şəbəkə bağlantılarında onun giriş nöqtəsinin adını görə biləcəksiniz. İndi kompüteri həmin şəbəkəyə qoşun. bağladıqdan sonra brauzeri açın və ünvan çubuğuna 192.168.100.1 yazın. Portalını görə biləcəksiniz. portalına daxil olmaq üçün bir parol təyin edin.

Giriş etdikdən sonra şəbəkə sekmesine keçin və Stansiya rejimini seçin (internetə daxil olmaq üçün bizə lazımdır (linkit smart 7688 duo) və Wi -Fi şəbəkənizə qoşun və Yapılandır ve yenidən başladın düyməsini basın.

Lövhə yenidən başladıqdan sonra ona yerli bir IP ünvanı veriləcək. İstənilən IP alətlərindən və ya yönləndirici portalınızdan istifadə edərək ünvanı öyrənin. Mənim vəziyyətimdə 192.168.1.4 idi. İndi brauzerin ünvan çubuğuna yerli IP ünvanını daxil edin. kompüterin linkit smart ilə eyni şəbəkəyə qoşulduğundan əmin olun. Yenidən daxil olmağınız xahiş olunacaq.

Veb kameradan axını təmin etmək üçün-j.webp

Giriş etdikdən sonra xidmət sekmesine keçin və-j.webp

Veb kameranızı bir OTG kabeli ilə linkit smart 7688 duo usb hosta bağlaya biləcəyiniz quruluşdan sonra, axını görmək üçün brauzeri açın və ünvan çubuğuna yazın. mənim vəziyyətimdə 192.168.1.4:4400 -dir

ani çəkiliş etmək üçün əmri yazın:? action = snapshot

İndi bu görüntü yerli olaraq mövcuddur, ancaq itələyici qutu xidmətinə təqdim etməliyik. Buna nail olmaq üçün liman yönləndirməsini etməliyik. Port yönləndirmə router portalında edilə bilər. Proses fərqli marşrutlaşdırıcılar üçün fərqlidir. Xüsusi bir yönlendiricinin necə irəli yönəldiləcəyini bilmək üçün yalnız google. Ümumiyyətlə NAT xidməti altında mövcuddur. Limandan istifadə etdikdən sonra xarici IP -dən bu porta (yəni.. 4440) daxil ola bilərsiniz. Xarici IP -ni google -da "whats my ip" yazaraq tapa bilərsiniz.

Bu ünvanı yazmalısınız

yəni.. https://::? action = snapshot

pushingbox -da (növbəti addımda izah ediləcəkdir) ki, pushingbox bu görüntüyə daxil ola bilər və onu poçta əlavə edə və lazım olduqda sizə göndərə bilər.

Linkit smart 7688 dueti də məlumatların saxlanması üçün bir sd kart yuvası ilə birlikdə görüntünü sd kartda da saxlaya bilərsiniz. Bu barədə daha çox məlumatı buradan əldə edə bilərsiniz:

docs.labs.mediatek.com/resource/linkit-sm…

Addım 6: PushingBox -u konfiqurasiya edin

PushingBox konfiqurasiyası
PushingBox konfiqurasiyası

pushingbox, gmail -ə layihədəki fərqli xəbərdarlıqlar haqqında bildiriş göndərmək üçün istifadə olunur.

google hesabından istifadə edərək pushingbox -a daxil olun:

xidmətlərimə gedin xidmət əlavə edin. Gmail, twitter, android üçün push bildirişləri və s. arasından seçim etmək üçün bir çox xidmət var …

Gmail'i seçin (şəkil əlavə olaraq göndərməyimiz lazım olduğu üçün) və uyarı göndərilməli olan istifadəçinin gmail adı konfiqurasiyasını və gmail idini doldurun.

ssenarilərimə gedin və yeni bir ssenari yaradın. ssenariyə ad verin (məsələn: ALERT) əvvəllər yaradılmış xidməti əlavə edin.

poçtun uyğun mövzusunu və gövdəsini yazın və fotoşəkil əlavə etmək üçün veb kameranın ekran görüntüsünü çəkmək üçün url daxil edin. Bir itələyici qutu ssenarisini yerinə yetirmək üçün fərqli siqnallar.api üçün fərqli ssenarilər yaradın:

Addım 7: Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması

Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması
Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması
Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması
Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması
Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması
Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması

alexa bacarığı yaratmaq üçün backendless istifadə olunur. Arxasız API ilə əldə edilə bilən alexa bacarığı (və ya hər hansı bir proqram) yaratmaq üçün istifadə olunan sadə bir sürükləmə proqramdır.

backendless -da bir hesab yaradın:

  • Arxa hesab olmadan hesabınıza daxil olun. Tətbiq yarat düyməsini basın və tətbiqinizə bir ad verin
  • Solda nişanlar çubuğunda yerləşən İş Məntiqi simgesini vurun. API SERVICES ekranını görəcəksiniz.
  • Yeni bir xidmət yaratmaq üçün "+" işarəsini vurun. "Yeni Xidmət" açılan pəncərəsində KODSUZ seçdiyinizə əmin olun. Xidmət adı üçün "AlexaService" daxil edin. QAYDET düyməsini basın:
  • Backendless API Xidmətini yaradır və xidmət üçün bir metod yaratmağınızı xahiş edəcək. Bu, Alexa'dan gələn istəkləri emal edəcək bir üsul olacaq. Metod adı üçün "handleRequest" daxil edin. REST əməliyyatı üçün POST seçdiyinizə əmin olun və "req" adı ilə bir arqument elan edin və göstərildiyi kimi "Hər hansı bir obyekt" yazın:
  • Backendless metodun kodsuz məntiqi üçün bir yer tutucu yaradır. Kodsuz Məntiq Dizaynerinə keçmək üçün EDIT düyməsini basın. Yaradılmış funksiya yer tutucu blokunda "doSomething" yazan sahəni vurun və "sendAlexaResponse" olaraq dəyişdirin. Bu funksiya, alexa -ya arqument olaraq ötürülə biləcək bir şey söyləmək üçün istifadə olunur. SAVE düyməsini vurun ki, funksiya yadda qalsın.
  • "Funksiya" sözünün yanındakı bənövşəyi blokda olan dişli simgesini vurun. Aşağıdakı şəkildə göstərildiyi kimi giriş bloklarını sürükləyərək iki arqument əlavə edin. Arqumentlərin adlarını "whatToSay" və "waitForResponse" olaraq təyin edin. Diqqət yetirin, Kontekst Blokları sahəsi avtomatik olaraq arqument dəyərlərini təmsil edən bloklarla doldurulur.
  • Şəkildə olduğu kimi funksiyanın məntiqini dəyişdirin. "Nəsnələr Yarat" blokları üçün, obyekt xüsusiyyətlərinin adını dəyişdirmək üçün dişli nişanından istifadə edin. QAYDET düyməsini basaraq işinizi saxlamağı unutmayın.
  • Xüsusi funksiya qurulduqdan sonra AlexaService xidmətinin handleRequest metoduna qayıdın. Soldakı alətlər çubuğundakı Xüsusi Funksiyalar kateqoriyasına klikləyin və xidmət metodunuzun qaytarma konnektoru ilə əlaqə qurmaq üçün sendAlexaResponse blokunu sürükləyin.
  • Yuxarıdakı addımları veb saytlarında da tapa bilərsiniz:
  • BROWSER bölməsindəki Funksiyalar altından "Yeni əlavə et" düyməsini vurun. Yaradılmış funksiya yer tutucu blokunda "doSomething" yazan sahəni vurun və "getIntentName" olaraq dəyişdirin ki, funksiya göstərilən şəklə bənzəsin. nümunə ifadələrə əsaslanaraq niyyət adını alacaq. Api xidmətlərinə qayıdın-brauzer bölməsində istəyi idarə edin. Dəyişənlər və məntiq sistem bölməsindən yaradılır. Şəkillərdə göstərilən aşağıdakı dəyişənləri yaradın.
  • sonra dəyişən tələb etmək niyyətini saxlayırıq. Və sonra niyyətlərlə müqayisə edin. məsələn, sorğu "giriş" dirsə, cavab dəyişəni "salam! Nəzarət edə bilərəm …" olaraq təyin olunur. və bu cavab nəhayət alexa tərəfindən ucadan oxunur. bloku göstərildiyi kimi dəyişdirin.
  • əgər istək LightsOn niyyətindədirsə, http almaq istəyindən istifadə edərək, "yüksək səsli" kanalı "0" olaraq yeniləyirik və eyni zamanda cihazın vəziyyətini yeniləyirik (Açma/Kapatmadan asılı olaraq 1/0). Eyni şey LightsOff, FanOn və FanOff üçün də təkrarlanır.
  • Hava üçün temperatur və rütubət kanalından oxuyuruq və nəticəni cavab dəyişənində saxlayırıq. Kanal yalnız dəyərlər verdiyinə görə cavabı mənalı etmək üçün mətnlər əlavə edirik
  • qonaq otağının anlıq görüntüsü üçün pushingbox ssenarisini işə salırıq
  • cihaz statusu üçün şeylərin danışma status kanalından məlumat oxuyuruq:
  • xəbərdarlıq kanallarından oxuduğumuz bildiriş və xəbərdarlıqlar üçün (yanğın, müdaxilə və qonaq):
  • bildiriş sahəsindən əldə etdiyimiz dəyərlərə əsaslanaraq, uyarı mesajları cavab0 dəyişənində saxlanılır. bildiriş yoxdursa, heç bir bildiriş mesajı saxlanmır.
  • bildiriş oxunduqdan sonra '0' bildiriş kanallarında yenilənir, beləliklə alexa eyni bildirişi bir daha oxumayacaq. Sonra nəhayət sorğu əsasında cavab0/cavab dəyişəni ucadan oxunur.

Addım 8: Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası:

Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası
Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası
Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası
Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası
Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası
Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası

amazon geliştirici konsoluna gedin və amazon hesabından istifadə edərək daxil olun.

geliştirici konsoluna gedin və ALEXA sekmesini vurun. Başlamaq üçün alexa bacarıqları dəstini vurun.

Xüsusi bacarıq növü yaradın, bacarıqlara ad və çağırış adı verin. müvafiq niyyətlər və nümunə ifadələr kodda verilir.

konfiqurasiya sekmesinde HTTPS -ni xidmət son nöqtəsi olaraq seçin, standart URL -ni backendless -dən API URL ilə doldurun. SSL sertifikatında standart son nöqtə üçün Sertifikatda 2 -ci seçimi seçin. Test simulyatorundan istifadə edərək bacarıqlarınızı sınaya bilərsiniz.

Test başa çatdıqdan sonra lazımi nəşr məlumatları ilə bacarıqları dərc edə bilərsiniz.

Addım 9: Son Quraşdırma və Bitirin

Son Quraşdırma və Bitirin!
Son Quraşdırma və Bitirin!
Son Quraşdırma və Bitirin!
Son Quraşdırma və Bitirin!

Şəbəkə bağlantısını göstərildiyi kimi edin.

Bəzən kifayət qədər cərəyan olmadığı üçün ESP8266 arızalana bilər. Beləliklə, dövrədə qeyd olunmasa da, ESP8266 -nı ayrı bir 3.3v mənbəyindən gücləndirmək tövsiyə olunur. Bir güc bankı istifadə edirsinizsə, bir 3.3v gərginlik tənzimləyicisi istifadə edərək, 5v -dan 3.3v -ə endirdiyinizə əmin olun. Proqramı ESP8266 və arduino -ya yükləyin. Lampaya olan əlaqəni göstərdim, eyni şeyi fan və ya hər hansı bir cihaza da uzatmaq olar. Nəhayət bacarıqlarınızı yoxlamaq üçün amazon echo və ya echosim.io istifadə edin.

Çağırış adından istifadə edərək bacarığı aktivləşdirməlisiniz (mənim vəziyyətimdə olduğu kimi - "evim"). Videomda bir neçə dəfə göstərdiyim kimi çağırış adı olmadan istifadə olunarsa bəzən işləməyəcək

Ümid edirik ki, dərsdən zövq aldınız!

Çox sağ ol!

Tövsiyə: