Daftar Isi:

Proyek Sekolah IoT Philips Hue: 19 Langkah
Proyek Sekolah IoT Philips Hue: 19 Langkah

Video: Proyek Sekolah IoT Philips Hue: 19 Langkah

Video: Proyek Sekolah IoT Philips Hue: 19 Langkah
Video: Anies Baswedan Diminta Turun dari Pelaminan Padahal Keluarga Erina Gudono Ingin Berfoto 2024, November
Anonim
Proyek Sekolah IoT Philips Hue
Proyek Sekolah IoT Philips Hue

Ini adalah manual yang harus saya tulis untuk sekolah. Itu tidak lengkap dan saya tidak yakin apakah Anda bahkan dapat menggunakannya. Pengetahuan saya tentang API adalah minimum. Kami ingin membuat cermin interaktif dengan lampu di bagian belakang yang bereaksi terhadap cuaca, cahaya dari luar, dll.

Saya melihat bagaimana saya bisa memprogram lampu Philips Hue dengan Arduino. Dalam hal ini, saya menjelaskan semua langkah saya dan seberapa jauh saya telah melangkah. Saya belum berhasil memprogram Hue dengan Arduino tetapi saya pikir ini adalah awal yang baik.

Saya membutuhkan ini: Arduino, lampu rona, jembatan, akun pengembang 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: Memulai

Sebelum Anda dapat mengakses dokumentasi API, Anda harus mendaftar sebagai pengembang. Ini gratis, tetapi Anda harus menerima syarat dan ketentuan. Anda dapat membuatnya di sini >

Langkah 2: Aplikasi Hue

Unduh Aplikasi Philips Hue resmi. Hubungkan ponsel Anda ke jaringan yang Anda inginkan untuk mengaktifkan jembatan Hue.

Langkah 3: Hubungkan Jembatan

Hubungkan jembatan Anda dengan jaringan Anda dan berfungsi dengan baik. Uji apakah aplikasi ponsel cerdas dapat mengontrol lampu di jaringan yang sama. Itu harus berada di jaringan Wi-Fi yang sama.

Langkah 4: Alamat IP

Maka Anda perlu menemukan alamat IP jembatan di jaringan Anda. Dorong tautan untuk terhubung ke jembatan di aplikasi dan coba kendalikan lampu.

Langkah 5:

Jika semuanya berfungsi, buka menu pengaturan di aplikasi. Daripada pergi ke "Jembatan Saya", pergi ke "Pengaturan jaringan". Matikan sakelar DHCP dan Anda melihat alamat IP jembatan. Catat alamat IP, lalu nyalakan kembali DHCP.

Langkah 6: Debug Hue Anda

Debug Rona Anda
Debug Rona Anda

Saat Anda menuliskannya, Anda perlu men-debug Hue Anda. Anda memerlukan Alamat IP untuk langkah ini. Anda harus mengunjungi situs berikutnya.

/debug/clip.html

Antarmuka akan terlihat seperti ini pada gambar. Ini adalah dasar dari semua lalu lintas web dan antarmuka RESTful rona.

Saya mendapatkan informasi ini tentang antarmuka Restful dari situs Philips Hue.

URL: ini sebenarnya adalah alamat lokal dari sumber daya (benda) tertentu di dalam sistem rona. Itu bisa berupa cahaya, sekelompok lampu atau banyak hal lainnya. Ini adalah objek yang akan Anda interaksikan dalam perintah ini.

Tubuh: ini adalah bagian dari pesan yang menjelaskan apa yang ingin Anda ubah dan bagaimana caranya. Di sini Anda memasukkan, dalam format JSON, nama dan nilai sumber daya yang ingin Anda ubah/tambahkan.

Metode: di sini Anda memiliki pilihan dari 4 metode HTTP yang dapat digunakan oleh panggilan rona.

GET: ini adalah perintah untuk mengambil semua informasi tentang sumber daya yang dialamatkan

PUT: ini adalah perintah untuk mengubah sumber daya yang dialamatkan

POST: ini adalah perintah untuk membuat sumber daya baru di dalam sumber daya yang dialamatkan

DELETE: ini adalah perintah untuk menghapus resource yang dialamatkan Response: Di area ini, Anda akan melihat respons terhadap perintah Anda. Juga dalam format JSON.

Langkah 7: Mari Mulai

Ayo Mulai
Ayo Mulai

Sekarang kami membutuhkan nama pengguna yang dibuat secara acak yang dibuat oleh jembatan untuk Anda. Anda akan mendapatkan satu dengan mengisi ini.

Masukkan ke dalam URL:

/api/

Masukkan ke dalam TUBUH:

dan tekan DAPATKAN

Perintah ini pada dasarnya mengatakan "tolong buat sumber daya baru di dalam /api" (tempat nama pengguna duduk) dengan properti berikut. Pada awalnya, Anda akan mendapatkan kesalahan, dan itu karena itu adalah langkah keamanan Philips Hue. Dengan menekan tombol mereka membuktikan bahwa Anda memiliki akses fisik ke jembatan.

Langkah 8:

Gambar
Gambar

Sekarang Tekan tombol di Bridge dan klik POST lagi.

Sekarang Anda akan mendapatkan nama pengguna yang dibuat jembatan untuk Anda.

Langkah 9: Ayo Lakukan Sesuatu Dengan Lampu

Ayo Lakukan Sesuatu Dengan Lampu
Ayo Lakukan Sesuatu Dengan Lampu

Salin nama pengguna Anda dan letakkan di baris berikut.

Letakkan ini di URL Anda

/api/ /lampu

Tekan DAPATKAN

Anda harus mendapatkan respons JSON dengan semua lampu di sistem Anda dan namanya.

Langkah 10:

Gambar
Gambar

Saya meminjam beberapa Lampu Hue dari sekolah, yang saya gunakan adalah yang memiliki id 3. Saya ingin informasi spesifik tentang lampu ini.

Letakkan ini di sebelah URL yang sudah Anda miliki:

/api/ /lampu/3

Tekan DAPATKAN

Sekarang Anda mendapatkan semua informasi tentang Led 3 (jika Anda memiliki nomor lain seperti 1, Anda akan melihat informasi tentang itu).

Langkah 11: Mari Kendalikan Cahaya

Mari Kendalikan Cahaya
Mari Kendalikan Cahaya

Anda melihat dalam "status" bahwa led saya "menyala". Kami ingin mengontrol cahaya dalam "keadaan".

Letakkan ini di sebelah URL yang sudah Anda miliki: https:// /api/ /lights/ 3/ state

Letakkan baris berikutnya di BODY

Tekan PUT

Sekarang lampu Anda akan mati! Ubah nilai di body menjadi true dan lampu akan menyala kembali.

Langkah 12:

Sekarang semuanya berfungsi, saya ingin melakukan ini dengan Arduino saya. Saya melihat tautan yang diberikan Philips Hue untuk mengubah warna terang. Tetapi Anda membutuhkan Python untuk ini, saya tidak pernah bekerja dengan Python jadi saya mencari yang lain.

Jika Anda ingin melihat kode ini, saya memiliki tautan Github di sini:

github.com/bsalinas/ArduinoHue

Langkah 13:

Saya melihat bagaimana saya bisa mendapatkan informasi dari situs pengembang ini ke arduino saya. Sebagian besar waktu saya tidak mengerti bahasanya. Tetapi saya menemukan beberapa kode di situs web dari James Bruce.

Ini adalah tautan ke situs web.

www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/

Langkah 14:

Pertama saya melihat bahwa dia menggunakan kabel Ethernet. Saya hanya memiliki bola lampu Hue dan Bridge Arduino, dan sedikit pemahaman tentang kode. Butuh beberapa saat bagi saya untuk memahami kodenya, tetapi saya masih belum benar-benar memahaminya.

Saya pertama kali menambahkan perpustakaan ini untuk internet.

#termasuk

Ini untuk jaringan Anda (harus sama dengan bola lampu Hue)

const char*ssid = " "; // taruh di sini kata sandi SSIDconst char* jaringan WiFi Anda = " "; // taruh di sini kata sandi jaringan WiFi Anda

Ini adalah ID Jembatan Anda dan nama pengguna yang diberikan jembatan Anda kepada Anda. (Saya tidak tahu di mana 80 singkatan tetapi ketika saya melakukan penelitian saya melihat bahwa itu digunakan untuk jaringan).

// Konstanta warna const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Nama pengguna warna const int hueHubPort = 80;

// Variabel warna bool hueOn; // hidup/mati int hueBri; // nilai kecerahan hueHue panjang; // nilai warna String hueCmd; // perintah warna

buffer panjang yang tidak ditandatangani = 0; //buffer untuk penyimpanan data yang diterima unsigned long addr;

Langkah 15:

Untuk pengaturan void, saya melakukan yang terbaik untuk koneksi internet. Dalam kode ini, Arduino mencari apakah dia dapat terhubung dengan jaringan.

void setup(){ Serial.begin(9600);

Serial.println();

Serial.printf("Menghubungkan ke %s ", ssid);

WiFi.begin(ssid, kata sandi);

sementara (WiFi.status() != WL_CONNECTED) {

penundaan (500);

Serial.print("."); }

Serial.println("tersambung"); }

Langkah 16:

Dalam loop James, saya melihat bahwa dia memiliki pernyataan If dan else. Tapi itu untuk kabel ethernet, jadi saya mencoba untuk mengabaikannya. Saya juga terkadang mencoba menyesuaikannya, tetapi saya belum tahu dengan banyak data. Beberapa hal dalam kode yang saya mengerti, dalam string adalah data yang diberikan kepada cahaya Hue.

lingkaran kosong(){

// Serangkaian empat contoh perintah, yang warnanya memudarkan dua lampu antara merah dan merah muda. Baca di Hue API // dokumentasi untuk detail lebih lanjut tentang perintah yang tepat untuk digunakan, tetapi perhatikan bahwa tanda kutip harus diloloskan.

Perintah string = "{"on\": true, \"hue\": 50100, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}";setHue(1, perintah);

command = "{"on\": true, \"hue\": 65280, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; setHue(2, perintah);

command = "{"hue\": 65280, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; setHue(1, perintah);

command = "{"hue\": 50100, \"sat\":255, \"bri\":255, \"transitiontime\":"+String(random(15, 25))+"}"; setHue(2, perintah);

}

Langkah 17:

Kode berikutnya adalah Boolean, tetapi di Arduino Anda harus menulis Bool. Pada awalnya, saya mendapat banyak kesalahan karena kata klien. Jadi saya mencarinya dan melihat bahwa beberapa kode menggunakan baris "WifiClient client;". Jadi saya menggunakannya dan berhasil.

Dalam pernyataan if Anda sering melihat client.print. Jika Anda melihat ke dalam kode, Anda akan melihat bahwa URL yang Anda masukkan sebelumnya dibagi menjadi beberapa bagian. Sekarang masukkan kode Anda sendiri. Saya harus memilih lampu LED ke-3 saya.

/* setHue() adalah fungsi perintah utama kami, yang perlu diteruskan dengan nomor ringan dan * string perintah yang diformat dengan benar dalam format JSON (pada dasarnya array gaya Javascript dari variabel * dan nilai. Kemudian membuat permintaan HTTP PUT sederhana ke Bridge pada IP yang ditentukan di awal.*/

bool setHue(int lightNum, perintah String) {

Klien WiFiClient;

if (client.connect(hueHubIP, hueHubPort)){

sementara (klien. terhubung()){

client.print("PUT /api/"); client.print(hueUsername); client.print("/lampu/"); client.print(lightNum); // hueLight berbasis nol, tambahkan 1 client.println("3/state"); // disini saya mengubah nama hue dan stateclient.print("Host: "); client.println(hueHubIP); client.print("Panjang Konten: "); klien.println(perintah.panjang()); client.println("Jenis Konten: teks/polos;charset=UTF-8"); klien.println(); // baris kosong sebelum body client.println(command); // perintah warna

} klien.stop(); kembali benar; // perintah dieksekusi }

lain kembali salah; // perintah gagal }

Langkah 18:

Pada Boolean kedua, saya melakukan hal yang sama dengan mengubah beberapa kata. Saya mengunggahnya untuk melihat apakah itu berhasil.

/* Fungsi pembantu jika logika Anda bergantung pada status lampu saat ini. * Ini menetapkan sejumlah variabel global yang dapat Anda periksa untuk mengetahui apakah lampu sedang menyala atau tidak * dan rona dll. Tidak diperlukan hanya untuk mengirimkan perintah */

bool getHue(int lightNum) {

Klien WiFiClient;

if (client.connect(hueHubIP, hueHubPort)) {

client.print("DAPATKAN /api/"); client.print(hueUsername); client.print("/lampu/"); client.print(lightNum); client.println("3/status"); client.print("Tuan rumah: "); client.println(hueHubIP); client.println("Tipe-konten: aplikasi/json"); client.println("tetap hidup"); klien.println();

while (client.connected()) { if (client.available()) { client.findUntil("\"on\":", "\0"); hueOn = (client.readStringUntil(', ') == "benar"); // jika lampu menyala, atur variabel ke true client.findUntil("\"bri\":", "\0"); hueBri = client.readStringUntil(', ').toInt(); // set variabel ke nilai kecerahan client.findUntil("\"hue\":", "\0"); hueHue = client.readStringUntil(', ').toInt(); // set variabel ke nilai hue break; // belum menangkap atribut cahaya lainnya } } client.stop(); kembali benar; // ditangkap pada, bri, rona } else return false; // kesalahan membaca on, bri, hue }

Langkah 19:

Gambar
Gambar

Saya pikir saya bisa membuat koneksi dengan Philips Hue. Saya menerima informasi tetapi masih perlu digunakan.

Sayangnya, ini melampaui apa yang bisa saya kode. Jika Anda tahu jawabannya, atau jika ada kesalahan nyata yang perlu diperbaiki, saya akan senang mendengarnya.:-)

Direkomendasikan: