Përmbajtje:

Projekti IoT School Philips Ngjyra: 19 hapa
Projekti IoT School Philips Ngjyra: 19 hapa

Video: Projekti IoT School Philips Ngjyra: 19 hapa

Video: Projekti IoT School Philips Ngjyra: 19 hapa
Video: Sydney, Australia Walking Tour - 4K60fps with Captions - Prowalk Tours 2024, Nëntor
Anonim
Projekti IoT School Philips Hue
Projekti IoT School Philips Hue

Ky është një manual që duhet të shkruaj për shkollën. Nuk është i plotë dhe nuk jam i sigurt nëse mund ta përdorni. Njohuritë e mia për API -të janë minimumi minimal. Ne donim të bënim një pasqyrë interaktive me drita në anën e pasme që reagonin ndaj motit, dritë nga jashtë, etj.

Shikova se si mund të programoja një llambë Philips Hue me një Arduino. Në këtë, unë shpjegoj të gjithë hapat e mi dhe sa larg kam arritur. Unë nuk kam arritur të programoj Hue me Arduino, por mendoj se është një fillim i mirë.

Unë kam nevojë për këtë: një llambë Arduino një nuancë një llogari zhvilluesi i urës Philips Hue

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

Hapi 1: Filloni

Para se të keni qasje në dokumentacionin API, do t'ju duhet të regjistroheni si zhvillues. Freeshtë falas, por ju duhet të pranoni kushtet dhe kushtet. Mund ta bëni një këtu>

Hapi 2: Aplikacioni Hue

Shkarkoni aplikacionin zyrtar Philips Hue. Lidhni telefonin tuaj me rrjetin në të cilin dëshironi të jetë ura Hue.

Hapi 3: Lidhni Urën

Lidhni urën tuaj me rrjetin tuaj dhe funksionon siç duhet. Provoni që aplikacioni i smartphone mund të kontrollojë dritat në të njëjtin rrjet. Duhet të jetë në të njëjtin rrjet Wi-Fi.

Hapi 4: Adresa IP

Atëherë ju duhet të zbuloni adresën IP të urës në rrjetin tuaj. Shtyjeni lidhjen për t'u lidhur me urën në aplikacion dhe provoni të kontrolloni dritat.

Hapi 5:

Nëse gjithçka funksionon, shkoni te menyja e cilësimeve në aplikacion. Pastaj shkoni te "Ura ime", shkoni te "Cilësimet e rrjetit". Fikeni ndërruesin DHCP dhe shihni adresën IP të urës. Vini re adresën IP, pastaj ndizni DHCP përsëri.

Hapi 6: Rregulloni ngjyrën tuaj

Rregulloni ngjyrën tuaj
Rregulloni ngjyrën tuaj

Kur e keni shkruar atë, duhet të korrigjoni Hue tuaj. Për këtë hap, keni nevojë për adresën IP. Ju duhet të vizitoni sitin tjetër.

/debug/clip.html

Ndërfaqja do të duket kështu në imazh. Kjo është baza e të gjithë trafikut në internet dhe e ndërfaqes hue RESTful.

Kam marrë këtë informacion në lidhje me ndërfaqen Restful të faqes Philips Hue.

URL: kjo është në të vërtetë adresa lokale e një burimi (sendi) specifik brenda sistemit të ngjyrave. Mund të jetë dritë, një grup dritash ose shumë gjëra të tjera. Ky është objekti me të cilin do të ndërveproni brenda kësaj komande.

Trupi: kjo është pjesa e mesazhit e cila përshkruan atë që dëshironi të ndryshoni dhe si. Këtu futni, në formatin JSON, emrin e burimit dhe vlerën që dëshironi të ndryshoni/shtoni.

Një metodë: këtu ju keni një zgjedhje nga 4 metodat HTTP që thirrja e ngjyrave mund të përdorë.

GET: ky është komanda për të marrë të gjitha informacionet në lidhje me burimin e adresuar

PUT: ky është komanda për të modifikuar një burim të adresuar

POST: ky është komanda për të krijuar një burim të ri brenda burimit të adresuar

FSHIJ: ky është komanda për të fshirë burimin e adresuar Përgjigje: Në këtë zonë, do të shihni përgjigjen ndaj komandës suaj. Gjithashtu në formatin JSON.

Hapi 7: Le të Fillojmë

Le të fillojmë
Le të fillojmë

Tani ne kemi nevojë për një emër përdoruesi të krijuar rastësisht që krijon ura për ju. Ju do të merrni një duke e mbushur këtë.

Vendosni URL -në:

/api/

Vendoseni në TRUP:

dhe shtypni GET

Kjo komandë në thelb thotë "ju lutemi krijoni një burim të ri brenda /api" (ku ulen emrat e përdoruesve) me vetitë e mëposhtme. Në fillim, do të merrni një gabim, dhe kjo sepse është hapi i sigurisë i Philips Hue. Duke shtypur butonin ata vërtetojnë se keni qasje fizike në urë.

Hapi 8:

Imazhi
Imazhi

Tani Shtypni butonin në Urë dhe klikoni përsëri POST.

Tani do të merrni një emër përdoruesi që ura bëri për ju.

Hapi 9: Le të bëjmë diçka me dritat

Le të bëjmë diçka me dritat
Le të bëjmë diçka me dritat

Kopjoni emrin tuaj të përdoruesit dhe vendoseni në rreshtin vijues.

Vendoseni këtë në URL -në tuaj

/api//dritat

Shtypni GET

Ju duhet të merrni një përgjigje JSON me të gjitha dritat në sistemin tuaj dhe emrat e tyre.

Hapi 10:

Imazhi
Imazhi

Kam huazuar disa Hue Lights nga shkolla, ajo që përdor është ajo me id 3. Dua informacion specifik në lidhje me këtë dritë.

Vendoseni këtë pranë URL -së që keni pasur tashmë:

/api//dritat/3

Shtypni GET

Tani ju merrni informacionin për Led 3 (nëse keni një numër tjetër si 1 do të shihni informacione për atë).

Hapi 11: Le të Kontrollojmë Dritën

Le të Kontrollojmë Dritën
Le të Kontrollojmë Dritën

Ju shikoni në "gjendjen" që led im është "on". Ne duam të kontrollojmë dritën në "gjendje".

Vendoseni këtë pranë URL -së që keni pasur tashmë: https:/// api// lights/ 3/ state

Vendos rreshtin tjetër në trup

Shtypni PUT

Tani drita juaj do të fiket! Ndryshoni vlerën në trup në të vërtetë dhe drita do të ndizet përsëri.

Hapi 12:

Tani gjithçka po funksionon Unë dua ta bëj këtë me Arduino -n tim. Shikova lidhjen që dha Philips Hue për të bërë ndryshimin e ngjyrës së lehtë. Por ju keni nevojë për Python për këtë, unë kurrë nuk kam punuar me Python kështu që kërkova diçka tjetër.

Nëse ju pëlqen të shikoni këtë kod, unë kam lidhjen Github këtu:

github.com/bsalinas/ArduinoHue

Hapi 13:

Shikova se si mund të merrja informacion nga kjo faqe zhvilluesi në arduino -n tim. Shumicën e kohës nuk e kuptoja gjuhën. Por gjeta një kod në një faqe në internet nga James Bruce.

Kjo është lidhja me faqen e internetit.

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

Hapi 14:

Së pari pashë që ai po përdorte një kabllo Ethernet. Unë kisha vetëm një llambë Hue Light dhe Bridge a Arduino, dhe pak kuptim të kodit. U desh pak kohë për të kuptuar kodin e tij, por ende nuk e kuptoj vërtet.

Unë së pari shtova këtë bibliotekë për internetin.

#përfshi

Kjo është për rrjetin tuaj (duhet të jetë e njëjtë me llambën Hue Light)

const char* ssid = ""; // vendosni këtu rrjetin tuaj WiFi SSIDconst char* password = ""; // vendosni këtu fjalëkalimin e rrjetit tuaj WiFi

Këto janë ID -ja e Urës suaj dhe emri i përdoruesit që ju ka dhënë ura juaj. (Unë nuk e di se ku qëndron 80, por kur bëra disa kërkime pashë që ai përdorej për rrjete).

// Konstantet e ngjyrave const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Emri i përdoruesit Hue const int hueHubPort = 80;

// Variablat e ngjyrave bool hueOn; // ndez/fik int hueBri; // vlera e shkëlqimit hije e gjatë; // vlera e ngjyrës String hueCmd; // Komanda Hue

tampon i gjatë i panënshkruar = 0; // tampon për ruajtjen e të dhënave të marra addr pa shenjë të gjatë;

Hapi 15:

Për konfigurimin e zbrazëtisë, bëra më shumë për lidhjen në internet. Në këtë kod, Arduino po shikon nëse mund të lidhet me rrjetin.

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

Serial.println ();

Serial.printf ("Lidhja me %s", ssid);

WiFi.filloni (ssid, fjalëkalim);

ndërsa (WiFi.status ()! = WL_CONNECTED) {

vonesë (500);

Serial.print ("."); }

Serial.println ("i lidhur"); }

Hapi 16:

Në lakun e James, pashë që ai kishte një deklaratë If dhe else. Por kjo ishte për kabllon ethernet, kështu që unë u përpoqa ta lija jashtë. Unë gjithashtu nganjëherë u përpoqa ta rregulloja atë, por nuk e dija akoma me shumë të dhëna. Disa gjëra në kodin që kuptova, në varg janë të dhënat që i jepen dritës Hue.

lak void () {

// Një seri prej katër komandash mostër, e cila ngjyrë zbeh dy drita midis të kuqes dhe rozës. Lexoni dokumentacionin API Hue // për më shumë detaje mbi komandat e sakta që do të përdoren, por vini re se shenjat e kuotimit duhet të shmangen.

Komanda e vargut = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" koha e kalimit / ":"+String (rastësor (15, 25))+"}"; setHue (1, komandë);

command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" timetime / ":"+String (rastësor (15, 25))+"}"; setHue (2, komandë);

komandë = "{" nuanca / ": 65280, \" ul / ": 255, \" bri / ": 255, \" koha e kalimit / ":"+Vargu (i rastësishëm (15, 25))+"}"; setHue (1, komandë);

komandë = "{" nuanca / ": 50100, \" ul / ": 255, \" bri / ": 255, \" koha e kalimit / ":"+Vargu (i rastësishëm (15, 25))+"}"; setHue (2, komandë);

}

Hapi 17:

Kodi tjetër ishte një Boolean, por në Arduino ju duhet të shkruani Bool. Në fillim, mora shumë gabime për shkak të fjalës klient. Kështu që e shikova dhe pashë që një kod përdorte linjën "klient WifiClient;". Kështu që unë e përdorja atë dhe funksionoi.

Në deklaratën if shpesh shihni klient.print. Nëse shikoni kodin, do të shihni që URL -ja që keni futur më herët është e ndarë në copa. Tani futni kodin tuaj. Më duhej të zgjidhja dritën time të tretë LED.

/ * setHue () është funksioni ynë kryesor i komandës, i cili duhet të kalojë një numër të lehtë dhe një varg komandash * të formatuar siç duhet në formatin JSON (në thelb një grup i stilit Javascript të variablave * dhe vlerave. Pastaj bën një kërkesë të thjeshtë HTTP PUT për Ura në IP e specifikuar në fillim. */

bool setHue (int lightNum, komanda String) {

Klienti WiFiClient;

nëse (client.connect (hueHubIP, hueHubPort)) {

ndërsa (klienti.lidhur ()) {

client.print ("PUT /api /"); client.print (hueUsername); client.print ("/dritat/"); klient.print (lightNum); // hueLight zero bazuar, shtoni 1 client.println ("3/state"); // këtu kam ndryshuar emrin e ngjyrës dhe stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Përmbajtja-Gjatësia:"); client.println (command.length ()); client.println ("Lloji i Përmbajtjes: tekst/thjeshtë; grupi i karaktereve = UTF-8"); klient.println (); // rresht bosh para body client.println (komandë); // Komanda Hue

} client.stop (); kthehet e vërtetë; // komanda e ekzekutuar}

përndryshe kthehu i rremë; // komanda dështoi}

Hapi 18:

Në Boolean e dytë, bëra të njëjtën gjë me ndryshimin e disa fjalëve. E ngarkova për të parë nëse funksionoi.

/* Një funksion ndihmës në rast se logjika juaj varet nga gjendja aktuale e dritës. * Kjo përcakton një numër të ndryshoreve globale të cilat mund t'i kontrolloni për të gjetur nëse një dritë është aktualisht e ndezur apo jo * dhe nuanca etj. Nuk nevojitet vetëm për të dërguar komandat */

bool getHue (int lightNum) {

Klienti WiFiClient;

nëse (client.connect (hueHubIP, hueHubPort)) {

client.print ("GET /api /"); client.print (hueUsername); client.print ("/dritat/"); klient.print (lightNum); client.println ("3/gjendja"); client.print ("Pritësi:"); client.println (hueHubIP); client.println ("Lloji i përmbajtjes: aplikacion/json"); client.println ("mbaj gjallë"); klient.println ();

ndërsa (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "e vërtetë"); // nëse drita është e ndezur, vendosni ndryshoren në client.findUntil të vërtetë ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // vendosni ndryshoren në vlerën e ndriçimit client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // vendosni ndryshoren në thyerjen e vlerës së ngjyrës; // nuk kap akoma atribute të tjera të lehta}} client.stop (); kthehet e vërtetë; // kapur në, bri, hue} tjetër kthehen false; // leximi i gabimit në, bri, hue}

Hapi 19:

Imazhi
Imazhi

Unë mendoj se mund të krijoj një lidhje me Philips Hue. Unë marr informacion, por ai ende duhet të përdoret.

Fatkeqësisht, kjo shkon përtej asaj që mund të kodoj. Nëse e dini përgjigjen, ose nëse ka gabime të vërteta që duhet të korrigjohen, do të më pëlqente ta dëgjoja.:-)

Recommended: