Мазмұны:

Alexa мен Arduino көмегімен үйді ақылды бақылау: 9 қадам (суреттермен)
Alexa мен Arduino көмегімен үйді ақылды бақылау: 9 қадам (суреттермен)

Бейне: Alexa мен Arduino көмегімен үйді ақылды бақылау: 9 қадам (суреттермен)

Бейне: Alexa мен Arduino көмегімен үйді ақылды бақылау: 9 қадам (суреттермен)
Бейне: Arduino микроконтроллерінің көмегімен жүргізуші моторлар мен сервомоторларды басқару 2024, Желтоқсан
Anonim
Image
Image
Материалдарды жинау
Материалдарды жинау

Қазіргі әлемде адамдар көп уақытты үйде емес, жұмыс орнында өткізеді. Сондықтан адамдар жұмыс кезінде үйдің жағдайымен таныса алатын үй мониторингі жүйесі қажет. Жұмыс уақытында «біреуден» үйі туралы сұраса, одан да жақсы болар еді. Бұған Amazon Alexa -ны көмекші ретінде пайдалану арқылы қол жеткізуге болады, ол пайдаланушыға өз үйі туралы қажетті ақпаратты бере алады.

Пайдаланушылар тек жұмыс орнында ғана емес, интернет байланысы мен Amazon Alexa болса, әлемнің кез келген жеріндегі үйдің жағдайымен таныса алады.

Бұл жобада келесі функциялар орындалады:

1) Тұрмыстық құрылғыларды желдеткіш пен жарық сияқты басқарыңыз

2) Құрылғылардың күйін айтады

3) үйдің ауа райы жағдайын айтады (температура мен ылғалдылық)

4) Қажет болған жағдайда үйдің ішкі көрінісін пайдаланушыға Gmail арқылы жібереді.

5) мына жағдайларда хабарлама жібереді:

* Кіруші (фото жібереді)

* Өрт

* Қонақ (фото жібереді)

1 -қадам: материалдарды жинау

Материалдарды жинау
Материалдарды жинау
Материалдарды жинау
Материалдарды жинау
Материалдарды жинау
Материалдарды жинау

Қажетті материалдар

Ардуино Уно

ESP8266 Wifi модулі

Linkit Smart 7688 Duo

DHT11

Эстафеталар

IR кедергі сенсоры

Веб-камера

Amazon жаңғырығы

Нан тақтасы мен секіргіш сымдар

Бағдарламалық қамтамасыз ету және онлайн қызметтері:

Thingspeak.com

Arduino IDE

Amazon Alexa дағдылар жиынтығы

Amazon Alexa Echosim.io (дағдыларды тексеру үшін)

Ақысыз

PushingBox

2 -қадам: Arduino мен ESP8266 бағдарламалау

Arduino мен ESP8266 бағдарламалау
Arduino мен ESP8266 бағдарламалау
Arduino мен ESP8266 бағдарламалау
Arduino мен ESP8266 бағдарламалау

Arduino IDE бағдарламасын ресми сайттан жүктеп алыңыз:

Arduino IDE бағдарламасын ашыңыз және қосымша тақта менеджерінің URL түріндегі file-> Preferences-> тармағына өтіңіз-https://arduino.esp8266.com/stable/package_esp8266…

Құралдар -> тақталар -> Тақтай менеджеріне өтіп, соңында табылған esp8266 бумасын орнатыңыз.

Arduino бағдарламалау үшін USB кабелін arduino-дан компьютерге жалғап, құралдар тақтасынан Arduino/Genuino UNO таңдаңыз. Сондай -ақ, Құралдарда COM порттарының құқықтарын таңдағаныңызға көз жеткізіңіз (COM портының нөмірін Құрылғы менеджерінен табуға болады). Қажетті бағдарламаны жазыңыз, оны құрастырыңыз және қателер болмаса жүктеуді басыңыз.

ESP8266 бағдарламасын қосу үшін диаграммада көрсетілгендей қосылыңыз. usdu -ны arduino -дан компьютерге қосыңыз. Құралдарда-> тақтада-> Жалпы ESP8266 таңдаңыз, сонымен қатар COM портының оң жақ бөлігін таңдаңыз. Қажетті бағдарламаны жазыңыз, оны құрастырыңыз және қателер болмаса жүктеуді басыңыз. Arduino RST -ті GND -ге қосқаныңызға көз жеткізіңіз (arduino ESP8266 бағдарламашысы ретінде әрекет етеді).

Бұл жобада алдымен ESP8266 бағдарламаланады, содан кейін тізбекті қосылымдар жойылады. Содан кейін схема «Схемалық қосылымдар» деп аталатын суретте көрсетілгендей қайта қосылады. Содан кейін arduino бағдарламаланған.

3 -қадам: Thingspeak.com сайтын теңшеу

Thingspeak.com сайтын теңшеу
Thingspeak.com сайтын теңшеу

Thingspeak.com сайтында тіркелгі жасаңыз.

Біз құрылғыларды басқару ақпаратын сақтау және arduino/alexa -ға бағыттау үшін нәрселерді сөйлейтін арналарды қолданамыз. біз сонымен қатар температура мен ылғалдылықты арналарда сақтаймыз. Бұл ақпаратты сақтау орны сияқты.

Сөйлесуге кіріңіз, менің арналарыма өтіп, жаңа арна жасаңыз. Арналарыңызға атау мен сипаттаманы беріңіз. Біздің жобада бізге 8 арна қажет (сіз жұмысты аз арналармен жасай аласыз, бірақ бағдарламалау кезінде біраз қиын болады). Thingspeak арнаны жаңарту кезінде уақытты шектейді. Белгілі бір арнаны жаңарту арасында 10-15 секундтық алшақтық болуы керек.

Төменде олардың мәні мен мағынасы бар сегіз арна берілген

арна атауы (мән1 мәні, мән2 мәні және т.б.):

1) Құрылғыны басқару (0-жарық, 1- жарық өшірулі, 2- желдеткіш ҚОСУ, 3- желдеткіш өшіру)

2) жарық күйі (0- жарық өшірулі, 1- жарық қосулы)

3) желдеткіш күйі (0- желдеткіш өшірулі, 1- желдеткіш қосулы)

4) ылғалдылық (ылғалдылық мәні)

5) температура (температураның мәні)

6) зиянкестер туралы хабарлама (1- зиянкестер туралы ескерту)

7) өрт туралы хабарлама (1- өрт туралы ескерту)

8) қонақтар туралы хабарлама (1- қонақтарға ескерту)

кез келген арнаны басқан кезде сіз оның идентификаторын көре аласыз және API кілттер қойындысында API кілттерін жаза аласыз. арнадағы ақпаратты/ мәнді алу үшін арна идентификаторы қажет. Мәнді арнада сақтау үшін жазу кілті қажет.

Арнаны жаңартуға арналған http сұрауы:

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

арнаның тиісті жазу пернелерімен ауыстырылады және ол болуы мүмкін (құрылғыны басқару немесе температура/ылғалдылық мәндері жағдайында 0/1)

Арнадан мәнді оқуға арналған http сұрауы:

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

біз оқығымыз келетін арна идентификаторымен ауыстырылады.

4 -қадам: Бағдарлама

Бағдарлама 3 бөлімге бөлінеді:

A) Arduino бағдарламасы: arduino бағдарламасы өте қарапайым. Ол ESP8266 -дан деректерді дәйекті түрде алады және алынған мәліметтер негізінде құрылғылар басқарылады. Бағдарлама туралы қосымша ақпаратты бағдарламаның өзіндегі түсініктемелерден табуға болады.

B) ESP8266 бағдарламасы: ESP8266 бағдарламасы 3 нәрсені қамтиды

1) http сұранысы арқылы температура мен ылғалдылықты жаңарту

client.print (String («GET») + «/update? key = & field1 =» + ылғалдылық + «HTTP/1.1 / r / n» + «Хост:» + хост + «\ r / n» + «Байланыс: жабу / r / n / r / n «); // ылғалдылықты жаңарту

client.print (Жол («GET») + «/update? key = & field1 =» + температура + «HTTP/1.1 / r / n» + «Хост:» + хост + «\ r / n» + «Байланыс: жабу / r / n / r / n «); // температураны жаңарту

сәйкесінше ылғалдылық пен температура үшін дыбыс шығару арнасында орналасқан сәйкес жазу кілтімен ауыстырылады. және хост - api.thingspeak.com.

dht кітапханасын жүктеу:

2) алынған мәндерге сүйене отырып, сөйлеу және бақылау құрылғысының сәйкес арналарынан оқу: client.print (String («GET») + «/арналар//field/field1/last.html HTTP/1.1 / r / n» + « Хост: « + хост +» / r / n « +» Байланыс: жабу / r / n / r / n «);

мұндағы нәрселер тілінде табылған сәйкес арна идентификаторы.

3) жоғары температура жағдайында дабыл қорабы арқылы жіберу

String host1 = «api.pushingbox.com»;

client.print (String («GET») + «/pushingbox? devid = HTTP/1.1 / r / n» + «Host:» + host1 + «\ r / n» + «Connection: close / r / n / r / n «);

pushingbox ішіндегі сіздің құрылғыңыздың идентификаторымен ауыстырылады.

5 -қадам: Linkit Smart 7688 Duo мен веб -камераны конфигурациялау

Linkit Smart 7688 Duo мен веб -камераны конфигурациялау
Linkit Smart 7688 Duo мен веб -камераны конфигурациялау
Linkit Smart 7688 Duo мен веб -камераны конфигурациялау
Linkit Smart 7688 Duo мен веб -камераны конфигурациялау
Linkit Smart 7688 Duo мен веб -камераны конфигурациялау
Linkit Smart 7688 Duo мен веб -камераны конфигурациялау

Бұл жобада веб -камера мен linkit smart 7688 дуэті қажетті фотосуретті түсіріп, оны пайдаланушыға жіберу үшін қолданылады. Сіз сондай -ақ arduino камера модулін қолдана аласыз және оны arduino -мен байланыстыра аласыз немесе кез келген IP -камераны қолдана аласыз.

Тақтаны қалпына келтіру үшін smartit 7688 сілтемесіндегі wifi түймесін 20 секунд басып тұрыңыз. Wi -Fi параметрлерін қалпына келтіргеннен кейін, сіз сымсыз желі қосылымдарында оның кіру нүктесінің атауын көре аласыз. Енді компьютерді сол желіге қосыңыз. қосқаннан кейін шолғышты ашып, мекенжай жолағына 192.168.100.1 теріңіз. Сіз оның порталын көре аласыз. порталға кіру үшін пароль орнатыңыз.

Сіз кіргеннен кейін желі қойындысына өтіп, станция режимін таңдаңыз (Интернетке кіру үшін бізге қажет (linkit smart 7688 duo)) және оны Wi -Fi желісіне қосыңыз және конфигурациялау және қайта бастау түймесін басыңыз.

Тақта қайта іске қосылғаннан кейін оған жергілікті IP -адрес беріледі. Кез келген IP құралдарын немесе маршрутизатор порталын пайдаланып мекенжайды біліңіз. Менің жағдайда бұл 192.168.1.4 болды. Енді браузердің мекенжай жолағына жергілікті IP мекенжайын енгізіңіз. компьютердің linkit smart сияқты бір желіге қосылғанына көз жеткізіңіз. Сізден қайта кіру сұралады.

Веб-камерадан ағынды қосу үшін-j.webp

Кіргеннен кейін қызмет қойындысына өтіңіз және-j.webp

Веб -камераны OTG кабелі арқылы linkit smart 7688 duo usb хостына қосуға болатыннан кейін, ағынды көру үшін браузерді ашып, мекенжай жолағына теріңіз. менің жағдайда бұл 192.168.1.4:4400

суретке түсіру үшін пәрменді теріңіз:? action = snapshot

Енді бұл сурет жергілікті жерде қол жетімді, бірақ біз оны итергіш қорап қызметіне қол жетімді етуіміз керек. Бұған жету үшін бізге порт жіберу керек. Портты бағыттау маршрутизатор порталында жасалуы мүмкін. Әр түрлі маршрутизаторлар үшін процесс әр түрлі болады. Нақты маршрутизаторды қалай жіберу керектігін білу үшін Google -ге хабарласыңыз. Ол әдетте NAT қызметі бойынша қол жетімді. Портты жібергеннен кейін бұл портқа (яғни, 4440) сыртқы IP -ден кіруге болады. Сыртқы IP -ді google -де «whats my ip» байланыстыру арқылы табуға болады.

Сіз бұл мекенжайды енгізуіңіз керек

яғни.. https://::? action = snapshot

pushing жәшігінде (келесі қадамда түсіндіріледі), сондықтан pushingbox бұл суретке қол жеткізе алады және оны поштаға тіркейді және қажет болған кезде сізге жібереді.

Сіз сондай -ақ суретті sd картасында сақтай аласыз, өйткені Linkit smart 7688 дуэті ақпаратты сақтауға арналған SD картасының ұяшығымен бірге келеді. Бұл туралы қосымша ақпаратты мына жерден алуға болады:

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

6 -қадам: PushingBox конфигурациясы

PushingBox конфигурациясы
PushingBox конфигурациясы

pushingbox gmail -ге жобадағы әр түрлі ескертулер туралы хабарлама жіберу үшін қолданылады.

Google есептік жазбасын пайдаланып pushingbox -қа кіріңіз:

менің қызметтерге өтіңіз, қызмет қосыңыз. Gmail, twitter, андроид үшін push хабарландыру сияқты көптеген қызметтерді таңдауға болады …

Gmail таңдаңыз (суретті тіркеме ретінде жіберу керек) және ескерту жіберілуі керек пайдаланушының gmail атауының конфигурациясын және gmail идентификаторын толтырыңыз.

менің сценарийлеріме өтіп, жаңа сценарий жасаңыз. сценарийге атау беріңіз (мысалы: ALERT) бұрын құрылған қызметті қосыңыз.

поштаның тиісті тақырыбы мен мәтінін жазыңыз және фотосуретті тіркеу үшін веб -камераның скриншотын алу үшін URL мекенжайын енгізіңіз. Түртіндінің сценарийін орындау үшін әр түрлі alerts.api үшін әр түрлі сценарийлерді жасаңыз:

7 -қадам: Backendless қолдану арқылы Alexa дағдысын қалыптастыру

Backendless көмегімен Alexa дағдыларын қалыптастыру
Backendless көмегімен Alexa дағдыларын қалыптастыру
Backendless көмегімен Alexa дағдыларын қалыптастыру
Backendless көмегімен Alexa дағдыларын қалыптастыру
Backendless көмегімен Alexa дағдыларын қалыптастыру
Backendless көмегімен Alexa дағдыларын қалыптастыру

alexa дағдысын жасау үшін backendless қолданылады. Бұл қарапайым API көмегімен қол жеткізуге болатын alexa дағдыларын (немесе кез келген бағдарламаларды) жасау үшін қолданылатын қарапайым апарып тастау бағдарламалауы.

артқы жағында тіркелгі жасаңыз:

  • Артқы шотта тіркелгіңізге кіріңіз. Қолданба жасау түймесін басып, қолданбаға атау беріңіз
  • Сол жақтағы белгішелер тақтасында орналасқан Business Logic белгішесін нұқыңыз. Сіз API SERVICES экранын көресіз.
  • Жаңа қызметті құру үшін «+» белгісін басыңыз. «Жаңа қызмет» қалқымалы терезесінде CODELESS таңдаңыз. Қызмет атауы үшін «AlexaService» енгізіңіз. САҚТАУ түймесін басыңыз:
  • Backendless API қызметін жасайды және сізге қызметтің әдісін жасауды ұсынады. Бұл Alexa сұрауларын өңдейтін әдіс. Әдіс атауы үшін «handleRequest» енгізіңіз. REST операциясы үшін POST таңдаңыз және «req» атымен аргумент жариялаңыз және көрсетілгендей «Кез келген объект» теріңіз:
  • Backendless әдісі кодсыз логика үшін толтырғыш жасайды. Кодсыз логикалық дизайнерге ауысуды бастау үшін EDIT түймесін басыңыз. Жасалған функцияның толтырғыш блогында «doSomething» деп аталатын аймақты нұқыңыз және оны «sendAlexaResponse» етіп өзгертіңіз. Бұл функция алексаны аргумент ретінде беруге болатын нәрсені айтуға мәжбүрлеу үшін қолданылады. Сақтау түймесін басыңыз, сонда функция сақталады.
  • «Функция» сөзінің жанындағы күлгін блокта орналасқан беріліс белгісін нұқыңыз. Төмендегі суретте көрсетілгендей енгізу блоктарын сүйреп екі аргумент қосыңыз. Аргументтердің аттарын «whatToSay» және «waitForResponse» ретінде тағайындаңыз. Назар аударыңыз, аргументтерді қосқанда, мәтінмәндік блоктар аймағы аргумент мәндерін білдіретін блоктармен автоматты түрде толтырылады.
  • Функция логикасын суреттегідей өзгертіңіз. «Объектілерді құру» блоктары үшін беріліс белгішесін қолданып, объект қасиеттерінің атауын өзгертіңіз. Сақтау түймесін басу арқылы жұмысыңызды сақтауды ұмытпаңыз.
  • Енді реттелетін функция құрылды, AlexaService қызметінің handleRequest әдісіне қайта оралыңыз. Сол жақтағы құралдар тақтасындағы «Қолданбалы функциялар» санатын шертіңіз және қызмет көрсету әдісінің қайтару қосқышымен байланысу үшін sendAlexaResponse блогын сүйреңіз.
  • Жоғарыда көрсетілген қадамдарды олардың веб-сайтынан табуға болады:
  • BROWSER бөліміндегі Функциялар астындағы «Жаңа қосу» түйінін нұқыңыз. Жасалған функция толтырғыш блогында «doSomething» деп аталатын аймақты нұқыңыз және оны «getIntentName» етіп өзгертіңіз, бұл функция көрсетілген кескінге ұқсайтын етіп блоктарды өзгертіңіз. үлгі атауларға негізделген ниет атауын алады. Api services-> шолғыш бөлімінде сұранысты өңдеу дегенге қайта оралыңыз. Айнымалылар мен логика жүйелік бөлімнен құрылады. Суретте көрсетілген келесі айнымалыларды жасаңыз.
  • Содан кейін біз айнымалыны сұрау ниетінің атын сақтаймыз. Содан кейін ниетпен салыстырыңыз. мысалы, егер сұрау «кіріспе» болса, жауап айнымалы мәні «сәлем! Мен басқара аламын …» деп орнатылады. және бұл жауапты ақырында alexa дауыстап оқиды. көрсетілгендей блокты өзгертіңіз.
  • егер сұраныс LightsOn ниеті болса, онда біз http get сұранысын қолдана отырып, жылдам сөйлейтін арнаны '0' деңгейіне дейін жаңартамыз және сонымен бірге құрылғының күйін жаңартамыз (Қосу/Өшіруге байланысты 1/0). LightsOff, FanOn және FanOff үшін де дәл солай қайталанады.
  • Ауа райы үшін біз температура мен ылғалдылық арнасынан оқимыз және нәтижені жауап айнымалысында сақтаймыз. Арна тек мән беретіндіктен, біз жауапты мағыналы ету үшін мәтіндерді қосамыз
  • қонақ бөлменің суретін түсіру үшін біз pushingbox сценарийін іске қосамыз
  • құрылғының күйі үшін біз сөйлеу күйінің арнасынан ақпаратты оқимыз:
  • хабарландыру мен ескертулер үшін біз ескерту арналарынан оқимыз (өрт, зиянкестер мен қонақтар):
  • хабарландыру өрісінен алатын мәндерге сүйене отырып, тиісті ескерту хабарлары answer0 айнымалысында сақталады. егер хабарландыру болмаса, онда ешқандай хабарлама сақталмайды.
  • хабарлама оқылғаннан кейін, «0» хабарландыру арналарында жаңартылады, осылайша alexa сол хабарламаны қайта оқымайды. Соңында сұраудың негізінде answer0/answer айнымалысы дауыстап оқылады.

8 -қадам: Amazon Developer Console -да Alexa дағдыларын конфигурациялау:

Amazon Developer Console -да Alexa шеберлігін теңшеу
Amazon Developer Console -да Alexa шеберлігін теңшеу
Amazon Developer Console -да Alexa шеберлігін теңшеу
Amazon Developer Console -да Alexa шеберлігін теңшеу
Amazon Developer Console -да Alexa шеберлігін теңшеу
Amazon Developer Console -да Alexa шеберлігін теңшеу

amazon әзірлеуші консоліне өтіп, Amazon есептік жазбасын пайдаланып кіріңіз.

әзірлеуші консоліне өтіп, ALEXA қойындысын нұқыңыз. Жұмысты бастау үшін alexa дағдылар жинағын басыңыз.

дағдылардың жеке түрін жасаңыз, дағдыға атау мен шақыру атауын беріңіз. тиісті ниеттер мен үлгі айтылымдар кодта берілген.

конфигурация қойындысында HTTPS таңдаңыз қызмет көрсету нүктесі түрі ретінде әдепкі URL мекенжайын API URL мекенжайымен толтырыңыз. SSL сертификатындағы әдепкі соңғы нүкте үшін Сертификаттағы 2 -ші опцияны таңдаңыз. Сіз тестілеу тренажеры арқылы дағдыларды тексере аласыз.

Тест аяқталғаннан кейін сіз қажетті ақпаратты жариялау дағдысын жариялай аласыз.

9 -қадам: түпкілікті орнату және аяқтау

Соңғы орнату және аяқтау!
Соңғы орнату және аяқтау!
Соңғы орнату және аяқтау!
Соңғы орнату және аяқтау!

Тізбекті қосылымды суретте көрсетілгендей жасаңыз.

Кейде ток жеткіліксіз болғандықтан ESP8266 ақаулы болады. Осылайша, тізбекте айтылмағанмен, ESP8266 -ны бөлек 3.3В көзінен қосу ұсынылады. Егер сіз қуат банкін пайдалансаңыз, кернеуді 3,3 вольтты реттегіш көмегімен 5 вольттан 3,3 в дейін төмендеткеніңізге көз жеткізіңіз. Бағдарламаны ESP8266 мен arduino жүйесіне жүктеңіз. Мен шамға қосылуды көрсеттім, дәл сол нәрсені желдеткішке немесе кез келген құрылғыларға қосуға болады. Соңында сіздің шеберлігіңізді тексеру үшін amazon echo немесе echosim.io пайдаланыңыз.

Сіз шеберлікті шақыру атауын қолдана отырып белсендіруіңіз керек (менің жағдайым бойынша - «менің үйім»). Кейде егер ол бейнеде бірнеше рет көрсеткендей, шақырусыз қолданылса, ол жұмыс істемейді

Оқулық сізге ұнады деп үміттенемін!

Рақмет сізге!

Ұсынылған: