Мазмуну:
- 1 -кадам: материалдарды чогултуу
- 2 -кадам: Arduino жана ESP8266 программалоо
- 3 -кадам: Thingspeak.com сайтын конфигурациялоо
- 4 -кадам: Программа
- 5 -кадам: Linkit Smart 7688 Duo жана вебкамераны конфигурациялоо
- 6 -кадам: PushingBoxту конфигурациялоо
- 7 -кадам: Backendless колдонуу менен Alexa чеберчилигин түзүү
- 8 -кадам: Amazon Developer Consoleдо Alexa Skill жөндөөлөрү:
- 9 -кадам: Акыркы орнотуу жана бүтүрүү
Video: Alexa жана Arduino аркылуу Smart Home мониторинги: 9 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Азыркы дүйнөдө адамдар үйүнө эмес, жумуш ордунда көбүрөөк убакыт өткөрүшөт. Демек, адамдар жумуш учурунда үйдүн шарттары менен тааныша ала турган үй мониторинг системасына муктаждык бар. Жумуш убактысында "кимдир бирөөдөн" үйү жөнүндө сурасаңыз, андан да жакшы болмок. Бул Amazon Alexaны колдонуучуга үйү жөнүндө керектүү маалыматты бере турган жардамчы катары ишке ашырылышы мүмкүн.
Колдонуучулар жумуш ордунда гана эмес, интернет байланышы жана Amazon Alexa болгондо, дүйнөнүн каалаган жериндеги үйдүн абалы менен таанышса болот.
Бул долбоордо төмөнкү функциялар ишке ашырылат:
1) Үй тиричилигин желдеткич жана жарык сыяктуу көзөмөлдөңүз
2) түзмөктөрдүн абалын айтат
3) үйдүн аба ырайын (температура жана нымдуулук) айтат
4) Керек болгондо үйдүн ички көрүнүшүн колдонуучуга Gmail аркылуу жөнөтөт.
5) төмөнкү учурларда билдирүү жөнөтөт:
* Кирүүчү (сүрөт жөнөтөт)
* Өрт
* Конок (сүрөт жөнөтөт)
1 -кадам: материалдарды чогултуу
Керектүү материалдар
Arduino Uno
ESP8266 Wifi модулу
Linkit Smart 7688 Duo
DHT11
Реле
IR тоскоолдук сенсор
Веб -камера
Amazon Echo Dot
Нан жана секирүүчү зымдар
Программалык камсыздоо жана онлайн кызматтары:
Thingspeak.com
Arduino IDE
Amazon Alexa Skill Set
Amazon Alexa Echosim.io (Testing Skill үчүн)
Backendless
PushingBox
2 -кадам: Arduino жана ESP8266 программалоо
Arduino IDEнин расмий сайтынан жүктөп алыңыз:
Arduino IDEди ачыңыз жана кошумча тактанын менеджеринин URL түрүндөгү file-> preferences-> бөлүмүнө өтүңүз-https://arduino.esp8266.com/stable/package_esp8266…
Куралдарга -> такталарга -> Такта менеджерине барып, акыры табылган esp8266 пакетин орнотуңуз.
Ардуинону программалоо үчүн, USB кабелин ардуинодон компьютерге туташтырып, Arduino/Genuino UNOду инструменттер-> такталарынан тандаңыз. Куралдардагы COM портторунун укуктарын тандаганыңызды текшериңиз (COM портунун номери Аспап менеджеринен табылышы мүмкүн). Керектүү программаны жазыңыз, аны түзүңүз жана каталар жок болсо, жүктөөнү чыкылдатыңыз.
ESP8266 программасы үчүн диаграммада көрсөтүлгөндөй туташуу керек. usdu'ны arduinoдон компьютерге туташтырыңыз. Куралдарда-> board-> General ESP8266 тандап, ошондой эле туура COM портун тандаңыз. Керектүү программаны жазыңыз, аны түзүңүз жана каталар жок болсо, жүктөөнү чыкылдатыңыз. Arduino RSTти GNDге туташтырганыңызды текшериңиз (arduino ESP8266га программист сыяктуу иштейт).
Бул долбоордо алгач ESP8266 программаланат, андан кийин райондук туташуулар алынып салынат. Андан кийин Circuit "Circuit Connections" деп аталган сүрөттө көрсөтүлгөндөй кайра туташат. Анан arduino программаланган.
3 -кадам: Thingspeak.com сайтын конфигурациялоо
Thingspeak.com сайтында каттоо эсебин түзүңүз.
Биз түзмөктү башкаруу маалыматын сактоо жана arduino/alexa үчүн багыттоо үчүн нерселерди сүйлөөчү каналдарды колдонобуз. биз дагы каналдарда температура жана нымдуулук баалуулуктарын сактайбыз. Бул маалыматты сактоочу жайга окшош.
Thingspeakке кириңиз, менин каналдарыма кирип, жаңы канал түзүңүз. Каналдарыңыздын аталышын жана сүрөттөмөсүн бериңиз. Биздин долбоордо бизге 8 канал керек (сиз азыраак каналдарды колдонуп иштей аласыз, бирок программалоодо бир аз татаалыраак болот). Каналды жаңыртууда нерселердин убактысы да чектелет. Белгилүү бир каналды ырааттуу жаңыртуунун ортосунда 10-15 сек боштук болушу керек.
Төмөндө баалуулуктары жана мааниси бар сегиз канал көрсөтүлгөн
каналдын аталышы (value1-мааниси, value2-мааниси ж.б.):
1) Түзмөктү башкаруу (0-жарык, 1- жарык өчүрүү, 2- күйөрман ON, 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
биз окугубуз келген каналдын белгилүү бир канал id менен алмаштырылат.
4 -кадам: Программа
Программа 3 бөлүккө бөлүнөт:
A) Arduino программасы: arduino программасы абдан жөнөкөй. Ал ESP8266дан алынган маалыматтарды сериялык түрдө алат жана алынган маалыматтын негизинде түзмөктөр башкарылат. Программа жөнүндө көбүрөөк маалыматты программанын өзүндөгү комментарийлерден табууга болот.
B) ESP8266 программасы: ESP8266 программасы 3 нерсени камтыйт
1) http талабын колдонуу менен температураны жана нымдуулукту жаңыртуу
client.print (String ("GET") + "/update? key = & field1 =" + нымдуулук + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / r / n / r / n "); // нымдуулукту жаңыртуу
client.print (String ("GET") + "/update? key = & field1 =" + temperatur + "HTTP/1.1 / r / n" + "Host:" + host + "\ r / n" + "Connection: close / 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 дуэти керектүү сүрөттү тартып, колдонуучуга жөнөтүү үчүн колдонулат. Сиз ошондой эле arduino камера модулун колдоно аласыз жана аны ардуино менен колдоно аласыз же каалаган IP камераны колдоно аласыз.
Тактанын абалын калыбына келтирүү үчүн linkit smart 7688деги wifi баскычын 20 секунд басып туруңуз. Андан кийин, wifi орнотуулары калыбына келтирилгенден кийин, анын кирүү чекитинин атын зымсыз тармактык туташууларда көрө аласыз. Эми компьютерди ошол тармакка туташтырыңыз. туташкандан кийин браузерди ачыңыз жана дарек тилкесине 192.168.100.1 териңиз. Сиз анын порталын көрө аласыз. анын порталына кирүү үчүн сырсөз коюңуз.
Киргенден кийин тармак өтмөгүнө өтүңүз жана Станция режимин тандаңыз (интернетке кирүү үчүн бизге керек (linkit smart 7688 duo)) жана аны Wifi тармагыңызга туташтырып, Конфигурациялоо жана өчүрүп -күйгүзүүнү басыңыз.
Такта кайра башталгандан кийин ага жергиликтүү 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
pushingboxто (кийинки кадамда түшүндүрүлөт), pushingbox бул сүрөттү көрүп, аны почтага тиркеп, керек болгондо сизге жөнөтө алат.
Сиз ошондой эле сүрөттү sd картасында сактай аласыз, анткени Linkit smart 7688 дуэти маалыматты сактоо үчүн SD картанын уячасы менен коштолот. Бул тууралуу көбүрөөк маалыматты бул жерден тапса болот:
docs.labs.mediatek.com/resource/linkit-sm…
6 -кадам: PushingBoxту конфигурациялоо
pushingbox gmailге долбоордогу ар кандай эскертүүлөр жөнүндө билдирүү жөнөтүү үчүн колдонулат.
google каттоо эсеби аркылуу pushingboxко кирүү:
Менин кызматтарыма барып, кызматты кошуңуз. Gmail, twitter, андроид үчүн push билдирүү сыяктуу көптөгөн кызматтар бар …
Gmail'ди тандаңыз (сүрөттү тиркеме катары жөнөтүшүбүз керек) жана эскертме жөнөтүлүшү керек болгон колдонуучунун gmail аталышынын конфигурациясын жана gmail идентификаторун толтуруңуз.
менин сценарийлериме барып, жаңы сценарий түзүңүз. сценарийге ат коюңуз (мис: ALERT) мурда түзүлгөн кызматты кошуңуз.
почтанын ылайыктуу темасын жана текстин жазыңыз жана веб -камеранын скриншотун алуу үчүн urlге кириңиз. Түртүү кутусунун сценарийин аткаруу үчүн ар кандай alerts.api үчүн ар кандай сценарийлерди түзүңүз:
7 -кадам: Backendless колдонуу менен Alexa чеберчилигин түзүү
backendless алекса чеберчилигин түзүү үчүн колдонулат. Бул артка чексиз API аркылуу кире турган alexa жөндөмүн (же кандайдыр бир программаларды) түзүү үчүн колдонулган жөнөкөй сүйрөө жана программалоо.
backendless эсебин түзүү:
- Аккаунтуңузга backendless эсебине кириңиз. чыкылдатыңыз Колдонмо түзүү жана колдонмоңузга ат коюңуз
- Сол жактагы сөлөкөт тилкесинде жайгашкан Business Logic сөлөкөтүн чыкылдатыңыз. Сиз API SERVICES экранын көрөсүз.
- Жаңы кызматты түзүү үчүн "+" белгисин басыңыз. "Жаңы кызмат" калкыма терезесинен CODELESS тандап алыңыз. Кызматтын аталышы үчүн "AlexaService" киргизиңиз. САКТОО баскычын чыкылдатыңыз:
- Backendless API кызматын түзөт жана сизге кызматтын ыкмасын түзүүнү сунуштайт. Бул Alexaдан келген сурамдарды карай турган ыкма болот. Методдун аталышы үчүн "handleRequest" киргизиңиз. REST операциясы үчүн POSTту тандап, "req" аты менен аргумент жарыялап, көрсөтүлгөндөй "Any Object" териңиз:
- Backendless методдун кодсуз логикасы үчүн толтургучту түзөт. Codeless Logic Designerге өтүүнү баштоо үчүн EDIT баскычын басыңыз. Түзүлгөн функция толтуруучу блогунда "doSomething" деп аталган аймакты чыкылдатып, аны "sendAlexaResponse" кылып өзгөртүңүз. Бул функция Alexaга аргумент катары бериле турган нерсени айтуу үчүн колдонулат. САКТОО баскычын чыкылдатыңыз, ошондо функция сакталат.
- "Функция" сөзүнүн жанындагы кызгылт түстөгү блокто жайгашкан тиштүү сөлөкөттү басыңыз. Төмөндөгү сүрөттө көрсөтүлгөндөй киргизүү блокторун сүйрөп эки аргумент кошуңуз. Аргументтердин аттарын "whatToSay" жана "waitForResponse" деп дайындаңыз. Байкаңыз, сиз аргументтерди кошуп жатканда, Контексттик блоктор аймагы автоматтык түрдө аргумент маанилерин билдирген блоктор менен толтурулат.
- Функциянын логикасын сүрөттөгүдөй кылып өзгөртүңүз. "Объекттерди түзүү" блоктору үчүн, объектинин касиеттеринин атын өзгөртүү үчүн тиштүү сөлөкөттү колдонуңуз. САКТОО баскычын басып, ишиңизди сактоону унутпаңыз.
- Эми ыңгайлаштырылган функция курулган соң, AlexaService кызматынын handleRequest ыкмасына кайтыңыз. Сол жактагы куралдар тилкесиндеги Көнүмүш Функциялар категориясын чыкылдатып, sendAlexaResponse блогун сүйрөп кызмат методунун кайтаруучу туташтыргычы менен туташыңыз.
- Жогорудагы кадамдарды алардын веб-сайтынан тапса болот:
- BROWSER бөлүмүндөгү Функциялар астындагы "Жаңы кошуу" түйүнүн чыкылдатыңыз. Функциянын толтуруучу блогунда "doSomething" деп аталган аймакты чыкылдатыңыз жана "getIntentName" деп өзгөртүңүз, блокторду функция көрсөтүлгөн сүрөттө окшош кылып өзгөртүңүз. үлгү айтуулардын негизинде ниеттин атын алат. Api services-> браузер бөлүмүндөгү өтүнүчтү кайра иштетүү. Өзгөрмөлөр жана логика системанын бөлүмүнөн түзүлөт. Сүрөттөрдө көрсөтүлгөн төмөнкү өзгөрмөлөрдү түзүңүз.
- андан кийин биз өзгөрмөнү талап кылуу ниетинин атын сактайбыз. Анан ниети менен салыштырып көр. мисалы, эгер суроо "киришүү" болсо, анда жооптун өзгөрмөсү "салам! Мен башкара алам …" деп коюлган. жана бул жооп акыры Alexa тарабынан үн менен окулат. көрсөтүлгөндөй блокту өзгөртүү.
- эгер суроо LightsOn ниети болсо, анда биз http get өтүнүчүн колдонуп, сүйлөө каналын '0' кылып жаңыртабыз жана ошол эле учурда түзмөктүн абалын жаңыртып турабыз (1/0 On/Off). Ошол эле нерсе LightsOff, FanOn жана FanOff үчүн кайталанат.
- Аба ырайы үчүн биз температура жана нымдуулук каналынан окуп, натыйжаны жооп өзгөрмөсүндө сактайбыз. Канал баалуулуктарды гана бергендиктен, биз жоопту маңыздуу кылуу үчүн тексттерди кошобуз
- конок бөлмөсүнүн сүрөтү үчүн pushingbox сценарийин иштетебиз
- түзмөктүн абалы үчүн нерселердин сүйлөө каналынын маалыматын окуйбуз:
- эскертүү жана эскертүүлөр үчүн биз эскертүү каналдарынан окуйбуз (өрт, баскынчы жана конок):
- кабарлоо талаасынан алган баалуулуктарга таянуу менен, тиешелүү эскертүү билдирүүлөр answer0 өзгөрмөсүндө сакталат. эгерде билдирүү жок болсо, анда эч кандай билдирүү сакталбайт.
- эскертме окулганда, "0" билдирүү каналдарында жаңыртылат, андыктан alexa ошол эле билдирүүнү кайра окубайт. Анан акыры сурамдын негизинде answer0/answer өзгөрмөсү үн менен окулат.
8 -кадам: Amazon Developer Consoleдо Alexa Skill жөндөөлөрү:
Amazon иштеп чыгуучунун консолуна өтүңүз жана Amazon каттоо эсебине кириңиз.
иштеп чыгуучунун консолуна өтүңүз жана ALEXA өтмөгүн басыңыз. Баштоо үчүн alexa көндүмдөрүн басыңыз.
колдонуучунун жөндөмүнүн түрүн түзүңүз, жөндөмүңүздүн атын жана чакыруу атын бериңиз.
конфигурация өтмөгүндө HTTPSти кызматтын акыркы чекит түрү катары тандаңыз, демейки URLди backendlessден API URLси менен толтуруңуз. Сиз ошондой эле тест тренажердун жардамы менен жөндөмүңүздү текшере аласыз.
Сынак аяктагандан кийин, сиз керектүү жарыялоо маалыматы менен чеберчиликти жарыялай аласыз.
9 -кадам: Акыркы орнотуу жана бүтүрүү
Райондук байланышты көрсөтүлгөндөй кылыңыз.
Кээде ESP8266 жетишсиз токтон улам иштебей калат. Ошентип, схемада айтылбаса да, ESP8266ны өзүнчө 3.3v булагынан кубаттоо сунушталат. Эгерде сиз кубат банкын колдонуп жатсаңыз, анда 3.3v чыңалуу жөндөгүчүн колдонуу менен 5vдан 3.3vга чейин чыңалууну азайтыңыз. ESP8266 жана arduino программасын жүктөңүз. Мен лампочкага байланышты көрсөттүм, ошол эле нерсени желдеткичке же каалаган түзмөккө узартууга болот. Акыры Amazon echo же echosim.io колдонуп, жөндөмүңүздү текшериңиз.
Чакыруунун атын колдонуу менен чеберчиликти активдештиришиңиз керек (менин жагдайымдагыдай - "myhome"). Кээде ал видеодо бир нече жолу көрсөткөндөй аталышсыз колдонулса иштебейт
Окутуу сизге жакты деп үмүттөнөбүз!
Рахмат!
Сунушталууда:
ESP32_DHT11_OLED_Thingspeak аркылуу аба ырайынын мониторинги: 7 кадам
ESP32_DHT11_OLED_Thingspeak аркылуу аба ырайын көзөмөлдөө: Бул үйрөткүчтө сиз ESP32 жана DHT11ди колдонуп, температураны жана нымдуулукту көзөмөлдөгөн аба ырайы мониторун курасыз, ал OLED дисплейинде көрсөтүлөт. Ал ThingSpeak.The ESP32ге жүктөлгөн, бул күчтүү IOT куралы. Бул арзан баадагы система-о
Бөлүкчөлөрдүн фотонун колдонуу менен конференц -залдын мониторинги: 8 кадам (сүрөттөр менен)
Бөлүкчөлөрдүн фотондорун колдонуу менен конференц -залды көзөмөлдөө: Киришүү Бул окуу куралында биз Particle Photon аркылуу конференц -залдын мониторун түзөбүз. Бул бөлүкчө Slack менен Webhooksту колдонуп, бөлмө бар же жок экендиги жөнүндө реалдуу убакытта жаңыртууларды алуу үчүн интеграцияланган. PIR сенсорлору үчүн колдонулат
Pool Pi Guy - Raspberry Pi колдонуу менен AI башкарылган сигнализация системасы жана бассейн мониторинги: 12 кадам (сүрөттөр менен)
Pool Pi Guy - Raspberry Pi колдонуу менен AI башкаруучу сигнализация системасы жана бассейн мониторинги: Үйдө бассейнге ээ болуу кызыктуу, бирок чоң жоопкерчилик менен келет. Менин эң чоң тынчсыздануум - кимдир бирөө бассейндин жанында кароосуз калса (өзгөчө жаш балдар). Менин эң чоң кыжырдануум - бул бассейндеги суу түтүгү эч качан насостун астына түшпөйт
Alexa жана Arduino аркылуу үн менен башкарылган которуу: 10 кадам (сүрөттөр менен)
Alexa жана Arduino аркылуу үн менен башкарылган которуштуруу: Бул долбоордун негизги максаты - температура сенсорун колдонуп, түзүлүштү күйгүзүү же өчүрүү үчүн которгучту (реле) башкаруу.Материалдардын тизмеси 12V Relay Module == > $ 4.2 Arduino uno == > $ 8 DHT11 температура сенсору == > $ 3 ESP8266 модулу
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү