- Mga Kinakailangan sa Hardware
- Daloy ng Proyekto para sa Alexa LED Controlled LED
- Pagse-set up ng isang Adafruit account para sa komunikasyon
- I-link ang Alexa sa Adafruit IO gamit ang IFTTT
- Paliwanag sa ESP12 Code
- Nagtatrabaho:
Sa mga nakaraang tutorial na nakita natin Paano kami makakagawa ng isang Amazon Echo Speaker at kung paano namin makokontrol ang anumang Raspberry Pi GPIO gamit ang Alexa Voice. Gumagawa kami ngayon ng isang proyekto ng IoT upang makontrol ang mga gamit sa bahay mula sa kahit saan sa mundo gamit ang AlexaPi at ESP-12E (o anumang ESP board).
Mga Kinakailangan sa Hardware
- Ang Raspberry Pi na may naka-install na AVS dito
- USB 2.0 mic / Webcam
- ESP-12E
- Relay module
- LED / AC bombilya
Dapat mong ihanda ang iyong Raspberry Pi na may naka-install na serbisyo sa boses ng Alexa dito na may maayos na na-configure na Amazon Developer Account. Kaya dumaan sa ibaba ng tutorial upang maihanda ang mga serbisyo ng Alexa.
- Bumuo ng iyong sariling Amazon Echo gamit ang isang Raspberry Pi
Daloy ng Proyekto para sa Alexa LED Controlled LED
Susundan namin ang flowchart na ito para sa IoT na kinokontrol na LED na proyekto:
Kaya, ang proseso ay katulad nito. Una, ang input ay ibinibigay sa Raspberry Pi sa pamamagitan ng USB Mic. Ngayon, ang recording na ito ay ipinadala sa mga serbisyo ng boses ng Alexa at pagkatapos ng pagkilala sa boses, ipinadala ng AVS ang data sa IFTTT at ito ay nagpapalitaw ng kundisyon sa IFTTT. Ayon sa resipe, magpapadala ang IFTTT ng utos sa Adafruit IO na siyang MQTT broker na magsagawa ng isang aksyon. Pagkatapos ang ESP 12e ay makakatanggap ng data mula sa Adafruit IO sa pamamagitan ng MQTT protocol at ang LED ay ON / OFF alinsunod sa utos.
Dito nagamit namin ang isang USB WebCam para sa Mikropono. Nagamit na namin ang serbisyo ng Alexa Voice upang buksan ang isang bombilya, ngunit maaari lamang itong hawakan ang mga appliances na konektado nang lokal.
Tulad ng ipinapalagay namin na mayroon ka nang Raspberry Pi na may mga serbisyo sa Alexa Voice na naka-install, kaya't natitira kami sa ibaba ng dalawang mga hakbang, na isa-isa naming ipaliwanag:
- Pagse-set up ng isang Adafruit account para sa komunikasyon
- I-link ang Alexa sa Adafruit IO gamit ang IFTTT
- Mag-upload ng code sa ESP12
Pagse-set up ng isang Adafruit account para sa komunikasyon
Una, gumawa kami ng feed sa Adafruit IO. Iniimbak ng feed ang data na ipinadala ng IFTTT. Upang gawin ang feed na sundin ang mga hakbang na ito:
Hakbang 1: - Mag-login sa Adafruit IO gamit ang iyong mga kredensyal o Mag-sign up kung wala kang isang account.
Hakbang 2: - Mag - click sa Aking account -> Dashboard
Hakbang 3: - Mag - click sa Mga Pagkilos at Lumikha ng isang Bagong Dashboard .
Hakbang 4: - Magbigay ng pangalan at paglalarawan sa iyong feed at mag-click sa Lumikha .
Hakbang 5: - Mag - click sa pindutan ng Key at tandaan ang mga AIO Keys, gagamitin namin ang key na ito sa aming code.
Hakbang 6: - Mag - click sa pindutang '+' upang lumikha ng isang bagong bloke at mag-click sa Toggle button.
Hakbang 7: - Ngayon, Ipasok ang Pangalan ng Feed at mag-click sa Lumikha . Pagkatapos Piliin ang feed at mag-click sa Susunod na hakbang.
Hakbang 8: - Sa mga setting ng pag-block, Isulat ang '1' sa Patlang na patlang na teksto at '0' sa Patlang na OFF na patlang ng Teksto .
Hakbang 9: - Matagumpay na nilikha ang iyong Feed.
I-link ang Alexa sa Adafruit IO gamit ang IFTTT
Sundin ang mga hakbang na ito upang makagawa ng isang Applet / Recipe sa IFTTT:
Hakbang 1: - Mag-login sa IFTTT gamit ang iyong mga kredensyal o Mag-sign Up kung wala kang account dito.
Hakbang 2: - Sa Aking Mga Applet, Mag-click sa Bagong Applet
Hakbang 3: - Mag - click sa + ito
Hakbang 4: - Maghanap sa Amazon Alexa at mag-click dito, mag-sign in gamit ang iyong mga detalye ng account ng developer ng amazon.
Hakbang 5: - Piliin ang gatilyo, Sabihin ang isang tukoy na parirala
Hakbang 6: - Magbigay ng " i-on ang ilaw" bilang parirala, mag-click sa Lumikha ng Trigger.
Hakbang 7: - Mag - click sa + iyon
Hakbang 8: - Maghanap ng Adafruit at mag-click dito.
Hakbang 9: - Pag- login sa Adafruit Account gamit ang iyong mga kredensyal. Mag-click sa Magpadala ng data sa Adafruit .
Piliin ang pangalan ng feed na nilikha mo lang sa Adafruit IO. Ngayon, bigyan ang '1' sa data upang makatipid, ipinapahiwatig nito na magiging ON ang LED. Mag-click sa Lumikha ng Aksyon .
Hakbang 10: - Sundin ang parehong mga hakbang upang gumawa ng mga applet upang ma-OFF ang LED . Ilagay lamang ang '0' sa patlang ng Data upang makatipid. Ang lahat ng mga hakbang ay mananatiling pareho.
Natapos mo na ang kalahati ng iyong trabaho. Ngayon, oras na upang i-program ang iyong ESP-12E.
Paliwanag sa ESP12 Code
Paprograma namin ang ESP12 kasama ang Arduino IDE. Ang kumpletong code ay ibinibigay sa pagtatapos ng Tutorial na ito.
Una, kailangan namin ng Adafruit Mqtt library na maaaring ma-download mula sa link na ito. Buksan lamang ang Arduino IDE. Pumunta sa mga halimbawa -> adafruit mqtt library -> mqtt_esp8266
I-e- edit namin ang code na ito alinsunod sa aming mga key ng AIO at mga kredensyal ng Wi-Fi.
Una, isinama namin ang lahat ng mga silid-aklatan para sa ESP8266WIFI at Adafruit MQTT .
# isama
Tinukoy namin ang SSID at Password para sa iyong Wi-Fi, kung saan nais mong ikonekta ang iyong ESP-12e.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Tinutukoy ng seksyong ito ang Adafruit server at server port na naayos bilang " io.adafruit.com " at " 1883 " ayon sa pagkakabanggit.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
Palitan ang mga patlang sa ibaba ng iyong username at mga key ng AIO na kinopya mo mula sa Adafruit site habang ginagawa ang Feed.
#define AIO_USERNAME "********" #define AIO_KEY "*****************************"
Pagkatapos ay lumikha ng isang klase ng ESP8266 WiFiClient upang kumonekta sa MQTT server.
Client ng WiFiClient;
I-setup ang klase ng kliyente ng MQTT sa pamamagitan ng pagpasa sa client ng WiFi at MQTT server at mga detalye sa pag-login.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Mag-setup ng feed na tinatawag na 'light' para sa pag-subscribe sa mga pagbabago.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
Sa pag- andar sa pag- setup, idineklara namin ang PIN ng ESP-12e kung saan mo nais makakuha ng output. Gumagamit ako ng D0 pin bilang output. Pagkatapos, ikonekta namin ang ESP-12e sa Wi-fi access point.
void setup () { Serial.begin (115200); antala (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT demo")); // Kumonekta sa access point ng WiFi. Serial.println (); Serial.println (); Serial.print ("Kumokonekta sa"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); habang (WiFi.status ()! = WL_CONNected) { …. …. …
I-setup ang subscription ng MQTT para sa light feed.
mqtt.subscribe (& light); }
Sa pag- andar ng loop , titiyakin namin na ang koneksyon sa MQTT server ay buhay na gamit ang MQTT_connect (); pagpapaandar
void loop () { MQTT_connect ();
Ngayon, nag- subscribe kami ng aming 'light' feed at nakukuha ang string mula sa adafruit IO at binago ang string na ito sa numero gamit ang atoi (); pagpapaandar at isulat ang numerong ito sa PIND0 gamit ang digitalWrite (); pagpapaandar
Adafruit_MQTT_Subscribe * subscription; habang ((subscription = mqtt.readSubscription (5000))) { kung (subscription == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.last); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
Nagtatrabaho:
Ikonekta ang iyong ESP-12E sa laptop at mag-upload sa ibaba ng code (huwag kalimutang i-edit ang iyong mga kredensyal sa code).
Ikonekta ang isang LED o relay upang i-pin ang D0. Ngayon, tiyaking tumatakbo ang iyong serbisyo sa Alexa sa iyong RPi.
Upang mabigyan ang anumang utos na kailangan mo upang gisingin ang serbisyo ng Alexa sa pamamagitan ng pagtawag sa "Alexa" sa tuwing nais mong magpadala ng isang utos. Makakarinig ka ng tunog ng beep. Kapag narinig mo ang beep, sabihin ang “ Alexa Trigger Turn on the Light. ”Maaari mong makita ang ilaw na ON sa loob ng isang sandali. At pagkatapos kung sasabihin mong " Alexa Trigger Patayin ang Liwanag ", dapat patayin ang ilaw.
Ayan yun…. Maaari kang magdagdag ng higit pang mga appliances sa code sa itaas sa pamamagitan ng pagdaragdag ng mga GPIO pin ng ESP-12E at sa pamamagitan ng paggawa ng iba't ibang mga Applet na may iba't ibang mga parirala sa IFTTT.
Suriin ang kumpletong code at Video ng Demonstrasyon sa ibaba. Suriin din ang aming lahat ng Mga Proyekto sa Home Automation dito