Turinys:
- 1 žingsnis: pradėkite
- 2 žingsnis: „Hue“programa
- 3 žingsnis: prijunkite tiltą
- 4 žingsnis: IP adresas
- 5 veiksmas:
- 6 veiksmas: derinkite savo atspalvį
- 7 žingsnis: pradėkime
- 8 žingsnis:
- 9 žingsnis: Padarykime ką nors su šviesomis
- 10 veiksmas:
- 11 žingsnis: valdykime šviesą
- 12 žingsnis:
- 13 žingsnis:
- 14 žingsnis:
- 15 žingsnis:
- 16 žingsnis:
- 17 žingsnis:
- 18 žingsnis:
- 19 žingsnis:
Video: „IoT School“projektas „Philips Hue“: 19 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Tai vadovas, kurį turėjau parašyti mokyklai. Jis nėra baigtas ir aš nesu tikras, ar jūs netgi galite jį naudoti. Mano žinios apie API yra minimalios. Norėjome sukurti interaktyvų veidrodį su šviesomis, kurios reaguotų į orą, šviesą iš lauko ir kt.
Pažiūrėjau, kaip galėčiau užprogramuoti „Philips Hue“lempą su „Arduino“. Čia aš paaiškinu visus savo veiksmus ir tai, kaip toli nuėjau. Man nepavyko užprogramuoti atspalvio su „Arduino“, bet manau, kad tai gera pradžia.
Man reikėjo šito: „Arduino“atspalvio lempos ir „Philips Hue“kūrėjo paskyros
Šaltiniai: 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 žingsnis: pradėkite
Kad galėtumėte pasiekti API dokumentus, turėsite užsiregistruoti kaip kūrėjas. Tai nemokama, tačiau jūs turite sutikti su sąlygomis. Tai padaryti galite čia>
2 žingsnis: „Hue“programa
Atsisiųskite oficialią „Philips Hue“programą. Prijunkite telefoną prie tinklo, kuriame norite įjungti „Hue bridge“.
3 žingsnis: prijunkite tiltą
Prijunkite tiltą prie tinklo ir jis tinkamai veikia. Patikrinkite, ar išmaniojo telefono programa gali valdyti to paties tinklo lemputes. Jis turi būti tame pačiame „Wi-Fi“tinkle.
4 žingsnis: IP adresas
Tada turėsite rasti savo tinklo tilto IP adresą. Paspauskite nuorodą, kad programoje prisijungtumėte prie tilto ir pabandytumėte valdyti šviesas.
5 veiksmas:
Jei viskas veikia, eikite į programos nustatymų meniu. Eikite į „Mano tiltas“, eikite į „Tinklo nustatymai“. Išjunkite DHCP jungiklį ir pamatysite tilto IP adresą. Atkreipkite dėmesį į IP adresą, tada vėl įjunkite DHCP.
6 veiksmas: derinkite savo atspalvį
Kai tai užrašėte, turite derinti savo atspalvį. Šiam žingsniui jums reikia IP adreso. Turite aplankyti kitą svetainę.
/debug/clip.html
Sąsaja paveikslėlyje atrodys taip. Tai yra viso žiniatinklio srauto ir „Hue RESTful“sąsajos pagrindas.
Šią informaciją gavau apie „Philips Hue“svetainės „Restful“sąsają.
URL: tai iš tikrųjų yra konkretaus šaltinio (daikto) vietinis adresas atspalvių sistemoje. Tai gali būti šviesa, žibintų grupė ar daug kitų dalykų. Tai yra objektas, su kuriuo bendrausite vykdydami šią komandą.
Turinys: tai yra pranešimo dalis, kurioje aprašoma, ką ir kaip norite pakeisti. Čia JSON formatu įvedate ištekliaus pavadinimą ir vertę, kurią norite pakeisti/pridėti.
Metodas: čia galite pasirinkti iš 4 HTTP metodų, kuriuos gali naudoti atspalvio skambutis.
GET: tai komanda gauti visą informaciją apie adresuotą išteklių
PUT: tai komanda pakeisti adresuotą išteklių
POST: tai komanda sukurti naują išteklių adresuoto ištekliaus viduje
Ištrinti: tai komanda ištrinti adresuotą išteklių Atsakymas: šioje srityje pamatysite atsakymą į savo komandą. Taip pat JSON formatu.
7 žingsnis: pradėkime
Dabar mums reikia atsitiktinai sugeneruoto vartotojo vardo, kurį tiltas sukuria jums. Užpildę gausite vieną.
Įveskite URL:
/api/
Įdėkite kūną:
ir paspauskite GET
Ši komanda iš esmės sako „sukurkite naują šaltinį /api“(kur yra vartotojo vardai) su šiomis savybėmis. Iš pradžių gausite klaidą, nes tai yra „Philips Hue“saugumo žingsnis. Paspaudę mygtuką jie įrodo, kad turite fizinį priėjimą prie tilto.
8 žingsnis:
Dabar paspauskite tiltelio mygtuką ir dar kartą spustelėkite POST.
Dabar gausite naudotojo vardą, kurį tiltas sukūrė jums.
9 žingsnis: Padarykime ką nors su šviesomis
Nukopijuokite savo vartotojo vardą ir įrašykite jį į šią eilutę.
Įdėkite tai į savo URL
/api//žibintai
Paspauskite GET
Turėtumėte gauti JSON atsakymą su visais jūsų sistemos žibintais ir jų pavadinimais.
10 veiksmas:
Aš pasiskolinau keletą „Hue Lights“iš mokyklos, aš naudoju tą, kurio ID yra 3. Noriu konkrečios informacijos apie šią lemputę.
Įdėkite tai šalia jau turimo URL:
/api//lights/3
Paspauskite GET
Dabar jūs gaunate visą informaciją apie „Led 3“(jei turite kitą numerį, pvz., 1, pamatysite informaciją apie tą).
11 žingsnis: valdykime šviesą
Matote „būsenoje“, kad mano indikatorius yra „įjungtas“. Mes norime valdyti šviesą „būsenoje“.
Įdėkite tai šalia jau turėto URL: https:/// api// lights/ 3/ state
Įdėkite kitą eilutę į BODY
Paspauskite PUT
Dabar jūsų šviesa užges! Pakeiskite kūno vertę į teisingą ir šviesa vėl įsijungs.
12 žingsnis:
Dabar viskas veikia, noriu tai padaryti su savo „Arduino“. Pažvelgiau į „Philips Hue“pateiktą nuorodą, kad pasikeistų šviesos spalva. Bet jums reikia „Python“, aš niekada nedirbau su „Python“, todėl ieškojau ko nors kito.
Jei norite pažvelgti į šį kodą, turiu „Github“nuorodą čia:
github.com/bsalinas/ArduinoHue
13 žingsnis:
Pažiūrėjau, kaip galėčiau gauti informacijos iš šios kūrėjų svetainės į savo arduino. Dažniausiai nesupratau kalbos. Bet aš radau tam tikrą kodą svetainėje iš Jameso Bruce'o.
Tai yra nuoroda į svetainę.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
14 žingsnis:
Pirmiausia pamačiau, kad jis naudoja Ethernet kabelį. Aš turėjau tik „Hue“lemputę ir „Bridge Arduino“ir mažai supratau kodą. Prireikė šiek tiek laiko, kol supratau jo kodą, bet vis tiek to nesuprantu.
Pirmą kartą šią biblioteką pridėjau internete.
#įtraukti
Tai skirta jūsų tinklui (jis turi būti toks pat kaip „Hue Light“lemputė)
const char* ssid = ""; // įdėk čia savo WiFi tinklą SSIDconst char* password = ""; // įdėkite čia savo „WiFi“tinklo slaptažodį
Tai yra jūsų tilto ID ir jūsų tilto naudotojo vardas. (Aš nežinau, kur reiškia 80, bet kai aš padariau keletą tyrimų, pamačiau, kad jis buvo naudojamas tinklams).
// Atspalvio konstantos const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // „Hue“vartotojo vardas const int hueHubPort = 80;
// Atspalvio kintamieji bool hueOn; // įjungti/išjungti int hueBri; // ryškumo reikšmė ilgas atspalvisHue; // atspalvio reikšmė String hueCmd; // Hue komanda
nepasirašytas ilgas buferis = 0; // buferis gautam duomenų saugojimui unsigned long addr;
15 žingsnis:
Dėl tuštumos sąrankos aš daugiausiai padariau dėl interneto ryšio. Šiame kode „Arduino“ieško, ar gali prisijungti prie tinklo.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Prisijungimas prie %s", ssid);
WiFi.begin (ssid, slaptažodis);
while (WiFi.status ()! = WL_CONNECTED) {
vėlavimas (500);
Serijinis atspaudas ("."); }
Serial.println ("prijungtas"); }
16 žingsnis:
Džeimso kilpoje pamačiau, kad jis turi pareiškimą „Jei ir kitaip“. Bet tai buvo eterneto kabelis, todėl bandžiau to neatsižvelgti. Aš taip pat kartais bandžiau jį koreguoti, bet dar nežinojau, turėdamas daug duomenų. Kai kurie kodo dalykai, kuriuos aš supratau, eilutėje yra duomenys, kurie pateikiami atspalvio šviesai.
void loop () {
// Keturių komandų pavyzdžių serija, kurios spalva išblukina dvi šviesas tarp raudonos ir rožinės spalvos. Perskaitykite „Hue API //“dokumentaciją, kad gautumėte daugiau informacijos apie tikslias komandas, kurios turi būti naudojamos, tačiau atkreipkite dėmesį, kad kabutės turi būti pašalintos.
Styginių komanda = "{" on / ": tiesa, \" atspalvis / ": 50100, \" sat / ": 255, \" bri / ": 255, \" pereinamojo laiko / ":"+eilutė (atsitiktinė (15, 25))+"}"; setHue (1, komanda);
command = "{" on / ": tiesa, \" atspalvis / ": 65280, \" sat / ": 255, \" bri / ": 255, \" pereinamojo laiko / ":"+eilutė (atsitiktinė (15, 25))+„}“; setHue (2, komanda);
command = "{" atspalvis / ": 65280, \" sat / ": 255, \" bri / ": 255, \" pereinamojo laiko / ":"+Styga (atsitiktinė (15, 25))+"}"; setHue (1, komanda);
command = "{" atspalvis / ": 50100, \" sat / ": 255, \" bri / ": 255, \" pereinamojo laiko / ":"+Eilutė (atsitiktinė (15, 25))+"}"; setHue (2, komanda);
}
17 žingsnis:
Kitas kodas buvo „Boolean“, tačiau „Arduino“turite parašyti „Bool“. Iš pradžių dėl žodžio klientas gavau daug klaidų. Taigi aš pažvelgiau į jį ir pamačiau, kad kai kurie kodai naudoja eilutę „WifiClient client;“. Taigi aš jį naudojau ir tai veikė.
Jei teiginyje dažnai matote client.print. Jei pažvelgsite į kodą, pamatysite, kad anksčiau įvestas URL yra padalintas į dalis. Dabar įveskite savo kodą. Turėjau pasirinkti trečią LED lemputę.
/ * setHue () yra mūsų pagrindinė komandų funkcija, kuriai reikia perduoti šviesos skaičių ir * tinkamai suformatuotą komandų eilutę JSON formatu (iš esmės „Javascript“stiliaus kintamųjų masyvas * ir reikšmės. Tada ji pateikia paprastą HTTP PUT užklausą tiltas pradžioje nurodytu IP. */
bool setHue (int lightNum, String komanda) {
„WiFiClient“klientas;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print („PUT /api /“); client.print (hueUsername); client.print ("/žibintai/"); client.print („lightNum“); // hueLight nulinis, pridėkite 1 klientą.println ("3/state"); // čia pakeičiau atspalvio pavadinimą ir būsenos klientą.print ("Host:"); client.println (hueHubIP); client.print ("Turinio ilgis:"); client.println (command.length ()); client.println ("Turinio tipas: tekstas/paprastas; simbolių rinkinys = UTF-8"); klientas.println (); // tuščia eilutė prieš kūno klientą.println (komanda); // Hue komanda
} client.stop (); grįžti tiesa; // komanda įvykdyta}
else return false; // komanda nepavyko}
18 žingsnis:
Per antrąjį „Boolean“tą patį padariau pakeisdamas kai kuriuos žodžius. Įkėliau, kad pamatyčiau, ar veikia.
/* Pagalbinė funkcija tuo atveju, jei jūsų logika priklauso nuo esamos šviesos būsenos. * Tai nustato daugybę visuotinių kintamųjų, kuriuos galite patikrinti, norėdami sužinoti, ar lemputė šiuo metu dega, ar ne *, ir atspalvį ir tt. Nebūtina tik komandoms išsiųsti */
bool getHue (int lightNum) {
„WiFiClient“klientas;
if (client.connect (hueHubIP, hueHubPort)) {
client.print („GET /api /“); client.print (hueUsername); client.print ("/žibintai/"); client.print („lightNum“); client.println ("3/būsena"); client.print („Priegloba:“); client.println (hueHubIP); client.println ("Turinio tipas: programa/json"); client.println („išlaikyti gyvybę“); klientas.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "tiesa"); // jei šviečia lemputė, nustatykite kintamąjį į true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // nustatyti kintamąjį į ryškumo vertę client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // nustatyti kintamąjį į atspalvio vertės pertrauką; // dar neužfiksavęs kitų šviesos atributų}} client.stop (); grįžti tiesa; // užfiksuotas, bri, hue} else return false; // klaida skaitant, bri, hue}
19 žingsnis:
Manau, kad galėčiau užmegzti ryšį su „Philips Hue“. Gaunu informacijos, bet ją vis tiek reikia panaudoti.
Deja, tai viršija tai, ką galiu koduoti. Jei žinote atsakymą arba jei yra tikrų klaidų, kurias reikia ištaisyti, norėčiau jį išgirsti.:-)
Rekomenduojamas:
Automatizuotas naminių gyvūnėlių ėdalo dubenėlio projektas: 13 žingsnių
Automatizuoto naminių gyvūnėlių ėdalo dubenėlio projektas: Šioje instrukcijoje bus pavaizduota ir paaiškinta, kaip sukurti automatizuotą, programuojamą naminių gyvūnėlių lesyklėlę su pritvirtintais maisto dubenėliais. Čia pridėjau vaizdo įrašą, kuriame pavaizduota, kaip produktai veikia ir kaip jie atrodo
Padalinkite ir išplėskite „Philips Hue Lightstrip“: 8 žingsniai (su nuotraukomis)
Padalinkite ir išplėskite „Philips Hue Lightstrip“: pridėjau daugiau „protingų namų“tipo įtaisus į mano namus, o vienas iš dalykų, su kuriais žaidžiau, yra „Philips Hue Lightstrip“. Tai LED lempučių juosta, kurią galima valdyti naudojant programą arba iš išmaniojo asistento, pvz., „Alexa“ar
„Gledopto“: pigi „Philips Hue“šviesos juostelės alternatyva: 3 žingsniai
„Gledopto“: pigi „Philips Hue Light Strip“alternatyva: „Philips Hue“šiuo metu parduoda „Philips Hue Light“juosteles tik už 71–90 USD už 2 metrus. Man tai pasirodė labai absurdiška kaina, todėl pradėjau ieškoti alternatyvų. Aš susidūriau su prekės ženklu „Gledopto“, kuris gamina LED juostų valdiklius
„Pasidaryk pats“„Philips Hue“skydelio šviesa: 4 žingsniai (su nuotraukomis)
„Pasidaryk pats“„Philips Hue“skydelio šviesa: neseniai nusipirkau keletą „Philips Hue“lempučių savo miegamajam. Jie puikūs! Aš galiu juos valdyti savo balsu naudodami „Alexa“ir taip pat valdyti juos per savo telefoną. Bandžiau rasti spalvą keičiančią skydelio lemputę, bet, kaip žinote, „Philips Hue“nemato
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): 3 žingsniai
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): NEDARYKITE ŠIO NAUDOTI USB! iš visų komentarų sužinojau, kad tai gali pakenkti jūsų kompiuteriui. mano kompiuteris gerai. Naudokite 600 mA 5v telefono įkroviklį. Aš tai naudoju ir jis veikia gerai, ir niekas negali būti sugadintas, jei naudosite apsauginį kištuką, kad sustabdytumėte maitinimą