- Keperluan Perkakasan
- Aliran Projek untuk Alexa Suara LED yang Dikawal
- Menyiapkan akaun Adafruit untuk komunikasi
- Pautkan Alexa ke Adafruit IO menggunakan IFTTT
- Penjelasan Kod ESP12
- Bekerja:
Dalam tutorial sebelumnya, kita telah melihat Bagaimana kita dapat membina Speaker Echo Amazon dan kemudian bagaimana kita dapat mengawal mana-mana Raspberry Pi GPIO menggunakan Alexa Voice. Sekarang kami membuat projek IoT untuk mengawal perkakas rumah dari mana sahaja di dunia menggunakan AlexaPi dan ESP-12E (atau papan ESP mana pun).
Keperluan Perkakasan
- Raspberry Pi dengan AVS terpasang di dalamnya
- USB 2.0 mikrofon / Kamera Web
- ESP-12E
- Modul geganti
- Mentol LED / AC
Anda harus menyediakan Raspberry Pi anda dengan perkhidmatan suara Alexa yang dipasang di dalamnya dengan Akaun Pembangun Amazon yang dikonfigurasi dengan betul. Oleh itu, ikuti tutorial di bawah untuk menyiapkan perkhidmatan Alexa.
- Bina Amazon Echo anda sendiri menggunakan Raspberry Pi
Aliran Projek untuk Alexa Suara LED yang Dikawal
Kami akan mengikuti carta alir untuk projek LED terkawal IoT ini:
Jadi, prosesnya adalah seperti ini. Pertama, input diberikan kepada Raspberry Pi melalui USB Mic. Sekarang, rakaman ini dihantar ke perkhidmatan suara Alexa dan setelah pengecaman suara, AVS mengirim data ke IFTTT dan ia mencetuskan keadaan di IFTTT. Menurut resepinya, IFTTT akan menghantar arahan kepada Adafruit IO yang merupakan broker MQTT untuk melakukan sesuatu tindakan. Kemudian ESP 12e akan menerima data dari Adafruit IO melalui protokol MQTT dan LED akan hidup / mati mengikut arahan.
Di sini kami telah menggunakan Webcam USB untuk Mikrofon. Kami telah menggunakan perkhidmatan Alexa Voice untuk menyalakan mentol, tetapi hanya boleh mengendalikan peralatan yang disambungkan secara tempatan.
Oleh kerana kami menganggap bahawa anda sudah memasang Raspberry Pi dengan perkhidmatan Alexa Voice, maka kami masih tinggal di bawah dua langkah, yang akan kami jelaskan satu persatu:
- Menyiapkan akaun Adafruit untuk komunikasi
- Pautkan Alexa ke Adafruit IO menggunakan IFTTT
- Muat naik kod dalam ESP12
Menyiapkan akaun Adafruit untuk komunikasi
Pertama, kami akan membuat makanan di Adafruit IO. Feed menyimpan data yang dihantar oleh IFTTT. Untuk membuat suapan, ikuti langkah berikut:
Langkah 1: - Log masuk ke Adafruit IO dengan bukti kelayakan anda atau Daftar jika anda tidak mempunyai akaun.
Langkah 2: - Klik pada akaun Saya -> Papan Pemuka
Langkah 3: - Klik pada Tindakan dan Buat Papan Pemuka Baru .
Langkah 4: - Beri nama dan keterangan pada suapan anda dan klik Buat .
Langkah 5: - Klik pada butang Kunci dan catat Kekunci AIO, kami akan menggunakan kunci ini dalam kod kami.
Langkah 6: - Klik pada butang '+' untuk membuat blok baru dan klik pada butang Toggle.
Langkah 7: - Sekarang, Masukkan Nama Suapan dan klik Buat . Kemudian Pilih suapan dan klik pada Langkah seterusnya.
Langkah 8: - Dalam tetapan blok, Tulis '1' di medan teks Butang ON dan '0' di medan Teks MATI Butang .
Langkah 9: - Suapan anda berjaya dibuat.
Pautkan Alexa ke Adafruit IO menggunakan IFTTT
Ikuti langkah-langkah ini untuk membuat Applet / Resipi dalam IFTTT:
Langkah 1: - Log masuk ke IFTTT dengan bukti kelayakan anda atau Daftar sekiranya anda tidak mempunyai akaun.
Langkah 2: - Pada Applet Saya, Klik pada Applet Baru
Langkah 3: - Klik + ini
Langkah 4: - Cari Amazon Alexa dan klik padanya, log masuk dengan maklumat akaun pembangun amazon anda.
Langkah 5: - Pilih pencetus, Katakan frasa tertentu
Langkah 6: - Sediakan " nyalakan lampu" sebagai frasa, klik Buat Pencetus.
Langkah 7: - Klik + itu
Langkah 8: - Cari Adafruit dan klik padanya.
Langkah 9: - Masuk ke Akaun Adafruit menggunakan bukti kelayakan anda. Klik Hantar data ke Adafruit .
Pilih nama suapan yang baru anda buat di Adafruit IO. Sekarang, berikan data '1' untuk disimpan, ini menunjukkan LED akan menyala. Klik Buat Tindakan .
Langkah 10: - Ikuti langkah yang sama untuk membuat applet untuk mematikan LED . Cukup masukkan '0' di medan Data untuk menyimpan. Semua langkah tetap sama.
Anda telah menyelesaikan separuh daripada kerja anda. Sekarang, sudah tiba masanya untuk memprogram ESP-12E anda.
Penjelasan Kod ESP12
Kami akan memprogramkan ESP12 dengan Arduino IDE. Kod lengkap diberikan pada akhir Tutorial ini.
Pertama, kita memerlukan perpustakaan Adafruit Mqtt yang boleh dimuat turun dari pautan ini. Buka Arduino IDE sahaja. Pergi ke contoh -> perpustakaan adqruit mqtt -> mqtt_esp8266
Kami akan mengedit kod ini mengikut kunci AIO dan kelayakan Wi-Fi kami.
Pertama, kami memasukkan semua perpustakaan untuk ESP8266WIFI dan Adafruit MQTT .
#sertakan
Kami menentukan SSID dan Kata Laluan untuk Wi-Fi anda, dari mana anda ingin menyambungkan ESP-12e anda.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
Bahagian ini menentukan pelayan Adafruit dan port pelayan yang masing-masing ditetapkan sebagai " io.adafruit.com " dan " 1883 ".
#tentukan AIO_SERVER "io.adafruit.com" #tentukan AIO_SERVERPORT 1883
Ganti medan di bawah dengan nama pengguna dan kunci AIO yang telah anda salin dari laman Adafruit semasa membuat Suapan.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Kemudian buat kelas WiFiClient ESP8266 untuk menyambung ke pelayan MQTT.
Pelanggan WiFiClient;
Sediakan kelas klien MQTT dengan memasukkan pelanggan WiFi dan pelayan MQTT dan maklumat log masuk.
Adafruit_MQTT_Mqtt pelanggan (& pelanggan, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Sediakan suapan yang dipanggil 'ringan' untuk melanggan perubahan.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ suapan / cahaya");
Dalam fungsi persediaan, kami menyatakan PIN ESP-12e di mana anda ingin mendapatkan output. Saya menggunakan pin D0 sebagai output. Kemudian, kami menyambungkan ESP-12e ke pusat akses Wi-fi.
persediaan tidak sah () { Serial.begin (115200); kelewatan (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT demo")); // Sambungkan ke titik akses WiFi. Bersiri.println (); Bersiri.println (); Serial.print ("Menyambung ke"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); sementara (WiFi.status ()! = WL_CONNECTED) { …. …. …
Sediakan langganan MQTT untuk suapan ringan.
mqtt.subscribe (& ringan); }
Dalam fungsi gelung , kami akan memastikan bahawa sambungan ke pelayan MQTT masih hidup menggunakan MQTT_connect (); fungsi.
gelung kosong () { MQTT_connect ();
Sekarang, kami melanggan suapan 'ringan' kami dan mendapatkan rentetan dari adafruit IO dan menukar rentetan ini menjadi nombor menggunakan atoi (); berfungsi dan tulis nombor ini ke PIND0 menggunakan digitalWrite (); fungsi.
Adafruit_MQTT_Langgan * langganan; while ((langganan = mqtt.readSubscription (5000))) { if (langganan == & cahaya) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, angka); }
Bekerja:
Sambungkan ESP-12E anda dengan komputer riba dan muat naik kod di bawah (jangan lupa untuk mengedit kelayakan anda dalam kod).
Sambungkan LED atau geganti ke pin D0. Sekarang, pastikan perkhidmatan Alexa anda berjalan di RPi anda.
Untuk memberi arahan apa pun, anda perlu membangunkan perkhidmatan Alexa dengan memanggil "Alexa" setiap kali anda ingin menghantar arahan. Anda akan mendengar bunyi bip. Sebaik sahaja anda mendengar bunyi bip, ucapkan “ Alexa Trigger Hidupkan Lampu. "Anda dapat melihat cahaya menyala dalam beberapa saat. Dan jika anda mengatakan " Alexa Trigger Matikan Lampu ", lampu harus dimatikan.
Itu sahaja…. Anda boleh menambah lebih banyak peralatan dalam kod di atas dengan menambahkan pin GPIO ESP-12E dan dengan membuat Applet yang berbeza dengan frasa yang berbeza dalam IFTTT.
Lihat kod lengkap dan Video Demonstrasi di bawah. Lihat juga semua Projek Automasi Rumah kami di sini