Sisällysluettelo:

Älykkään kodin valvonta Alexan ja Arduinon avulla: 9 vaihetta (kuvilla)
Älykkään kodin valvonta Alexan ja Arduinon avulla: 9 vaihetta (kuvilla)

Video: Älykkään kodin valvonta Alexan ja Arduinon avulla: 9 vaihetta (kuvilla)

Video: Älykkään kodin valvonta Alexan ja Arduinon avulla: 9 vaihetta (kuvilla)
Video: Высокая плотность 2022 2024, Marraskuu
Anonim
Image
Image
Materiaalien kerääminen
Materiaalien kerääminen

Nykymaailmassa ihmiset viettävät enemmän aikaa työpaikalla kuin kotonaan. Siksi tarvitaan kodin seurantajärjestelmää, jossa ihmiset voivat tutustua talon olosuhteisiin työskennellessään. Olisi vieläkin parempaa, jos joku voisi vain kysyä "joltain" heidän kodistaan työaikana. Tämä voidaan saavuttaa käyttämällä Amazon Alexaa apulaisena, joka voi antaa käyttäjälle tarvittavat tiedot kotistaan.

Ei vain työpaikka käyttäjät voivat tutustua talon kuntoon missä tahansa maailmassa, kunhan heillä on Internet -yhteys ja Amazon Alexa.

Tässä projektissa toteutetaan seuraavat toiminnot:

1) Hallitse kotitalouslaitteita, kuten tuuletinta ja valoa

2) Kertoo laitteiden tilan

3) kertoo talon säätilan (lämpötila ja kosteus)

4) Lähettää tilannekuvan käyttäjälle talon sisätiloista tarvittaessa Gmailin kautta.

5) Lähettää ilmoituksen, jos -

* Tunkeutuja (lähettää myös valokuvan)

* Antaa potkut

* Vieras (lähettää myös valokuvan)

Vaihe 1: Materiaalien kerääminen

Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen
Materiaalien kerääminen

Tarvittavat materiaalit

Arduino Uno

ESP8266 Wifi -moduuli

Linkit Smart 7688 Duo

DHT11

Releet

IR -esteanturi

Verkkokamera

Amazon Echo Dot

Leipälauta ja hyppyjohdot

Ohjelmistot ja verkkopalvelut:

Thingspeak.com

Arduino IDE

Amazon Alexa -taitopaketti

Amazon Alexa Echosim.io (taitojen testaamiseen)

Backendless

PushingBox

Vaihe 2: Arduinon ja ESP8266: n ohjelmointi

Arduinon ja ESP8266: n ohjelmointi
Arduinon ja ESP8266: n ohjelmointi
Arduinon ja ESP8266: n ohjelmointi
Arduinon ja ESP8266: n ohjelmointi

Lataa Arduino IDE viralliselta verkkosivustolta:

Avaa Arduino IDE ja siirry tiedosto-> asetuksiin-> lisälevynhallinnan URL-tyyppiin-https://arduino.esp8266.com/stable/package_esp8266…

Siirry työkaluihin -> levyt -> Board Manager ja asenna vihdoin löydetty esp8266 -paketti.

Ohjelmoidaksesi arduinoa, kytke USB-kaapeli arduinosta tietokoneeseen ja valitse Arduino/Genuino UNO työkalu-> taulukoista. Varmista myös, että valitset oikeat COM -portit Työkaluissa (COM -portin numero löytyy Laitehallinnasta). Kirjoita vaadittu ohjelma, käännä se ja napsauta lataa, jos virheitä ei ole.

Ohjelmoidaksesi ESP8266, tee liitäntä kaavion mukaisesti. yhdistä usb arduinosta tietokoneeseen. Valitse Työkalut-> kortti-> Yleinen ESP8266 ja valitse myös oikea COM-portti. Kirjoita vaadittu ohjelma, käännä se ja napsauta lataa, jos virheitä ei ole. Varmista, että liität Arduino RST: n GND: hen (arduino toimii ohjelmoijana ESP8266: een).

Tässä projektissa ESP8266 ohjelmoidaan ensin ja piirikytkennät poistetaan. Sitten piiri kytketään uudelleen kuvan "Piiriliitännät" mukaisesti. Ja sitten arduino ohjelmoidaan.

Vaihe 3: Thingspeak.comin määrittäminen

Thingspeak.comin määrittäminen
Thingspeak.comin määrittäminen

Luo tili osoitteessa thingspeak.com.

käytämme asioiden puhumisen kanavia laitteen ohjaustietojen tallentamiseen ja reitittämiseen arduinoon/Alexaan. tallennamme myös lämpötila- ja kosteusarvot kanaviin. Se on kuin tietojen säilytyspaikka.

Kirjaudu Thingspeakiin, siirry kanaville omat kanavat ja luo uusi kanava. Anna kanavillesi nimi ja kuvaus. Projektissamme tarvitsemme 8 kanavaa (voit tehdä työn käyttämällä vähemmän kanavia, mutta se on hieman monimutkaista ohjelmoinnin aikana). Myös asioiden puhumisella on aikarajoitus kanavan päivittämisessä. Tietyn kanavan peräkkäisten päivitysten välillä on oltava 10-15 sek.

Alla on esitetty kahdeksan kanavaa arvoineen ja merkityksineen

kanavan nimi (arvo1-merkitys, arvo2-merkitys jne.):

1) Laitteen ohjaus (0-valo, 1- valo pois päältä, 2 tuuletin päällä, 3- tuuletin pois päältä)

2) valon tila (0- valo ei pala, 1- valo palaa)

3) tuulettimen tila (0- tuuletin pois päältä, 1 tuuletin päällä)

4) kosteus (kosteuden arvo)

5) lämpötila (lämpötilan arvo)

6) tunkeutumisilmoitus (1- tunkeutumisvaroitus)

7) paloilmoitus (1- palohälytys)

8) vieraan ilmoitus (1- vieraan hälytys)

kun napsautat mitä tahansa kanavaa, näet sen kanavatunnuksen ja kirjoitat API -avaimet API -avaimet -välilehdelle. kanavan tunnus vaaditaan tietojen/ arvon saamiseksi kanavalle. Kirjoitusavain tarvitaan arvon tallentamiseen kanavalle.

http -pyyntö kanavan päivittämiseksi on:

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

korvataan kanavan vastaavilla kirjoitusavaimilla ja se voi olla (0/1 laitteen ohjaus- tai lämpötila-/kosteusarvojen tapauksessa)

http -pyyntö arvon lukemiseksi kanavalta on:

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

korvataan sen kanavan erityisellä kanavatunnuksella, josta haluamme lukea.

Vaihe 4: Ohjelma

Ohjelma on jaettu 3 osaan:

A) Arduinon ohjelma: arduino -ohjelma on hyvin yksinkertainen. Se vastaanottaa tiedot ESP8266: lta sarjassa ja vastaanotettujen tietojen perusteella laitteita ohjataan. Lisätietoja ohjelmasta löytyy itse ohjelman kommenteista.

B) ESP8266 -ohjelma: ESP8266 -ohjelma sisältää kolme asiaa

1) lämpötilan ja kosteuden päivittäminen http -pyynnön avulla

client.print (Jono ("GET") + "/update? key = & field1 =" + kosteus + "HTTP/1.1 / r / n" + "Isäntä:" + isäntä + "\ r / n" + "Yhteys: sulje / r / n / r / n "); // päivitä kosteus

client.print (Jono ("GET") + "/update? key = & field1 =" + lämpötila + "HTTP/1.1 / r / n" + "Isäntä:" + isäntä + "\ r / n" + "Yhteys: sulje / r / n / r / n "); // päivitä lämpötila

korvataan vastaavalla kirjoitusavaimella, joka löytyy asioiden puhekanavasta kosteuden ja lämpötilan osalta. ja isäntä on api.thingspeak.com.

lataa dht-kirjasto:

2) lukeminen vastaavista asioiden puhekanavista ja ohjauslaitteesta saatujen arvojen perusteella: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " Isäntä: " + isäntä +" / r / n " +" Yhteys: sulje / r / n / r / n ");

jossa se korvataan vastaavalla kanavan tunnuksella.

3) Hälytyksen lähettäminen korkean lämpötilan sattuessa työntölaatikon kautta

Merkkijono isäntä1 = "api.pushingbox.com";

client.print (Jono ("GET") + "/pushingbox? devid = HTTP/1.1 / r / n" + "Isäntä:" + isäntä1 + "\ r / n" + "Yhteys: sulje / r / n / r / n ");

jossa korvataan laitteen tunnuksella pushboxissa.

Vaihe 5: Linkit Smart 7688 Duo- ja verkkokameran määrittäminen

Linkit Smart 7688 Duo- ja verkkokameran määrittäminen
Linkit Smart 7688 Duo- ja verkkokameran määrittäminen
Linkit Smart 7688 Duo- ja verkkokameran määrittäminen
Linkit Smart 7688 Duo- ja verkkokameran määrittäminen
Linkit Smart 7688 Duo- ja verkkokameran määrittäminen
Linkit Smart 7688 Duo- ja verkkokameran määrittäminen

Tässä projektissa verkkokameraa ja linkit smart 7688 duoa käytetään tarvittavan valokuvan ottamiseen ja lähettämiseen käyttäjälle. Voit myös käyttää arduino -kameramoduulia ja liittää sen arduinoon tai käyttää mitä tahansa IP -kameraa.

Pidä linkit smart 7688 -laitteen wifi -painiketta painettuna 20 sekunnin ajan nollataksesi levyn. Sitten kun wifi -asetus on palautettu, näet sen tukiaseman nimen langattomissa verkkoyhteyksissä. Liitä nyt tietokone kyseiseen verkkoon. Kun olet yhdistänyt sen, avaa selain ja kirjoita 192.168.100.1 osoiteriville. Näet sen portaalin. aseta salasana kirjautuaksesi portaaliin.

Kun olet kirjautunut sisään, siirry Verkko -välilehteen ja valitse Asematila (tarvitsemme sitä (linkit smart 7688 duo) päästäksesi Internetiin) ja yhdistä se Wifi -verkkoon ja paina Määritä ja käynnistä uudelleen.

Kun kortti käynnistettiin uudelleen, sille annetaan paikallinen IP -osoite. Selvitä osoite käyttämällä kaikkia IP -työkaluja tai reitittimen portaalia. Minun tapauksessani se oli 192.168.1.4. Kirjoita nyt paikallinen IP -osoite selaimen osoiteriville. varmista, että tietokone on kytketty samaan verkkoon kuin linkit smart. Sinua pyydetään kirjautumaan uudelleen.

Jos haluat ottaa suoratoiston käyttöön verkkokamerasta, ota käyttöön MJPG-suoratoisto (mjpg-streamer on komentorivisovellus, joka kopioi JPEG-kehykset yhdestä tai useammasta tuloliitännästä useisiin lähtölaajennuksiin). Voit tehdä tämän portaalissa siirtymällä OpenWrt -sijaintiin oikeassa yläkulmassa. sinun täytyy kirjautua uudelleen.

Kun olet kirjautunut sisään, siirry palvelu -välilehdelle ja tarkista-j.webp

Asennuksen jälkeen voit yhdistää verkkokamerasi linkit smart 7688 duo -USB -isäntään OTG -kaapelin kautta. Nyt nähdäksesi Stream avaa selain ja kirjoita: osoiteriville. minun tapauksessani se on 192.168.1.4:4400

Ota pikakuva kirjoittamalla komento:? action = snapshot

Nyt tämä kuva on saatavana paikallisesti, mutta meidän on saatettava tämä käyttöön työntölaatikkopalvelulle. Tämän saavuttamiseksi meidän on tehtävä satamansiirto. Portin edelleenlähetys voidaan tehdä reitittimen portaalissa. Prosessin tunnus on erilainen eri reitittimille. Googlettamalla tiedät, miten voit siirtää tietyn reitittimen eteenpäin. Se on yleensä saatavana NAT -palvelussa. Kun olet siirtänyt portin eteenpäin, voit käyttää tätä porttia (esim. 4440) ulkoiselta IP -osoitteeltasi. Ulkoinen IP -osoite löytyy kirjoittamalla "whats my ip" googleen.

Sinun on annettava tämä osoite

eli.. https://::? action = snapshot

työntölaatikossa (joka selitetään seuraavassa vaiheessa), jotta työntölaatikko voi käyttää tätä kuvaa ja liittää sen sähköpostiin ja lähettää sen sinulle tarvittaessa.

Voit myös tallentaa kuvan sd -kortille, koska Linkit smart 7688 duo sisältää myös SD -korttipaikan tietojen tallentamiseen. Lisätietoja tästä löytyy osoitteesta:

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

Vaihe 6: PushingBoxin määrittäminen

PushingBoxin määrittäminen
PushingBoxin määrittäminen

työntölaatikkoa käytetään lähettämään ilmoituksia projektin eri hälytyksistä gmailiin.

kirjaudu työntölaatikkoon Google -tilillä:

siirry palveluihini lisää palvelu. on monia palveluja, joista valita, kuten Gmail, twitter, push -ilmoitus Androidille jne …

valitse Gmail (koska meidän on lähetettävä valokuva liitteenä) ja täytä asianmukainen gmail -nimen määritys ja sen käyttäjän Gmail -tunnus, jolle hälytys on lähetettävä.

siirry skenaarioihini ja luo uusi skenaario. anna skenaarion nimi (esim. HÄLYTYS) lisää aiemmin luotu palvelu.

kirjoita sopiva aihe ja sähköpostin teksti ja kirjoita URL -osoite ottaaksesi kuvakaappauksen web -kamerasta valokuvan liittämistä varten. Luo erilaisia skenaarioita eri hälytyksille. Api työntölaatikon skenaarion toteuttamiseksi on:

Vaihe 7: Alexa -taidon luominen Backendlessin avulla

Alexa -taidon luominen Backendlessin avulla
Alexa -taidon luominen Backendlessin avulla
Alexa -taidon luominen Backendlessin avulla
Alexa -taidon luominen Backendlessin avulla
Alexa -taidon luominen Backendlessin avulla
Alexa -taidon luominen Backendlessin avulla

backendlessiä käytetään alexa -taidon luomiseen. Se on yksinkertainen vetämällä ja pudottamalla ohjelmointi, jolla luodaan alexa -taito (tai mitä tahansa ohjelmia), joita voidaan käyttää backendless -sovellusliittymän avulla.

Luo tili backendlessissä:

  • Kirjaudu tiliisi backendless -tilillä. napsauta Luo sovellus ja anna sovelluksellesi nimi
  • Napsauta Business Logic -kuvaketta vasemmalla olevasta kuvakepalkista. Näet API PALVELUT -näytön.
  • Luo uusi palvelu napsauttamalla "+" -kuvaketta. Muista valita CODELESS”Uusi palvelu” -ponnahdusikkunasta. Kirjoita palvelun nimeksi “AlexaService”. Napsauta TALLENNA -painiketta:
  • Backendless luo sovellusliittymäpalvelun ja pyytää sinua luomaan palvelulle menetelmän. Tämä on tapa käsitellä Alexan pyyntöjä. Kirjoita menetelmän nimeksi "handleRequest". Muista valita POST REST -toiminnolle ja ilmoita argumentti, jonka nimi on "req", ja kirjoita "Mikä tahansa objekti", kuten kuvassa:
  • Backendless luo paikkamerkin menetelmän koodittomalle logiikalle. Napsauta EDIT -painiketta aloittaaksesi siirtymisen Codeless Logic Designer -ohjelmaan. Napsauta luodun funktion paikkamerkki -lohkossa aluetta, jossa lukee "doSomething", ja muuta se muotoon "sendAlexaResponse". Tätä toimintoa käytetään saamaan alexa sanomaan jotain, joka voidaan esittää argumenttina. Napsauta SAVE -painiketta, jolloin toiminto tallennetaan.
  • Napsauta rataskuvaketta, joka sijaitsee violetissa lohkossa sanan "Toiminto" vieressä. Lisää kaksi argumenttia vetämällä syöttölohkoja alla olevan kuvan mukaisesti. Määritä argumenttien nimet "whatToSay" ja "waitForResponse". Huomaa, että kun lisäät argumentteja, Kontekstilohko -alue täytetään automaattisesti argumenttiarvoja edustavilla lohkoilla.
  • Muokkaa toiminnon logiikkaa niin, että se näyttää kuvassa. Luo objekteja -lohkoissa vaihda objektin ominaisuuksien nimeä rataskuvakkeen avulla. Muista tallentaa työsi napsauttamalla TALLENNA -painiketta.
  • Nyt kun mukautettu toiminto on rakennettu, vaihda takaisin AlexaService -palvelun handleRequest -menetelmään. Napsauta Mukautetut toiminnot -luokkaa vasemmalla olevasta työkalupalkista ja vedä sendAlexaResponse -lohkoa muodostaaksesi yhteyden palvelumenetelmän paluuliittimeen
  • Yllä olevat vaiheet löytyvät myös heidän verkkosivuiltaan:
  • Napsauta "Lisää uusi" -solmu Selaimet -osion Toiminnot -kohdassa. Napsauta luodun funktion paikkamerkki -lohkossa aluetta, jossa lukee "doSomething", ja vaihda se tilaan "getIntentName", muokkaa lohkoja niin, että toiminto näyttää kuvasta. saa tarkoituksen nimen näytteen lausuntojen perusteella. Palaa takaisin apipalveluihin-> käsittele pyyntö selaimen osiossa. Muuttujat ja logiikka luodaan järjestelmäosasta. Luo seuraavat kuvissa näkyvät muuttujat.
  • seuraavaksi tallennamme aikomuksen nimen pyytämään muuttujaa. Ja sitten vertaa tarkoituksiin. jos esimerkiksi pyyntö on "esittely", vastausmuuttujaksi on asetettu "hei! Voin hallita ……." ja Alexa lukee vihdoin tämän vastauksen ääneen. muokkaa lohkoa kuvan osoittamalla tavalla.
  • jos pyyntö on LightsOn -tarkoitus, päivitämme asioiden puhekanavan arvoon 0 käyttämällä http get -pyyntöä ja samalla päivitämme laitteen tilan (1/0 riippuen Päälle/Pois -tilasta). Sama toistetaan LightsOff, FanOn ja FanOff.
  • Säästä luemme lämpötila- ja kosteuskanavasta ja tallennamme tuloksen vastausmuuttujaan. Koska kanava antaa vain arvoja, lisäämme tekstejä vastauksen merkityksellisyyden lisäämiseksi
  • tilannekuvaa olohuoneesta suoritamme työntölaatikon skenaarion
  • laitteen tilan osalta luemme tietoja asioiden puhumiskanavalta:
  • ilmoituksia ja hälytyksiä varten, jotka luemme hälytyskanavilta (palo, tunkeilija ja vieras):
  • Ilmoituskentästä saamiemme arvojen perusteella vastaavat hälytysviestit tallennetaan vastausmuuttujaan. jos ilmoitusta ei ole, ilmoitusviestiä ei tallenneta.
  • kun ilmoitus on luettu, "0" päivitetään ilmoituskanavissa niin, että alexa ei lue samaa ilmoitusta uudelleen. Sitten vihdoin pyynnön perusteella vastaus0/vastausmuuttuja luetaan ääneen.

Vaihe 8: Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa:

Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa
Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa
Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa
Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa
Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa
Alexa Skillin määrittäminen Amazon -kehittäjäkonsolissa

Siirry Amazon -kehittäjäkonsoliin ja kirjaudu sisään Amazon -tilin avulla.

Siirry kehittäjäkonsoliin ja napsauta ALEXA -välilehteä. Aloita napsauttamalla alexa -taitopakettia.

luoda mukautetun taitotyypin, antaa taidolle nimen ja kutsumanimen. vastaavat aikomukset ja näytelausunnot annetaan koodissa.

valitse määritysvälilehdessä palvelun päätepistetyypiksi HTTPS ja täytä oletus -URL -osoite API -URL -osoitteella backendless -palvelusta. Valitse SSL -varmenteen oletuspäätepisteen varmenteen toinen vaihtoehto. Voit myös testata taitosi testisimulaattorin avulla.

Kun testi on valmis, voit julkaista taidon tarvittavilla julkaisutiedoilla.

Vaihe 9: Lopullinen asennus ja viimeistely

Lopullinen asennus ja viimeistely!
Lopullinen asennus ja viimeistely!
Lopullinen asennus ja viimeistely!
Lopullinen asennus ja viimeistely!

Tee piiriliitäntä kuvan osoittamalla tavalla.

Joskus ESP8266 toimii virheellisesti riittämättömän virran takia. Joten, vaikka se on mainittu piirissä, on suositeltavaa käyttää ESP8266 -laitetta erillisestä 3,3 voltin lähteestä. Jos käytät virtapankkia, alenna jännite 5 voltista 3,3 volttiin käyttämällä 3,3 voltin jännitesäädintä. Lataa ohjelma ESP8266: een ja arduinoon. Olen osoittanut yhteyden polttimoon, sama asia voidaan laajentaa tuulettimeen tai mihin tahansa laitteeseen. Käytä lopuksi amazon echo tai echosim.io testataksesi taitosi.

Sinun täytyy aktivoida taito käyttämällä kutsunimeä (kuten minun tapauksessani - "myhome"). Joskus se ei toimi, jos sitä käytetään ilman kutsumanimeä, kuten olen näyttänyt pari kertaa videossani

Toivottavasti pidit opetusohjelmasta!

Kiitos!

Suositeltava: