Բովանդակություն:
- Քայլ 1: Սկսեք
- Քայլ 2: Hue հավելված
- Քայլ 3: Միացրեք կամուրջը
- Քայլ 4: IP հասցե
- Քայլ 5:
- Քայլ 6: Կարգավորեք ձեր երանգը
- Քայլ 7: Եկեք սկսենք
- Քայլ 8:
- Քայլ 9: Եկեք ինչ -որ բան անենք լույսերի հետ
- Քայլ 10:
- Քայլ 11: Եկեք վերահսկենք լույսը
- Քայլ 12:
- Քայլ 13:
- Քայլ 14:
- Քայլ 15:
- Քայլ 16:
- Քայլ 17:
- Քայլ 18:
- Քայլ 19:
Video: IoT School Project Philips երանգ. 19 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Սա ձեռնարկ է, որը ես պետք է գրեի դպրոցի համար: Այն ամբողջական չէ և վստահ չեմ, որ կարող եք նույնիսկ օգտագործել այն: API- ի իմ իմացությունը նվազագույնն է: Մենք ցանկանում էինք ինտերակտիվ հայելի պատրաստել, որի մեջքին լուսարձակներ արձագանքում էին եղանակին, լույսը դրսից և այլն:
Ես նայեցի, թե ինչպես կարող եմ ծրագրավորել Philips Hue լամպը Arduino- ով: Սրանում ես բացատրում եմ իմ բոլոր քայլերը և որքան հեռու եմ հասել: Ինձ չի հաջողվել ծրագրավորել Hue- ն Arduino- ով, բայց կարծում եմ, որ դա լավ սկիզբ է:
Ինձ պետք էր սա. Arduino a hue լամպ կամուրջ Philips Hue ծրագրավորողի հաշիվ
Աղբյուրներ ՝ https://www.developers.meethue.com/documentation/g…https://github.com/bsalinas/ArduinoHuehttps://arduino-esp8266.readthedocs.io/hy/latest/e…https:// www.makeuseof.com/tag/control-philips-hue-…
Քայլ 1: Սկսեք
Նախքան API փաստաթղթերին մուտք գործելը, ձեզ հարկավոր է գրանցվել որպես մշակող: Անվճար է, բայց դուք պետք է ընդունեք պայմաններն ու պայմանները: Կարող եք պատրաստել այստեղ>
Քայլ 2: Hue հավելված
Ներբեռնեք պաշտոնական Philips Hue ծրագիրը: Միացրեք ձեր հեռախոսը այն ցանցին, որտեղ ցանկանում եք, որ միացված է Hue կամուրջը:
Քայլ 3: Միացրեք կամուրջը
Միացրեք ձեր կամուրջը ձեր ցանցի հետ և գործում է ճիշտ: Ստուգեք, որ սմարթֆոնների հավելվածը կարող է վերահսկել նույն ցանցի լույսերը: Այն պետք է լինի նույն Wi-Fi ցանցի վրա:
Քայլ 4: IP հասցե
Այնուհետեւ դուք պետք է բացահայտեք ձեր ցանցի կամրջի IP հասցեն: Ushրագրում կամրջին միանալու համար փորձեք հղումը և փորձեք վերահսկել լույսերը:
Քայլ 5:
Եթե ամեն ինչ աշխատում է, ապա գնացեք հավելվածի կարգավորումների ընտրացանկ: Գնացեք «Իմ կամուրջ», անցեք «Networkանցի կարգավորումներ»: Անջատեք DHCP անջատիչը և կտեսնեք կամրջի IP հասցեն: Նշեք IP հասցեն, ապա նորից միացրեք DHCP- ն:
Քայլ 6: Կարգավորեք ձեր երանգը
Երբ դա գրեցիր, պետք է կարգաբերել քո Երանգը: Այս քայլի համար ձեզ անհրաժեշտ է IP- հասցեն: Դուք պետք է այցելեք հաջորդ կայքը:
/debug/clip.html
Պատկերում ինտերֆեյսը այսպիսի տեսք կունենա: Սա ամբողջ վեբ տրաֆիկի և RESTful երանգի հիմքն է:
Այս տեղեկատվությունը ես ստացել եմ Philips Hue կայքի Restful ինտերֆեյսի մասին:
URL: սա իրականում երանգային համակարգի ներսում որոշակի ռեսուրսի (իրի) տեղական հասցեն է: Դա կարող է լինել լույս, լույսերի խումբ կամ շատ այլ բաներ: Սա այն օբյեկտն է, որի հետ դուք կշփվեք այս հրամանի շրջանակներում:
Մարմին. Սա հաղորդագրության այն հատվածն է, որը նկարագրում է, թե ինչ եք ուզում փոխել և ինչպես: Այստեղ մուտքագրում եք JSON ձևաչափով ռեսուրսի անունը և արժեքը, որը ցանկանում եք փոխել/ավելացնել:
Մեթոդ. Այստեղ դուք ունեք HTTP 4 մեթոդների ընտրություն, որոնք կարող են օգտագործել երանգի զանգը:
GET. Սա հրաման է հասցեագրված ռեսուրսի մասին ամբողջ տեղեկատվությունը վերցնելու համար
PUT. Սա հասցեագրված ռեսուրսը փոփոխելու հրաման է
ՓՈՍՏ. Սա հասցեագրված ռեսուրսի ներսում նոր ռեսուրս ստեղծելու հրաման է
LEԱՆTE. Սա հասցեագրված ռեսուրսի ջնջման հրահանգն է: Պատասխան. Այս ոլորտում դուք կտեսնեք ձեր հրամանի պատասխանը: Նաև JSON ձևաչափով:
Քայլ 7: Եկեք սկսենք
Այժմ մեզ պետք է պատահականորեն ստեղծված օգտանուն, որը կամուրջը ստեղծում է ձեզ համար: Դուք կստանաք մեկը ՝ լրացնելով սա:
Տեղադրեք URL- ը ՝
/api/
Մարմնի մեջ դնել.
և սեղմել GET
Այս հրամանը հիմնականում ասում է «խնդրում ենք ստեղծել նոր ռեսուրս ներսում /api» (որտեղ օգտվողների անունները նստած են) հետևյալ հատկություններով: Սկզբում դուք սխալ կստանաք, և դա այն պատճառով, որ դա Philips Hue- ի անվտանգության քայլն է: Կոճակը սեղմելով ՝ նրանք ապացուցում են, որ ֆիզիկական մուտք ունեք կամուրջ:
Քայլ 8:
Այժմ սեղմեք կամրջի կոճակը և կրկին կտտացրեք POST- ին:
Այժմ դուք կստանաք օգտվողի անուն, որը կամուրջը պատրաստել է ձեզ համար:
Քայլ 9: Եկեք ինչ -որ բան անենք լույսերի հետ
Պատճենեք ձեր օգտվողի անունը և դրեք այն հետևյալ տողում:
Տեղադրեք սա ձեր URL- ում
/api//լույսեր
Կտտացրեք GET
Դուք պետք է ստանաք JSON պատասխան ձեր համակարգի բոլոր լույսերով և դրանց անուններով:
Քայլ 10:
Ես որոշ փոխառություններ եմ վերցրել դպրոցից, այն, ինչ ես օգտագործում եմ, նույնն է ՝ 3 -ով: Ես ցանկանում եմ այս լույսի մասին կոնկրետ տեղեկատվություն:
Տեղադրեք սա արդեն ունեցած URL- ի կողքին.
/api//լույսեր/3
Կտտացրեք GET
Այժմ դուք ստանում եք Led 3 -ի մասին տեղեկությունները (եթե ունեք 1 -ի նման մեկ այլ թիվ, ապա կտեսնեք տվյալ մեկի մասին տեղեկատվություն):
Քայլ 11: Եկեք վերահսկենք լույսը
Դուք «նահանգում» տեսնում եք, որ իմ led- ը «միացված» է: Մենք ցանկանում ենք վերահսկել լույսը «վիճակում»:
Տեղադրեք սա այն URL- ի կողքին, որն արդեն ունեիք ՝ https:/// api// lights/ 3/ state
Հաջորդ տողը դրեք ՄԱՐՄԻՆ
Սեղմեք PUT
Այժմ ձեր լույսը կանհետանա: Մարմնի արժեքը փոխեք ճշմարիտի և լույսը նորից կվերածվի:
Քայլ 12:
Այժմ ամեն ինչ աշխատում է: Ես ուզում եմ դա անել իմ Arduino- ի հետ: Ես նայեցի այն հղմանը, որը տվել էր Philips Hue- ը `բաց գույնը փոխելու համար: Բայց դրա համար ձեզ հարկավոր է Python, ես երբեք չեմ աշխատել Python- ի հետ, ուստի ուրիշ բան եմ փնտրել:
Եթե ցանկանում եք նայել այս ծածկագրին, ես այստեղ Github- ի հղումն ունեմ.
github.com/bsalinas/ArduinoHue
Քայլ 13:
Ես նայեցի, թե ինչպես կարող եմ տեղեկատվություն ստանալ այս մշակողի կայքից իմ arduino- ին: Շատ ժամանակ ես լեզուն չէի հասկանում: Բայց ես որոշ կոդեր գտա Jamesեյմս Բրյուսի կայքում:
Սա կայքի հղումն է:
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Քայլ 14:
Նախ տեսա, որ նա օգտագործում է Ethernet մալուխ: Ես ունեի միայն Hue Light էլեկտրական լամպ և Bridge a Arduino, և կոդի քիչ ըմբռնում: Որոշ ժամանակ պահանջվեց, որ ես հասկանայի նրա ծածկագիրը, բայց ես դեռ այն իսկապես չեմ հասկանում:
Ես առաջին անգամ ավելացրի այս գրադարանը ինտերնետի համար:
#ներառում
Սա ձեր ցանցի համար է (այն պետք է լինի նույնը, ինչ Hue լամպը)
const char* ssid = ""; // տեղադրել այստեղ ձեր WiFi ցանցի SSIDconst char* password = ""; // տեղադրեք այստեղ ձեր WiFi ցանցի գաղտնաբառը
Սրանք են ձեր կամրջի ID- ն և օգտվողի անունը, որը ձեզ տվել է ձեր կամուրջը: (Չգիտեմ, թե որտեղ է 80 -ը, բայց երբ որոշ հետազոտություններ կատարեցի, տեսա, որ այն օգտագործվում է ցանցերի համար):
// Երանգ հաստատունները const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue օգտվողի անունը const int hueHubPort = 80;
// Hue փոփոխականներ bool hueOn; // միացնել/անջատել int hueBri; // պայծառության արժեքը long hueHue; // երանգի արժեք String hueCmd; // Hue հրաման
անստորագիր երկար բուֆեր = 0; // բուֆեր ստացված տվյալների պահպանման համար unsigned long addr;
Քայլ 15:
Անվավեր կարգավորման համար ես ամենից շատն արել եմ ինտերնետ կապի համար: Այս ծածկագրում Arduino- ն փնտրում է, արդյոք կարող է միանալ ցանցին:
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Միացում %s- ին", ssid);
WiFi.begin (ssid, գաղտնաբառ);
while (WiFi.status ()! = WL_CONNECTED) {
ուշացում (500);
Serial.print ("."); }
Serial.println («կապված»); }
Քայլ 16:
Jamesեյմսի օղակում ես տեսա, որ նա ուներ և այլ հայտարարություն: Բայց դա վերաբերում էր ethernet մալուխին, ուստի ես փորձեցի դա բաց թողնել: Ես նույնպես երբեմն փորձում էի հարմարեցնել այն, բայց դեռ չգիտեի շատ տվյալների հետ: Որոշ բաներ, որոնք ես հասկացա ծածկագրում, տողում այն տվյալներն են, որոնք տրվում են Hue լույսի ներքո:
դատարկ շրջան () {
// Չորս օրինակելի հրամանների շարք, որոնց գույնը մարում է երկու լույս կարմիրի և վարդագույնի միջև: Կարդացեք Hue API // փաստաթղթերը `օգտագործվող ճշգրիտ հրամանների վերաբերյալ ավելի մանրամասն տեղեկությունների համար, սակայն նշեք, որ գնանշման նշաններից պետք է խուսափել:
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transfertime / ":"+String (պատահական (15, 25))+"}"; setHue (1, հրաման);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" tranzitime / ":"+String (պատահական (15, 25))+"}"; setHue (2, հրաման);
հրաման = "{" երանգ / ": 65280, \" նստել / ": 255, \" bri / ": 255, \" անցման ժամանակ / ":"+Լար (պատահական (15, 25))+"}"; setHue (1, հրաման);
հրաման = "{" երանգ / ": 50100, \" նստել / ": 255, \" bri / ": 255, \" անցման ժամանակ / ":"+Լար (պատահական (15, 25))+"}"; setHue (2, հրաման);
}
Քայլ 17:
Հաջորդ ծածկագիրը բուլյան էր, բայց Արդուինոյում պետք է գրել Bool: Սկզբում ես շատ սխալներ ստացա հաճախորդ բառի պատճառով: Այսպիսով, ես նայեցի այն և տեսա, որ ինչ -որ ծածկագիր օգտագործում է «WifiClient client;» տողը: Այսպիսով, ես դա օգտագործում էի և աշխատում էր:
If հայտարարության մեջ դուք հաճախ տեսնում եք client.print: Եթե նայեք ծածկագրին, կտեսնեք, որ ավելի վաղ մուտքագրած URL- ը բաժանված է կտորների: Այժմ մուտքագրեք ձեր սեփական կոդը: Ես ստիպված էի ընտրել իմ 3 -րդ LED լույսը:
/ * setHue () - ը մեր հիմնական հրամանատարական գործառույթն է, որին անհրաժեշտ է փոխանցել թեթև թիվ և * ճիշտ ձևաչափված հրամանի տող JSON ձևաչափով (հիմնականում ՝ փոփոխականների * և արժեքների Javascript ոճի զանգված): Այնուհետև կատարում է HTTP PUT- ի պարզ պահանջ կամուրջը սկզբում նշված IP- ով: */
bool setHue (int lightNum, լարային հրաման) {
WiFiClient հաճախորդ;
եթե (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/լույսերը/"); client.print (lightNum); // hueLight զրոյական հիմքով, ավելացնել 1 client.println («3/վիճակ»); // այստեղ ես փոխեցի երանգի անունը և stateclient.print («Հաղորդավար ՝»); client.println (hueHubIP); client.print ("Բովանդակություն-երկարություն."); client.println (command.length ()); client.println ("Բովանդակության տեսակը. տեքստ/պարզ; charset = UTF-8"); client.println (); // դատարկ տող body client.println (հրաման); // Hue հրաման
} client.stop (); վերադարձնել ճշմարիտ; // հրամանը կատարված է}
այլապես վերադարձնել կեղծ; // հրամանը ձախողվեց}
Քայլ 18:
Երկրորդ բուլյան ժամանակ ես նույնը արեցի որոշ բառեր փոխելով: Ես այն վերբեռնել եմ, որպեսզի տեսնեմ ՝ աշխատում է:
/* Օգնական գործառույթ այն դեպքում, երբ ձեր տրամաբանությունը կախված է լույսի ներկա վիճակից: * Սա սահմանում է մի շարք գլոբալ փոփոխականներ, որոնք կարող եք ստուգել ՝ պարզելու համար, թե արդյոք լույսը ներկայումս վառված է, թե ոչ * և երանգը և այլն: Անհրաժեշտ չէ պարզապես հրամաններ ուղարկելու համար */
bool getHue (int lightNum) {
WiFiClient հաճախորդ;
եթե (client.connect (hueHubIP, hueHubPort)) {
client.print («GET /api /»); client.print (hueUsername); client.print ("/լույսեր/"); client.print (lightNum); client.println ("3/վիճակ"); client.print ("Հաղորդավար` "); client.println (hueHubIP); client.println («Բովանդակության տեսակը ՝ դիմում/json»); client.println («ողջ մնա»); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "ճշմարիտ"); // եթե լույսը միացված է, փոփոխականը սահմանեք ճշմարիտ client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // փոփոխականը սահմանել պայծառության արժեքի client.findUntil ("\" երանգ / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // փոփոխականը սահմանել hue արժեքի ընդմիջման համար; // այլ լուսավոր հատկանիշներ դեռ չգրավելը}} client.stop (); վերադարձնել ճշմարիտ; // գրավված է, bri, hue} else return false; // սխալ կարդալիս, bri, hue}
Քայլ 19:
Կարծում եմ, որ կարող էի կապ հաստատել Philips Hue- ի հետ: Ես ստանում եմ տեղեկատվություն, բայց այն դեռ պետք է օգտագործվի:
Unfortunatelyավոք, սա դուրս է գալիս այն բանից, ինչ ես կարող եմ կոդավորել: Եթե դուք գիտեք պատասխանը, կամ եթե կան իրական սխալներ, որոնք շտկման կարիք ունեն, ես շատ կցանկանայի լսել այն::-)
Խորհուրդ ենք տալիս:
Philips CD-I Roller Controller- ի վերանորոգում `5 քայլ
Philips CD-I Roller Controller- ի վերանորոգում. Philip- ի CD-I Roller Controller- ի ընդհանուր խնդիրն այն է, որ IR Emitters- ը վատթարանա կատարման մեջ, իսկ հետքի գնդակը `դադարեցնելով հետևելը: Կոճակները կաշխատեն, բայց հետքերը չեն շարժվի: Սա կարող է շտկվել ՝ հեռացնելով և փոխարինելով
Space Lettuce Chamber Instructable- Airline High School Robotics: 8 Steps
Space Lettuce Chamber Instructable- Airline High School Robotics: Սա հրահանգ է, որը պատրաստել են երեք ավագ դպրոցականներ, որոնք գրանցվել են ռոբոտաշինության դասի: Մենք կստեղծենք պալատ ՝ տիեզերքում գազար աճեցնելու համար ՝ NASA- ի կողմից Growing Beyond Earth մրցույթի համար: Մենք ձեզ ցույց կտանք, թե ինչպես ստեղծել կոնտեյներ: Եկեք
HackerBox 0047: Old School: 12 Steps
HackerBox 0047: Old School. Ողջույններ HackerBox ցանցահեններին ամբողջ աշխարհում: HackerBox 0047- ով մենք փորձարկում ենք ստեղնաշարի միակցում միկրոկոնտրոլերների համար, VGA վիդեո ազդանշանների ստեղծում, հին դպրոցի BASIC ROM համակարգիչներ, microSD պահեստավորման սարքեր, կողպեքի գործիքներ և բոու
RC Car for School: 5 քայլ
RC Car for School: Անհրաժեշտ նյութեր. 1) 2 PVC խողովակի T- միակցիչներ 2) 1 3 դյույմ երկարությամբ PVC խողովակաշարից 3) 2 շարժիչ (համոզվեք, որ դրանք կարող են տեղավորվել ձեր խողովակի ներսում) 4) 4-5 ոտնաչափ մետաղալար 5) 4 անիվ 6) 2 փոքր մեխ (կօգտագործվեն որպես առանցքներ ձեր անիվների համար) 7) 2 անջատիչ (կոճակները կաշխատեն
Ձևաչափեք Old School Records- ը Mp3- ում ՝ 4 քայլ
Ձևաչափեք Old School Records- ը Mp3- ում. Նա ուներ բազմաթիվ անուններ, որոնք ես լսում եմ, ինչպիսիք են ՝ CCR, Beatles, Moody Blues և Doors: Ես ունեմ նաև ընկեր, որը ցանկանում է դրանք ձայնագրել ձայնասկավառակի վրա, որպեսզի կարողանա լսել նրանց