- Zahtjevi za hardverom
- Tok projekta za Alexa s glasovnim upravljanjem Alexa
- Postavljanje računa Adafruit za komunikaciju
- Povežite Alexa s Adafruit IO koristeći IFTTT
- Objašnjenje ESP12 koda
- Radno:
U prethodnim tutorijalima vidjeli smo kako možemo izgraditi Amazon Echo zvučnik i kako onda možemo kontrolirati bilo koji Raspberry Pi GPIO pomoću Alexa Voicea. Sada radimo IoT projekt za kontrolu kućanskih aparata s bilo kojeg mjesta na svijetu pomoću AlexaPi i ESP-12E (ili bilo koje ESP ploče).
Zahtjevi za hardverom
- Raspberry Pi s ugrađenim AVS-om
- USB 2.0 mikrofon / web kamera
- ESP-12E
- Relejni modul
- LED / AC žarulja
Trebali biste pripremiti svoj Raspberry Pi s instaliranom glasovnom uslugom Alexa s pravilno konfiguriranim računom Amazon Developer Account. Dakle, prođite kroz donji vodič da biste pripremili Alexa usluge.
- Izgradite vlastiti Amazon Echo koristeći Raspberry Pi
Tok projekta za Alexa s glasovnim upravljanjem Alexa
Slijedit ćemo ovaj dijagram toka za ovaj LED projekt kojim upravlja IoT:


Dakle, postupak je otprilike ovakav. Prvo se daje ulaz Raspberry Pi preko USB mikrofona. Sada se ova snimka šalje glasovnim službama Alexa, a nakon prepoznavanja glasa AVS je podatke poslao IFTTT-u i to pokreće stanje u IFTTT-u. Prema receptu, IFTTT će naredbu poslati tvrtki Adafruit IO, koja je posrednik MQTT-a za izvođenje radnje. Tada će ESP 12e primiti podatke iz Adafruit IO putem MQTT protokola i LED će se uključiti / isključiti prema naredbi.
Ovdje smo koristili USB web kameru za mikrofon. Već smo koristili uslugu Alexa Voice za uključivanje žarulje, ali može raditi samo s uređajima koji su povezani lokalno.
Kako pretpostavljamo da već imate Raspberry Pi s instaliranim uslugama Alexa Voice, ostajemo u nastavku s dva koraka koja ćemo objasniti jedan po jedan:
- Postavljanje računa Adafruit za komunikaciju
- Povežite Alexa s Adafruit IO koristeći IFTTT
- Kôd za prijenos u ESP12
Postavljanje računa Adafruit za komunikaciju
Prvo ćemo napraviti feed u Adafruit IO. Feed pohranjuje podatke koje šalje IFTTT. Da biste stvorili feed, slijedite ove korake:
Korak 1: - Prijavite se na Adafruit IO sa svojim vjerodajnicama ili se prijavite ako nemate račun.

Korak 2: - Kliknite Moj račun -> Nadzorna ploča

Korak 3: - Kliknite Akcije i izradite novu nadzornu ploču .

Korak 4: - Dajte ime i opis feedu i kliknite Stvori .

Korak 5: - Pritisnite gumb Ključ i zabilježite AIO ključeve, mi ćemo koristiti ovaj ključ u našem kodu.


Korak 6: - Pritisnite gumb '+' da biste stvorili novi blok i kliknite gumb Prebaci.

Korak 7: - Sada unesite naziv feeda i kliknite na Create . Zatim odaberite feed i kliknite Sljedeći korak.

Korak 8: - U postavkama bloka upišite '1' u polje za tekst gumba ON i '0' u polje za tekst gumba OFF .

Korak 9: - Vaš feed uspješno je stvoren.

Povežite Alexa s Adafruit IO koristeći IFTTT
Slijedite ove korake za izradu apleta / recepta u IFTTT-u:
Korak 1: - Prijavite se na IFTTT sa svojim vjerodajnicama ili se prijavite ako na njemu nemate račun.

Korak 2: - Na My Applets, kliknite New Applet

Korak 3: - Kliknite + ovo
Korak 4: - Pretražite Amazon Alexa i kliknite na nju, prijavite se s detaljima svog računa programera za Amazon.

Korak 5: - Odaberite pokretač, izgovorite određenu frazu

Korak 6: - Navedite " uključi svjetlo" kao frazu, kliknite Stvori okidač.

Korak 7: - Kliknite + to

Korak 8: - Pretražite Adafruit i kliknite na njega.

Korak 9: - Prijavite se na račun Adafruit koristeći svoje vjerodajnice. Kliknite na Send data to Adafruit .
Odaberite naziv feeda koji ste upravo kreirali u Adafruit IO. Sada dajte '1' u podatke za spremanje, to znači da će LED biti uključen. Kliknite Stvori akciju .

Korak 10: - Slijedite iste korake za izradu apleta za isključivanje LED diode . Samo stavite '0' u polje Podaci za spremanje. Svi koraci ostaju isti.
Uradili ste pola svog posla. Sada je vrijeme da programirate svoj ESP-12E.
Objašnjenje ESP12 koda
Programirat ćemo ESP12 s Arduino IDE-om. Kompletni kod dan je na kraju ovog vodiča.
Prvo, trebamo knjižnicu Adafruit Mqtt koju možemo preuzeti s ove poveznice. Samo otvorite Arduino IDE. Idite na primjere -> biblioteka adafruit mqtt -> mqtt_esp8266
Uređivat ćemo ovaj kôd prema našim AIO ključevima i vjerodajnicama za Wi-Fi.
Prvo smo uključili sve knjižnice za ESP8266WIFI i Adafruit MQTT .
#include
Mi definira SSID i Zaporka za Wi-Fi, iz koje se želite povezati svoj ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Ovaj odjeljak definira poslužitelj Adafruit i priključak poslužitelja koji su fiksni kao „ io.adafruit.com “ i „ 1883 “.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Zamijenite polja ispod korisničkim imenom i AIO ključevima koje ste kopirali s web mjesta Adafruit tijekom izrade feeda.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Zatim stvorite klasu ESP8266 WiFiClient za povezivanje s MQTT poslužiteljem.
Klijent WiFiClient;
Postavite klasu MQTT klijenta unošenjem WiFi klijenta i MQTT poslužitelja i podataka za prijavu.
Adafruit_MQTT_Client mqtt (& klijent, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Postavite feed pod nazivom "svjetlo" za pretplatu na promjene.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
U funkciji postavljanja deklariramo PIN ESP-12e na kojem želite dobiti izlaz. Kao izlaz koristim pin D0. Zatim povezujemo ESP-12e s Wi-Fi pristupnom točkom.
void setup () { Serial.begin (115200); kašnjenje (10); pinMode (D0, IZLAZ); Serial.println (F ("Demofruit MQTT demonstracija")); // Povezivanje s WiFi pristupnom točkom. Serial.println (); Serial.println (); Serial.print ("Povezivanje s"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); dok je (WiFi.status ()! = WL_CONNECTED) { …. ... ...
Postavite pretplatu na MQTT za lagani feed.
mqtt.subscribe (& light); }
U funkciji petlje osigurat ćemo da veza s MQTT poslužiteljem bude aktivna pomoću MQTT_connect (); funkcija.
petlja void () { MQTT_connect ();
Sada se pretplaćujemo na naš 'lagani' feed i dobivamo niz iz adafruit IO-a i pretvaramo ga u broj pomoću atoi (); funkcionirati i zapisati ovaj broj na PIND0 pomoću digitalWrite (); funkcija.
Pretplata na Adafruit_MQTT_Subscribe *; while ((pretplata = mqtt.readSubscription (5000))) { if (pretplata == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, broj); }
Radno:
Povežite svoj ESP-12E s prijenosnim računalom i prenesite kôd ispod (ne zaboravite urediti svoje vjerodajnice u kodu).
Spojite LED ili relej na pin D0. Sada provjerite radi li vaša usluga Alexa na vašem RPi.

Da biste dali bilo koju naredbu, trebate probuditi Alexa uslugu pozivom "Alexa" svaki put kada želite poslati naredbu. Čut ćete zvučni signal. Kad začujete zvučni signal, recite „ Alexa Trigger Uključi svjetlo. ”Možete vidjeti kako se svjetlo uključuje za trenutak. A onda ako kažete “ Alexa Trigger Turn off the Light ”, svjetlo bi se trebalo ugasiti.
To je to…. U gornji kod možete dodati još uređaja dodavanjem GPIO pinova ESP-12E i izradom različitih Appleta s različitim frazama u IFTTT-u.
U nastavku pogledajte cjeloviti kod i demonstracijski video. Ovdje također provjerite sve naše projekte automatizacije kuće
