INHOUDSOPGAWE:
- Stap 1: Begin
- Stap 2: Hue -app
- Stap 3: Verbind die brug
- Stap 4: IP -adres
- Stap 5:
- Stap 6: Ontfout u kleur
- Stap 7: Kom ons begin
- Stap 8:
- Stap 9: Kom ons doen iets met die ligte
- Stap 10:
- Stap 11: Kom ons beheer die lig
- Stap 12:
- Stap 13:
- Stap 14:
- Stap 15:
- Stap 16:
- Stap 17:
- Stap 18:
- Stap 19:
Video: IoT -skoolprojek Philips Hue: 19 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Dit is 'n handleiding wat ek vir die skool moes skryf. Dit is nie volledig nie en ek is nie seker of u dit selfs kan gebruik nie. My kennis van API's is die absolute minimum. Ons wou 'n interaktiewe spieël maak met ligte aan die agterkant wat reageer op die weer, lig van buite, ens.
Ek kyk hoe ek 'n Philips Hue -lamp met 'n Arduino kan programmeer. Hierin verduidelik ek al my stappe en hoe ver ek gekom het. Ek het nie daarin geslaag om die Hue met die Arduino te programmeer nie, maar ek dink dit is 'n goeie begin.
Ek het dit nodig gehad: 'n Arduino, 'n tintlamp, 'n Philips Hue -ontwikkelaarrekening
Bronne: 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-…
Stap 1: Begin
Voordat u toegang tot die API -dokumentasie het, moet u as ontwikkelaar registreer. Dit is gratis, maar u moet die bepalings en voorwaardes aanvaar. U kan hier een maak>
Stap 2: Hue -app
Laai die amptelike Philips Hue -app af. Koppel u telefoon aan die netwerk waarop u wil hê dat die Hue -brug is.
Stap 3: Verbind die brug
Koppel u brug aan u netwerk en werk behoorlik. Toets dat die slimfoon -app die ligte op dieselfde netwerk kan beheer. Dit moet op dieselfde Wi-Fi-netwerk wees.
Stap 4: IP -adres
Dan moet u die IP -adres van die brug op u netwerk ontdek. Druk die skakel om aan te sluit op die brug in die app en probeer die ligte beheer.
Stap 5:
As dit alles werk, gaan dan na die instellingsmenu in die app. Gaan dan na "My Bridge", na "Netwerkinstellings". Skakel die DHCP -skakelaar uit en u sien die IP -adres van die brug. Let op die IP -adres en skakel DHCP weer aan.
Stap 6: Ontfout u kleur
As u dit neerskryf, moet u u Hue ontfout. U benodig die IP-adres vir hierdie stap. U moet die volgende webwerf besoek.
/debug/clip.html
Die koppelvlak sal so in die prentjie lyk. Dit is die basis van alle webverkeer en van die tint RESTful -koppelvlak.
Ek het hierdie inligting gekry oor die rustige koppelvlak van die Philips Hue -webwerf.
URL: dit is eintlik die plaaslike adres van 'n spesifieke bron (ding) in die kleurstelsel. Dit kan lig, 'n groep ligte of vele meer dinge wees. Dit is die voorwerp waarmee u binne hierdie opdrag sal reageer.
'N Liggaam: dit is die deel van die boodskap wat beskryf wat u wil verander en hoe. Hier voer u die bronnaam en waarde in JSON -formaat in wat u wil verander/byvoeg.
'N Metode: hier kan u die 4 HTTP -metodes kies wat die tintoproep kan gebruik.
KRY: dit is die opdrag om alle inligting oor die aangespreekde hulpbron te gaan haal
PUT: dit is die opdrag om 'n aangespreekde bron te verander
POST: dit is die opdrag om 'n nuwe hulpbron binne die aangepaste hulpbron te skep
SKrap: dit is die opdrag om die aangespreekte hulpbron te verwyder Antwoord: In hierdie gebied sien u die antwoord op u opdrag. Ook in JSON -formaat.
Stap 7: Kom ons begin
Nou benodig ons 'n lukraak gegenereerde gebruikersnaam wat die brug vir u skep. U kry een deur dit in te vul.
Sit die URL in:
/api/
Sit die LIGGAAM in:
en druk GET
Hierdie opdrag sê basies "skep asseblief 'n nuwe bron binne /api" (waar gebruikersname sit) met die volgende eienskappe. U sal eers 'n fout kry, en dit is omdat dit die veiligheidsstap van Philips Hue is. Deur op die knoppie te druk, bewys hulle dat u fisiese toegang tot die brug het.
Stap 8:
Druk nou op die knoppie op die brug en klik weer op POST.
Nou kry u 'n gebruikersnaam wat die brug vir u gemaak het.
Stap 9: Kom ons doen iets met die ligte
Kopieer u gebruikersnaam en plaas dit in die volgende reël.
Plaas dit in u URL
/api//lights
Druk GET
U moet 'n JSON -antwoord kry met al die ligte in u stelsel en die name daarvan.
Stap 10:
Ek het 'n paar Hue Lights by die skool geleen, die een wat ek gebruik, is die een met id 3. Ek wil spesifieke inligting oor hierdie lig hê.
Sit dit langs die URL wat u reeds gehad het:
/api//lights/3
Druk GET
Nou kry u al die inligting oor Led 3 (as u 'n ander nommer soos 1 het, sien u inligting daaroor).
Stap 11: Kom ons beheer die lig
U sien in 'staat' dat my led 'aan' is. Ons wil die lig in 'toestand' beheer.
Plaas dit langs die URL wat u reeds gehad het: https:/// api// lights/ 3/ state
Plaas die volgende reël in die LIGGAAM
Druk PUT
Nou gaan jou lig af! Verander die waarde in die liggaam na waar en die lig sal weer aanskakel.
Stap 12:
Nou werk alles, ek wil dit met my Arduino doen. Ek kyk na die skakel wat Philips Hue gegee het om die ligte kleur te verander. Maar u het Python hiervoor nodig; ek het nooit met Python gewerk nie, so ek het iets anders gesoek.
As u na hierdie kode wil kyk, het ek die Github -skakel hier:
github.com/bsalinas/ArduinoHue
Stap 13:
Ek het gekyk hoe ek inligting van hierdie ontwikkelaarswebwerf na my arduino kan kry. Meestal het ek nie die taal verstaan nie. Maar ek het 'n kode gevind op 'n webwerf van James Bruce.
Dit is die skakel na die webwerf.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Stap 14:
Eers het ek gesien dat hy 'n Ethernet -kabel gebruik. Ek het net 'n Hue -gloeilamp en Bridge 'n Arduino gehad, en ek het min begrip vir kode. Dit het 'n rukkie geneem voordat ek sy kode verstaan het, maar ek verstaan dit steeds nie regtig nie.
Ek het eers hierdie biblioteek vir die internet bygevoeg.
#insluit
Dit is vir u netwerk (dit moet dieselfde wees as die Hue -gloeilamp)
const char* ssid = ""; // plaas hier u WiFi -netwerk SSIDconst char* password = ""; // plaas u WiFi -netwerkwagwoord hier
Dit is die ID van u brug en die gebruikersnaam wat u aan u gegee het. (Ek weet nie waar die 80 voor staan nie, maar toe ek navorsing doen, het ek gesien dat dit vir netwerke gebruik is).
// Hue -konstantes const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue gebruikersnaam const int hueHubPort = 80;
// Hue -veranderlikes bool hueOn; // aan/af int hueBri; // helderheid waarde long hueHue; // kleurwaarde String hueCmd; // Hue -opdrag
ongetekende lang buffer = 0; // buffer vir ontvangde data stoor ongetekende lang addr;
Stap 15:
Vir die leemte -opstelling het ek die meeste gedoen vir die internetverbinding. In hierdie kode kyk die Arduino of hy met die netwerk kan skakel.
ongeldige opstelling () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Koppel aan %s", ssid);
WiFi.begin (ssid, wagwoord);
terwyl (WiFi.status ()! = WL_CONNECTED) {
vertraging (500);
Serial.print ("."); }
Serial.println ("verbind"); }
Stap 16:
In die loop van James sien ek dat hy 'n If and else -verklaring het. Maar dit was vir die ethernetkabel, so ek het probeer om dit uit te laat. Ek het dit soms ook probeer aanpas, maar ek het nog nie geweet met baie data nie. Sommige dinge in die kode wat ek wel verstaan het, in die string is die data wat aan die Hue -lig gegee word.
leemte -lus () {
// 'n Reeks van vier voorbeeldopdragte, waarin die kleur twee ligte tussen rooi en pienk vervaag. Lees meer oor die Hue API // -dokumentasie vir meer inligting oor die presiese opdragte wat u moet gebruik, maar let op dat aanhalingstekens ontsnap moet word.
String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transittime / ":"+String (random (15, 25))+"}"; setHue (1, opdrag);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+String (random (15, 25))+"}"; setHue (2, opdrag);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" oorgangstyd / ":"+String (random (15, 25))+"}"; setHue (1, opdrag);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" oorgangstyd ":"+String (random (15, 25))+"}"; setHue (2, opdrag);
}
Stap 17:
Die volgende kode was 'n Boole, maar in Arduino moet u Bool skryf. Ek het aanvanklik baie foute gekry as gevolg van die woord kliënt. Daarom het ek dit opgesoek en gesien dat 'n kode die lyn "WifiClient -kliënt;" gebruik. So ek het dit gebruik en dit het gewerk.
In die if -verklaring sien u gereeld client.print. As u na die kode kyk, sal u sien dat die URL wat u vroeër ingevoer het, in stukke verdeel is. Voer nou u eie kode in. Ek moes my derde LED -lig kies.
/ * setHue () is ons belangrikste opdragfunksie, wat 'n ligte nommer en 'n * behoorlik geformateerde opdragstring in JSON -formaat moet deurgee (basies 'n Javascript -styl verskeidenheid veranderlikes * en waardes). 'n Eenvoudige HTTP PUT -versoek moet die brug by die IP wat aan die begin gespesifiseer is. */
bool setHue (int lightNum, String -opdrag) {
WiFiClient -kliënt;
as (client.connect (hueHubIP, hueHubPort)) {
terwyl (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); // gebaseer op hueLight, voeg 1 client.println ("3/state") by; // hier het ek die kleurnaam en stateclient.print ("Host:") verander; client.println (hueHubIP); client.print ("Inhoudlengte:"); client.println (command.length ()); client.println ("Inhoudstipe: teks/plain; charset = UTF-8"); client.println (); // leë reël voor body client.println (command); // Hue -opdrag
} client.stop (); terugkeer waar; // opdrag uitgevoer}
anders terugkeer vals; // opdrag misluk}
Stap 18:
By die tweede Boolean het ek dieselfde gedoen deur 'n paar woorde te verander. Ek het dit opgelaai om te sien of dit werk.
/* 'N Helperfunksie as u logika afhang van die huidige toestand van die lig. * Dit stel 'n aantal globale veranderlikes in wat u kan kontroleer om uit te vind of 'n lamp tans brand of nie * en die tint, ens. Nie nodig om opdragte uit te stuur */
bool getHue (int lightNum) {
WiFiClient -kliënt;
as (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); client.println ("3/staat"); client.print ("Host:"); client.println (hueHubIP); client.println ("Inhoudstipe: toepassing/json"); client.println ("hou lewendig"); client.println ();
terwyl (client.connected ()) {if (client.available ()) {client.findUntil ("\" op / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "waar"); // as die lig aan is, stel die veranderlike in op true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // stel veranderlike in op helderheidswaarde client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // stel veranderlike in op die waardeverskil; // neem nog nie ander ligkenmerke vas nie}} client.stop (); terugkeer waar; // vasgelê op, bri, hue} anders terugkeer vals; // fout by lees op, bri, hue}
Stap 19:
Ek dink ek kon 'n verbinding maak met die Philips Hue. Ek ontvang inligting, maar dit moet nog steeds gebruik word.
Ongelukkig gaan dit verder as wat ek kan kodeer. As u die antwoord ken, of as daar werklike foute is wat reggestel moet word, hoor ek dit graag.:-)
Aanbeveel:
Hergebruik Philips Wake Up Light HF3550 + Ipod Touch 4de: 5 stappe
Hergebruik Philips Wake Up Light HF3550 + Ipod Touch 4th: EDIT 2019/10/28 Ek het 'n nuwe gebarste IPA -lêer opgelaai (dankie irastignac) en die anonieme lêerskakel opgedateer. Dit moet voorkom dat die oomblik dat u my appel -ID ingevoer word. EDIT 2019/10/22 dit lyk asof die Philips IPA -lêer met my appel onderteken is
Verdeel en verleng die Philips Hue Lightstrip: 8 stappe (met foto's)
Verdeel en brei die Philips Hue Lightstrip uit: ek het meer "slim huis" bygevoeg tik gadgets by my huis, en een van die dinge waarmee ek gespeel het, is die Philips Hue Lightstrip. Dit is 'n strook LED -ligte wat vanaf 'n app of 'n slim assistent soos Alexa of
Gledopto: goedkoop Philips Hue Light Strip -alternatief: 3 stappe
Gledopto: Goedkoop Philips Hue Light Strip Alternatief: Philips Hue verkoop tans hul Philips Hue Light strips vir slegs $ 71-90 vir slegs 2 meter. Ek vind dit 'n baie absurde prys, so ek het na alternatiewe begin soek. Ek het 'n handelsmerk genaamd Gledopto teëgekom wat LED -strookbeheerders maak
DIY Philips Hue -paneellig: 4 stappe (met foto's)
DIY Philips Hue -paneellig: Ek het onlangs 'n paar Philips Hue -ligte vir my slaapkamer gekoop. Hulle is puik! Ek kan hulle met my stem beheer met behulp van Alexa en ook via my telefoon beheer. Ek het probeer om 'n kleurveranderende paneellig te vind, maar soos u dalk weet, sien Philips Hue nie
Gemoedprojektor (gekapte Philips Hue -lig met GSR) TfCD: 7 stappe (met foto's)
Gemoedprojektor (gekapte Philips Hue Light With GSR) TfCD: Deur Laura Ahsmann & Maaike Weber Doel: Lae bui en spanning is 'n groot deel van die moderne vinnige lewe. Dit is ook iets wat buite sigbaar is. Wat as ons ons spanningsvlak visueel en akoesties sou kon projekteer met