Orodha ya maudhui:

Mradi wa Shule ya IoT Philips Hue: Hatua 19
Mradi wa Shule ya IoT Philips Hue: Hatua 19

Video: Mradi wa Shule ya IoT Philips Hue: Hatua 19

Video: Mradi wa Shule ya IoT Philips Hue: Hatua 19
Video: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, Novemba
Anonim
Mradi wa Shule ya IoT Philips Hue
Mradi wa Shule ya IoT Philips Hue

Huu ni mwongozo niliyopaswa kuandika kwa shule. Haijakamilika na sina hakika ikiwa unaweza hata kuitumia. Ujuzi wangu wa API ni kiwango cha chini wazi. Tulitaka kutengeneza kioo kinachoingiliana na taa nyuma ambayo iliathiri hali ya hewa, mwanga kutoka nje, nk.

Niliangalia jinsi ninavyoweza kupanga taa ya Philips Hue na Arduino. Katika hili, ninaelezea hatua zangu zote na jinsi nimefika mbali. Sijafanikiwa kupanga Hue na Arduino lakini nadhani ni mwanzo mzuri.

Nimehitaji hii: Arduino taa ya hue akaunti ya msanidi programu wa Philips Hue

Vyanzo: https://www.developers.meethue.com/documentation/g… www.makeuseof.com/tag/control-philips-hue-…

Hatua ya 1: Anza

Kabla ya kufikia nyaraka za API, utahitaji kujiandikisha kama msanidi programu. Ni bure, lakini unahitaji kukubali sheria na masharti. Unaweza kutengeneza moja hapa>

Hatua ya 2: Hue App

Pakua programu rasmi ya Philips Hue. Unganisha simu yako na mtandao unaotaka daraja la Hue liko.

Hatua ya 3: Unganisha Daraja

Unganisha daraja lako na mtandao wako na inafanya kazi vizuri. Jaribu kuwa programu ya smartphone inaweza kudhibiti taa kwenye mtandao huo. Lazima iwe kwenye mtandao huo wa Wi-Fi.

Hatua ya 4: Anwani ya IP

Kisha unahitaji kugundua anwani ya IP ya daraja kwenye mtandao wako. Bonyeza kitufe cha kuungana na daraja kwenye programu na ujaribu kudhibiti taa.

Hatua ya 5:

Ikiwa yote inafanya kazi basi nenda kwenye menyu ya mipangilio kwenye programu. Kuliko kwenda "Daraja langu", nenda kwenye "Mipangilio ya Mtandao". Zima ubadilishaji wa DHCP na uone anwani ya IP ya daraja. Kumbuka anwani ya IP, kisha uwashe DHCP tena.

Hatua ya 6: Ondoa Hue yako

Rekebisha Hue yako
Rekebisha Hue yako

Wakati uliandika hiyo chini unahitaji kurekebisha Hue yako. Unahitaji Anwani ya IP kwa hatua hii. Lazima utembelee tovuti inayofuata.

/debug/clip.html

Interface itaonekana kama hii kwenye picha. Huu ndio msingi wa trafiki yote ya wavuti na ya hue interface RESTful.

Nilipata habari hii juu ya kiolesura cha Kutuliza cha tovuti ya Philips Hue.

URL: kwa kweli hii ni anwani ya mahali hapo ya rasilimali maalum (kitu) ndani ya mfumo wa hue. Inaweza kuwa nyepesi, kikundi cha taa au vitu vingi zaidi. Hiki ndicho kitu ambacho utakuwa ukishirikiana ndani ya amri hii.

Mwili: hii ni sehemu ya ujumbe ambayo inaelezea kile unataka kubadilisha na jinsi. Hapa unaingia, katika muundo wa JSON, jina la rasilimali na thamani ambayo ungependa kubadilisha / kuongeza.

Njia: hapa una chaguo la njia 4 za HTTP ambazo hue hue anaweza kutumia.

PATA: hii ni amri ya kuleta habari zote juu ya rasilimali iliyoshughulikiwa

PUT: hii ndio amri ya kurekebisha rasilimali iliyoshughulikiwa

POST: hii ni amri ya kuunda rasilimali mpya ndani ya rasilimali iliyoshughulikiwa

FUTA: hii ndio amri ya kufuta rasilimali iliyojibiwa Jibu: Katika eneo hili, utaona jibu kwa amri yako. Pia katika muundo wa JSON.

Hatua ya 7: Wacha tuanze

Tuanze
Tuanze

Sasa tunahitaji jina la mtumiaji lililoundwa kwa nasibu ambalo daraja linakuundia. Utapata moja kwa kujaza hii.

Weka kwenye URL:

/ api /

Weka kwenye MWILI:

na bonyeza GET

Amri hii kimsingi inasema "tafadhali tengeneza rasilimali mpya ndani / api" (ambapo majina ya watumiaji huketi) na mali zifuatazo. Mwanzoni, utapata hitilafu, na hiyo ni kwa sababu ni hatua ya usalama ya Philips Hue. Kwa kubonyeza kitufe wanathibitisha kuwa unaweza kufikia daraja.

Hatua ya 8:

Picha
Picha

Sasa Bonyeza kitufe kwenye Daraja na bonyeza tena POST.

Sasa utapata jina la mtumiaji ambalo daraja lilikutengenezea.

Hatua ya 9: Wacha Tufanye Kitu na Taa

Wacha Tufanye Kitu Na Taa
Wacha Tufanye Kitu Na Taa

Nakili jina lako la mtumiaji na uweke kwenye mstari ufuatao.

Weka hii kwenye URL yako

/ api / / taa

Bonyeza GET

Unapaswa kupata jibu la JSON na taa zote kwenye mfumo wako na majina yao.

Hatua ya 10:

Picha
Picha

Nimekopa taa za Hue kutoka shuleni, ile ninayotumia ni ile iliyo na id. Ninataka habari maalum juu ya taa hii.

Weka hii karibu na URL uliyokuwa nayo tayari:

/ api / / taa / 3

Bonyeza GET

Sasa unapata habari juu ya Led 3 (ikiwa unayo nambari nyingine kama 1 utaona habari kuhusu hiyo).

Hatua ya 11: Wacha Tudhibiti Nuru

Wacha Tudhibiti Nuru
Wacha Tudhibiti Nuru

Unaona katika "hali" kwamba mwongozo wangu ume "on". Tunataka kudhibiti taa katika "hali".

Weka hii karibu na URL uliyokuwa nayo tayari: https:// / api / / taa / 3 / state

Weka laini inayofuata katika MWILI

Bonyeza PUT

Sasa taa yako itazimwa! Badilisha thamani ya mwili kuwa kweli na taa itawasha tena.

Hatua ya 12:

Sasa kila kitu kinafanya kazi nataka kufanya hii na Arduino yangu. Niliangalia kiunga ambacho Philips Hue alitoa kufanya mabadiliko ya rangi nyepesi. Lakini unahitaji Python kwa hili, sikuwahi kufanya kazi na Python kwa hivyo nilitafuta kitu kingine.

Ikiwa ungependa kuangalia nambari hii nina kiunga cha Github hapa:

github.com/bsalinas/ArduinoHue

Hatua ya 13:

Niliangalia jinsi ninaweza kupata habari kutoka kwa wavuti hii ya msanidi programu kwenda kwa arduino yangu. Wakati mwingi sikuelewa lugha hiyo. Lakini nilipata nambari kadhaa kwenye wavuti kutoka kwa James Bruce.

Hiki ni kiunga cha tovuti.

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

Hatua ya 14:

Kwanza nikaona kwamba alikuwa akitumia kebo ya Ethernet. Nilikuwa tu na balbu ya Hue Light na Bridge Arduino, na ufahamu mdogo wa nambari. Ilinichukua muda kuelewa code yake, lakini bado siielewi.

Kwanza niliongeza maktaba hii kwa wavuti.

# pamoja

Hii ni kwa mtandao wako (lazima iwe sawa na balbu ya Hue Light)

const char * ssid = ""; // weka hapa mtandao wako wa SSIDconst char * password = ""; // weka hapa nywila yako ya mtandao wa WiFi

Hizi ndizo kitambulisho cha Daraja lako na jina la mtumiaji ulilopewa daraja lako. (Sijui 80 inasimama wapi lakini nilipofanya utafiti nikaona kuwa ilitumika kwa mitandao).

// Vipindi vya Hue const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Jina la mtumiaji Hue const int hueHubPort = 80;

// Vigeu vya Hue boe huOn; // on / off int hueBri; // mwangaza thamani hueHue; // thamani ya hue String hueCmd; // Amri ya Hue

unser bafa ya muda mrefu = 0; // bafa ya kuhifadhi data iliyopokea bila nyongeza ndefu;

Hatua ya 15:

Kwa usanidi batili, nilifanya zaidi kwa unganisho la mtandao. Katika nambari hii, Arduino anaangalia ikiwa anaweza kuungana na mtandao.

kuanzisha batili () {Serial.begin (9600);

Serial.println ();

Serial.printf ("Kuunganisha kwa% s", ssid);

Kuanza kwa WiFi (ssid, password);

wakati (WiFi.status ()! = WL_CONNECTED) {

kuchelewesha (500);

Printa ya serial ("."); }

Serial.println ("imeunganishwa"); }

Hatua ya 16:

Katika kitanzi cha James, niliona kuwa alikuwa na taarifa ya Ikiwa na mwingine. Lakini hiyo ilikuwa kwa kebo ya ethernet, kwa hivyo nilijaribu kuiacha hii nje. Wakati mwingine pia nilijaribu kuirekebisha, lakini sikujua bado na data nyingi. Vitu vingine kwenye nambari niliyoelewa, kwenye kamba ni data ambayo inapewa taa ya Hue.

kitanzi batili () {

// Mfululizo wa amri nne za sampuli, ambayo rangi hupotea taa mbili kati ya nyekundu na nyekundu. Soma juu ya hati ya Hue API // kwa maelezo zaidi juu ya maagizo haswa ya kutumiwa, lakini kumbuka kuwa alama za nukuu lazima ziepuka.

String command = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, / "timetime \": "+ Kamba (bila mpangilio (15, 25)) + "}"; setHue (1, amri);

command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + String (bila mpangilio (15, 25)) + "}"; setiHue (2, amri);

amri = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" muda wa mpito / ":" + Kamba (bila mpangilio (15, 25)) + "}"; setiHue (1, amri);

amri = "{" hue / ": 50100, \" ameketi / ": 255, \" bri / ": 255, \" muda wa mpito / ":" + Kamba (bila mpangilio (15, 25)) + "}"; setiHue (2, amri);

}

Hatua ya 17:

Nambari inayofuata ilikuwa Boolean, lakini katika Arduino lazima uandike Bool. Mwanzoni, nilipata makosa mengi kwa sababu ya neno mteja. Kwa hivyo niliiangalia na kuona kuwa nambari fulani ilitumia laini "WifiClient mteja;". Kwa hivyo niliitumia na ilifanya kazi.

Katika taarifa ya if mara nyingi unaona alama ya mteja. Ukiangalia kwenye nambari hiyo, utaona kuwa URL uliyoingiza hapo awali imegawanywa vipande vipande. Sasa ingiza nambari yako mwenyewe. Ilinibidi kuchagua taa yangu ya 3 ya LED.

/ * setHue () ni kazi yetu kuu ya amri, ambayo inahitaji kupitishwa nambari nyepesi na * kamba ya amri iliyopangwa vizuri katika muundo wa JSON (kimsingi safu ya anuwai ya mtindo wa Javascript * na maadili. Halafu inafanya ombi rahisi la HTTP PUT Daraja kwenye IP iliyoainishwa mwanzoni. * /

bool setHue (int lightNum, String amri) {

Mteja wa Wateja wa WiFi;

ikiwa (mteja.connect (hueHubIP, hueHubPort)) {

wakati (mteja. imeunganishwa ()) {

alama ya mteja ("PUT / api /"); alama ya mteja (hueUsername); alama ya mteja ("/ taa /"); alama ya mteja (lightNum); // hueLight zero msingi, ongeza mteja 1.println ("3 / serikali"); // hapa nilibadilisha jina la hue na stateclient.print ("Jeshi:"); mteja.println (hueHubIP); alama ya mteja ("Urefu wa Yaliyomo:"); mteja.println (command.length ()); mteja.println ("Aina ya Maudhui: maandishi / wazi; charset = UTF-8"); mteja.println (); // laini tupu kabla ya mteja wa mwili.println (amri); // Amri ya Hue

} mteja.acha (); kurudi kweli; // amri imetekelezwa}

mwingine kurudi uongo; // amri imeshindwa}

Hatua ya 18:

Katika Boolean ya pili, nilifanya jambo lile lile na kubadilisha maneno kadhaa. Niliipakia kuona ikiwa inafanya kazi.

/ * Kazi ya msaidizi ikiwa mantiki yako inategemea hali ya sasa ya taa. * Hii inaweka idadi ya anuwai za ulimwengu ambazo unaweza kuangalia ili kujua ikiwa taa sasa imewashwa au la * na hue nk Haihitajiki kutuma amri tu / /

bool GetHue (int lightNum) {

Mteja wa Wateja wa WiFi;

ikiwa (mteja.connect (hueHubIP, hueHubPort)) {

alama ya mteja ("GET / api /"); alama ya mteja (hueUsername); alama ya mteja ("/ taa /"); alama ya mteja (lightNum); mteja.println ("3 / serikali"); alama ya mteja ("Jeshi:"); mteja.println (hueHubIP); mteja.println ("Aina ya Maudhui: programu / json"); mteja.println ("endelea kuishi"); mteja.println ();

wakati (mteja.meunganishwa ()) {ikiwa (mteja anapatikana ()) {mteja.findUntil ("\" kwenye / ":", "\ 0"); hueOn = (mteja.readStringUntil (',') == "kweli"); // ikiwa taa imewashwa, weka kutofautisha kwa mteja wa kweli.findUntil ("\" bri / ":", "\ 0"); hueBri = mteja.readStringUntil (',').toInt (); // weka kutofautisha kwa mteja wa thamani ya mwangaza.findUntil ("\" hue / ":", "\ 0"); hueHue = mteja.readStringUntil (',').toInt (); // kuweka kutofautisha kwa kuvunja thamani ya hue; // kutokamata sifa zingine nyepesi}}} mteja.simama (); kurudi kweli; // imekamatwa, bri, hue} mwingine arudie uwongo; // kusoma kosa juu, bri, hue}

Hatua ya 19:

Picha
Picha

Nadhani ningeweza kuunganishwa na Philips Hue. Ninapokea habari lakini bado inahitaji kutumiwa.

Kwa bahati mbaya, hii inapita zaidi ya kile ninaweza kuweka nambari. Ikiwa unajua jibu, au ikiwa kuna makosa halisi ambayo yanahitaji kusahihishwa, ningependa kuisikia.:-)

Ilipendekeza: