Sisällysluettelo:
- Vaihe 1: Tarvikkeet ja liitännät
- Vaihe 2: PI -asetukset
- Vaihe 3: Koodin lataaminen ja kääntäminen
- Vaihe 4: Käytä sitä
- Vaihe 5: Kuinka koodi toimii
- Vaihe 6: Mukauttaminen ja ystävälliset nimet
Video: Alexa Raspberry Pi -releohjain: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Luin tämän Instructable -ohjelman jakaakseni kokemuksiani IOT -laitteiden integroinnista Amazonin Alexan kanssa.
Tämän projektin avulla vadelmapi: hen liitettyä relelevyä voidaan ohjata Smarthome -ohjaimella.
Se on testattu Alexan kanssa, mutta näyttää myös toimivan hyvin Samsung Smartthings -laitteiden ja muiden ohjausliitäntöjen kanssa, koska se emuloi useita Belkin Wemo -liitäntöjä.
On olemassa paljon esimerkkejä, jotka perustuvat erinomaiseen FAUXMO-koodiin, mutta tämä tarkoitti pythonin oppimista eikä antanut minulle yksityiskohtaista ohjausta, jota tarvitsin laitteilleni, ja siksi päätin luoda uuden tyhjästä käyttäen C: tä peruskoodauskieleni.
En myöskään halunnut mennä Amazon.comin lambda -koodin syvyyksiin, joten olen pitänyt sen todella yksinkertaisena.
Olen lähettänyt lähteen ja muistiinpanot Githubiin:
github.com/Switchdoctorstu/StuPiMo
Opetusohjelman tarkoituksena on todella kattaa sen saaminen toimimaan ja julkaista muistiinpanoni siltä varalta, että se auttaa muita.
Vaihe 1: Tarvikkeet ja liitännät
Tarvitsemasi asiat ovat helposti saatavilla Amazon / EBay:
- Vadelma PI *
- Pi virtalähde
- Dupont -liittimet
- Rele Board
- Vanha mikro -USB -johto (puolittaa relekortin virran)
Mikä tahansa vadelma Pi toimii, olen testannut tämän mallilla B ja Zero.
*Jos käytät Pi Zeroa, tarvitset OTG -verkkosovittimen (ellet osta W -versiota, jossa on WiFi -yhteys)
Sinun on yhdistettävä Pi verkkoon.
Liitä relekortti Pi -laitteeseen dupont -liitäntöjen avulla.
Huomaa, että relekortin tulee käyttää ulkoista virtalähdettä (poista linkki ja kytke ulkoinen 5v). Se toimii PI: n virtalähteenä, mutta sitä ei suositella tuotannossa.
Asetuksissani käytin ulkoisesti toimivaa USB -HUBia. Tämä antaa virtaa PI: lle.
Katkaisin myös vanhan USB -kaapelin pään ja toimitin releet toisesta USB -liitännästä keskittimeen pysyäkseni turvassa. "Tuotanto" -versiossani on pieni 5V 5A -kytkentävirtalähde. Jälleen leikkasin USB-johdon puoliksi virtalähteeksi Pi Micro-USB: n kautta ja katkaisin kaksi dupont-liitintä relelevyn virtalähteeksi. USB -johdossa on 4 johtoa, joista useimmat käyttävät punaista/mustaa 5V -jännitteen syöttämiseen, mutta jos olet epävarma, käytä mittaria varmistaaksesi, että saat oikeat johdot.
Kortin releen nastat on kytketty PI -otsikon vastaaviin GPIO -nastoihin.
Koodin avulla voit valita GPIO -nastat, mutta käyttämäni oletusarvo oli:
- Releen nasta 1 - Maadoitus
- Releen nasta 2 - Rele 1 - GPIO 0
- Releen nasta 3 - Rele 2 - GPIO 1
- Releen nasta 4 - Rele 3 - GPIO 2
- Releen nasta 5 - Rele 4 - GPIO 3
- Releen nasta 6 - Rele 5 - GPIO 4
- Releen nasta 7 - Rele 6 - GPIO 5
- Releen nasta 8 - Rele 7 - GPIO 6
- Releen nasta 9 - Rele 8 - GPIO 7
- Releen nasta 10 - +5v logiikkaa varten
Vaihe 2: PI -asetukset
En aio luoda uudelleen opetusohjelmaa PI: n käynnistämisestä ja kytkemisestä verkkoon.
On olemassa monia oppaita, mukaan lukien erinomainen opettavainen osoitteessa:
www.instructables.com/id/Ultimate-Raspberr…
Sinun on saatava itsesi siihen pisteeseen, jossa PI näkyy verkossa ja voit muodostaa yhteyden siihen.
Ei ole väliä onko tämä Ethernetin vai langattoman yhteyden kautta.
Tämä projekti voidaan suorittaa loppuun vain Raspberry PI: llä Geany Programmers Editor -ohjelman avulla, mutta minusta on henkilökohtaisesti helpompaa tehdä koodin valmistelu tietokoneella Visual Studion tai Eclipsen (tai jopa Notepad ++: n) avulla ja ladata se sitten PI: hen virheenkorjausta varten VNC -liitäntä. Jälleen en aio käsitellä tätä täällä, koska VNC: n asettaminen RPi: lle on monia erinomaisia ohjeita.
Tarvitset vain päästä pisteeseen, jossa voit ladata ja koota koodin.
Yksi tärkeä huomautus on, että koska UPNP -käsittelijä vaatii UDP -monilähetystä, käytetyt rajapinnat on asetettava 'Promiscuous' -tilaan.
Tämä voidaan tehdä komentoriviltä:
pi@raspberrypi: ~ $ ifconfig eth0persc
ja tai
pi@raspberrypi: ~ $ ifconfig wlan0persc
Tämä on tehtävä pysyväksi, joten muokkasin /etc/rc.local
sudo nano / etc / rc.local
sisällyttää rivi:
sudo ifconfig eth0 procc
ensimmäisen bannerin # rivin jälkeen varmistaaksesi, että rajapinnat on asetettu käynnistyksen yhteydessä.
Vaihe 3: Koodin lataaminen ja kääntäminen
Koodi itse istuu Github -arkistossani;
github.com/Switchdoctorstu/StuPiMo/blob/ma…
kun on olemassa "oikeita" tapoja kloonata arkisto. Minusta oli helpompaa vain avata Geany -editori Pi -työpöydällä ja liittää koodi sisään.
Samoin, jos käytät komentoriviä;
Luo uusi hakemisto
mkdir Stu
Vaihda siihen
cd Stu
Luo uusi tekstitiedosto
nano StuPiMo.c
Kopioi koodi Github -raaka -aineesta ja liitä se uuteen tiedostoon
Tallenna ja poistu.
Kun tiedosto on C -lähdekoodiobjekti, voit kääntää sen käyttämällä
gcc -o StuPiMo StuPiMo.c -l johdotusPi
Huomaa, että "-l wiringPi" tarvitaan sen varmistamiseksi, että kääntäjä linkittää vaadittuun wiringPi-kirjastoon.
Koodi voidaan sitten suorittaa käyttämällä
./StuPiMo
Jälleen, jos haluat tämän toimivan käynnistyksen yhteydessä, käytä komentoa:
sudo nano /etc/rc.local
lisätäksesi seuraavan rivin
sudo/home/pi/Stu/StuPiMo &
/etc/rc.local -tiedostoosi. Älä unohda tallentaa tiedostoa poistuttaessa.
Huomaa, että & on välttämätön osaprosessin syntymisen varmistamiseksi, jotta komentosarja ei esty tässä vaiheessa.
Vaihe 4: Käytä sitä
Kun olet saanut koodin toimimaan, pyydä Alexaa etsimään laitteita ja hänen pitäisi löytää kaikki 8 virtuaalista Wemo -laitetta.
Sitten vain sanotaan: "Alexa kytke pistorasia 1" tai "Alexa sammuta pistorasia 6" jne. Ja asiaankuuluva rele vaihdetaan.
Vaihe 5: Kuinka koodi toimii
Koodi toimii emuloimalla useita Belkin Wemo -liitäntälaitteita.
Tämän saavuttamiseksi sen on käsiteltävä 2 päätoimintoa
- UPNP -etsintälähetyskäsittelijä
- 'laitteenkäsittelijä' (yksi per virtuaalilaite) hallitsemaan laitteelle lähetettyjä komentoja ja tarvittavia vastauksia.
Bonusominaisuus on, että se julkaisee myös verkkosivun laitteiden hallinnan mahdollistamiseksi.
UPNP -käsittelijä
UPNP -käsittelijä avaa pistorasian SSDP -protokollapakettien valvontaan 239.255.255.250 -portissa 1900.
Se vastaa kaikkiin M-SEARCH-kyselyihin, jotka tulevat löytövastauspaketilla, joka ilmoittaa yksittäiset wemo-emulaattorit jokaiselle, joka pyytää.
Laitteenkäsittelijä
Laitteenkäsittelijät (yksi per virtuaalilaite) valvovat useita IP -portteja ja vastaavat pyyntöihin.
Se palvelee setup.xml -vastausta pyydettäessä
Se palvelee tapahtuman kuvaustiedostoa pyydettäessä
Se vastaa GETBINARYSTATE -pyyntöön
Se käsittelee SETBINARYSTATE -pyynnön ja vastaa siihen
Verkkopalvelin
Verkkopalvelin on yksinkertainen rutiini, joka luo HTML -lomakkeen, joka sisältää painikkeen per rele.
Se reagoi painikkeisiin ja vaihtaa releen tilan vastaavasti.
Vaihe 6: Mukauttaminen ja ystävälliset nimet
En ole tullut hulluksi koodista pitämään se yksinkertaisena ja muokattavana.
Perusasiat voidaan mukauttaa määritteillä koodin alussa:
// globaalit määritelmät#define WEBPORT 5353 // portti, jolla web -palvelin ajetaan
#define NUMDEVICES 8 // Luodavien virtuaalilaitteiden määrä
#define PORTBASE 43450 // perus IP -portti, josta sitä lisätään
WEBPORT on portin numero, jolla sisäänrakennettu verkkopalvelin toimii. Tämä voitaisiin asettaa istumaan 80 -paikalle helpottaakseen asioita, mutta huomasin, että se oli ristiriidassa tomcatin tai muiden paikallisesti toimivien palveluiden kanssa.
NUMDEVICES määrittää lanseerattavien yksittäisten WEMO -emulaattorien lukumäärän. Jos sinulla on 2 -porttinen relekortti, aseta tämä arvoksi 2, 4 portti = 4 jne.
Laitteiden ystävälliset nimet asetetaan rutiinille nimeltä setup_names:
int setup_names (char friendly [NUMDEVICES] [NAMELEN]) {int i = 0;
// käytä tätä silmukkaa
for (i = 0; i <NUMDEVICES; i ++) {
sprintf (ystävällinen , "Socket %d", i + 1);
}
// tai seuraava manuaalinen taulukko laitenimien täyttämiseksi
/*
strcpy (ystävällinen [0], "Makuuhuone TV");
strcpy (ystävällinen [1], "Electric Blanket");
strcpy (ystävällinen [2], "Makuuhuoneen lamppu");
strcpy (ystävällinen [3], "Socket 4");
strcpy (ystävällinen [4], "Socket 5");
strcpy (ystävällinen [5], "Socket 6");
strcpy (ystävällinen [6], "Socket 7");
strcpy (ystävällinen [7], "Socket 8");
*/
palauta i;
}
Käytin silmukkaa soittamaan jokaiselle laitteelle 'Socket n', mutta voit poistaa tämän silmukan ja lisätä omia ystävällisiä nimiäsi (varmista, että lisäät saman numeron kuin NUMDEVICES), jos poistat / * * /
Muista kääntää koodi uudelleen, jos teet muutoksia.
Suositeltava:
Raspberry Pi Alexa+Googlen älykäs kaiutin: 6 vaihetta
Raspberry Pi Alexa+Googlen älykäs kaiutin: Tässä projektissa opetan sinulle, kuinka tehdä budjetin älykäs kaiutin. Tämän projektin kustannusten tulisi maksaa vain noin $ 30- $ 50 dollaria materiaalista ja lisäosista riippuen
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: 6 vaihetta (kuvilla)
Alexa Ääniohjattu Raspberry Pi Drone IoT: llä ja AWS: llä: Hei! Nimeni on Armaan. Olen 13-vuotias Massachusettsin poika. Tämä opetusohjelma näyttää, kuten voit päätellä otsikosta, kuinka rakentaa Raspberry Pi Drone. Tämä prototyyppi osoittaa, kuinka dronit kehittyvät ja kuinka suuri rooli niillä voi olla
Lisää mukautettu Alexa -ohjaus Raspberry Pi -projektiin: 5 vaihetta
Lisää mukautettu Alexa -ohjaus Raspberry Pi -projektiin: Tämä projekti on tarkoitettu kaikille, joilla on Raspberry Pi -projekti, joka käyttää Pythonia ja joka haluaa lisätä ääniohjauksen olemassa olevien Amazon Echo -laitteiden kautta. Sinun ei tarvitse olla kokenut ohjelmoija, mutta sinun pitäisi tuntea olosi mukavaksi käyttää
RASPBERRY PI ALEXA HOME AUTOMATION: 4 vaihetta
RASPBERRY PI ALEXA HOME AUTOMATION: Tämä opas kattaa Amazon alexa eho dot, Raspberry pi Gpio -ohjauksen käsitteet alexan avulla. Alexan käsittelyn suurin ongelma on aina, kun sinun on lisättävä aws -tiliisi paljon aikaa vaativia taitoja perustaa c
Amazon Alexa - Raspberry Pi (Mobile): 5 vaihetta (kuvilla)
Amazon Alexa - Raspberry Pi (mobiili): Tervetuloa opetusohjelmaamme Amazon Alexan rakentamisesta Rasberry Pi: n avulla. Koska olet napsauttanut tätä opetusohjelmaa, tiedät ilmeisesti, että Amazon Alexa on kaunis tekniikka nykyaikana. Tosin sen ostaminen ja tekeminen ovat kaksi eri asiaa