Jika anda baru ke IFTTT, saya sebelum ini meliputi asas -asas dalam artikel saya mengenai menghubungkan mentol LIFX ke IoT menggunakan IFTTT. Artikel ini menganggap anda tahu semua tentang pencetus dan tindakan, dan kini sudah bersedia untuk membawanya ke peringkat seterusnya!
Jika anda berminat untuk terus ke dalam kod dan mencubanya, anda boleh menemuinya di sini di GitHub.
Kami akan mempunyai pelayan Node.js tempatan yang berjalan dengan Arduino yang disambungkan melalui USB. Menekan butang pada set Arduino akan mencetuskan permintaan HTTP ke IFTTT untuk menceritakannya untuk bertukar -tukar cahaya LIFX kami. Pelayan Node.js kami juga akan meluahkan larian untuk mengendalikan sebarang permintaan HTTP yang masuk. Setiap kali IFTTT melihat sebutan baru kami di Twitter, ia akan membuat permintaan pos ke pelayan kami untuk mencetuskan LED Arduino kami.
kami akan menyambungkan butang mudah dan RGB membawa kepada arduino.
Untuk memulakan, kita perlu pergi ke saluran pembuat di IFTTT dan klik "Sambung". Sebaik sahaja ia disediakan, anda akan mencapai skrin yang kelihatan seperti:
Pada skrin ini, ia menyediakan kunci rahsia anda, anda perlu mencetuskan tindakan IFTTT melalui arahan HTTP. Sudah tentu, anda memerlukan sedikit lebih banyak maklumat daripada kunci, kita memerlukan URL untuk menyiarkannya akan mencetuskan tindakan. Untuk mencari ini, klik pautan yang mengatakan "Bagaimana untuk mencetuskan peristiwa". Ia akan membuka halaman yang mengandungi URL yang anda mahu gunakan, dengan mudah dengan kunci anda yang dilampirkan kepadanya.
URL yang akan kami gunakan untuk mentol Lifx kami kelihatan seperti ini: http://maker.ifttt.com/trigger/light_switch/with/key/ {yourkeyhere}}. Bahagian URL yang mengatakan Light_Switch adalah nama acara kami. Kami menggunakan ini apabila menyusun resipi IFTTT kami. Jika anda tidak mencetuskan mentol LIFX, pilih nama yang sepadan dengan acara anda dengan lebih tepat.
Saluran pembuat kami aktif dan bersedia untuk digunakan. Kami akan mulakan dengan melihat bagaimana untuk bertukar -tukar tindakan IFTTT kami - menukarkan lightbulb lifx dan mematikan menggunakan butang dari arduino.
Membuat resipi itu sendiri agak mudah:
Dalam kod Node.js kami, kami menggunakan Johnny-Five untuk mengakses Arduino kami. Apabila papan sudah siap, kami menentukan butang kami yang disambungkan ke pin 7 dalam pembolehubah BTN:
board<span>.on('ready', function() { </span> <span>console.log('Board ready'); </span> btn <span>= new five<span>.Button</span>(7);</span>
Di dalam acara siap papan, kami menyediakan jam tangan untuk acara Down Button. Jika kita mengesan butang telah ditekan, kita log yang klik ke konsol untuk tujuan debugging (dalam keadaan di mana dawai di papan roti datang longgar atau sesuatu di sepanjang garis tersebut, dengan log konsol ini dapat menjimatkan banyak masa!). Kemudian, kami menggunakan permintaan modul NPM untuk membuat permintaan pos HTTP ke URL yang kami dapati di atas. Kami mempunyai log konsol atas kejayaannya untuk tujuan debug juga.
btn<span>.on('down', function(value) { </span> <span>console.log('Light toggle pressed.'); </span> request<span>.post({ </span> <span>url: 'http://maker.ifttt.com/trigger/light_switch/with/key/{{yourkeyhere}}' </span> <span>}, function(error<span>, response, body</span>) { </span> <span>console.log('Body response was ', body); </span> <span>console.log('Error was ', error); </span> <span>}); </span> <span>});</span>
Apabila menjalankan kod, apabila kita mengklik butang dan permintaan itu berjaya, ia harus menukar LIFX Lightbulb On and Off! Ifttt akan mengembalikan mesej yang bagus yang akan kelihatan seperti dalam konsol.log kami:
Tanggapan badan adalah tahniah! Anda telah melepaskan acara Light_Switch
Ia sangat mudah untuk disatukan tetapi mempunyai lot potensi.
Satu perkara yang perlu diperhatikan - jika anda ingin membuat panggilan ke perkhidmatan IFTTT melalui HTTPS, anda juga memerlukan pelayan HTTPS yang dijamin dengan betul. Saya mempunyai kesilapan apabila menggunakan pelayan ujian tempatan, jadi mungkin perlu mempunyai sijil yang tidak ditandatangani sendiri.
kita kini boleh mencetuskan tindakan IFTTT melalui Node.js dan Arduino kami. Mari kita lihat bagaimana untuk melakukan perkara yang bertentangan - menjadikan Arduino kita bertindak balas terhadap pencetus IFTTT. Kami akan menyediakan IFTTT untuk memberitahu pelayan Node.js kami dan Arduino setiap kali kami disebutkan di Twitter.
kami menyusun resipi dengan cara lain:
skrin dengan tetapan permintaan HTTP kami akan kelihatan seperti:
Di dalam kod nod kami, kami menyediakan LED kami supaya modul Johnny-Five kami tahu mengenainya dan menubuhkan pelayan untuk mendengar permintaan pos itu. Ia akan bertindak balas dengan menukar LED kami.
Di dalam acara siap papan, kami menentukan LED kami melekat pada pin 9, 10 dan 11 dalam pembolehubah LED seperti SO:
board<span>.on('ready', function() { </span> <span>console.log('Board ready'); </span> btn <span>= new five<span>.Button</span>(7);</span>
Kod mungkin kelihatan ganjil kerana pin dikira dari 11 daripada ke atas. Alasannya ialah saya lebih suka pendawaian saya mempunyai merah, hijau dan kemudian biru dari atas ke bawah di papan Arduino (mis. 11, kemudian 10 dan 9).
kami menetapkan warna awalnya kepada hijau:
btn<span>.on('down', function(value) { </span> <span>console.log('Light toggle pressed.'); </span> request<span>.post({ </span> <span>url: 'http://maker.ifttt.com/trigger/light_switch/with/key/{{yourkeyhere}}' </span> <span>}, function(error<span>, response, body</span>) { </span> <span>console.log('Body response was ', body); </span> <span>console.log('Error was ', error); </span> <span>}); </span> <span>});</span>
Di luar acara siap papan, kami membuat penghalaan kami untuk permintaan pos /LED menggunakan Express. Dalam fungsi panggil balik untuk laluan ini, kami mendapat data JSON yang dihantar dari IFTTT di dalam Req.body dan cari kunci warna di dalamnya. Kami memberikan warna kepada Johnny-Five's LED.Color () fungsi untuk menukar warna kami membawa kepada apa yang telah kami berikan. Kami log data JSON di konsol kami juga.
led <span>= new five<span>.Led.RGB</span>([11,10,9]);</span>
sesuatu yang perlu diingat - jika anda meletakkan ini pada pelayan yang boleh diakses secara umum yang akan tersedia untuk lebih daripada sekadar tujuan ujian, saya akan mengesyorkan bahawa data JSON yang disediakan sebenarnya adalah warna dan sah permintaan.
Response adalah {warna: '#55acee', teks: '@thatpatrickguy woo hoo'}
Kemudian, jika anda menyediakan pelbagai perkhidmatan lain di sepanjang garis yang sama tetapi dengan warna yang berbeza, anda boleh mempunyai pelbagai perubahan warna LED!
Mempunyai ekosistem IFTTT dan semua salurannya yang tersedia untuk pembuat mana -mana teknologi yang diaktifkan Internet yang boleh menghantar dan menerima permintaan HTTP adalah besar. Walaupun kami dapat melakukan perkara -perkara seperti termasuk API Twitter ke dalam aplikasi Node.js untuk masa yang lama sekarang, ini menyediakan pelbagai kemungkinan dalam API yang lebih mudah digunakan dan sangat modular. Tukar Twitter untuk sesuatu yang lain dan segala -galanya masih harus berfungsi dengan hanya beberapa pelarasan!
Jika anda membuat beberapa penciptaan saluran pembuat IFTTT yang benar -benar kemas dari panduan ini, tinggalkan nota dalam komen atau berhubung dengan saya di Twitter (@thatpatrickguy), saya ingin melihat!
node.js memainkan peranan penting dalam menghubungkan peranti IoT ke IFTTT. Ia adalah runtime JavaScript yang dibina di atas enjin V8 JavaScript Chrome, yang digunakan untuk membangunkan aplikasi pelayan dan rangkaian. Aplikasi Node.js ditulis dalam JavaScript dan boleh dijalankan dalam runtime Node.js pada pelbagai platform. Dalam konteks IoT, Node.js boleh digunakan untuk menulis kod sisi pelayan yang berinteraksi dengan peranti IoT dan menghantar arahan ke IFTTT melalui perkhidmatan pembuat web. ? Perkhidmatan IFTTT. Perkhidmatan ini amat berguna apabila anda ingin menyambungkan perkakasan atau perisian anda sendiri dengan IFTTT. Anda boleh menghantar permintaan web ke URL tertentu yang dihasilkan oleh perkhidmatan Webhooks Maker, dan permintaan ini akan mencetuskan tindakan pada perkhidmatan IFTTT. Ifttt?
Anda boleh menyambungkan pelbagai peranti IoT ke IFTTT menggunakan Node.js. Ini termasuk tetapi tidak terhad kepada peranti rumah pintar seperti lampu, termostat, dan kamera keselamatan, peranti yang boleh dipakai seperti smartwatches dan pelacak kecergasan, dan juga peranti IoT yang dibina khas. Keperluan utama ialah peranti mesti dapat menghantar data melalui Internet.
Apakah batasan menggunakan IFTTT dengan IoT dan Node.js? , ia mempunyai beberapa batasan. Sebagai contoh, versi percuma IFTTT mengehadkan bilangan applet yang boleh anda buat. Juga, tidak semua perkhidmatan boleh didapati di IFTTT, jadi anda mungkin tidak dapat menyambungkan peranti IoT anda dengan setiap perkhidmatan yang anda mahu gunakan. ke ifttt?
Atas ialah kandungan terperinci Menyambungkan IoT dan Node.js ke IFTTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!