Tentang proyek ini
(Dari http://www.instructables.com/id/Call-my-Arduino/)
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 telepon, yang dihosting di cloud. Dalam hal ini, Twilio meminta Arduino untuk file voice.xml baru setiap kali seseorang memanggil nomor telepon Arduino yang telah ditentukan. Isi tanggapan dibacakan ke penelepon oleh Alice, suara mesin teks ke ucapan Twilio.
Yaler.net memungkinkan akses Web ke perangkat tertanam di belakang firewall, NAT, atau router jaringan seluler. Di sini memungkinkan Twilio untuk mengakses file voice.xml di Arduino, yang terletak di jaringan lokal dan karena itu tidak memiliki alamat IP publiknya sendiri (pengungkapan:Saya adalah pendiri Yaler).
Demo ini menggunakan sensor suhu, tetapi sensor lain juga bisa. Contoh produk dunia nyata adalah detektor asap Canary (sekarang Birdi) yang memungkinkan pemilik rumah yang bersangkutan menghubunginya untuk menanyakan apakah baterai masih baik-baik saja.
Pada tingkat yang lebih abstrak, Instructable ini mencoba menunjukkan bagaimana, dalam Internet of Things yang terbuka, layanan cloud modular dapat digabungkan secara bebas untuk membangun solusi baru, sederhana, dan andal. HTTP dan Webhook FTW! Tapi mari kita mulai...
(Berikut adalah video yang menjelaskan proyek ini dari IoTLive, bagian dari IoTDay 2014)
Bahan
- Arduino Uno (mis. https://www.adafruit.com/products/50)
- Kabel USB Standar A-B (mis. http://www.adafruit.com/products/62)
- Arduino Ethernet Shield (mis. http://www.adafruit.com/products/201)
- Kabel Ethernet (mis. http://www.adafruit.com/products/995)
- Sensor suhu analog (mis. https://www.adafruit.com/products/165)
- Bundel kawat papan tempat memotong roti (mis. http://www.adafruit.com/products/153)
- Papan tempat memotong roti (mis. http://www.adafruit.com/products/64)
http://www.youtube.com/watch?v=4IPwkW38oIw Langkah 1:Menghubungkan sensor
Tambahkan pelindung Ethernet ke Arduino dan hubungkan sensor suhu seperti yang ditunjukkan. Untuk detail tentang penginderaan suhu dengan sensor TMP36, lihat mis. http://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor
Jika Anda ingin menambahkan sensor (digital) lainnya, ingatlah bahwa beberapa pin digunakan oleh pelindung Ethernet.
Langkah 2:Memasang pustaka Yaler
Ikuti tiga langkah untuk Memasang perpustakaan di https://yaler.net/arduino Jika Anda belum melakukannya, daftar di https://yaler.net/ untuk mendapatkan akun uji coba gratis dan tulis domain relai (kunci rahasia tidak diperlukan).
Langkah 3:Memprogram Arduino
Unduh kode sumber Arduino TwilioYalerWebService
https://bitbucket.org/tamberg/iotworkshop/raw/default/Arduino/TwilioYalerWebService/TwilioYalerWebService.ino?at=default
Buka kode Arduino
Program ini mengimplementasikan server Web yang sangat sederhana yang mendengarkan permintaan HTTP yang masuk. Setelah permintaan masuk, program merespons dengan dokumen XML. Server tidak peduli apakah jalur URL / 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 (semoga) alamat unik adalah dengan mencari MAC komputer Anda dan kemudian menambahkan 1 ke digit terakhir.
Masukkan domain relai Anda
Alih-alih membuat server lokal dengan server EthernetServer(80); kami membuat yang dapat diakses melalui relai Yaler try.yaler.net , pada baris berikut:
Server ServerYalerEthernet("try.yaler.net", 80, "RELAY_DOMAIN");
Ganti RELAY_DOMAIN dengan domain relai Anda, mis. untuk gsiot-ffmq-ttd5 ketik:
Server ServerYalerEthernet("try.yaler.net", 80, "gsiot-ffmq-ttd5");
Perhatikan bahwa Anda juga dapat menggunakan server lokal, jika Anda tahu cara mengonfigurasi penerusan port untuk membuka lubang untuk permintaan HTTP yang masuk di firewall lokal Anda. Yang penting Twilio bisa mengakses Arduino dari cloud.
Simpan perubahan dan unggah
Simpan semua perubahan dan unggah program ke Arduino Anda. Tetap sambungkan kabel USB ke komputer pengembangan Anda untuk saat ini, dan buka konsol serial untuk melihat keluaran debug.
Langkah 4:Mengakses Arduino
Akses Arduino Anda dari browser apa pun
Pustaka Yaler membuat Arduino Anda (dan juga dokumen XML) dapat diakses dari Internet publik di http://RELAY_DOMAIN.try.yaler.net/, misalnya untuk domain relai gsiot-ffmq-ttd5 URL-nya adalah http://gsiot-ffmq-ttd5.try.yaler.net/ Atau, agar Twilio terlihat lebih bagus: http://gsiot-ffmq-ttd5.try.yaler.net/voice.xml
Periksa dokumen XML
Isi dokumen XML memberitahu Twilio apa yang harus menjawab panggilan telepon masuk. Anda bahkan dapat memilih suara text-to-speech. Ini dia. Format XML Twilio disebut TwiML. Lihat https://www.twilio.com/docs/api/twiml untuk detailnya. Perhatikan bahwa teks balasan berisi suhu aktual. Panaskan sensor Anda dan segarkan dokumen di browser Web Anda dengan F5 untuk melihatnya berubah.
Pemecahan Masalah
Jika Anda mendapatkan halaman kosong atau kesalahan, pastikan kabel Ethernet Anda dicolokkan dan periksa https://yaler.net/browser untuk debugging khusus browser.
Langkah 5:Menyiapkan 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 dikenakan biaya (kecil). Masuk, navigasikan ke Angka dan pilih Nomor Twilio sub menu, untuk melihat Kelola Nomor tab.
Klik tombol Beli nomor tombol, pilih Suara kotak centang dan klik Cari , lalu pilih nomor dan klik Beli untuk membelinya.
Konfigurasikan URL Webhook voice.xml
Di Kelola Nomor tab, klik nomor yang baru saja Anda beli. Setel URL Tanggapan ke http://RELAY_DOMAIN.try.yaler.net/voice.xml dan pastikan bahwa POST dipilih, mis. untuk domain relai Yaler gsiot-ffmq-ttd5 setel URL Respons ke http://gsiot-ffmq-ttd5.try.yaler.net/voice.xml
Langkah 6:Melakukan panggilan percobaan
Setelah Arduino disiapkan, Anda dapat meneleponnya dari ponsel mana pun - bahkan ponsel kakek Anda.
Itu saja, terima kasih telah membaca. @tamberg
Kode
Bitbucket
https://bitbucket.org/tamberg/iotworkshop/raw/default/Arduino/TwilioYalerWebService/TwilioYalerWebService.ino?at=default Skema