Mundarija:

Alexa va Arduino yordamida uyning aqlli monitoringi: 9 qadam (rasmlar bilan)
Alexa va Arduino yordamida uyning aqlli monitoringi: 9 qadam (rasmlar bilan)

Video: Alexa va Arduino yordamida uyning aqlli monitoringi: 9 qadam (rasmlar bilan)

Video: Alexa va Arduino yordamida uyning aqlli monitoringi: 9 qadam (rasmlar bilan)
Video: 97-dars: Qurilmalarni masofadan boshqarish, WIFI smart switch. 2024, Noyabr
Anonim
Image
Image
Materiallarni yig'ish
Materiallarni yig'ish

Hozirgi dunyoda odamlar uylarida emas, ish joylarida ko'proq vaqt o'tkazishadi. Shunday qilib, odamlar ish paytida uy sharoitlari bilan tanishishlari mumkin bo'lgan uy monitoringi tizimiga ehtiyoj bor. Agar ish vaqtida "kimgadir" o'z uyi haqida so'rashsa, yanada yaxshi bo'lardi. Bunga Amazon Alexa -dan yordamchi sifatida foydalanish orqali erishish mumkin, bu foydalanuvchiga o'z uyi haqida kerakli ma'lumotlarni berishi mumkin.

Foydalanuvchilar nafaqat ish joyida, balki Internet aloqasi va Amazon Alexa -ga ega bo'lishlari sharti bilan dunyoning istalgan joyidagi uyning holati bilan tanishishlari mumkin.

Ushbu loyihada quyidagi funktsiyalar amalga oshiriladi:

1) Uy jihozlarini fan va yorug'lik kabi boshqaring

2) Qurilmalarning holatini aytadi

3) uyning ob -havo holatini (harorat va namlik) aytadi

4) Zarur bo'lganda Gmail orqali foydalanuvchilarga uyning ichki tasvirini yuboradi.

5) quyidagi hollarda xabar yuboradi:

* Bosqinchi (shuningdek, rasm yuboradi)

* Yong'in

* Mehmon (rasm ham yuboradi)

1 -qadam: materiallarni yig'ish

Materiallarni yig'ish
Materiallarni yig'ish
Materiallarni yig'ish
Materiallarni yig'ish
Materiallarni yig'ish
Materiallarni yig'ish

Kerakli materiallar

Arduino Uno

ESP8266 Wi -Fi moduli

Linkit Smart 7688 Duo

DHT11

Relaylar

IR to'siqni sensori

Vebkamera

Amazon echo nuqtasi

Non paneli va o'tish simlari

Dasturiy ta'minot va onlayn xizmatlar:

Thingspeak.com

Arduino IDE

Amazon Alexa mahorat to'plami

Amazon Alexa Echosim.io (malaka sinovi uchun)

Orqa tarafsiz

PushingBox

2 -qadam: Arduino va ESP8266 dasturlash

Arduino va ESP8266 dasturlash
Arduino va ESP8266 dasturlash
Arduino va ESP8266 dasturlash
Arduino va ESP8266 dasturlash

Arduino IDE -ni rasmiy veb -saytidan yuklab oling:

Arduino IDE-ni oching va qo'shimcha menejer URL turidagi file-> preferences-> ga o'ting-https://arduino.esp8266.com/stable/package_esp8266…

Asboblar -> taxtalar -> Kengash menejeriga o'ting va oxirida topilgan esp8266 paketini o'rnating.

Arduino-ni dasturlash uchun USB kabelini arduino-dan kompyuterga ulang va asboblar-> taxtalarda Arduino/Genuino UNO-ni tanlang. Asboblar bo'limida MAQOMOTI portlarining huquqlarini tanlaganingizga ishonch hosil qiling (MAQOMOTI port raqamini Qurilma menejerida topishingiz mumkin). Kerakli dasturni yozing, kompilyatsiya qiling va xato bo'lmasa yuklashni bosing.

ESP8266 dasturini ulash uchun diagrammada ko'rsatilgandek ulaning. usb -ni arduino -dan kompyuterga ulang. Asboblar-> taxta-> Umumiy ESP8266-ni tanlang va o'ng COM portini tanlang. Kerakli dasturni yozing, kompilyatsiya qiling va xato bo'lmasa yuklashni bosing. Arduino RST ni GND ga ulaganingizga ishonch hosil qiling (arduino ESP8266 uchun dasturchi kabi ishlaydi).

Ushbu loyihada birinchi navbatda ESP8266 dasturlashtiriladi, so'ngra kontaktlarning zanglashiga olib tashlanadi. Keyin "O'chirish ulanishlari" nomli rasmda ko'rsatilgandek, kontaktlarning zanglashiga olib keladi. Va keyin arduino dasturlashtirilgan.

3 -qadam: Thingspeak.com ni sozlash

Thingspeak.com ni sozlash
Thingspeak.com ni sozlash

Thingspeak.com saytida hisob yarating.

Biz qurilmalarni boshqarish ma'lumotlarini saqlash va arduino/alexa -ga yo'naltirish uchun narsalarni gapirishda kanallardan foydalanamiz. biz ham kanallarda harorat va namlik qiymatlarini saqlaymiz. Ma'lumotni saqlash joyiga o'xshaydi.

Thingspeak -ga kiring, mening kanallarim kanallariga o'ting va yangi kanal yarating. Kanallaringizga ism va tavsif bering. Bizning loyihamizda bizga 8 ta kanal kerak (siz ishni kamroq kanallar yordamida bajarishingiz mumkin, lekin dasturlashda biroz murakkab bo'ladi). Bundan tashqari, narsalarni yangilashda "narsalarni gapirish" da vaqt cheklovlari mavjud. Muayyan kanalni ketma-ket yangilash o'rtasida 10-15 soniya bo'sh joy bo'lishi kerak.

Quyida sakkiz kanal, ularning qiymati va ma'nosi ko'rsatilgan

kanal nomi (qiymat1 ma'nosi, qiymat2 ma'nosi va boshqalar):

1) Qurilmani boshqarish (0- yorug'lik, 1- yorug'lik o'chirilgan, 2- fan yoqilgan, 3- ventilyator o'chirilgan)

2) yorug'lik holati (0- yorug'lik o'chirilgan, 1- chiroq yoqilgan)

3) fan holati (0- fan yopiq, 1- fan yoqilgan)

4) namlik (namlik qiymati)

5) harorat (harorat qiymati)

6) tajovuzkorlar haqida bildirishnoma (1- bosqinchilardan ogohlantirish)

7) yong'in xabari (1- yong'in haqida ogohlantirish)

8) mehmon xabarnomasi (1- mehmonlar haqida ogohlantirish)

har qanday kanalni bosganingizda, uning kanal identifikatorini ko'rishingiz va API kalitlari ko'rinishida API kalitlarini yozishingiz mumkin. kanaldagi ma'lumot/ qiymatni olish uchun kanal identifikatori kerak. Va kanalda qiymatni saqlash uchun yozish kaliti kerak.

Kanalni yangilash uchun http so'rovi:

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

kanalning tegishli yozish tugmachalari bilan almashtiriladi va bo'lishi mumkin (qurilma boshqaruvi yoki harorat/namlik holatida 0/1)

Kanaldan qiymat o'qish uchun http so'rovi:

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

biz o'qishni xohlagan kanalning maxsus kanal identifikatori bilan almashtiriladi.

4 -qadam: Dastur

Dastur 3 qismga bo'lingan:

A) Arduino uchun dastur: arduino uchun dastur juda oddiy. U ESP8266 -dan ma'lumotlarni ketma -ket oladi va olingan ma'lumotlarga asoslanib, qurilmalar boshqariladi. Dastur haqida ko'proq ma'lumotni dasturning o'zidagi izohlarda topishingiz mumkin.

B) ESP8266 uchun dastur: ESP8266 uchun dastur 3 narsani o'z ichiga oladi

1) http so'rovi yordamida harorat va namlikni yangilash

client.print (String ("GET") + "/update? key = & field1 =" + namlik + "HTTP/1.1 / r / n" + "Xost:" + host + "\ r / n" + "Ulanish: yaqin / r / n / r / n "); // namlikni yangilash

client.print (String ("GET") + "/update? key = & field1 =" + harorat + "HTTP/1.1 / r / n" + "Xost:" + host + "\ r / n" + "Ulanish: yopish / r / n / r / n "); // haroratni yangilash

namlik va harorat uchun mos keladigan kanalda joylashgan tegishli yozish kaliti bilan almashtiriladi. va mezbon - api.thingspeak.com.

dht kutubxonasini yuklab oling:

2) mos keladigan kanallardan gapirish va boshqarish moslamalarini olingan qiymatlarga asoslanib o'qish: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Xost: " + host +" / r / n " +" Ulanish: yop / r / n / r / n ");

bu erda mos keladigan id identifikatori bilan almashtiriladi.

3) bosish qutisi orqali yuqori haroratda ogohlantirish yuborish

String host1 = "api.pushingbox.com";

client.print (String ("Get") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Xost:" + host1 + "\ r / n" + "Ulanish: yopish / r / n / r / n ");

bu erda pushingbox -dagi qurilmangiz identifikatori bilan almashtiriladi.

5 -qadam: Linkit Smart 7688 Duo va veb -kamerani sozlash

Linkit Smart 7688 Duo va veb -kamerani sozlash
Linkit Smart 7688 Duo va veb -kamerani sozlash
Linkit Smart 7688 Duo va veb -kamerani sozlash
Linkit Smart 7688 Duo va veb -kamerani sozlash
Linkit Smart 7688 Duo va veb -kamerani sozlash
Linkit Smart 7688 Duo va veb -kamerani sozlash

Ushbu loyihada veb -kamera va linkit smart 7688 dueti kerakli fotosuratni olish va foydalanuvchiga yuborish uchun ishlatiladi. Siz shuningdek arduino kamera modulidan foydalanishingiz va uni arduino bilan bog'lashingiz yoki har qanday IP -kameradan foydalanishingiz mumkin.

Kengashni qayta o'rnatish uchun smartit 7688 linkitidagi wifi tugmachasini 20 soniya bosib turing. Wi -Fi sozlamalari tiklangandan so'ng, siz simsiz tarmoq ulanishlarida uning kirish nuqtasi nomini ko'rishingiz mumkin. Endi kompyuterni ushbu tarmoqqa ulang. ulangandan so'ng brauzerni oching va manzil satriga 192.168.100.1 kiriting. Siz uning portalini ko'rishingiz mumkin. uning portaliga kirish uchun parol o'rnating.

Tizimga kirganingizdan so'ng, tarmoq yorlig'iga o'ting va Stantsiya rejimini tanlang (Internetga kirish uchun bizga kerak (linkit smart 7688 duo)) va uni Wi -Fi tarmog'iga ulang va "Konfiguratsiya qilish va qayta ishga tushirish" tugmasini bosing.

Kengash qayta ishga tushirilgandan so'ng, unga mahalliy IP -manzil beriladi. IP -asboblar yoki yo'riqnoma portali yordamida manzilni bilib oling. Mening holatimda bu 192.168.1.4 edi. Endi brauzerning manzil satriga mahalliy IP -manzilni kiriting. kompyuter linkit smart bilan bir xil tarmoqqa ulanganligiga ishonch hosil qiling. Sizdan yana tizimga kirishingiz so'raladi.

Veb-kameradan uzatishni yoqish uchun siz -j.webp

Tizimga kirganingizdan so'ng, xizmat yorlig'iga o'ting va -j.webp

Veb -kamerani OTG kabeli orqali linkit smart 7688 duo usb hostiga ulashingiz uchun sozlashdan so'ng, oqimni ko'rish uchun brauzerni oching va manzil satriga yozing. mening holimda bu 192.168.1.4:4400

tezkor suratga olish uchun buyruqni kiriting:? action = oniy tasvir

Endi bu rasm mahalliy darajada mavjud, lekin biz uni qutilarga xizmat ko'rsatish imkoniyatiga ega bo'lishimiz kerak. Bunga erishish uchun biz portni qayta yo'naltirishni amalga oshirishimiz kerak. Portni yo'naltirish yo'riqnoma portalida amalga oshirilishi mumkin. Turli marshrutizatorlar uchun jarayon boshqacha. Ma'lum bir yo'riqnoma uchun qanday oldinga yo'naltirishni bilish uchun faqat Google. Odatda NAT xizmati ostida mavjud. Portni uzatgandan so'ng, tashqi IP -dan ushbu portga (ya'ni. 4440) kirish mumkin. Tashqi IP -ni google -da "whats my ip" deb bog'lash orqali topish mumkin.

Siz bu manzilni kiritishingiz kerak

ya'ni.. https://::? harakat = oniy tasvir

pushing qutisida (keyingi bosqichda tushuntiriladi) pushingbox bu rasmga kirishi va uni pochta orqali biriktirishi va kerak bo'lganda sizga yuborishi mumkin.

Siz tasvirni sd -kartada saqlashingiz mumkin, chunki Linkit smart 7688 dueti ma'lumot saqlash uchun sd -karta uyasi bilan birga keladi. Bu haqda qo'shimcha ma'lumotni quyidagi manzilda topishingiz mumkin:

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

6 -qadam: PushingBox -ni sozlash

PushingBox -ni sozlash
PushingBox -ni sozlash

pushingbox gmail -ga loyihadagi har xil ogohlantirishlar haqida bildirishnoma yuborish uchun ishlatiladi.

Google hisobidan pushingbox -ga kiring:

xizmatlarimga o'ting, xizmatni qo'shing. Gmail, twitter, android uchun push -xabarnoma va boshqalarni tanlash uchun ko'plab xizmatlar mavjud.

Gmail -ni tanlang (rasmni ilova sifatida yuborish kerak) va ogohlantirish yuborilishi kerak bo'lgan foydalanuvchining gmail nomining mos konfiguratsiyasi va gmail identifikatorini to'ldiring.

Mening stsenariylarimga o'ting va yangi stsenariyni yarating. ssenariyga nom bering (masalan: ALERT), avval yaratilgan xizmatni qo'shing.

tegishli mavzu va xatni yozing va rasmni qo'shish uchun veb -kameraning skrinshotini olish uchun URL manzilini kiriting. Har xil ogohlantirishlar uchun turli xil stsenariylarni yarating: surish qutisi stsenariysi uchun:

7 -qadam: Backendless yordamida Alexa ko'nikmalarini yaratish

Backendless yordamida Alexa ko'nikmalarini yaratish
Backendless yordamida Alexa ko'nikmalarini yaratish
Backendless yordamida Alexa ko'nikmalarini yaratish
Backendless yordamida Alexa ko'nikmalarini yaratish
Backendless yordamida Alexa ko'nikmalarini yaratish
Backendless yordamida Alexa ko'nikmalarini yaratish

backendless alexa mahoratini yaratish uchun ishlatiladi. Bu orqaga cheksiz API orqali kirish mumkin bo'lgan alexa mahoratini (yoki har qanday dasturlarni) yaratish uchun ishlatiladigan oddiy sudrab tashlash dasturi.

backendless -da hisob yaratish:

  • Shaxsiy hisobingizda hisobingizga kiring. Ilova yaratish -ni bosing va ilovangizga nom bering
  • Chapdagi ikonkalar panelida joylashgan Business Logic belgisini bosing. Siz API SERVICES ekranini ko'rasiz.
  • Yangi xizmatni yaratish uchun "+" belgisini bosing. "Yangi xizmat" qalqib chiquvchi oynasida CODELESS ni tanlaganingizga ishonch hosil qiling. Xizmat nomi uchun "AlexaService" ni kiriting. Saqlash tugmasini bosing:
  • Backendless API xizmatini yaratadi va sizga xizmat uchun usul yaratishni taklif qiladi. Bu Alexa so'rovlarini ko'rib chiqadigan usul. Usul nomi uchun "handleRequest" kiriting. REST operatsiyasi uchun POSTni tanlaganingizga ishonch hosil qiling va "req" nomi bilan argumentni e'lon qiling va ko'rsatilganidek "Har qanday ob'ekt" ni yozing:
  • Backendless usuli kodsiz mantiq uchun joy egallaydi. Codeless Logic Designer -ga o'tishni boshlash uchun EDIT tugmasini bosing. Yaratilgan funktsiyalarni joylashtirish blokida "doSomething" degan maydonni bosing va uni "sendAlexaResponse" ga o'zgartiring. Bu funktsiya alexa -ga argument sifatida o'tishi mumkin bo'lgan narsani aytish uchun ishlatiladi. SAVE tugmasini bosing, shunda funksiya saqlanadi.
  • "Funktsiya" so'zining yonidagi binafsha blokda joylashgan tishli belgini bosing. Quyidagi rasmda ko'rsatilgandek kirish bloklarini sudrab ikkita dalil qo'shing. Argumentlar nomlarini "whatToSay" va "waitForResponse" deb belgilang. E'tibor bering, siz argumentlarni qo'shganda, kontekst bloklari maydoni avtomatik ravishda argument qiymatlarini ifodalovchi bloklar bilan to'ldiriladi.
  • Funktsiyaning mantig'ini rasmdagi kabi o'zgartiring. "Ob'ektlarni yaratish" bloklari uchun ob'ekt xususiyatlarining nomini o'zgartirish uchun tishli belgidan foydalaning. Saqlash tugmachasini bosib ishingizni saqlashni unutmang.
  • Endi maxsus funktsiya qurilgan bo'lsa, AlexaService xizmatining handleRequest usuliga qayting. Chapdagi asboblar panelidagi "Maxsus funktsiyalar" toifasini bosing va sendAlexaResponse blokini sudrab, xizmat ko'rsatish usulining qaytish ulagichiga ulaning.
  • Yuqoridagi qadamlarni o'z veb-saytida ham topish mumkin: https://backendless.com/developing-alexa-skill-wi…
  • BROWSER bo'limidagi Funksiyalar ostidagi "Yangi qo'shish" tugmachasini bosing. Yaratilgan funktsiyani ushlab turuvchi blokda "doSomething" degan maydonni bosing va uni "getIntentName" ga o'zgartiring, shunda funktsiya ko'rsatilgan rasmga o'xshab ketadi. namuna so'zlar asosida niyat nomini oladi. Api services-> brauzer bo'limida so'rovni bajarishga qayting. O'zgaruvchilar va mantiq tizim bo'limidan yaratiladi. Rasmda ko'rsatilgan quyidagi o'zgaruvchilarni yarating.
  • Keyin biz o'zgaruvchini so'rash niyatini saqlaymiz. Va keyin maqsadlar bilan solishtiring. Masalan, agar so'rov "kirish" bo'lsa, javob o'zgaruvchisi "salom, men nazorat qila olaman …" ga o'rnatiladi. va bu javob nihoyat alexa tomonidan ovoz chiqarib o'qiladi. ko'rsatilganidek blokni o'zgartiring.
  • agar so'rov LightsOn niyatida bo'lsa, biz http get so'rovidan foydalanib, "yuqori tezlikdagi" kanalni "0" ga yangilaymiz va shu bilan birga qurilma holatini yangilaymiz (yoqish/o'chirishga qarab 1/0). Xuddi shu narsa LightsOff, FanOn va FanOff uchun takrorlanadi.
  • Ob -havo uchun biz harorat va namlik kanalidan o'qiymiz va natijani javob o'zgaruvchisida saqlaymiz. Kanal faqat qiymatlarni bergani uchun, biz javobni mazmunli qilish uchun matnlarni qo'shamiz
  • yashash xonasining surati uchun biz pushingbox stsenariysini bajaramiz
  • Qurilmaning holati uchun biz "gapirish" holat kanalidan ma'lumotlarni o'qiymiz:
  • ogohlantirish va ogohlantirishlar uchun biz ogohlantirish kanallaridan o'qiymiz (yong'in, tajovuzkor va mehmon):
  • Xabarnomalar maydonidan olingan qiymatlarga asoslanib, mos keladigan ogohlantirish xabarlari javob0 o'zgaruvchisida saqlanadi. agar bildirishnoma bo'lmasa, hech qanday xabar saqlanmaydi.
  • xabarnomani o'qib bo'lgach, "0" bildirishnoma kanallarida yangilanadi, shunda alexa bir xil xabarni qayta o'qimaydi. So'ngra, so'rov asosida, javob0/javob o'zgaruvchisi ovoz chiqarib o'qiladi.

8 -qadam: Amazon Developer Console -da Alexa ko'nikmalarini sozlash:

Amazon Developer Console -da Alexa ko'nikmalarini sozlash
Amazon Developer Console -da Alexa ko'nikmalarini sozlash
Amazon Developer Console -da Alexa ko'nikmalarini sozlash
Amazon Developer Console -da Alexa ko'nikmalarini sozlash
Amazon Developer Console -da Alexa ko'nikmalarini sozlash
Amazon Developer Console -da Alexa ko'nikmalarini sozlash

Amazon dasturchi konsoliga o'ting va amazon hisobidan foydalanib kiring.

Ishlab chiquvchilar konsoliga o'ting va ALEXA yorlig'ini bosing. Ishni boshlash uchun alexa mahorat to'plamini bosing.

maxsus mahorat turini yarating, mahoratga ism va chaqiruv nomini bering. tegishli niyat va namuna so'zlar kodda berilgan.

konfiguratsiya ko'rinishida HTTPS -ni xizmat ko'rsatish nuqtasi sifatida tanlang, standart URL -ni backendless -dan API -ni to'ldiring. SSL sertifikatidagi standart so'nggi nuqta uchun Sertifikatning 2 -variantini tanlang. Siz test simulyatori yordamida mahoratni sinab ko'rishingiz mumkin.

Sinov tugagandan so'ng, siz kerakli ma'lumotlarni nashr etish qobiliyatini nashr etishingiz mumkin.

9 -qadam: Yakuniy sozlash va tugatish

Yakuniy sozlash va tugatish!
Yakuniy sozlash va tugatish!
Yakuniy sozlash va tugatish!
Yakuniy sozlash va tugatish!

Ko'rsatilganidek, kontaktlarning zanglashiga olib keling.

Ba'zida ESP8266 etarli bo'lmagan oqim tufayli ishlamay qoladi. Shunday qilib, sxemada aytilmagan bo'lsa -da, ESP8266 -ni alohida 3.3V manbadan quvvatlantirish tavsiya etiladi. Agar siz quvvat bankidan foydalansangiz, 3.3V kuchlanish regulyatori yordamida 5v dan 3.3vgacha kuchlanishni kamaytiring. ESP8266 va arduino dasturiga yuklang. Men lampochkaga ulanishni ko'rsatdim, xuddi shu narsani fanat yoki boshqa qurilmalarga ham uzaytirish mumkin. Nihoyat, o'z mahoratingizni tekshirish uchun amazon echo yoki echosim.io dan foydalaning.

Siz chaqiruv nomini ishlatib, mahoratni faollashtirishingiz kerak (mening holatimda - "uyim"). Ba'zida, agar u videoda bir necha bor ko'rsatganimdek, chaqiruvsiz ishlatilsa, ishlamaydi

Umid qilamanki, sizga darslik yoqdi!

Rahmat!

Tavsiya: