- Persyaratan Hardware
- Alur Proyek untuk LED Kontrol Suara Alexa
- Menyiapkan akun Adafruit untuk komunikasi
- Tautkan Alexa ke Adafruit IO menggunakan IFTTT
- Penjelasan Kode ESP12
- Kerja:
Dalam tutorial sebelumnya kita telah melihat Bagaimana kita bisa membangun Amazon Echo Speaker dan kemudian bagaimana kita bisa mengontrol Raspberry Pi GPIO menggunakan Alexa Voice. Sekarang kami membuat proyek IoT untuk mengontrol peralatan rumah tangga dari mana saja di dunia menggunakan AlexaPi dan ESP-12E (atau papan ESP).
Persyaratan Hardware
- Raspberry Pi dengan AVS terpasang di dalamnya
- Mikrofon USB 2.0 / Webcam
- ESP-12E
- Modul relai
- Bohlam LED / AC
Anda harus menyiapkan Raspberry Pi dengan layanan suara Alexa yang diinstal di dalamnya dengan Akun Pengembang Amazon yang dikonfigurasi dengan benar. Jadi ikuti tutorial di bawah ini untuk menyiapkan layanan Alexa.
- Bangun Amazon Echo Anda sendiri menggunakan Raspberry Pi
Alur Proyek untuk LED Kontrol Suara Alexa
Kami akan mengikuti diagram alur ini untuk proyek LED yang dikendalikan IoT ini:
Jadi, prosesnya kira-kira seperti ini. Pertama, input diberikan ke Raspberry Pi melalui Mic USB. Sekarang rekaman ini dikirim ke layanan suara Alexa dan setelah pengenalan suara, AVS mengirim datanya ke IFTTT dan memicu kondisi di IFTTT. Sesuai resepnya, IFTTT akan mengirimkan perintah ke Adafruit IO yang merupakan broker MQTT untuk melakukan suatu tindakan. Kemudian ESP 12e akan menerima data dari Adafruit IO melalui protokol MQTT dan LED akan ON / OFF sesuai perintah.
Di sini kami telah menggunakan WebCam USB untuk Mikrofon. Kami telah menggunakan layanan Alexa Voice untuk menyalakan bohlam, tetapi layanan ini hanya dapat menangani peralatan yang terhubung secara lokal.
Karena kami berasumsi bahwa Anda sudah menginstal Raspberry Pi dengan layanan Alexa Voice, jadi kami tetap dengan dua langkah di bawah ini, yang akan kami jelaskan satu per satu:
- Menyiapkan akun Adafruit untuk komunikasi
- Tautkan Alexa ke Adafruit IO menggunakan IFTTT
- Unggah kode di ESP12
Menyiapkan akun Adafruit untuk komunikasi
Pertama kita akan membuat feed di Adafruit IO. Umpan menyimpan data yang dikirim oleh IFTTT. Untuk membuat feed ikuti langkah-langkah berikut:
Langkah 1: - Masuk ke Adafruit IO dengan kredensial Anda atau Daftar jika Anda tidak memiliki akun.
Langkah 2: - Klik Akun Saya -> Dasbor
Langkah 3: - Klik Tindakan dan Buat Dasbor Baru .
Langkah 4: - Beri nama dan deskripsi pada feed Anda dan klik Buat .
Langkah 5: - Klik pada tombol Key dan catat AIO Keys, kita akan menggunakan kunci ini dalam kode kita.
Langkah 6: - Klik tombol '+' untuk membuat blok baru dan klik tombol Toggle.
Langkah 7: - Sekarang, Masukkan Nama Feed dan klik Buat . Kemudian Pilih feed dan klik Langkah berikutnya.
Langkah 8: - Dalam pengaturan blok, Tulis '1' di kolom teks Tombol ON dan '0' di kolom Teks Tombol OFF .
Langkah 9: - Umpan Anda berhasil dibuat.
Tautkan Alexa ke Adafruit IO menggunakan IFTTT
Ikuti langkah-langkah berikut untuk membuat Applet / Resep di IFTTT:
Langkah 1: - Masuk ke IFTTT dengan kredensial Anda atau Daftar jika Anda tidak memiliki akun di dalamnya.
Langkah 2: - Di My Applet, Klik New Applet
Langkah 3: - Klik + ini
Langkah 4: - Cari Amazon Alexa dan klik di atasnya, masuk dengan detail akun pengembang amazon Anda.
Langkah 5: - Pilih pemicu, Ucapkan frasa tertentu
Langkah 6: - Berikan " nyalakan lampu" sebagai frasa, klik Buat Pemicu.
Langkah 7: - Klik + itu
Langkah 8: - Cari Adafruit dan klik di atasnya.
Langkah 9: - Masuk ke Akun Adafruit menggunakan kredensial Anda. Klik Kirim data ke Adafruit .
Pilih nama feed yang baru saja Anda buat di Adafruit IO. Sekarang, berikan '1' pada data untuk disimpan, ini berarti LED akan ON. Klik Buat Tindakan .
Langkah 10: - Ikuti langkah yang sama untuk membuat applet mematikan LED . Cukup letakkan '0' di bidang Data untuk menyimpan. Semua langkah tetap sama.
Anda telah melakukan setengah dari pekerjaan Anda. Sekarang, saatnya memprogram ESP-12E Anda.
Penjelasan Kode ESP12
Kami akan memprogram ESP12 dengan Arduino IDE. Kode lengkap diberikan di akhir Tutorial ini.
Pertama, kami membutuhkan perpustakaan Adafruit Mqtt yang dapat diunduh dari tautan ini. Buka saja Arduino IDE. Buka contoh -> pustaka mqtt adafruit -> mqtt_esp8266
Kami akan mengedit kode ini sesuai dengan kunci AIO dan kredensial Wi-Fi kami.
Pertama, kami menyertakan semua perpustakaan untuk ESP8266WIFI dan Adafruit MQTT .
#include
Kami menentukan SSID dan Kata Sandi untuk Wi-Fi Anda, dari mana Anda ingin menghubungkan ESP-12e Anda.
# Tentukan WLAN_SSID "xxxxxxxx" # Tentukan WLAN_PASS "xxxxxxxxxxx"
Bagian ini mendefinisikan server Adafruit dan port server yang ditetapkan masing-masing sebagai " io.adafruit.com " dan " 1883 ".
# Tentukan AIO_SERVER "io.adafruit.com" # Tentukan AIO_SERVERPORT 1883
Ganti bidang di bawah ini dengan nama pengguna dan kunci AIO Anda yang telah Anda salin dari situs Adafruit saat membuat Umpan.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
Kemudian buat kelas WiFiClient ESP8266 untuk menyambung ke server MQTT.
Klien WiFiClient;
Siapkan kelas klien MQTT dengan meneruskan klien WiFi dan server MQTT dan detail login.
Adafruit_MQTT_Client mqtt (& klien, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Siapkan umpan yang disebut 'ringan' untuk berlangganan perubahan.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
Dalam fungsi pengaturan, kami menyatakan PIN ESP-12e yang Anda inginkan untuk mendapatkan output. Saya menggunakan pin D0 sebagai output. Kemudian, kami menghubungkan ESP-12e ke titik akses Wi-fi.
void setup () { Serial.begin (115200); penundaan (10); pinMode (D0, OUTPUT); Serial.println (F ("Adafruit MQTT demo")); // Hubungkan ke titik akses WiFi. Serial.println (); Serial.println (); Serial.print ("Menghubungkan ke"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); sementara (WiFi.status ()! = WL_CONNECTED) { …. …. …
Siapkan langganan MQTT untuk umpan ringan.
mqtt.subscribe (& light); }
Dalam fungsi loop , kami akan memastikan bahwa koneksi ke server MQTT hidup menggunakan MQTT_connect (); fungsi.
void loop () { MQTT_connect ();
Sekarang, kita berlangganan feed 'light' kita dan mendapatkan string dari adafruit IO dan mengonversi string ini menjadi nomor menggunakan atoi (); berfungsi dan menulis nomor ini ke PIND0 menggunakan digitalWrite (); fungsi.
Berlangganan Adafruit_MQTT_Subscribe *; while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
Kerja:
Hubungkan ESP-12E Anda dengan laptop dan unggah kode di bawah ini (jangan lupa untuk mengedit kredensial Anda di kode).
Hubungkan LED atau relai ke pin D0. Sekarang, pastikan layanan Alexa Anda berjalan di RPi Anda.
Untuk memberikan perintah apa pun, Anda perlu mengaktifkan layanan Alexa dengan memanggil "Alexa" setiap kali Anda ingin mengirim perintah. Anda akan mendengar suara bip. Setelah Anda mendengar bunyi bip, ucapkan “ Alexa Trigger Turn on the Light. Anda dapat melihat lampu menyala dalam beberapa saat. Dan kemudian jika Anda mengatakan " Alexa Trigger Matikan Lampu ", lampu harus MATI.
Itu dia…. Anda dapat menambahkan lebih banyak peralatan dalam kode di atas dengan menambahkan pin GPIO ESP-12E dan dengan membuat Applet berbeda dengan frasa berbeda di IFTTT.
Lihat kode lengkap dan Video Demonstrasi di bawah ini. Juga periksa semua Proyek Otomasi Rumah kami di sini