- హార్డ్వేర్ అవసరాలు
- అలెక్సా వాయిస్ కంట్రోల్డ్ LED కోసం ప్రాజెక్ట్ ఫ్లో
- కమ్యూనికేషన్ కోసం ఒక అడాఫ్రూట్ ఖాతాను ఏర్పాటు చేస్తోంది
- IFTTT ఉపయోగించి అలెక్సాను అడాఫ్రూట్ IO కి లింక్ చేయండి
- ESP12 కోడ్ వివరణ
- పని:
మునుపటి ట్యుటోరియల్లో మనం అమెజాన్ ఎకో స్పీకర్ను ఎలా నిర్మించవచ్చో చూశాము, ఆపై అలెక్సా వాయిస్ ఉపయోగించి ఏదైనా రాస్ప్బెర్రీ పై GPIO ని ఎలా నియంత్రించగలం. అలెక్సాపి మరియు ఇఎస్పి -12 ఇ (లేదా ఏదైనా ఇఎస్పి బోర్డు) ఉపయోగించి ప్రపంచంలో ఎక్కడి నుండైనా గృహోపకరణాలను నియంత్రించడానికి ఇప్పుడు మేము ఒక ఐఒటి ప్రాజెక్ట్ చేస్తున్నాము.
హార్డ్వేర్ అవసరాలు
- AVS తో రాస్ప్బెర్రీ పై ఇన్స్టాల్ చేయబడింది
- USB 2.0 మైక్ / వెబ్క్యామ్
- ESP-12E
- రిలే మాడ్యూల్
- LED / AC బల్బ్
సరిగ్గా ఆకృతీకరించిన అమెజాన్ డెవలపర్ ఖాతాతో అలెక్సా వాయిస్ సేవతో మీ రాస్ప్బెర్రీ పై సిద్ధంగా ఉండాలి. కాబట్టి అలెక్సా సేవలను సిద్ధం చేయడానికి క్రింది ట్యుటోరియల్ ద్వారా వెళ్ళండి.
- రాస్ప్బెర్రీ పై ఉపయోగించి మీ స్వంత అమెజాన్ ఎకోను నిర్మించండి
అలెక్సా వాయిస్ కంట్రోల్డ్ LED కోసం ప్రాజెక్ట్ ఫ్లో
ఈ IoT నియంత్రిత LED ప్రాజెక్ట్ కోసం మేము ఈ ఫ్లోచార్ట్ను అనుసరిస్తాము:
కాబట్టి, ప్రక్రియ ఇలాంటిది. మొదట, USB మైక్ ద్వారా రాస్ప్బెర్రీ పైకి ఇన్పుట్ ఇవ్వబడుతుంది. ఇప్పుడు, ఈ రికార్డింగ్ అలెక్సా వాయిస్ సేవలకు పంపబడింది మరియు వాయిస్ గుర్తింపు తరువాత, AVS డేటాను IFTTT కి పంపింది మరియు ఇది IFTTT లో పరిస్థితిని ప్రేరేపిస్తుంది. రెసిపీ ప్రకారం, IFTTT ఒక చర్య చేయడానికి MQTT బ్రోకర్ అయిన Adafruit IO కి ఆదేశాన్ని పంపుతుంది. అప్పుడు ESP 12e అడాఫ్రూట్ IO నుండి MQTT ప్రోటోకాల్ ద్వారా డేటాను స్వీకరిస్తుంది మరియు కమాండ్ ప్రకారం LED ఆన్ / ఆఫ్ అవుతుంది.
ఇక్కడ మేము మైక్రోఫోన్ కోసం USB వెబ్క్యామ్ను ఉపయోగించాము. బల్బ్ను ఆన్ చేయడానికి మేము ఇప్పటికే అలెక్సా వాయిస్ సేవను ఉపయోగించాము, అయితే ఇది స్థానికంగా అనుసంధానించబడిన ఉపకరణాలను మాత్రమే నిర్వహించగలదు.
మీరు ఇప్పటికే అలెక్సా వాయిస్ సేవలతో రాస్ప్బెర్రీ పైని కలిగి ఉన్నారని మేము As హించినట్లుగా, కాబట్టి మేము రెండు దశల క్రింద మిగిలి ఉన్నాము, వీటిని మేము ఒక్కొక్కటిగా వివరిస్తాము:
- కమ్యూనికేషన్ కోసం ఒక అడాఫ్రూట్ ఖాతాను ఏర్పాటు చేస్తోంది
- IFTTT ఉపయోగించి అలెక్సాను అడాఫ్రూట్ IO కి లింక్ చేయండి
- ESP12 లో కోడ్ను అప్లోడ్ చేయండి
కమ్యూనికేషన్ కోసం ఒక అడాఫ్రూట్ ఖాతాను ఏర్పాటు చేస్తోంది
మొదట, మేము అడాఫ్రూట్ IO లో ఫీడ్ చేస్తాము. ఫీడ్ IFTTT పంపిన డేటాను నిల్వ చేస్తుంది. ఫీడ్ చేయడానికి ఈ దశలను అనుసరించండి:
దశ 1: - మీ ఆధారాలతో అడాఫ్రూట్ IO కి లాగిన్ అవ్వండి లేదా మీకు ఖాతా లేకపోతే సైన్ అప్ చేయండి.
దశ 2: - నా ఖాతా -> డాష్బోర్డ్ పై క్లిక్ చేయండి
దశ 3: - క్లిక్ చర్యలు మరియు ఒక కొత్తడాష్బోర్డ్ సృష్టించు .
దశ 4: - మీ ఫీడ్కు పేరు మరియు వివరణ ఇవ్వండి మరియు సృష్టించుపై క్లిక్ చేయండి .
దశ 5: - కీ బటన్ పై క్లిక్ చేసి, AIO కీలను గమనించండి, మేము ఈ కీని మా కోడ్లో ఉపయోగిస్తాము.
దశ 6: - క్రొత్త బ్లాక్ను సృష్టించడానికి '+' బటన్ పై క్లిక్ చేసి, టోగుల్ బటన్ పై క్లిక్ చేయండి.
దశ 7: - ఇప్పుడు, ఫీడ్ పేరును నమోదు చేసి, సృష్టించుపై క్లిక్ చేయండి . అప్పుడు ఫీడ్ను ఎంచుకుని, తదుపరి దశపై క్లిక్ చేయండి.
దశ 8: - బ్లాక్ సెట్టింగులలో, బటన్ ఆన్ టెక్స్ట్ ఫీల్డ్లో '1' మరియు బటన్ ఆఫ్ టెక్స్ట్ ఫీల్డ్లో '0' అని వ్రాయండి.
దశ 9: - మీ ఫీడ్ విజయవంతంగా సృష్టించబడుతుంది.
IFTTT ఉపయోగించి అలెక్సాను అడాఫ్రూట్ IO కి లింక్ చేయండి
IFTTT లో ఆప్లెట్ / రెసిపీ చేయడానికి ఈ దశలను అనుసరించండి:
దశ 1: - మీ ఆధారాలతో IFTTT కి లాగిన్ అవ్వండి లేదా మీకు ఖాతా లేకపోతే సైన్ అప్ చేయండి.
దశ 2: - నా యాపిల్ట్స్లో, కొత్త ఆప్లెట్పై క్లిక్ చేయండి
దశ 3: - + క్లిక్ చేయండి ఈ
దశ 4: - అమెజాన్ అలెక్సాను శోధించండి మరియు దానిపై క్లిక్ చేయండి, మీ అమెజాన్ డెవలపర్ ఖాతా వివరాలతో సైన్ ఇన్ చేయండి.
దశ 5: - ట్రిగ్గర్ను ఎంచుకోండి, ఒక నిర్దిష్ట పదబంధాన్ని చెప్పండి
దశ 6: - " కాంతిని ఆన్ చేయి" అనే పదబంధాన్ని అందించండి, సృష్టించు ట్రిగ్గర్ పై క్లిక్ చేయండి.
దశ 7: - + దానిపై క్లిక్ చేయండి
దశ 8: - అడాఫ్రూట్ను శోధించి దానిపై క్లిక్ చేయండి.
దశ 9: - మీ ఆధారాలను ఉపయోగించి అడాఫ్రూట్ ఖాతాకు లాగిన్ అవ్వండి. Adafruit కు పంపించు డేటాపై క్లిక్ చేయండి.
మీరు అడాఫ్రూట్ IO లో సృష్టించిన ఫీడ్ పేరును ఎంచుకోండి. ఇప్పుడు, సేవ్ చేయడానికి డేటాలో '1' ఇవ్వండి, ఇది LED ఆన్లో ఉంటుందని సూచిస్తుంది. క్రియేట్ యాక్షన్ పై క్లిక్ చేయండి.
దశ 10: - LED ని ఆపివేయడానికి ఆప్లెట్లను తయారు చేయడానికి అదే దశలను అనుసరించండి. ఫీల్డ్ను సేవ్ చేయడానికి డేటాలో '0' ఉంచండి. అన్ని దశలు ఒకే విధంగా ఉంటాయి.
మీరు మీ పనిలో సగం చేసారు. ఇప్పుడు, మీ ESP-12E ను ప్రోగ్రామ్ చేయడానికి సమయం ఆసన్నమైంది.
ESP12 కోడ్ వివరణ
మేము ఆర్డునో IDE తో ESP12 ను ప్రోగ్రామ్ చేస్తాము. ఈ ట్యుటోరియల్ చివరిలో పూర్తి కోడ్ ఇవ్వబడింది.
మొదట, మాకు ఈ లింక్ నుండి డౌన్లోడ్ చేయగల ఒక అడాఫ్రూట్ Mqtt లైబ్రరీ అవసరం. Arduino IDE ని తెరవండి. వెళ్ళండి ఉదాహరణలు -> Adafruit mqtt లైబ్రరీ -> mqtt_esp8266
మేము మా AIO కీలు మరియు Wi-Fi ఆధారాల ప్రకారం ఈ కోడ్ను సవరించాము.
మొదట, మేము ESP8266WIFI మరియు Adafruit MQTT కోసం అన్ని లైబ్రరీలను చేర్చాము .
# చేర్చండి
మీ Wi-Fi కోసం మేము SSID మరియు పాస్వర్డ్ను నిర్వచించాము, దాని నుండి మీరు మీ ESP-12e ని కనెక్ట్ చేయాలనుకుంటున్నారు.
# WLAN_SSID "xxxxxxxx" ను నిర్వచించండి # WLAN_PASS "xxxxxxxxxx" ని నిర్వచించండి
ఈ విభాగం అడాఫ్రూట్ సర్వర్ మరియు సర్వర్ పోర్టును నిర్వచిస్తుంది, ఇది వరుసగా “ io.adafruit.com ” మరియు “ 1883 ” గా పరిష్కరించబడింది.
# AIO_SERVER "io.adafruit.com" ని నిర్వచించండి # AIO_SERVERPORT 1883 ని నిర్వచించండి
ఫీడ్ చేసేటప్పుడు మీరు అడాఫ్రూట్ సైట్ నుండి కాపీ చేసిన మీ యూజర్పేరు మరియు AIO కీలతో దిగువ ఫీల్డ్లను మార్చండి.
# AIO_USERNAME ని నిర్వచించండి "********" # AIO_KEY ని నిర్వచించండి "******************************"
MQTT సర్వర్కు కనెక్ట్ అవ్వడానికి ESP8266 WiFiClient క్లాస్ని సృష్టించండి.
వైఫై క్లయింట్ క్లయింట్;
వైఫై క్లయింట్ మరియు MQTT సర్వర్ మరియు లాగిన్ వివరాలలో ఉత్తీర్ణత ద్వారా MQTT క్లయింట్ తరగతిని సెటప్ చేయండి.
Adafruit_MQTT_Client mqtt (& క్లయింట్, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
మార్పులకు చందా కోసం 'లైట్' అనే ఫీడ్ను సెటప్ చేయండి.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ ఫీడ్లు / లైట్");
లో సెటప్ ఫంక్షన్, మేము మీరు అవుట్పుట్ పొందడానికి కోరుకుంటున్న ESP-12e యొక్క PIN ప్రకటిస్తాయి. నేను D0 పిన్ను అవుట్పుట్గా ఉపయోగిస్తున్నాను. అప్పుడు, మేము ESP-12e ని Wi-Fi యాక్సెస్ పాయింట్కు కనెక్ట్ చేస్తాము.
void setup () { Serial.begin (115200); ఆలస్యం (10); పిన్మోడ్ (D0, OUTPUT); సీరియల్.ప్రింట్ల్న్ (ఎఫ్ ("అడాఫ్రూట్ MQTT డెమో")); // వైఫై యాక్సెస్ పాయింట్కు కనెక్ట్ అవ్వండి. సీరియల్.ప్రింట్ల్న్ (); సీరియల్.ప్రింట్ల్న్ (); సీరియల్.ప్రింట్ ("దీనికి కనెక్ట్ అవుతోంది"); సీరియల్.ప్రింట్ల్న్ (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); (WiFi.status ()! = WL_CONNECTED) while …. …. …
తేలికపాటి ఫీడ్ కోసం MQTT సభ్యత్వాన్ని సెటప్ చేయండి.
mqtt.subscribe (& కాంతి); }
లో లూప్ ఫంక్షన్, మేము ఉంటుంది MQTT సర్వర్కు కనెక్షన్ MQTT_connect () ఉపయోగించి సజీవంగా ఉండేలా; ఫంక్షన్.
శూన్య లూప్ () { MQTT_connect ();
ఇప్పుడు, మేము మా 'లైట్' ఫీడ్ను చందా చేసి, అడాఫ్రూట్ IO నుండి స్ట్రింగ్ను తీసుకుంటాము మరియు ఈ స్ట్రింగ్ను అటోయి () ఉపయోగించి సంఖ్యకు మారుస్తాము ; డిజిటల్ రైట్ () ను ఉపయోగించి ఈ సంఖ్యను PIND0 కు ఫంక్షన్ చేయండి మరియు వ్రాయండి ; ఫంక్షన్.
Adafruit_MQTT_ సబ్స్క్రయిబ్ * చందా; అయితే ((చందా = mqtt.readSubscription (5000%)) { if (చందా == & కాంతి) { సీరియల్.ప్రింట్ (F ("గాట్_లైట్:")); సీరియల్.ప్రింట్ల్న్ ((చార్ *) లైట్.లాస్ట్రెడ్); uint16_t num = atoi ((char *) light.lastread); డిజిటల్ రైట్ (16, సంఖ్య); }
పని:
ల్యాప్టాప్తో మీ ESP-12E ని కనెక్ట్ చేయండి మరియు కోడ్ క్రింద అప్లోడ్ చేయండి (కోడ్లో మీ ఆధారాలను సవరించడం మర్చిపోవద్దు).
పిన్ D0 కి LED లేదా రిలేను కనెక్ట్ చేయండి. ఇప్పుడు, మీ అలెక్సా సేవ మీ RPi లో నడుస్తుందని నిర్ధారించుకోండి.
ఏదైనా ఆదేశాన్ని ఇవ్వడానికి మీరు ప్రతిసారీ ఆదేశాన్ని పంపాలనుకున్నప్పుడు “అలెక్సా” అని పిలవడం ద్వారా అలెక్సా సేవను మేల్కొలపాలి. మీరు బీప్ శబ్దం వింటారు. మీరు బీప్ విన్న తర్వాత, “ అలెక్సా ట్రిగ్గర్ లైట్ ఆన్ చేయండి. ”మీరు క్షణంలో కాంతి ఆన్ చేయడాన్ని చూడవచ్చు. ఆపై మీరు “ అలెక్సా ట్రిగ్గర్ లైట్ ఆఫ్ చేయండి ” అని చెబితే, కాంతి ఆపివేయబడాలి.
అంతే…. ESP-12E యొక్క GPIO పిన్లను జోడించడం ద్వారా మరియు IFTTT లో వేర్వేరు పదబంధాలతో వేర్వేరు ఆపిల్లను తయారు చేయడం ద్వారా మీరు పై కోడ్లో మరిన్ని ఉపకరణాలను జోడించవచ్చు.
పూర్తి కోడ్ మరియు ప్రదర్శన వీడియోను క్రింద తనిఖీ చేయండి. మా అన్ని హోమ్ ఆటోమేషన్ ప్రాజెక్టులను కూడా ఇక్కడ తనిఖీ చేయండి