Membangun Jembatan IR Terintegrasi SmartThings dengan Arduino UNO dan ThingShield
Komponen dan Perlengkapan
| Komponen | Jumlah |
| Arduino UNO | 1 |
| SmartThings Shield untuk Arduino | 1 |
| LED Mengemitsir Infra Merah | 1 |
| Dioda Penerima Infra Merah | 1 |
| Resistor 100 Ohm (opsional) | 1 |
Tentang Proyek
Pendahuluan
Remote TV sederhana mampu melakukan lebih dari sekadar mengganti saluran ketika terhubung ke cloud SmartThings. Dengan jumlah komponen yang sedikit dan manfaat segera, proyek ini adalah cara yang baik untuk menjelajahi platform.
Latar Belakang Arduino dan ThingShield
SmartThings ThingShield memudahkan pembuatan prototipe SmartThings menggunakan Arduino. Shield ini terhubung langsung ke UNO melalui protokol Zigbee ke hub SmartThings. Tombol pada shield memungkinkan pemilihan antara pin 0,1 atau 2,3 untuk berkomunikasi dengan Arduino. ThingShield telah menyediakan penggunaan pin 6.
Untuk informasi lebih lanjut tentang memulai dengan Arduino: https://arduino.cc/en/Guide/Introduction
Langkah 1: Yang Anda Butuhkan
- (x1) SmartThings Arduino ThingShield
- (x1) Arduino Uno
- (x1) Penerima IR
- (x1) LED Mengemitsir IR
- (x1) Resistor 100 Ohm (opsional)
Langkah 2: Unduh Pustaka IR
Proyek ini bergantung pada pustaka Arduino yang luar biasa yang dikembangkan oleh Ken Shirriff. https://github.com/shirriff/Arduino-IRremote
Instal pustaka Arduino dengan cara biasa.
https://arduino.cc/en/Guide/Libraries
Setelah terinstal, kita perlu memodifikasi IRRemoteInt.h untuk menggunakan timer pada pin 9. Dalam contoh ini, kita menggunakan pin 3 untuk komunikasi dengan ThingShield.
Langkah 3: Sketsa Arduino
Selanjutnya, unggah sketsa ke papan Arduino Anda (lihat bagian kode).
Langkah 4: Pembuatan
Pembuatannya sederhana dan langsung. Pertama, pasang ThingShield di atas Arduino. Meskipun hanya Arduino yang ditampilkan dalam diagram di bawah ini, pemasangan pin sama dengan shield yang dipasang.
Untuk Penerima IR, sambungkan pin yang sesuai ke ground dan 5V. Kemudian sambungkan pin data ke pin Arduino 11. Sambungkan LED mengemitsir IR ke pin 9 dan ground. Resistor 100 ohm opsional dalam desain ini karena LED kemungkinan dapat menangani arus maks dari Arduino saat berkedip cepat untuk mengirim sinyal. Diletakkan terus menerus, arus yang sama kemungkinan besar akan membakar LED.
Langkah 5: Membuat Tipe Perangkat SmartThings Khusus
Di IDE SmartThings, kita selanjutnya membuat tipe perangkat baru untuk ThingShield kami.
Pergi ke bagian “My Device Types”, klik “New SmartDevice” di kanan.
Membuat SmartDevice baru memerlukan dua langkah. Pertama, berikan tipe perangkat baru nama di atas “Ir Bridge.” Perhatikan kami akan merujuk nama SmartDevice kita dalam kode SmartApp nanti.
Kita perlu mendefinisikan Attributes (variabel) dan Commands (fungsi) dari perangkat. Untuk tutorial ini, kita akan membuat atribut dan perintah untuk dua tombol yang dapat diprogram dan satu tombol catat. Tambahkan setiap atribut dan perintah yang ditampilkan. Pilih “Create” untuk melanjutkan ke pengkodean perangkat.
Selanjutnya, salin definisi perangkat ke jendela kode di IDE (lihat bagian kode). Klik tombol “Save” di atas, lalu klik “Publish” untuk membuat perangkat tersedia bagi Anda.
Langkah 6: Memperbarui ThingShield ke Tipe Perangkat Baru Anda
Pastikan untuk menambahkan ThingShield Anda ke hub SmartThings jika belum diatur. Untuk memasangkan perangkat, pasang ThingShield ke Arduino Anda dan nyalakan. Tekan tombol “Switch” pada shield selama 6 detik. Dengan aplikasi smartphone SmartThings, pilih tombol Add. Tekan tombol fisik “switch” sekali lagi dan Anda seharusnya melihat hub mengidentifikasi ThingShield.
Kembali, di IDE, navigasi ke Arduino ThingShield Anda dengan klik “devices” di layar utama. Pilih perangkat Anda dari daftar dan klik tombol “Edit” di bagian bawah halaman. Dari menu dropdown “Type”, pilih tipe SmartDevice baru yang Anda buat. Berguna untuk memberi perangkat nama label yang bermakna ketika Anda perlu memilihnya nanti. Tekan update untuk mengatur perangkat ke tipe perangkat baru Anda.
Catatan, ketika mempublikasikan pembaruan ke tipe perangkat khusus Anda di masa depan, Anda akan ingin kembali untuk memastikan bahwa perangkat fisik Anda tetap terkait dengan tipe perangkat yang benar setelah pembaruan diterbitkan.
Langkah 7: Menulis SmartThings App
Kita memiliki satu potongan kode lagi dalam proyek – SmartApp itu sendiri. Navigasi ke “My SmartApps” dan mulai “New SmartApp” dengan klik tombol di kanan. Beri nama, deskripsi dan kategori (“My apps”). Klik “Create” untuk melanjutkan pengkodean aplikasi.
Salin kode smartApp (lihat bagian kode). Pilih “Save” lalu klik “Publish” untuk membuat SmartApp tersedia pada aplikasi iOS atau Android SmartThings Anda (segera hadir).
Perhatikan bahwa kita merujuk tipe perangkat SmartDevice berdasarkan nama sebagai “IrBridge” tanpa spasi asli yang awalnya kita gunakan dalam nama “Ir Bridge”:
input "irDevice", "device.IrBridge"
Baris ini memungkinkan kami untuk menampilkan hanya perangkat tipe “Ir Bridge” sebagai opsi untuk dipilih dalam SmartApp. CamelCasing yang digunakan sangat spesifik: saat merujuk tipe perangkat dalam smart apps, spasi dihapus dari nama. Karakter pertama dan karakter yang asli mengikuti spasi dihurufkan kapital. Semua yang lain huruf kecil, terlekap dari kapitalisasi asli.
Langkah 8: Aktifkan SmartApp
Dalam aplikasi smartphone SmartThings, asosiasikan SmartApp baru dengan perangkat IR baru kita dan pilih saklar yang ingin Anda kontrol. Kemudian klik “install.”
Untuk memprogram setiap tombol dalam aplikasi, pergi ke detail tile dengan klik gear di sudut tile. Pilih tombol catat besar – akan berubah merah untuk menunjukkan Anda berada dalam mode catat. Kemudian klik tile (Play/Pause atau B) yang ingin Anda kontrol – akan berubah kuning. Arahkan remote Anda ke ThingShield dan tekan tombol yang ingin Anda pelajari. ThingShield sekarang akan mengirim kode tersebut ke cloud SmartThings dan mengaitkannya dengan tombol yang Anda pilih dalam SmartApp. Tombol yang baru diprogram akan berubah hijau dan tombol catat akan kembali putih.
Kesimpulannya, setiap kali Anda menekan tombol pada remote control Anda, Anda akan mengalihkan saklar yang Anda asosiasikan dengan tombol dalam SmartApp.
Kode
- Arduino sketch
- Device definition
- smartApp code
Arduino sketchC/C++
// Kode Arduino untuk Jembatan IR SmartThings
// Kode lengkap tersedia di bagian asli
Device definitionGroovy
// Definisi perangkat Groovy untuk IrBridge
smartApp codeGroovy
// Kode SmartApp Groovy untuk kontrol IR