Mündəricat:
- Addım 1: Materialların toplanması
- Addım 2: Arduino və ESP8266 proqramlaşdırılması
- Addım 3: Thingspeak.com -u konfiqurasiya edin
- Addım 4: Proqram
- Addım 5: Linkit Smart 7688 Duo və Veb Kamerasını konfiqurasiya edin
- Addım 6: PushingBox -u konfiqurasiya edin
- Addım 7: Backendless istifadə edərək Alexa Bacarıqlarının Yaradılması
- Addım 8: Amazon Developer Konsolunda Alexa Bacarıqlarının Konfiqurasiyası:
- Addım 9: Son Quraşdırma və Bitirin
Video: Alexa və Arduino istifadə edərək ağıllı ev monitorinqi: 9 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
İ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ı
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 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 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
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, 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ı
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 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
Şə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ə:
Raspberry Pi istifadə edərək temperatur və rütubətin monitorinqi: 6 addım (şəkillərlə)
Raspberry Pi istifadə edərək temperatur və rütubətin monitorinqi: Yaz gəlir və kondisioneri olmayanlar qapalı havanı əl ilə idarə etməyə hazır olmalıdırlar. Bu yazıda insan rahatlığı üçün ən vacib parametrləri ölçməyin müasir üsulunu təsvir edirəm: temperatur və rütubət. T
Partikül Photon istifadə edərək hava keyfiyyətinin monitorinqi: 11 addım (şəkillərlə birlikdə)
Partikül Fotonundan istifadə edərək Hava Keyfiyyətinə Nəzarət: Bu layihədə, Particle Photon ilə havada olan havanın keyfiyyətini (PM 2.5) ölçmək üçün PPD42NJ hissəcik sensoru istifadə olunur. Yalnız Particle konsolunda və dweet.io -da məlumatları göstərməklə yanaşı onu dəyişdirərək RGB LED istifadə edərək hava keyfiyyətini də göstərir
Partikül Fotonundan istifadə edərək Konfrans Otağının Monitorinqi: 8 Addım (Şəkillərlə)
Particle Photon istifadə edərək konfrans otağının monitorinqi: Giriş Bu dərslikdə Particle Photon istifadə edərək konfrans otağı monitoru hazırlayacağıq. Bu hissəcik, bir otağın olub -olmaması barədə real vaxtda məlumat almaq üçün Webhooks istifadə edərək Slack ilə birləşdirilmişdir. PIR sensorlar istifadə etmək üçün istifadə olunur
Pool Pi Guy - AI ilə idarə olunan siqnalizasiya sistemi və Raspberry Pi istifadə edərək hovuz monitorinqi: 12 addım (şəkillərlə)
Pool Pi Guy - AI ilə idarə olunan siqnalizasiya sistemi və Raspberry Pi istifadə edərək hovuz monitorinqi: Evdə bir hovuza sahib olmaq əyləncəli olsa da böyük məsuliyyətlə gəlir. Ən böyük narahatlığım, kimsə hovuzun yanında (xüsusən kiçik uşaqlar) yanında olub -olmadığını yoxlamaqdır. Ən böyük narahatçılığım, hovuz su xəttinin heç vaxt nasosun altına düşməməsini təmin etməkdir
MKR1000 və ARTIK Buluddan istifadə edərək suyun keyfiyyətinin monitorinqi: 13 addım (şəkillərlə)
MKR1000 və ARTIK Buluddan istifadə edərək suyun keyfiyyətinin monitorinqi: Giriş Bu layihənin əsas məqsədi üzgüçülük hovuzlarının pH və temperatur səviyyələrini izləmək üçün MKR1000 və Samsung ARTIK Buluddan istifadə etməkdir. qələvilik a