Isi kandungan:
- Langkah 1: Mulakan
- Langkah 2: Aplikasi Hue
- Langkah 3: Sambungkan Jambatan
- Langkah 4: Alamat IP
- Langkah 5:
- Langkah 6: Debugkan Warna Anda
- Langkah 7: Mari Bermula
- Langkah 8:
- Langkah 9: Mari Melakukan Sesuatu Dengan Lampu
- Langkah 10:
- Langkah 11: Mari Kawal Cahaya
- Langkah 12:
- Langkah 13:
- Langkah 14:
- Langkah 15:
- Langkah 16:
- Langkah 17:
- Langkah 18:
- Langkah 19:
Video: Projek Sekolah IoT Philips Hue: 19 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Ini adalah manual yang saya tulis untuk sekolah. Ia tidak lengkap dan saya tidak pasti sama ada anda boleh menggunakannya. Pengetahuan saya tentang API adalah minimum. Kami mahu membuat cermin interaktif dengan lampu di bahagian belakang yang bertindak balas terhadap cuaca, cahaya dari luar, dll.
Saya melihat bagaimana saya dapat memprogram lampu Philips Hue dengan Arduino. Dalam ini, saya menerangkan semua langkah saya dan sejauh mana saya telah sampai. Saya belum berjaya memprogram Hue dengan Arduino tetapi saya fikir ia adalah permulaan yang baik.
Saya memerlukan ini: Arduino a hue menyalakan akaun pemaju Philips Hue
Sumber: https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/en/latest/e…https:// www.makeuseof.com/tag/control-philips-hue-…
Langkah 1: Mulakan
Sebelum anda dapat mengakses dokumentasi API, anda perlu mendaftar sebagai pembangun. Ia percuma, tetapi anda perlu menerima terma dan syarat. Anda boleh membuatnya di sini>
Langkah 2: Aplikasi Hue
Muat turun Aplikasi Philips Hue rasmi. Sambungkan telefon anda ke rangkaian yang anda mahukan di jambatan Hue.
Langkah 3: Sambungkan Jambatan
Sambungkan jambatan anda dengan rangkaian anda dan berfungsi dengan baik. Uji bahawa aplikasi telefon pintar dapat mengawal lampu pada rangkaian yang sama. Ia mesti berada di rangkaian Wi-Fi yang sama.
Langkah 4: Alamat IP
Kemudian anda perlu menemui alamat IP jambatan di rangkaian anda. Tekan pautan untuk menyambung ke jambatan di aplikasi dan cuba mengawal lampu.
Langkah 5:
Sekiranya semuanya berfungsi, pergi ke menu tetapan dalam aplikasi. Dari pergi ke "Jambatan Saya", pergi ke "Tetapan rangkaian". Matikan togol DHCP dan anda melihat alamat IP jambatan. Perhatikan alamat IP, kemudian hidupkan semula DHCP.
Langkah 6: Debugkan Warna Anda
Semasa anda menuliskannya, anda perlu menyahpepijat Hue anda. Anda memerlukan Alamat IP untuk langkah ini. Anda mesti melayari laman web seterusnya.
/debug/clip.html
Antaramuka akan kelihatan seperti ini dalam gambar. Ini adalah asas semua lalu lintas web dan antara muka RESTful rona.
Saya mendapat maklumat ini mengenai antara muka yang tenang di laman Philips Hue.
URL: ini sebenarnya adalah alamat tempatan sumber tertentu (benda) di dalam sistem rona. Ia mungkin ringan, sekumpulan lampu atau banyak lagi perkara. Ini adalah objek yang akan anda berinteraksi dalam arahan ini.
Isi: ini adalah bahagian mesej yang menerangkan apa yang anda mahu ubah dan bagaimana. Di sini anda memasukkan, dalam format JSON, nama sumber dan nilai yang ingin anda ubah / tambah.
Kaedah: di sini anda mempunyai pilihan 4 kaedah HTTP yang boleh digunakan oleh panggilan rona.
DAPATKAN: ini adalah arahan untuk mengambil semua maklumat mengenai sumber yang dialamatkan
PUT: ini adalah perintah untuk mengubah sumber yang dialamatkan
POST: ini adalah arahan untuk membuat sumber baru di dalam sumber yang dialamatkan
DELETE: ini adalah arahan untuk menghapus sumber yang dialamatkan Respons: Di kawasan ini, anda akan melihat respons terhadap arahan anda. Juga dalam format JSON.
Langkah 7: Mari Bermula
Sekarang kami memerlukan nama pengguna yang dihasilkan secara rawak yang dibuat oleh jambatan untuk anda. Anda akan mendapatkannya dengan mengisi ini.
Masukkan URL:
/ api /
Masukkan BADAN:
dan tekan GET
Perintah ini pada dasarnya mengatakan "tolong buat sumber baru di dalam / api" (di mana nama pengguna duduk) dengan sifat berikut. Pada mulanya, anda akan mendapat ralat, dan itu kerana ia adalah langkah keselamatan Philips Hue. Dengan menekan butang mereka membuktikan bahawa anda mempunyai akses fizikal ke jambatan.
Langkah 8:
Sekarang Tekan butang di Bridge dan klik POST sekali lagi.
Sekarang anda akan mendapat nama pengguna yang dibuat oleh jambatan untuk anda.
Langkah 9: Mari Melakukan Sesuatu Dengan Lampu
Salin nama pengguna anda dan masukkannya ke baris berikut.
Masukkan ini ke URL anda
/ api / / lampu
Tekan GET
Anda harus mendapat respons JSON dengan semua lampu di sistem anda dan namanya.
Langkah 10:
Saya meminjam beberapa Lampu Hue dari sekolah, yang saya gunakan adalah lampu dengan id 3. Saya mahukan maklumat khusus mengenai lampu ini.
Letakkan ini di sebelah URL yang sudah anda miliki:
/ api / / lampu / 3
Tekan GET
Sekarang anda mendapat maklumat mengenai Led 3 (jika anda mempunyai nombor lain seperti 1, anda akan melihat maklumat tentang itu).
Langkah 11: Mari Kawal Cahaya
Anda lihat dalam "keadaan" bahawa petunjuk saya "hidup". Kami mahu mengawal cahaya dalam "keadaan".
Letakkan ini di sebelah URL yang sudah anda miliki: https:// / api / / lights / 3 / state
Masukkan baris seterusnya dalam BADAN
Tekan PUT
Sekarang lampu anda akan mati! Tukar nilai dalam badan menjadi benar dan cahaya akan menyala semula.
Langkah 12:
Sekarang semuanya berfungsi, saya mahu melakukan ini dengan Arduino saya. Saya melihat pautan yang diberikan Philips Hue untuk mengubah warna cahaya. Tetapi anda memerlukan Python untuk ini, saya tidak pernah bekerjasama dengan Python jadi saya mencari perkara lain.
Sekiranya anda ingin melihat kod ini, saya mempunyai pautan Github di sini:
github.com/bsalinas/ArduinoHue
Langkah 13:
Saya melihat bagaimana saya boleh mendapatkan maklumat dari laman web pembangun ini ke arduino saya. Selalunya saya tidak faham bahasa. Tetapi saya menemui beberapa kod di laman web dari James Bruce.
Ini adalah pautan ke laman web.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Langkah 14:
Pertama saya melihat bahawa dia menggunakan kabel Ethernet. Saya hanya mempunyai lampu Hue dan Bridge a Arduino, dan sedikit pemahaman mengenai kod. Saya mengambil masa agak lama untuk memahami kodnya, tetapi saya masih tidak memahaminya.
Saya mula-mula menambahkan perpustakaan ini untuk internet.
#sertakan
Ini untuk rangkaian anda (mestilah sama dengan lampu Hue)
const char * ssid = ""; // letakkan di sini rangkaian WiFi anda SSIDconst char * password = ""; // letakkan di sini kata laluan rangkaian WiFi anda
Ini adalah ID Jambatan anda dan nama pengguna yang diberikan jambatan anda kepada anda. (Saya tidak tahu di mana 80 bermaksud tetapi ketika saya melakukan penyelidikan saya melihat bahawa ia digunakan untuk rangkaian).
// Hue constants const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Nama pengguna Hue const int hueHubPort = 80;
// Pemboleh ubah Hue bool hueOn; // hidup / mati int hueBri; // nilai kecerahan panjang warna; // nilai hue String hueCmd; // Perintah Hue
penyangga panjang yang tidak ditandatangani = 0; // penyangga untuk penyimpanan data yang diterima tanpa tambahan yang tidak ditandatangani;
Langkah 15:
Untuk penyediaan kekosongan, saya melakukan yang terbaik untuk sambungan internet. Dalam kod ini, Arduino mencari apakah dia dapat berhubung dengan rangkaian.
batal persediaan () {Serial.begin (9600);
Bersiri.println ();
Serial.printf ("Menyambung ke% s", ssid);
WiFi.begin (ssid, kata laluan);
sementara (WiFi.status ()! = WL_CONNECTED) {
kelewatan (500);
Cetakan bersiri ("."); }
Serial.println ("bersambung"); }
Langkah 16:
Dalam gelaran James, saya melihat bahawa dia mempunyai pernyataan If and else. Tetapi itu adalah untuk kabel ethernet, jadi saya cuba meninggalkannya. Saya juga kadang-kadang cuba menyesuaikannya, tetapi saya belum tahu dengan banyak data. Beberapa perkara dalam kod yang saya fahami, dalam rentetan adalah data yang diberikan kepada lampu Hue.
gelung kosong () {
// Serangkaian empat perintah contoh, yang warna memudar dua lampu antara merah dan merah jambu. Baca dokumentasi Hue API // untuk maklumat lebih lanjut mengenai arahan tepat yang akan digunakan, tetapi perhatikan bahawa tanda petikan mesti dilarikan.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" peralihan masa / ":" + String (rawak (15, 25)) + "}"; setHue (1, perintah);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" peralihan masa / ":" + Rentetan (rawak (15, 25)) + "}"; setHue (2, arahan);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transtimetime / ":" + Rentetan (rawak (15, 25)) + "}"; setHue (1, arahan);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transtimetime / ":" + Rentetan (rawak (15, 25)) + "}"; setHue (2, arahan);
}
Langkah 17:
Kod seterusnya adalah Boolean, tetapi di Arduino anda harus menulis Bool. Pada mulanya, saya mendapat banyak kesilapan kerana kata klien. Oleh itu, saya melihatnya dan melihat bahawa beberapa kod menggunakan baris "WifiClient client;". Oleh itu, saya menggunakannya dan ia berjaya.
Dalam pernyataan if anda sering melihat client.print. Sekiranya anda melihat kodnya, anda akan melihat bahawa URL yang anda masukkan lebih awal dibahagikan kepada beberapa bahagian. Sekarang masukkan kod anda sendiri. Saya terpaksa memilih lampu LED ke-3 saya.
/ * setHue () adalah fungsi perintah utama kami, yang perlu diteruskan dengan angka ringan dan * string perintah yang diformat dengan betul dalam format JSON (pada dasarnya susunan gaya Javascript pemboleh ubah * dan nilai. Ia kemudian membuat permintaan HTTP PUT sederhana untuk Jambatan di IP yang ditentukan pada awalnya. * /
bool setHue (int lightNum, arahan String) {
Pelanggan WiFiClient;
jika (client.connect (hueHubIP, hueHubPort)) {
semasa (client.connected ()) {
client.print ("PUT / api /"); client.print (hueUsername); client.print ("/ lampu /"); client.print (lightNum); // hueLight berasaskan sifar, tambahkan 1 client.println ("3 / state"); // di sini saya menukar nama rona dan stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Panjang Kandungan:"); client.println (command.length ()); client.println ("Jenis Kandungan: teks / dataran; charset = UTF-8"); pelanggan.println (); // garis kosong sebelum body client.println (arahan); // Perintah Hue
} pelanggan.stop (); kembali benar; // arahan dilaksanakan}
yang lain kembali palsu; // arahan gagal}
Langkah 18:
Pada Boolean kedua, saya melakukan perkara yang sama dengan menukar beberapa perkataan. Saya memuat naiknya untuk melihat sama ada ia berfungsi.
/ * Fungsi pembantu sekiranya logik anda bergantung pada keadaan cahaya semasa. * Ini menetapkan sejumlah pemboleh ubah global yang dapat anda periksa untuk mengetahui apakah lampu saat ini menyala atau tidak * dan rona dll. Tidak diperlukan hanya untuk mengirimkan perintah * /
bool getHue (int lightNum) {
Pelanggan WiFiClient;
jika (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET / api /"); client.print (hueUsername); client.print ("/ lampu /"); client.print (lightNum); client.println ("3 / negeri"); client.print ("Host:"); client.println (hueHubIP); client.println ("Jenis kandungan: aplikasi / json"); client.println ("jaga-hidup"); pelanggan.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "benar"); // jika lampu menyala, tetapkan pemboleh ubah ke true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // tetapkan pemboleh ubah kepada nilai kecerahan client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // tetapkan pemboleh ubah ke hue nilai break; // belum menangkap atribut cahaya lain}} client.stop (); kembali benar; // ditangkap pada, bri, hue} lain kembali palsu; // ralat membaca, bri, rona}
Langkah 19:
Saya rasa saya dapat membuat hubungan dengan Philips Hue. Saya menerima maklumat tetapi ia masih perlu digunakan.
Malangnya, ini melampaui apa yang saya dapat kodkan. Sekiranya anda tahu jawapannya, atau jika ada kesalahan sebenar yang perlu diperbetulkan, saya ingin mendengarnya.:-)
Disyorkan:
Cara Membuat RADAR Menggunakan Arduino untuk Projek Sains - Projek Arduino Terbaik: 5 Langkah
Cara Membuat RADAR Menggunakan Arduino untuk Projek Sains | Projek Arduino Terbaik: Hai rakan-rakan, dalam pengajaran ini saya akan menunjukkan kepada anda bagaimana membuat sistem radar yang menakjubkan yang dibina menggunakan arduino nano projek ini sangat sesuai untuk projek sains dan anda boleh membuatnya dengan pelaburan dan peluang yang sangat rendah jika memenangi hadiah adalah bagus untuk
Sad Cat Fixer, Catch-Me Cat Toy - Projek Sekolah: 3 Langkah
Sad Cat Fixer, Catch-Me Cat Toy - Projek Sekolah: Inilah produk kami, Ia adalah tetikus mainan interaktif: Catch-Me Cat Toy. Berikut adalah senarai masalah yang dihadapi oleh banyak kucing di masyarakat kita: Kucing pada masa ini menjadi tidak aktif dan tertekan dengan tiada kaitan. Kebanyakan pemilik sibuk dengan kerja atau sekolah dan ka
10 Projek Arduino Asas untuk Pemula! Buat sekurang-kurangnya 15 Projek Dengan Papan Tunggal !: 6 Langkah
10 Projek Arduino Asas untuk Pemula! Buat sekurang-kurangnya 15 Projek Dengan Papan Tunggal !: Projek Arduino & Lembaga Tutorial; Termasuk 10 projek asas Arduino. Semua kod sumber, fail Gerber dan banyak lagi. Tiada SMD! Pematerian mudah untuk semua orang. Komponen yang mudah ditanggalkan dan diganti. Anda boleh membuat sekurang-kurangnya 15 projek dengan satu
Lengan Lukisan yang Dikendalikan oleh Sound - Projek Sekolah Arduino: 4 Langkah (dengan Gambar)
Drawing Arm yang Dikendalikan oleh Sound - Arduino School Project: Ini adalah kali pertama saya bekerja dengan Arduino, dan bekerja dengan perkara seperti ini, maafkan saya sekiranya saya melakukan kesilapan! Saya mendapat idea ini ketika memikirkan hobi saya, iaitu melukis dan muzik. Oleh itu, saya cuba menggabungkan kedua-duanya menjadi ini! Sel
Pembakar Bertenaga USB! Projek ini Boleh Membakar Melalui Plastik / Kayu / Kertas (Projek yang menyeronokkan Juga Harus Kayu Sangat Baik): 3 Langkah
Pembakar Bertenaga USB! Projek ini Boleh Membakar Melalui Plastik / Kayu / Kertas (Projek yang Menyeronokkan Juga Harus Kayu Sangat Baik): JANGAN JADIKAN MENGGUNAKAN USB INI !!!! saya mendapat tahu bahawa ia boleh merosakkan komputer anda dari semua komen. komputer saya baik-baik saja. Gunakan pengecas telefon 600ma 5v. Saya menggunakan ini dan berfungsi dengan baik dan tidak ada yang boleh rosak jika anda menggunakan palam keselamatan untuk menghentikan kuasa