Iklan

Rangkaian lampu Philips Hue tentu saja tidak murah (ada beberapa alternatif Philips Hue Alternatif Yang Benar-Benar SetimpalSistem Philips Hue memimpin muatan dalam hal pencahayaan cerdas, tetapi ada beberapa alternatif yang layak. Kami memilih tiga yang semuanya menawarkan rangkaian fitur dasar dan kemampuan hack yang sama. Baca lebih banyak ), tapi satu hal yang saya sangat hargai adalah yang terdokumentasi dengan baik API Apa Itu API, Dan Bagaimana API Terbuka Mengubah InternetPernahkah Anda bertanya-tanya bagaimana program di komputer Anda dan situs web yang Anda kunjungi "berbicara" satu sama lain? Baca lebih banyak untuk membuat aplikasi Hue Anda sendiri. Hari ini saya akan menunjukkan kepada Anda bagaimana mengontrol lampu Hue Anda dari Arduino - kemudian menambahkan sensor gerak sederhana.

Kenapa kita melakukan ini? Karena sistem otomasi rumah bisa sangat kaku dan mahal. Dengan mempelajari cara mengontrol Hue dari Arduino, Anda membuka pintu ke berbagai proyek otomasi rumah yang dibuat khusus yang tidak dapat dikalahkan oleh komponen yang tidak tersedia. Jika meretas bersama-sama bukan urusan Anda, coba ini

instagram viewer
8 aplikasi Hue yang luar biasa 7 Aplikasi Philips Hue Terbaik untuk Android dan iPhoneMencari aplikasi Philips Hue terbaik untuk digunakan dengan lampu pintar Anda? Berikut adalah beberapa aplikasi hebat untuk iPhone dan Android. Baca lebih banyak sebagai gantinya.

Sistem Hue

Mari kita sedikit teknis sehingga Anda akan tahu sistem yang mendasari Anda bekerja dengan. Lampu rona membuat a jaringan mesh Mesh Networks: Masa Depan KomunikasiJaringan mesh hampir kebal. Dalam jaringan mesh, tidak ada titik choke di mana semua lalu lintas berlalu. Sebaliknya, informasi diteruskan dari satu perangkat ke perangkat berikutnya hingga mencapai tujuannya. Baca lebih banyak , menggunakan protokol nirkabel jarak pendek yang disebut ZigBee - khususnya, mereka ZigBee Light Link bersertifikat, yang berarti produk ZLL lainnya juga harus bekerja berdampingan dengan Hue (secara teori).

Meskipun secara teknis jarak pendek, fitur jaringan mesh dari ZigBee berarti bahwa setiap bola lampu baru memperluas jaringan, menyampaikan pesan ke bola lampu lainnya. Ini berarti bahwa jika Anda mengalami kesulitan mengendalikan cahaya di sisi lain rumah, coba letakkan lampu lain di antara keduanya.

Zigbee adalah protokol yang hebat, tetapi sangat berbeda dengan Wi-Fi atau jaringan komputer kabel, jadi kami membutuhkan Philips Hue Bridge untuk menggabungkan keduanya. Jembatan Hue menjalankan firmware linux open source yang dimodifikasi, yang menyiarkan server web dasar.

Ini yang akan Anda lihat jika Anda cukup mengetik alamat IP jembatan Hue Anda di browser Anda. Anda tidak dapat berbuat banyak dari sini.
Ini yang akan Anda lihat jika Anda cukup mengetik alamat IP jembatan Hue Anda di browser Anda. Anda tidak dapat melakukan banyak hal dari sini.

Dengan berinteraksi dengan server web lokal ini Anda dapat mengetahui status lampu saat ini, dan mengendalikannya.

Ini sistem yang sangat sederhana, dan matang untuk proyek DIY. Kudos to Philips untuk membuat hal ini sangat bisa diretas.

Memulai

Sebelum Anda dapat mengakses dokumentasi API, Anda harus melakukannya daftar sebagai pengembang. Ini gratis, tetapi Anda harus menerima syarat dan ketentuan. Lakukan ini sekarang.

Siapa pun yang akrab dengan layanan web standar atau Javascript harus dapat bekerja dengan Hue: semua data dilewatkan dan diterima sebagai Paket JSON Apa itu JSON? Tinjauan Seorang AwamApakah Anda berencana untuk menjadi pengembang web atau tidak, itu ide yang baik untuk setidaknya tahu apa itu JSON, mengapa itu penting, dan mengapa itu digunakan di seluruh web. Baca lebih banyak .

Untuk melihatnya dalam tindakan ini, Anda harus mengetahui alamat IP jembatan Hue Anda. Ada beberapa cara untuk melakukan ini:

  • Lihatlah tabel penetapan alamat DHCP di antarmuka admin router Anda
  • Jalankan program pemetaan jaringan seperti Rumah Pemindai IP
  • Coba Alat broker Philips UPnP
  • Ping "philips-hue.home"
pemetaan jaringan untuk menemukan jembatan

Setelah selesai, lanjutkan dan ketikkan ke bilah alamat browser Anda debug / clip.html ditambahkan ke URL. Dalam kasus saya, ini adalah:

http://192.168.1.216/debug/clip.html

Ini adalah alat debugging yang memungkinkan Anda mengirim dan menerima paket JSON melalui antarmuka web yang sederhana. Langkah pertama adalah mengaktifkan profil pengembang di Hue Bridge itu sendiri - yang dinonaktifkan secara default karena alasan keamanan. Rekatkan yang berikut ke dalam bidang BODY, biarkan URL seperti /api/, dan kirim permintaan POST dengan mengklik tombol posting:

{"devicetype": "test user", "username": "newdeveloper"}

Pertama kali Anda melakukan ini, Anda akan melihat "tombol tautan tidak ditekan" di suatu tempat di respons. Ini adalah fitur keamanan yang mengharuskan setiap aplikasi baru yang Anda gunakan memiliki izin fisik. Pergi dan temukan Jembatan Anda, tekan tombol, dan kirim permintaan yang sama lagi dalam 30 detik. Kali ini Anda akan mendapatkan respons yang berbeda, dan pengguna akan diotorisasi. Jika Anda ingin menggunakan nama pengguna yang berbeda, baca dokumentasi API tentang menciptakan pengguna. Untuk saat ini, ini sudah cukup.

Setelah pengguna Anda siap, URL dasar tempat Anda berinteraksi akan menjadi /api/newdeveloper/. Anda dapat mengirim permintaan DAPATKAN untuk mengetahui segala sesuatu yang saat ini diketahui Jembatan Anda tentang lampu yang terhubung, alarm, adegan, dan log singkat aplikasi yang telah digunakan. Berikut ini contoh beberapa informasi status yang terkandung dalam satu bola lampu.


"state": {"on": true, "bri": 254, "hue": 14910, "sat": 144, "effect": "none", "xy": [0.4596, 0.4105], "ct": 369, "alert": "none", "colormode": "ct", "reachable": false}, "type": "Extended color light", "name": "Bedroom 1", "modelid": "LCT001", 

Perhatikan bahwa "Aktif": benar negara tidak benar-benar menunjukkan kepada Anda apakah bohlam menyala atau tidak; hanya itu sesuai dengan pengaturan Bridge, itu Sebaiknya aktif. "Reachable": false dapat menunjukkan kedua bohlam yang terlalu jauh, atau cukup dimatikan pada saklar daya.

Satu contoh terakhir sebelum kita mengintegrasikan ini ke dalam Arduino: pastikan salah satu lampu Anda terlihat dan menyala, dan Anda tahu nomornya. Ubah URL menjadi /api/newdevelopers/lights/1/state (ubah nomor menjadi terang Anda), dan kirim permintaan PUT dengan data berikut:

{"hue": 50100, "sat": 255, "bri": 255}

Anda akan melihat cahaya Anda bereaksi seperti ini:

rona demo

Apa yang telah Anda lakukan adalah mendorong status baru ke bohlam. Anda juga dapat menambahkan "waktu transisi", yang merupakan metode animasi primitif yang menunjukkan berapa detik Anda ingin perubahan keadaan dilakukan.

Warna bisa diatur sejumlah cara berbeda, tapi sayangnya tidak ada cara sederhana untuk mengirim nilai RGB. Dalam contoh di atas, kami mengirim warna, dudukurasi, dan brightness. Coba ubah nilai rona dan kirim kembali permintaan PUT.

Bekerja Dari Arduino

Ada perpustakaan Hue / Arduino yang ada disebut ArduinoHue yang Philips sendiri tautkan dalam dokumentasi API, tetapi masalah dengan pustaka ini adalah itu berkomunikasi melalui koneksi USB ke PC Anda, yang juga perlu menjalankan aplikasi Python selalu. Eugh. Anda mungkin juga membiarkan komputer Anda menjalankan semuanya pada saat itu, dan memotong Arduino sepenuhnya.

Sebagai gantinya, saya akan menunjukkan kepada Anda bagaimana mengontrol Hue dari Arduino menggunakan perisai Ethernet. Arduino Anda tidak perlu terhubung ke komputer, sehingga Arduino Anda dapat beroperasi secara independen di mana pun Anda dapat memasang kabel Ethernet. Sebenarnya, ini juga harus bekerja dengan perisai Wi-Fi, tapi saya tidak punya satu untuk bermain.

ehternet-sheild-box

Jika Anda ingin melompat maju, kode sampel lengkap disematkan di bawah ini, atau Tersedia disini. Saya telah mengadaptasinya dari contoh yang diposkan oleh Gilson Oguime. Jika Anda belum pernah bermain dengan perisai Ethernet sebelumnya, Anda mungkin ingin menjalankan cepat melalui tutorial klien web - Saya akan mengasumsikan tingkat keakraban dengan hal ini, dan tidak akan mencakup kode yang digunakan untuk membuat IP jaringan dll. Kami juga menunjukkan kepada Anda cara membuat server web mini dengan perisai Ethernet Berikan Proyek Arduino Anda Mini-Webserver Sendiri, Dengan Perisai EthernetBeberapa waktu yang lalu, saya menunjukkan kepada Anda bagaimana mengatur sistem kontrol internet untuk Arduino Anda - tetapi harus tetap terhubung ke komputer melalui USB untuk menjaga koneksi internet ... Baca lebih banyak .

Membuat Perubahan Status

Membuat negara baru untuk mendorong ke bohlam adalah kasus sederhana menciptakan yang baru Tali variabel, dan lolos dari semua tanda kutip ganda. Saya telah menambahkan acak() berfungsi di sana juga untuk membuat animasi yang agak dinamis. Cobalah membuat variabel rona secara acak juga untuk warna yang berbeda.

Perintah string = "{\" on ": true, \" hue \ ": 50100, \" sat \ ": 255, \" bri \ ": 255, \" waktu transisi \ ":" + String (acak (15, 25)) + "}";

Mengirim Perintah

Untuk benar-benar mengirim perintah, Anda memiliki fungsi pembantu yang disebut setHue () yang mengambil nomor cahaya dan string perintah sebagai argumen, seperti:

setHue (1, command);

Semua yang dilakukannya kemudian adalah terhubung ke jembatan, memuntahkan perintah sebagai permintaan PUT, bersama dengan semua omong kosong lain yang melibatkan permintaan HTTP.


client.print ("PUT / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); client.println ("/ state HTTP / 1.1"); client.println ("keep-live"); client.print ("Host:"); client.println (hueHubIP); client.print ("Panjang Konten:"); client.println (command.length ()); client.println ("Tipe-Konten: teks / polos; charset = UTF-8 "); client.println (); // baris kosong sebelum tubuh. client.println (perintah); // Perintah hue. 

Menambahkan Sensor Gerak

Akhirnya, saya mengirim kabel sederhana Sensor gerak HC-SR501 untuk digital I / O pin 2. Ketika gerakan terdeteksi, serangkaian keadaan didorong ke jembatan selama 2 bola lampu untuk membuat animasi yang lambat dan dinamis. Ketika sensor gerak dinonaktifkan, satu perintah mati dikirim ke keduanya. Idealnya, mereka akan dikembalikan ke keadaan sebelumnya sebelum gerakan terdeteksi, tetapi logikanya tidak sepintar itu - kami hanya akan menghidupkan dan mematikannya.

Keterbatasan

Meskipun diakui kode tidak dioptimalkan, dibutuhkan hampir satu detik untuk antarmuka jaringan Arduino untuk mengirim permintaan perintah tunggal. Saya menguji perintah yang sama dari Mac, menggunakan koneksi Ethernet yang sama, dan itu mampu sepuluh hingga dua puluh kali kecepatan itu (inilah AppleScript jika Anda ingin menguji) Akibatnya, segala jenis animasi cepat (saya berusaha membuat efek lilin yang berkedip-kedip) tidak mungkin dilakukan oleh Arduino. Ini seharusnya tidak menjadi masalah bagi sebagian besar proyek, hanya untuk animasi cahaya kecepatan tinggi, tetapi ada baiknya untuk mengetahui batasannya.

Sulit juga untuk menguraikan sepenuhnya respons JSON yang Anda dapatkan dari jembatan; tidak cukup RAM di Arduino untuk menyimpan semua data mentah. Untuk alasan ini, Anda mungkin ingin membatasi pengiriman.

Retas Hue

Sekarang setelah Anda dipersenjatai dengan pengetahuan tentang cara mengontrol Hue sepenuhnya secara mandiri, ia membuka dunia peretasan otomasi rumah Hue. Pertanyaan sebenarnya adalah: apa yang akan kamu buat

James memiliki gelar BSc dalam Artificial Intelligence, dan bersertifikat CompTIA A + dan Network +. Dia adalah pengembang utama MakeUseOf, dan menghabiskan waktu luangnya bermain VR paintball dan boardgames. Dia telah membangun PC sejak dia masih kecil.