ዝርዝር ሁኔታ:

የ IoT ትምህርት ቤት ፕሮጀክት ፊሊፕስ ሁዌ 19 ደረጃዎች
የ IoT ትምህርት ቤት ፕሮጀክት ፊሊፕስ ሁዌ 19 ደረጃዎች

ቪዲዮ: የ IoT ትምህርት ቤት ፕሮጀክት ፊሊፕስ ሁዌ 19 ደረጃዎች

ቪዲዮ: የ IoT ትምህርት ቤት ፕሮጀክት ፊሊፕስ ሁዌ 19 ደረጃዎች
ቪዲዮ: MK TV አሰላ አብነት ትምህርት ቤት ፕሮጀክት 2024, ህዳር
Anonim
የ IoT ትምህርት ቤት ፕሮጀክት ፊሊፕስ ሁዌ
የ IoT ትምህርት ቤት ፕሮጀክት ፊሊፕስ ሁዌ

ይህ ለትምህርት ቤት መጻፍ የነበረብኝ ማኑዋል ነው። አልተጠናቀቀም እና እርስዎ እንኳን ሊጠቀሙበት እንደሚችሉ እርግጠኛ አይደለሁም። ስለ ኤፒአይ ያለኝ እውቀት በጣም ዝቅተኛ ነው። ለአየሩ ሁኔታ ምላሽ የሰጡ ፣ ከውጭ ብርሃን ፣ ወዘተ ጋር መብራቶች ያሉት መስተጋብራዊ መስተዋት ለመሥራት ፈልገን ነበር።

የፊሊፕስ ሁዌን መብራት ከአርዱዲኖ ጋር እንዴት ማቀናጀት እንደምችል ተመለከትኩ። በዚህ ውስጥ ፣ ሁሉንም እርምጃዎቼን እና ምን ያህል እንደመጣሁ አብራራለሁ። ከአርዱዲኖ ጋር ሁን በፕሮግራም አልተሳካልኩም ግን ጥሩ ጅምር ይመስለኛል።

እኔ ያስፈልገኛል -አንድ አርዱዲኖ ሀ ቀለም መብራት ድልድይ የፊሊፕስ ሁዌ ገንቢ መለያ

ምንጮች-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: ይጀምሩ

የኤፒአይ ሰነዱን ከመድረስዎ በፊት እንደ ገንቢ መመዝገብ ይኖርብዎታል። ነፃ ነው ፣ ግን ውሎቹን እና ሁኔታዎችን መቀበል ያስፈልግዎታል። እዚህ አንድ ማድረግ ይችላሉ>

ደረጃ 2: Hue መተግበሪያ

ኦፊሴላዊውን የፊሊፕስ ሁዌ መተግበሪያን ያውርዱ። ሁዌ ድልድይ እንዲበራ ከሚፈልጉት አውታረ መረብ ጋር ስልክዎን ያገናኙ።

ደረጃ 3 ድልድዩን ያገናኙ

ድልድይዎን ከአውታረ መረብዎ ጋር ያገናኙ እና በትክክል እየሰራ ነው። የስማርትፎን መተግበሪያው በተመሳሳይ አውታረ መረብ ላይ ያሉትን መብራቶች መቆጣጠር እንደሚችል ይፈትሹ። በተመሳሳይ የ Wi-Fi አውታረ መረብ ላይ መሆን አለበት።

ደረጃ 4 የአይፒ አድራሻ

ከዚያ በአውታረ መረብዎ ላይ የድልድዩን የአይፒ አድራሻ ማግኘት ያስፈልግዎታል። በመተግበሪያው ውስጥ ካለው ድልድይ ጋር ለመገናኘት አገናኝን ይግፉ እና መብራቶችን ለመቆጣጠር ይሞክሩ።

ደረጃ 5

ሁሉም የሚሰራ ከሆነ በመተግበሪያው ውስጥ ወደ የቅንብሮች ምናሌ ይሂዱ። ወደ “የእኔ ድልድይ” ይሂዱ ፣ ወደ “የአውታረ መረብ ቅንብሮች” ይሂዱ። የ DHCP መቀያየሪያውን ያጥፉ እና የድልድዩን አይፒ አድራሻ ያያሉ። የአይፒ አድራሻውን ልብ ይበሉ ፣ ከዚያ DHCP ን እንደገና ያብሩት።

ደረጃ 6: የእርስዎን ቀለም ያርሙ

የእርስዎን ቀለም ያርሙ
የእርስዎን ቀለም ያርሙ

ያንን ሲጽፉ የእርስዎን ቀለም ማረም ያስፈልግዎታል። ለዚህ እርምጃ አይፒ-አድራሻ ያስፈልግዎታል። የሚቀጥለውን ጣቢያ መጎብኘት አለብዎት።

/debug/clip.html

በይነገጹ በምስሉ ውስጥ እንደዚህ ይመስላል። ይህ የሁሉም የድር ትራፊክ እና የ hEST RESTful በይነገጽ መሠረት ነው።

ይህንን መረጃ ያገኘሁት ስለ ፊሊፕስ ሁዌ ጣቢያ የእረፍት በይነገጽ ነው።

ዩአርኤል - ይህ በእውነቱ በሀው ስርዓት ውስጥ የአንድ የተወሰነ ሀብት (ነገር) አካባቢያዊ አድራሻ ነው። እሱ ብርሃን ፣ የመብራት ቡድን ወይም ብዙ ተጨማሪ ነገሮች ሊሆን ይችላል። በዚህ ትእዛዝ ውስጥ እርስዎ የሚገናኙበት ነገር ይህ ነው።

አካል - ይህ ለመለወጥ የሚፈልጉትን እና እንዴት የሚገልፅ የመልእክቱ ክፍል ነው። እዚህ ያስገቡ ፣ በ JSON ቅርጸት ፣ ለመለወጥ/ለመጨመር የሚፈልጉትን የሀብት ስም እና እሴት።

ዘዴ - እዚህ የ hue ጥሪ ሊጠቀምባቸው የሚችሉ 4 የኤችቲቲፒ ዘዴዎች ምርጫ አለዎት።

ያግኙ: ስለአድራሻ ሀብቱ ሁሉንም መረጃ ለማምጣት ይህ ትእዛዝ ነው

አስቀምጥ - ይህ አድራሻ ያለው ሀብትን የማሻሻል ትእዛዝ ነው

ፖስት - ይህ በተጠቀሰው ሀብት ውስጥ አዲስ ሀብትን ለመፍጠር ትዕዛዙ ነው

ሰርዝ - ይህ አድራሻ የተላከውን የግብዓት ምላሽ ለመሰረዝ ትዕዛዙ ነው -በዚህ አካባቢ ፣ ለትእዛዝዎ ምላሽ ያያሉ። እንዲሁም በ JSON ቅርጸት።

ደረጃ 7 እንጀምር

እንጀምር
እንጀምር

አሁን ድልድዩ ለእርስዎ የሚፈጥረው በዘፈቀደ የመነጨ የተጠቃሚ ስም እንፈልጋለን። ይህንን በመሙላት አንድ ያገኛሉ።

ዩአርኤል ውስጥ ያስገቡ ፦

/api/

ወደ ሰውነት አስገባ:

እና GET ን ይጫኑ

ይህ ትዕዛዝ በመሠረቱ እባክዎን ከሚከተሉት ባህሪዎች ጋር ‹እባክዎን አዲስ /ውስጥ /አዲስ መገልገያ ይፍጠሩ› (የተጠቃሚ ስሞች የሚቀመጡበት) ነው። መጀመሪያ ላይ ስህተት ያገኛሉ ፣ እና ያ የ Philips Hue የደህንነት እርምጃ ስለሆነ ነው። አዝራሩን በመጫን ወደ ድልድዩ አካላዊ መዳረሻ እንዳለዎት ያረጋግጣሉ።

ደረጃ 8

ምስል
ምስል

አሁን በድልድዩ ላይ ያለውን ቁልፍ ይጫኑ እና እንደገና POST ን ጠቅ ያድርጉ።

አሁን ድልድዩ ለእርስዎ ያደረገውን የተጠቃሚ ስም ያገኛሉ።

ደረጃ 9 ከብርሃን ጋር አንድ ነገር እናድርግ

ከብርሃን ጋር አንድ ነገር እናድርግ
ከብርሃን ጋር አንድ ነገር እናድርግ

የተጠቃሚ ስምዎን ይቅዱ እና በሚከተለው መስመር ላይ ያድርጉት።

ይህንን በዩአርኤልዎ ውስጥ ያስገቡ

/api//መብራቶች

GET ን ይጫኑ

በስርዓትዎ ውስጥ ካሉ ሁሉም መብራቶች እና ስሞቻቸው ጋር የ JSON ምላሽ ማግኘት አለብዎት።

ደረጃ 10

ምስል
ምስል

አንዳንድ የ Hue Lights ን ከትምህርት ቤት ተው I ነበር ፣ እኔ የምጠቀምበት መታወቂያ ያለው 3. እኔ ስለዚህ ብርሃን የተወሰነ መረጃ እፈልጋለሁ።

ይህንን ቀደም ሲል ከነበረው ዩአርኤል ቀጥሎ ያስቀምጡት ፦

/api//መብራቶች/3

GET ን ይጫኑ

አሁን ስለ ሊድ 3 መረጃውን በሙሉ ያገኛሉ (እንደ 1 ሌላ ቁጥር ካለዎት ስለዚያ መረጃ ያያሉ)።

ደረጃ 11 ብርሃንን እንቆጣጠር

ብርሃኑን እንቆጣጠር
ብርሃኑን እንቆጣጠር

በ “ግዛት” ውስጥ የእኔ መሪ “በርቷል” ማለት ነው። በ "ግዛት" ውስጥ ያለውን ብርሃን መቆጣጠር እንፈልጋለን።

ይህንን ቀደም ሲል በነበሩበት ዩአርኤል አጠገብ ያስቀምጡት https:/// api// lights/ 3/ state

የሚቀጥለውን መስመር በአካል ውስጥ ያስገቡ

PUT ን ይጫኑ

አሁን የእርስዎ ብርሃን ይጠፋል! በሰውነት ውስጥ ያለውን እሴት ወደ እውነት ይለውጡ እና ብርሃኑ እንደገና ይነሳል።

ደረጃ 12

አሁን ሁሉም ነገር እየሰራ ነው ይህንን በአርዲኖዬ ማድረግ እፈልጋለሁ። የብርሃን ቀለም እንዲለወጥ ፊሊፕስ ሁዌ የሰጠውን አገናኝ ተመለከትኩ። ግን ለዚህ ፓይዘን ያስፈልግዎታል ፣ ከ Python ጋር በጭራሽ አልሠራሁም ስለዚህ ሌላ ነገር ፈልጌ ነበር።

ይህንን ኮድ ለማየት ከፈለጉ የ Github አገናኝ እዚህ አለኝ

github.com/bsalinas/ArduinoHue

ደረጃ 13

ከዚህ የገንቢ ጣቢያ ወደ አርዱinoኖ እንዴት መረጃ ማግኘት እንደምችል ተመለከትኩ። ብዙ ጊዜ ቋንቋውን አልገባኝም ነበር። ግን ከጄምስ ብሩስ በድረ -ገጽ ላይ የተወሰነ ኮድ አገኘሁ።

ይህ ወደ ድር ጣቢያው የሚወስደው አገናኝ ነው።

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

ደረጃ 14

መጀመሪያ የኢተርኔት ገመድ ሲጠቀም አየሁ። እኔ የ Hue አምፖል እና ድልድይ አርዱዲኖ ብቻ ነበር ፣ እና ስለ ኮድ ትንሽ ግንዛቤ ነበረኝ። ለእኔ የእሱን ኮድ ለመረዳት ትንሽ ጊዜ ወስዶብኛል ፣ ግን አሁንም በትክክል አልገባኝም።

መጀመሪያ ይህንን ቤተ -መጽሐፍት ለኢንተርኔት ጨመርኩ።

#ያካትቱ

ይህ ለእርስዎ አውታረ መረብ ነው (እሱ እንደ ሁዩ አምፖል ተመሳሳይ መሆን አለበት)

const char* ssid = ""; // የ WiFi አውታረ መረብዎን SSIDconst char* password = "" እዚህ ያስገቡ። // የ WiFi አውታረ መረብ ይለፍ ቃልዎን እዚህ ያስገቡ

እነዚህ የእርስዎ ድልድይ መታወቂያ እና ድልድይዎ የሰጡዎት የተጠቃሚ ስም ናቸው። (80 ዎቹ የት እንደሚቆሙ አላውቅም ግን አንዳንድ ምርምር ስሠራ ለኔትወርኮች ጥቅም ላይ እንደዋለ አየሁ)።

// Hue constants const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // ሁዌ የተጠቃሚ ስም const int hueHubPort = 80;

// ሁዌ ተለዋዋጮች bool hueOn; // ማብራት/ማጥፋት int hueBri; // ብሩህነት እሴት ረጅም hueHue; // የ hue እሴት ሕብረቁምፊ hueCmd; // Hue ትእዛዝ

ያልተፈረመ ረጅም ቋት = 0; // ቋት ለተቀበለው የውሂብ ማከማቻ ያልተፈረመ ረጅም አድማሪ;

ደረጃ 15

ለ ባዶነት ማዋቀር ፣ ለበይነመረብ ግንኙነት በጣም አድርጌያለሁ። በዚህ ኮድ ውስጥ አርዱዲኖ ከአውታረ መረቡ ጋር መገናኘት ይችል እንደሆነ እየተመለከተ ነው።

ባዶነት ማዋቀር () {Serial.begin (9600);

Serial.println ();

Serial.printf ("ከ %s" ጋር መገናኘት ፣ ssid);

WiFi.begin (ssid ፣ የይለፍ ቃል);

ሳለ (WiFi.status ()! = WL_CONNECTED) {

መዘግየት (500);

Serial.print ("."); }

Serial.println ("ተገናኝቷል"); }

ደረጃ 16:

በያዕቆብ ሉፕ ውስጥ ፣ እሱ እና ሌላ መግለጫ እንዳለው አየሁ። ግን ያ ለኤተርኔት ገመድ ነበር ፣ ስለዚህ ይህንን ለመተው ሞከርኩ። እኔ አንዳንድ ጊዜ እሱን ለማስተካከል እሞክር ነበር ፣ ግን በብዙ መረጃዎች ገና አላውቅም ነበር። እኔ በተረዳሁት ኮድ ውስጥ አንዳንድ ነገሮች ፣ በሕብረቁምፊው ውስጥ ለሃዩ ብርሃን የተሰጠው ውሂብ አለ።

ባዶነት loop () {

// በተከታታይ አራት የናሙና ትዕዛዞች ፣ የትኛው ቀለም በቀይ እና ሮዝ መካከል ሁለት መብራቶችን ያጠፋል። ጥቅም ላይ በሚውሉት ትክክለኛ ትዕዛዞች ላይ ለበለጠ ዝርዝር በ Hue API // ሰነድ ላይ ያንብቡ ፣ ግን የጥቅስ ምልክቶች ማምለጥ እንዳለባቸው ልብ ይበሉ።

የሕብረቁምፊ ትዕዛዝ = "{" በርቷል ": እውነት ፣ \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" የሽግግር ጊዜ / ":"+ሕብረቁምፊ (በዘፈቀደ (15), 25))+"}"; setHue (1 ፣ ትእዛዝ);

command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+String (የዘፈቀደ (15, 25))+"}"; setHue (2 ፣ ትእዛዝ);

command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":"+String (random (15, 25))+"}"; setHue (1 ፣ ትእዛዝ);

command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" የሽግግር ጊዜ / ":"+ሕብረቁምፊ (በዘፈቀደ (15 ፣ 25))+"}"; setHue (2 ፣ ትእዛዝ);

}

ደረጃ 17:

ቀጣዩ ኮድ ቡሊያን ነበር ፣ ግን በአርዱዲኖ ውስጥ ቡል መጻፍ አለብዎት። በመጀመሪያ ፣ ደንበኛ በሚለው ቃል ምክንያት ብዙ ስህተቶች ነበሩኝ። ስለዚህ ቀና ብዬ አየሁት እና አንዳንድ ኮድ “የ WifiClient ደንበኛ” የሚለውን መስመር ሲጠቀም አየሁ። ስለዚህ እኔ እጠቀምበት ነበር እና ሰርቷል።

በአረፍተ ነገሩ ውስጥ ብዙውን ጊዜ ደንበኛን ያትማል። ኮዱን ከተመለከቱ ፣ ቀደም ብለው ያስገቡት ዩአርኤል ወደ ቁርጥራጮች እንደተከፋፈለ ያያሉ። አሁን የራስዎን ኮድ ያስገቡ። የእኔን 3 ኛ የ LED መብራት መምረጥ ነበረብኝ።

/ * setHue () በ JSON ቅርጸት ውስጥ የብርሃን ቁጥርን እና * በትክክል የተቀረፀ የትእዛዝ ሕብረቁምፊ (በመሠረቱ የጃቫስክሪፕት ተለዋዋጮች * እና እሴቶች) ማለፍ ያለበት ዋናው የትእዛዝ ተግባራችን ነው። ከዚያ ቀለል ያለ የኤችቲቲፒ PUT ጥያቄን ይጠይቃል መጀመሪያ ላይ በተጠቀሰው አይፒ ላይ ያለው ድልድይ */

bool setHue (int lightNum ፣ ሕብረቁምፊ ትዕዛዝ) {

የ WiFi ደንበኛ ደንበኛ;

ከሆነ (client.connect (hueHubIP ፣ hueHubPort)) {

ሳለ (client.connected ()) {

client.print ("PUT /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); // hueLight ዜሮ ላይ የተመሠረተ ፣ 1 client.println (“3/state”) ያክሉ ፤ // እዚህ የ hue ስም እና stateclient.print (“አስተናጋጅ”) ቀይሬያለሁ ፣ client.println (hueHubIP); client.print ("ይዘት-ርዝመት:"); client.println (command.length ()); client.println ("የይዘት-ዓይነት ጽሑፍ/ሜዳ ፣ charset = UTF-8"); client.println (); // ከባዶ ደንበኛ በፊት ባዶ መስመር ።println (ትዕዛዝ); // Hue ትእዛዝ

} client.stop (); እውነት ተመለስ; // ትዕዛዝ ተፈፀመ}

አለበለዚያ ሐሰትን መመለስ; // ትዕዛዝ አልተሳካም}

ደረጃ 18

በሁለተኛው ቡሊያን ፣ አንዳንድ ቃላትን በመለወጥ ተመሳሳይ ነገር አደረግሁ። የሚሰራ መሆኑን ለማየት ሰቅዬዋለሁ።

/* አመክንዮዎ አሁን ባለው የብርሃን ሁኔታ ላይ የሚመረኮዝ ከሆነ የረዳት ተግባር። * ይህ በአሁኑ ጊዜ መብራት እንደበራ ወይም አለመሆኑን * እና ቀለሙን ወዘተ ለማወቅ እርስዎ ሊፈትሹዋቸው የሚችሉ በርካታ ዓለም አቀፍ ተለዋዋጮችን ያዘጋጃል */ ትዕዛዞችን ለመላክ ብቻ አያስፈልግም */

bool getHue (int lightNum) {

የ WiFi ደንበኛ ደንበኛ;

ከሆነ (client.connect (hueHubIP ፣ hueHubPort)) {

client.print ("GET /api /"); client.print (hueUsername); client.print ("/lights/"); client.print (lightNum); client.println ("3/state"); client.print ("አስተናጋጅ:"); client.println (hueHubIP); client.println ("የይዘት-አይነት: መተግበሪያ/json"); client.println ("ሕያው"); client.println ();

ሳለ (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "እውነተኛ"); // ብርሃን በርቶ ከሆነ ፣ ተለዋዋጭውን ወደ እውነተኛ ደንበኛ ያቀናብሩ። hueBri = client.readStringUntil (',').toInt (); // ተለዋዋጭ ወደ ብሩህነት እሴት ደንበኛ ያዘጋጁ ።findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // ተለዋዋጭ እሴት ወደ እሴት እሴት መሰበር ያዘጋጁ ፤ // ሌሎች የብርሃን ባህሪያትን ገና አልያዘም}} client.stop (); እውነት ተመለስ; // ተይ,ል ፣ bri ፣ hue} ሌላ ሐሰት ይመልሱ ፤ // ስህተት በማንበብ ላይ ፣ bri ፣ hue}

ደረጃ 19

ምስል
ምስል

ከፊሊፕስ ሁዬ ጋር ግንኙነት መፍጠር የምችል ይመስለኛል። መረጃ ደርሶኛል ግን አሁንም ጥቅም ላይ መዋል አለበት።

እንደ አለመታደል ሆኖ ይህ እኔ ኮድ ማድረግ ከምችለው በላይ ይሄዳል። መልሱን ካወቁ ፣ ወይም መስተካከል ያለባቸው እውነተኛ ስህተቶች ካሉ ፣ እሱን መስማት እወዳለሁ።:-)

የሚመከር: