Satura rādītājs:
- 1. darbība. Sāciet darbu
- 2. darbība: lietotne Hue
- 3. solis: savienojiet tiltu
- 4. darbība: IP adrese
- 5. darbība:
- 6. darbība: atkļūdojiet savu nokrāsu
- 7. darbība. Sāksim darbu
- 8. darbība
- 9. solis: darīsim kaut ko ar gaismām
- 10. darbība:
- 11. solis: kontrolēsim gaismu
- 12. solis:
- 13. darbība
- 14. darbība:
- 15. darbība:
- 16. darbība:
- 17. darbība:
- 18. darbība:
- 19. darbība:
Video: IoT skolas projekts Philips Hue: 19 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Šī ir rokasgrāmata, kas man bija jāraksta skolai. Tas nav pilnīgs, un es neesmu pārliecināts, vai jūs to pat varat izmantot. Manas zināšanas par API ir minimums. Mēs vēlējāmies izveidot interaktīvu spoguli ar gaismām aizmugurē, kas reaģēja uz laika apstākļiem, gaismu no ārpuses utt.
Es paskatījos, kā es varētu programmēt Philips Hue lampu ar Arduino. Šajā es izskaidroju visus savus soļus un to, cik tālu esmu nonācis. Man nav izdevies programmēt Hue ar Arduino, bet es domāju, ka tas ir labs sākums.
Man ir vajadzīgs šis: Arduino hue lampa un tilta Philips Hue izstrādātāja konts
Avoti: 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. darbība. Sāciet darbu
Lai piekļūtu API dokumentācijai, jums jāreģistrējas kā izstrādātājam. Tas ir bez maksas, taču jums ir jāpiekrīt noteikumiem un nosacījumiem. To varat izveidot šeit>
2. darbība: lietotne Hue
Lejupielādējiet oficiālo Philips Hue lietotni. Pievienojiet tālruni tīklam, kurā vēlaties ieslēgt Hue Bridge.
3. solis: savienojiet tiltu
Savienojiet savu tiltu ar tīklu un tas darbojas pareizi. Pārbaudiet, vai viedtālruņa lietotne var kontrolēt gaismas tajā pašā tīklā. Tam jābūt vienā Wi-Fi tīklā.
4. darbība: IP adrese
Tad jums ir jāatklāj sava tīkla tilta IP adrese. Nospiediet saiti, lai lietotnē izveidotu savienojumu ar tiltu un mēģinātu kontrolēt gaismas.
5. darbība:
Ja viss darbojas, dodieties uz lietotnes iestatījumu izvēlni. Pēc tam dodieties uz sadaļu “Mans tilts”, dodieties uz sadaļu “Tīkla iestatījumi”. Izslēdziet DHCP slēdzi, un jūs redzat tilta IP adresi. Ievērojiet IP adresi un pēc tam atkal ieslēdziet DHCP.
6. darbība: atkļūdojiet savu nokrāsu
Kad jūs to pierakstījāt, jums ir jāatjauno jūsu nokrāsa. Lai to izdarītu, jums ir nepieciešama IP adrese. Jums jāapmeklē nākamā vietne.
/debug/clip.html
Interfeiss attēlā izskatīsies šādi. Tas ir visas tīmekļa trafika un nokrāsas RESTful saskarnes pamats.
Es saņēmu šo informāciju par Philips Hue vietnes mierīgo saskarni.
URL: šī faktiski ir konkrēta resursa (lietas) vietējā adrese nokrāsu sistēmā. Tas varētu būt gaisma, gaismas grupa vai daudzas citas lietas. Šis ir objekts, ar kuru jūs mijiedarbosities šīs komandas ietvaros.
Pamatteksts: šī ir ziņojuma daļa, kurā aprakstīts, ko un kā vēlaties mainīt. Šeit JSON formātā ievadiet resursa nosaukumu un vērtību, kuru vēlaties mainīt/pievienot.
Metode: šeit jūs varat izvēlēties 4 HTTP metodes, kuras var izmantot nokrāsas zvans.
GET: šī ir komanda, lai ielādētu visu informāciju par adresēto resursu
PUT: šī ir komanda, lai mainītu adresētu resursu
POST: šī ir komanda, lai adresētā resursā izveidotu jaunu resursu
DZĒST: šī ir komanda izdzēst adresēto resursu Atbilde: Šajā apgabalā redzēsit atbildi uz savu komandu. Arī JSON formātā.
7. darbība. Sāksim darbu
Tagad mums ir nepieciešams nejauši ģenerēts lietotājvārds, ko tilts jums izveido. Jūs to iegūsit, aizpildot šo.
Ievadiet URL:
/api/
Ielieciet BODY:
un nospiediet GET
Šī komanda būtībā saka "lūdzu, izveidojiet jaunu resursu iekšpusē /api" (kur atrodas lietotājvārdi) ar šādām īpašībām. Sākumā jūs saņemsit kļūdu, un tas ir tāpēc, ka tas ir Philips Hue drošības solis. Nospiežot pogu, viņi pierāda, ka jums ir fiziska piekļuve tiltam.
8. darbība
Tagad nospiediet pogu uz tilta un vēlreiz noklikšķiniet uz POST.
Tagad jūs saņemsiet lietotājvārdu, ko tilts jums izveidoja.
9. solis: darīsim kaut ko ar gaismām
Kopējiet savu lietotājvārdu un ievietojiet to nākamajā rindā.
Ievietojiet to savā URL
/api//gaismas
Nospiediet GET
Jums vajadzētu saņemt JSON atbildi ar visām jūsu sistēmas gaismām un to nosaukumiem.
10. darbība:
Es aizņēmos dažus Hue Lights no skolas, es izmantoju to, kura ID ir 3. Es gribu konkrētu informāciju par šo gaismu.
Ievietojiet to blakus jau esošajam URL:
/api//gaismas/3
Nospiediet GET
Tagad jūs saņemat visu informāciju par Led 3 (ja jums ir cits numurs, piemēram, 1, jūs redzēsit informāciju par to).
11. solis: kontrolēsim gaismu
Jūs redzat "stāvoklī", ka mans LED ir ieslēgts. Mēs vēlamies kontrolēt gaismu "stāvoklī".
Ievietojiet to blakus jau esošajam URL: https:/// api// lights/ 3/ state
Ievietojiet nākamo rindu BODY
Nospiediet PUT
Tagad jūsu gaisma izslēgsies! Mainiet ķermeņa vērtību uz patiesu, un gaisma atkal iedegsies.
12. solis:
Tagad viss darbojas, es vēlos to darīt ar savu Arduino. Es paskatījos saiti, ko deva Philips Hue, lai mainītu gaismas krāsu. Bet jums ir nepieciešams Python, es nekad neesmu strādājis ar Python, tāpēc es meklēju kaut ko citu.
Ja vēlaties apskatīt šo kodu, man ir Github saite šeit:
github.com/bsalinas/ArduinoHue
13. darbība
Es paskatījos, kā es varētu iegūt informāciju no šīs izstrādātāju vietnes savam arduino. Lielāko daļu laika es nesapratu valodu. Bet es atradu kādu kodu Džeimsa Brūsa vietnē.
Šī ir saite uz vietni.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
14. darbība:
Vispirms es redzēju, ka viņš izmanto Ethernet kabeli. Man bija tikai Hue gaismas spuldze un tilts Arduino, un maz sapratu kodu. Pagāja kāds laiks, līdz es sapratu viņa kodu, bet es joprojām to īsti nesaprotu.
Es pirmo reizi pievienoju šo bibliotēku internetam.
#iekļaut
Tas attiecas uz jūsu tīklu (tam jābūt tādam pašam kā Hue Light spuldzei)
const char* ssid = ""; // ielieciet šeit savu WiFi tīklu SSIDconst char* password = ""; // ielieciet šeit savu WiFi tīkla paroli
Šie ir jūsu tilta ID un tilta lietotājvārds. (Es nezinu, kur ir 80, bet, veicot kādu pētījumu, es redzēju, ka tas tika izmantots tīkliem).
// Hue konstantes const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue lietotājvārds const int hueHubPort = 80;
// Hue mainīgie bool hueOn; // ieslēgts/izslēgts int hueBri; // spilgtuma vērtība long hueHue; // nokrāsas vērtība String hueCmd; // Hue komanda
neparakstīts garš buferis = 0; // buferis saņemtajai datu krātuvei neparakstīts garš addr;
15. darbība:
Tukšuma iestatīšanai es visvairāk darīju interneta savienojuma dēļ. Šajā kodā Arduino meklē, vai viņš var izveidot savienojumu ar tīklu.
void setup () {Serial.begin (9600);
Sērijas.println ();
Serial.printf ("Savienojuma izveide ar %s", ssid);
WiFi.begin (ssid, parole);
kamēr (WiFi.status ()! = WL_CONNECTED) {
kavēšanās (500);
Sērijas nospiedums ("."); }
Serial.println ("savienots"); }
16. darbība:
Džeimsa cilpā es redzēju, ka viņam ir paziņojums Ja un citādi. Bet tas bija par Ethernet kabeli, tāpēc es centos to atstāt. Es arī dažreiz mēģināju to pielāgot, bet es vēl nezināju ar daudziem datiem. Dažas lietas kodā, ko es sapratu, virknē ir dati, kas tiek piešķirti nokrāsas gaismai.
void loop () {
// Četru paraugu komandu sērija, kuras krāsa izgaismo divas gaismas starp sarkano un rozā. Izlasiet Hue API // dokumentāciju, lai iegūtu sīkāku informāciju par precīzām izmantojamām komandām, taču ņemiet vērā, ka pēdiņās ir jābūt atstarpēm.
String komanda = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" pārejas laiks / ":"+virkne (nejauša (15, 25))+"}"; setHue (1, komanda);
command = "{" on / ": true, \" nokrāsa / ": 65280, \" sat / ": 255, \" bri / ": 255, \" pārejas laiks / ":"+virkne (nejauša (15, 25))+"}"; setHue (2, komanda);
command = "{" nokrāsa / ": 65280, \" sat / ": 255, \" bri / ": 255, \" pārejas laiks / ":"+virkne (nejauša (15, 25))+"}"; setHue (1, komanda);
command = "{" nokrāsa / ": 50100, \" sat / ": 255, \" bri / ": 255, \" pārejas laiks / ":"+String (random (15, 25))+"}"; setHue (2, komanda);
}
17. darbība:
Nākamais kods bija Būla, bet Arduino ir jāraksta Bool. Sākumā es saņēmu daudz kļūdu vārda klients dēļ. Tāpēc es to uzmeklēju un redzēju, ka kāds kods izmanto rindu "WifiClient klients;". Tāpēc es to izmantoju, un tas strādāja.
Ja paziņojumā jūs bieži redzat client.print. Ja ieskatīsities kodā, redzēsit, ka iepriekš ievadītais URL ir sadalīts gabalos. Tagad ievadiet savu kodu. Man bija jāizvēlas trešā LED gaisma.
/ * setHue () ir mūsu galvenā komandu funkcija, kurai ir jānodod gaismas skaitlis un * pareizi formatēta komandu virkne JSON formātā (būtībā Javascript stila mainīgo * un vērtību masīvs. Pēc tam tiek nosūtīts vienkāršs HTTP PUT pieprasījums tilts sākumā norādītajā IP. */
bool setHue (int lightNum, String komanda) {
WiFiClient klients;
ja (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/gaismas/"); client.print (lightNum); // hueLight nulles pamatā, pievienojiet 1 client.println ("3/state"); // šeit es mainīju nokrāsas nosaukumu un stateclient.print ("Host:"); client.println (hueHubIP); client.print ("Content-Length:"); client.println (command.length ()); client.println ("Satura tips: teksts/vienkāršs; rakstzīmju kopa = UTF-8"); klients.println (); // tukša rinda pirms ķermeņa klienta.println (komanda); // Hue komanda
} client.stop (); atgriezties patiesi; // komanda izpildīta}
cits atgriežas nepatiess; // komanda neizdevās}
18. darbība:
Otrajā Būla laikā es darīju to pašu, mainot dažus vārdus. Es to augšupielādēju, lai redzētu, vai tas darbojas.
/* Palīga funkcija gadījumā, ja jūsu loģika ir atkarīga no gaismas pašreizējā stāvokļa. * Tas nosaka vairākus globālos mainīgos, kurus varat pārbaudīt, lai noskaidrotu, vai pašlaik deg vai neiedegas lampiņa *, kā arī nokrāsu utt. Nav nepieciešams tikai komandu izsūtīšanai */
bool getHue (int lightNum) {
WiFiClient klients;
ja (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/gaismas/"); client.print (lightNum); client.println ("3/valsts"); client.print ("Saimnieks:"); client.println (hueHubIP); client.println ("Satura tips: lietojumprogramma/json"); client.println ("uzturēt dzīvu"); klients.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // ja iedegas gaisma, iestatiet mainīgo uz true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // iestatīt mainīgo uz spilgtuma vērtību client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // iestatīt mainīgo uz nokrāsas vērtības pārtraukumu; // vēl nefiksē citus gaismas atribūtus}} client.stop (); atgriezties patiesi; // notverts, bri, hue} else return false; // kļūda lasot, bri, nokrāsa}
19. darbība:
Es domāju, ka es varētu izveidot savienojumu ar Philips Hue. Es saņemu informāciju, bet tā joprojām ir jāizmanto.
Diemžēl tas pārsniedz to, ko es varu kodēt. Ja jūs zināt atbildi vai ja ir reālas kļūdas, kuras ir jālabo, es labprāt to uzzinātu.:-)
Ieteicams:
Skolas zvans tālmācības skolēniem: 6 soļi
Skolas zvans tālmācības skolēniem: līdz ar COVID-19 pandēmiju daudzas bērnu skolas ir devušas tālvadības pakalpojumus. Šis mājas skolas zvans ir jautrs veids, kā saglabāt grafiku, izmantojot Raspberry Pi un USB skaļruni. Jūs varat to pagatavot kopā ar savu bērnu, un viņi var uzzināt par programmēšanu
Satriecošs skolas spiegu sīkrīks! Invisible Ink Pen Hack: 6 soļi
Satriecošs skolas spiegu sīkrīks! Invisible Ink Pen Hack: Ar šo satriecošo uzlaušanu jūs varat kādam nosūtīt slepenus ziņojumus vai pat krāpties klases pārbaudījumos
Skumju kaķu fiksators, kaķīšu rotaļlieta - skolas projekts: 3 soļi
Skumju kaķu fiksators, Catch-Me Cat Toy-skolas projekts: Šeit ir mūsu produkts, tā ir interaktīva rotaļu pele: Catch-Me Cat Toy. Šeit ir saraksts ar problēmām, ar kurām saskaras daudzi mūsu sabiedrības kaķi: Mūsdienās kaķi kļūst neaktīvi un nomākti, un viņiem nav ko darīt. Lielākā daļa īpašnieku ir aizņemti ar darbu vai skolu un jūsu
LED kaste Delta skolas simpozijam: 7 soļi
LED kaste Delta skolu simpozijam:
Zīmēšanas roka, kuru kontrolē skaņa - Arduino skolas projekts: 4 soļi (ar attēliem)
Zīmēšanas roka, kuru kontrolē skaņa - Arduino skolas projekts: Šī ir mana pirmā reize, kad strādāju ar Arduino un strādāju ar kaut ko līdzīgu, tāpēc atvainojos, ja pieļāvu kļūdas! Šī ideja man radās, domājot par saviem hobijiem, kas ir zīmēšana un mūzika. Tāpēc es mēģināju apvienot abus šajā! A sel