Mundarija:

IoT maktabi loyihasi Philips Hue: 19 qadam
IoT maktabi loyihasi Philips Hue: 19 qadam

Video: IoT maktabi loyihasi Philips Hue: 19 qadam

Video: IoT maktabi loyihasi Philips Hue: 19 qadam
Video: Ixlos school hususiy maktabi haqida batafsil ma’lumot olish uchun +998 78 113 3600 qo’ng’iroq qiling 2024, Iyul
Anonim
IoT maktabi loyihasi Philips Hue
IoT maktabi loyihasi Philips Hue

Bu maktab uchun yozishim kerak bo'lgan qo'llanma. Bu to'liq emas va siz hatto undan foydalanishingiz mumkinligiga amin emasman. API haqidagi bilimim minimal darajaga etadi. Biz orqa tomonida ob -havo, tashqi yorug'lik va boshqalar ta'sir qiladigan chiroqlar bilan interfaol ko'zgu yasashni xohladik.

Men Philips Hue lampasini Arduino bilan qanday dasturlash mumkinligini ko'rib chiqdim. Bunda men o'zimning barcha qadamlarimni va qancha yo'l olganimni tushuntiraman. Men Arduino bilan Hue dasturlashda muvaffaqiyat qozonmadim, lekin bu yaxshi boshlanish deb o'ylayman.

Menga bu kerak edi: Philips Hue ishlab chiqaruvchisi hisobidagi Arduino tusli chiroq

Manbalar: 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-…

1 -qadam: Ishni boshlang

API hujjatlariga kirishdan oldin siz dasturchi sifatida ro'yxatdan o'tishingiz kerak. Bu bepul, lekin siz shartlarni qabul qilishingiz kerak. Siz bu yerdan qilishingiz mumkin>

2 -qadam: Hue ilovasi

Rasmiy Philips Hue ilovasini yuklab oling. Telefoningizni Hue ko'prigi yoqilgan tarmoqqa ulang.

3 -qadam: Ko'prikni ulang

Ko'prikni tarmoqqa ulang va u to'g'ri ishlamoqda. Smartfon ilovasi bir xil tarmoqdagi chiroqlarni boshqarishi mumkinligini tekshiring. U bir xil Wi-Fi tarmog'ida bo'lishi kerak.

4 -qadam: IP -manzil

Keyin tarmoqdagi ko'prikning IP -manzilini topishingiz kerak. Ilovadagi ko'prikka ulanish uchun havolani bosing va chiroqlarni boshqarishga harakat qiling.

5 -qadam:

Agar hammasi ishlayotgan bo'lsa, ilovadagi sozlamalar menyusiga o'ting. "Mening ko'prigim" ga o'ting, "Tarmoq sozlamalari" ga o'ting. DHCP kalitini o'chiring va siz ko'prikning IP -manzilini ko'rasiz. IP -manzilga e'tibor bering, keyin DHCP -ni qayta yoqing.

6 -qadam: Rangingizni tuzating

Rangingizni tuzating
Rangingizni tuzating

Buni yozganingizda, siz Hue -ni disk raskadrovka qilishingiz kerak. Ushbu qadam uchun sizga IP-manzil kerak. Siz keyingi saytga kirishingiz kerak.

/debug/clip.html

Rasmda interfeys shunday ko'rinadi. Bu barcha veb -trafik va tusli RESTful interfeysining asosi.

Men Philips Hue saytining tinch interfeysi haqida ma'lumot oldim.

URL: bu aslida rang tizimi ichidagi ma'lum bir manbaning (narsaning) mahalliy manzili. Bu yorug'lik, chiroqlar guruhi yoki boshqa narsalar bo'lishi mumkin. Bu siz ushbu buyruq ichida o'zaro ta'sir qiladigan ob'ekt.

Tana: bu xabarning bir qismi, siz nimani va qanday o'zgartirishni xohlayotganingizni tasvirlaydi. Bu erda siz JSON formatida siz o'zgartirmoqchi/qo'shmoqchi bo'lgan manba nomi va qiymatini kiritasiz.

Usul: bu erda siz rang qo'ng'irog'i ishlatishi mumkin bo'lgan 4 HTTP usulini tanlashingiz mumkin.

Oling: bu manzil manbasi haqidagi barcha ma'lumotlarni olish buyrug'i

PUT: bu manzil manbasini o'zgartirish buyrug'i

POST: bu murojaat qilingan manba ichida yangi manba yaratish buyrug'i

O'CHIRISH: bu manba manbasini o'chirish buyrug'i Javob: Bu sohada siz o'z buyrug'ingizga javobni ko'rasiz. Shuningdek, JSON formatida.

7 -qadam: Boshlaylik

Qani boshladik
Qani boshladik

Endi bizga ko'prik siz uchun yaratadigan tasodifiy yaratilgan foydalanuvchi nomi kerak. Buni to'ldirish orqali siz bitta olasiz.

URL manzilini kiriting:

/api/

Tana ichiga qo'ying:

va GET tugmasini bosing

Bu buyruq asosan quyidagi xususiyatlarga ega "iltimos /api ichida yangi manba yarating" (foydalanuvchi nomlari o'tirgan joy) ni bildiradi. Avvaliga sizda xato bo'ladi, chunki bu Philips Hue xavfsizlik qadamidir. Tugmani bosish orqali ular sizning ko'prikka jismoniy kirishingiz mumkinligini isbotlaydilar.

8 -qadam:

Rasm
Rasm

Endi ko'prikdagi tugmani bosing va yana POST tugmasini bosing.

Endi siz ko'prik siz uchun yaratgan foydalanuvchi nomini olasiz.

9 -qadam: Keling, chiroqlar bilan biror narsa qilaylik

Chiroqlar bilan nimadir qilaylik
Chiroqlar bilan nimadir qilaylik

Foydalanuvchi nomini nusxa ko'chiring va uni keyingi qatorga qo'ying.

Buni URL manzilingizga kiriting

/api//chiroqlar

GET tugmasini bosing

Siz tizimingizdagi barcha chiroqlar va ularning nomlari bilan JSON javobini olishingiz kerak.

10 -qadam:

Rasm
Rasm

Men Hue Lights -ni maktabdan qarzga olganman, men foydalanadigan identifikator 3. Men bu yorug'lik haqida aniq ma'lumotga ega bo'lishni xohlayman.

Buni allaqachon mavjud bo'lgan URL yoniga qo'ying:

/api//chiroqlar/3

GET tugmasini bosing

Endi siz Led 3 haqida ma'lumot olasiz (agar sizda 1 kabi boshqa raqam bo'lsa, bu raqam haqida ma'lumotni ko'rasiz).

11 -qadam: Keling, yorug'likni boshqaramiz

Keling, yorug'likni boshqaraylik
Keling, yorug'likni boshqaraylik

Siz "shtat" da ko'rasiz, men rahbarligim "yoqilgan". Biz yorug'likni "holatda" boshqarishni xohlaymiz.

Buni URL manzilining yoniga qo'ying: https:/// api// lights/ 3/ state

BODYga keyingi qatorni qo'ying

PUT tugmasini bosing

Endi sizning chirog'ingiz o'chadi! Tanadagi qiymatni rostga o'zgartiring va yorug'lik yana yonadi.

12 -qadam:

Endi hamma narsa ishlaydi, men buni Arduino bilan qilishni xohlayman. Men yorug'lik rangini o'zgartirish uchun Philips Hue bergan havolani ko'rib chiqdim. Lekin buning uchun sizga Python kerak, men hech qachon Python bilan ishlamaganman, shuning uchun men boshqa narsani qidirdim.

Agar siz ushbu kodni ko'rishni xohlasangiz, menda Github havolasi bor:

github.com/bsalinas/ArduinoHue

13 -qadam:

Men ushbu ishlab chiquvchi saytidan arduino -ga qanday ma'lumot olishim mumkinligini ko'rib chiqdim. Ko'pincha men tilni tushunmaganman. Ammo men veb -saytdan Jeyms Bryusdan kod topdim.

Bu veb -saytga havola.

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

14 -qadam:

Avvaliga men uning Ethernet kabelidan foydalanayotganini ko'rdim. Menda faqat Hue lampochkasi va Arduino ko'prigi bor edi va men kodni kam tushunardim. Uning kodini tushunishim uchun biroz vaqt kerak bo'ldi, lekin men hali ham uni tushunmayapman.

Men bu kutubxonani birinchi marta Internetga qo'shdim.

#qo'shing

Bu sizning tarmog'ingiz uchun (u Hue lampochkasi bilan bir xil bo'lishi kerak)

const char* ssid = ""; // bu erga Wi -Fi tarmog'ingizni qo'ying SSIDconst char* password = ""; // Wi -Fi tarmog'ining parolini bu erga qo'ying

Bu sizning ko'prigingizning identifikatori va ko'prik sizga bergan foydalanuvchi nomi. (80 qaerda ekanligini bilmayman, lekin men tadqiqot o'tkazganimda, u tarmoqlar uchun ishlatilganini ko'rdim).

// Rang sobitlari const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue foydalanuvchi nomi const int hueHubPort = 80;

// Hue o'zgaruvchilari bool hueOn; // hueBri -ni yoqish/o'chirish; // yorqinlik qiymati long hueHue; // rang qiymati String hueCmd; // Hue buyrug'i

imzosiz uzun bufer = 0; // qabul qilingan ma'lumotlarni saqlash uchun bufer imzosiz uzoq addr;

15 -qadam:

Bo'sh o'rnatish uchun men Internetga ulanish uchun hamma narsani qildim. Ushbu kodda Arduino tarmoqqa ulana oladimi -yo'qligini tekshiradi.

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

Serial.println ();

Serial.printf (" %s ga ulanmoqda", ssid);

WiFi.begin (ssid, parol);

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

kechikish (500);

Serial.print ("."); }

Serial.println ("ulangan"); }

16 -qadam:

Jeyms davrasida men uning If va else iborasi borligini ko'rdim. Lekin bu chekilgan kabel uchun edi, shuning uchun men uni chetga surishga harakat qildim. Men ham ba'zida uni to'g'rilashga harakat qilardim, lekin hali ko'p ma'lumotlar bilan bilmasdim. Men tushungan koddagi ba'zi narsalar, satrda Hue nuriga berilgan ma'lumotlar.

void loop () {

// To'rt namunali buyruqlar to'plami, ularning rangi qizil va pushti o'rtasida ikkita chiroqni o'chiradi. Amaldagi aniq buyruqlar haqida ko'proq ma'lumot olish uchun Hue API // hujjatlarini o'qing, lekin esda tutingki, tirnoq belgilaridan qochish kerak.

String buyrug'i = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" o'tish vaqti / ":"+String (tasodifiy (15, 25))+"}"; setHue (1, buyruq);

command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" o'tish vaqti / ":"+String (tasodifiy (15, 25))+"}"; setHue (2, buyruq);

command = "{" tus / ": 65280, \" sat / ": 255, \" bri / ": 255, \" o'tish vaqti / ":"+String (tasodifiy (15, 25))+"}"; setHue (1, buyruq);

command = "{" tus / ": 50100, \" sat / ": 255, \" bri / ": 255, \" o'tish vaqti / ":"+String (tasodifiy (15, 25))+"}"; setHue (2, buyruq);

}

17 -qadam:

Keyingi kod mantiqiy edi, lekin Arduino -da Bool yozish kerak. Avvaliga mijoz so'zi tufayli juda ko'p xatolarga yo'l qo'ydim. Men qaradim va ba'zi kodlar "WifiClient mijozi" qatorini ishlatganini ko'rdim. Shunday qilib, men uni ishlatardim va u ishladi.

If -da siz tez -tez client.print -ni ko'rasiz. Agar siz kodni ko'rib chiqsangiz, siz ilgari kiritgan URL bo'laklarga bo'linganligini ko'rasiz. Endi o'z kodingizni kiriting. Men uchinchi LED chiroqni tanlashim kerak edi.

/ * setHue () - bu bizning asosiy buyruq vazifamiz bo'lib, unga yorug'lik raqami va JSON formatida * to'g'ri formatlangan buyruq qatori (asosan Javascript uslubidagi o'zgaruvchilar * va qiymatlar majmuasi) yuborilishi kerak. Keyin u oddiy HTTP PUT so'rovini yuboradi. boshida ko'rsatilgan IP -dagi ko'prik. */

bool setHue (int lightNum, String buyrug'i) {

WiFiClient mijozi;

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

while (client.connected ()) {

client.print ("PUT /api /"); client.print (hueUsername); client.print ("/chiroqlar/"); client.print (lightNum); // hueLight nolga asoslangan, 1 client.println qo'shing ("3/holat"); // bu erda men rang nomini va stateclient.print ("Xost:") ni o'zgartirdim; mijoz.println (hueHubIP); client.print ("Content-Length:"); client.println (command.length ()); client.println ("Kontent turi: matn/oddiy; charset = UTF-8"); mijoz.println (); // body client oldida bo'sh satr.println (buyruq); // Hue buyrug'i

} client.stop (); haqiqatga qaytish; // buyruq bajarildi}

aks holda noto'g'ri qaytaring; // buyruq bajarilmadi}

18 -qadam:

Ikkinchi mantiqda men ham xuddi shunday qildim, ba'zi so'zlarni o'zgartirdim. Ishlaganmi yoki yo'qmi deb yukladim.

/* Agar sizning mantiqingiz yorug'likning hozirgi holatiga bog'liq bo'lsa, yordamchi funktsiyasi. * Bu bir nechta global o'zgaruvchilarni belgilaydi, ularni siz hozirda chiroq yonayotgan yoki yoqilmaganligini * va rangini va hokazolarni aniqlash uchun tekshirishingiz mumkin. Faqat buyruqlarni yuborish uchun kerak emas */

bool getHue (int lightNum) {

WiFiClient mijozi;

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

client.print ("GET /api /"); client.print (hueUsername); client.print ("/chiroqlar/"); client.print (lightNum); client.println ("3/shtat"); client.print ("Xost:"); mijoz.println (hueHubIP); client.println ("Kontent turi: application/json"); client.println ("tirik qolish"); mijoz.println ();

while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "rost"); // agar yorug'lik yoniq bo'lsa, o'zgaruvchini haqiqiy client.findUntil ga o'rnating ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // o'zgaruvchini yorqinlik qiymatiga o'rnating client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // o'zgaruvchini tus qiymatining tanaffusiga o'rnating; // boshqa yorug'lik atributlari hali yozilmagan}} client.stop (); haqiqatga qaytish; // captured on, bri, hue} else return false; // o'qishda xato, bri, tus}

19 -qadam:

Rasm
Rasm

Menimcha, Philips Hue bilan aloqa o'rnatishim mumkin. Men ma'lumot olaman, lekin undan foydalanish kerak.

Afsuski, bu men kodlay oladigan narsadan tashqarida. Agar siz javobni bilsangiz yoki to'g'rilanishi kerak bo'lgan haqiqiy xatolar bo'lsa, men eshitishni istardim.:-)

Tavsiya: