Cara mengaktifkan panggilan telepon ke Arduino Anda, menggunakan Twilio dan Yaler.net
Twilio adalah layanan web yang mengubah segalanya menjadi telepon. Ini adalah REST API untuk teleponi, dihosting di cloud. Dalam hal ini, Twilio meminta Arduino untuk file voice.xml baru setiap kali seseorang memanggil nomor telepon yang telah ditentukan Arduino. Konten responsnya dibacakan kepada pemberi panggilan oleh Alice, sebuah suara dari mesin text-to-speech Twilio.
Yaler.net memungkinkan akses web ke perangkat tertanam di belakang firewall, NAT atau router jaringan seluler. Di sini ini memungkinkan Twilio untuk mengakses file voice.xml pada Arduino, yang terletak di jaringan lokal dan oleh karena itu tidak memiliki alamat IP publiknya sendiri (pengungkapan: Saya adalah pendiri Yaler).
Demo ini menggunakan sensor suhu, tetapi sensor lainnya juga akan berfungsi. Contoh produk dunia nyata adalah detektor asap Canary (sekarang Birdi) yang memungkinkan pemilik rumah yang khawatir memanggilnya untuk bertanya apakah baterai masih baik.
Pada tingkat yang lebih abstrak, Instructable ini mencoba menunjukkan bagaimana, dalam Internet of Things yang terbuka, layanan cloud modular dapat digabungkan bebas untuk membangun solusi baru, sederhana dan andal. HTTP dan Webhooks FTW! Tapi mari kita mulai...
(Ini adalah video yang menjelaskan proyek ini dari IoTLive, bagian dari IoTDay 2014)
Bahan
- Arduino Uno (contoh: https://www.adafruit.com/products/50)
- Kabel USB Standard A-B (contoh: https://www.adafruit.com/products/62)
Pasang Ethernet shield pada Arduino dan hubungkan sensor suhu seperti yang ditunjukkan. Untuk detail tentang sensing suhu dengan sensor TMP36, lihat contoh: https://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor
Jika Anda ingin menambahkan sensor (digital) lainnya, ingat bahwa beberapa pin digunakan oleh Ethernet shield.
Langkah 2: Penginstalan Library Yaler
Ikuti tiga langkah untuk Instalasi library di https://yaler.net/arduino Jika Anda belum melakukannya, daftarkan diri Anda di https://yaler.net/ untuk akun uji coba gratis dan catat domain relay (kunci rahasia tidak diperlukan).
Program mengimplementasikan web server yang sangat sederhana yang mendengarkan permintaan HTTP yang masuk. Setelah permintaan masuk, program merespons dengan dokumen XML. Server tidak peduli apakah jalur URL adalah / atau /voice.xml.
Ubah alamat MAC
Pastikan alamat MAC dalam kode Arduino unik. Ini sangat penting jika ada beberapa Arduino di jaringan lokal yang sama. Cara sederhana untuk mendapatkan alamat yang (semoga) unik adalah dengan mencari MAC komputer Anda lalu menambahkan 1 ke digit terakhir.
Masukkan domain relay Anda
Alih-alih membuat server lokal dengan EthernetServer server(80); kita membuat satu yang dapat diakses melalui relay Yaler try.yaler.net, pada baris berikut:
Catat bahwa Anda juga dapat menggunakan server lokal, jika Anda tahu cara mengonfigurasi port forwarding untuk membuka lubang untuk permintaan HTTP yang masuk di firewall lokal Anda. Yang penting adalah Twilio dapat mengakses Arduino dari cloud.
Simpan perubahan dan unggah
Simpan semua perubahan dan unggah program ke Arduino Anda. Biarkan kabel USB terhubung ke komputer pengembangan Anda untuk saat ini, dan buka konsol serial untuk melihat output debug.
Langkah 4: Mengakses Arduino
Akses Arduino Anda dari browser mana pun
Library Yaler membuat Arduino Anda (dan dengan itu dokumen XML) dapat diakses dari internet publik di https://RELAY_DOMAIN.try.yaler.net/, misalnya untuk domain relay gsiot-ffmq-ttd5 URL-nya adalah https://gsiot-ffmq-ttd5.try.yaler.net/ Atau, untuk membuatnya terlihat lebih bagus untuk Twilio: https://gsiot-ffmq-ttd5.try.yaler.net/voice.xml
Periksa dokumen XML
Isi dokumen XML memberi tahu Twilio apa yang harus dibalas untuk panggilan telepon yang masuk. Anda bahkan dapat memilih suara text-to-speech. Di sini itu Alice. Format XML Twilio disebut TwiML. Lihat https://www.twilio.com/docs/api/twiml untuk detail. Catat bahwa teks balasan berisi suhu aktual. Panaskan sensor Anda dan segarkan dokumen di browser web Anda dengan F5 untuk melihatnya berubah.
Troubleshooting
Jika Anda mendapatkan halaman kosong atau kesalahan, pastikan kabel Ethernet Anda terhubung dan periksa https://yaler.net/browser untuk debug khusus browser.
Langkah 5: Pengaturan Nomor Twilio
Daftar
Pertama, untuk mendapatkan akun Twilio, Anda harus mendaftar di https://www.twilio.com/
Beli nomor telepon
Untuk menerima panggilan Anda memerlukan nomor, yang datang dengan biaya (kecil). Masuk, navigasikan ke Numbers dan pilih sub menu Twilio Numbers, untuk melihat tab Manage Numbers.
Klik tombol Buy a number, centang kotak Voice dan klik Search, lalu pilih nomor dan klik Buy untuk membelinya.
Konfigurasikan URL Webhook voice.xml
Pada tab Manage Numbers, klik nomor yang baru saja Anda beli. Tetapkan Response URL ke https://RELAY_DOMAIN.try.yaler.net/voice.xml dan pastikan POST dipilih, misalnya untuk domain relay Yaler gsiot-ffmq-ttd5 tetapkan Response URL ke https://gsiot-ffmq-ttd5.try.yaler.net/voice.xml
Langkah 6: Melakukan Panggilan Uji Coba
Setelah Arduino disiapkan, Anda dapat memanggilnya dari telepon mana pun - bahkan dari kakek Anda.