Სარჩევი:
- ნაბიჯი 1: დაიწყეთ
- ნაბიჯი 2: Hue აპლიკაცია
- ნაბიჯი 3: დააკავშირეთ ხიდი
- ნაბიჯი 4: IP მისამართი
- ნაბიჯი 5:
- ნაბიჯი 6: დაარეგულირეთ თქვენი ფერი
- ნაბიჯი 7: დავიწყოთ
- ნაბიჯი 8:
- ნაბიჯი 9: მოდით გავაკეთოთ რამე შუქებით
- ნაბიჯი 10:
- ნაბიჯი 11: მოდით გავაკონტროლოთ შუქი
- ნაბიჯი 12:
- ნაბიჯი 13:
- ნაბიჯი 14:
- ნაბიჯი 15:
- ნაბიჯი 16:
- ნაბიჯი 17:
- ნაბიჯი 18:
- ნაბიჯი 19:
ვიდეო: IoT სკოლის პროექტი Philips ელფერი: 19 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ეს არის სახელმძღვანელო, რომელიც უნდა დამეწერა სკოლისთვის. ეს არ არის სრულყოფილი და დარწმუნებული არ ვარ, შეგიძლია მისი გამოყენება. ჩემი ცოდნა API– ს შესახებ არის მინიმალური. ჩვენ გვინდოდა ინტერაქტიული სარკის გაკეთება შუქებით უკანა მხარეს, რომელიც რეაგირებდა ამინდზე, გარედან შუქზე და ა.
მე შევხედე როგორ შემიძლია Philips Hue ნათურის დაპროგრამება არდუინოსთან ერთად. ამაში მე ავხსნი ჩემს ყველა ნაბიჯს და რამდენად შორს მივედი. მე არ მივაღწიე პროგრამას Hue Arduino– სთან ერთად, მაგრამ ვფიქრობ, რომ ეს კარგი დასაწყისია.
მე მჭირდებოდა ეს: Arduino hue ნათურა ხიდი Philips Hue დეველოპერის ანგარიშზე
წყაროები: 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: დაიწყეთ
სანამ წვდებით API დოკუმენტაციას, თქვენ უნდა დარეგისტრირდეთ როგორც დეველოპერი. ეს უფასოა, მაგრამ თქვენ უნდა მიიღოთ პირობები. ამის გაკეთება შეგიძლიათ აქ>
ნაბიჯი 2: Hue აპლიკაცია
ჩამოტვირთეთ ოფიციალური Philips Hue აპლიკაცია. შეაერთეთ თქვენი ტელეფონი იმ ქსელს, რომელზეც გსურთ იყოს Hue Bridge.
ნაბიჯი 3: დააკავშირეთ ხიდი
შეაერთეთ თქვენი ხიდი თქვენს ქსელთან და მუშაობს გამართულად. შეამოწმეთ, რომ სმარტფონის აპს შეუძლია გააკონტროლოს განათება იმავე ქსელში. ის უნდა იყოს იმავე Wi-Fi ქსელში.
ნაბიჯი 4: IP მისამართი
შემდეგ თქვენ უნდა აღმოაჩინოთ ხიდის IP მისამართი თქვენს ქსელში. დააჭირეთ ბმულს აპლიკაციაში ხიდთან დასაკავშირებლად და სცადეთ შუქების კონტროლი.
ნაბიჯი 5:
თუ ყველაფერი მუშაობს, გადადით პროგრამის პარამეტრების მენიუში. შემდეგ გადადით "ჩემს ხიდზე", გადადით "ქსელის პარამეტრები". გამორთეთ DHCP გადამრთველი და ნახავთ ხიდის IP მისამართს. გაითვალისწინეთ IP მისამართი, შემდეგ ისევ ჩართეთ DHCP.
ნაბიჯი 6: დაარეგულირეთ თქვენი ფერი
როდესაც ეს დაწერეთ, თქვენ უნდა გამოასწოროთ თქვენი ტონი. ამ ნაბიჯის გადასაჭრელად გჭირდებათ IP მისამართი. თქვენ უნდა ეწვიოთ შემდეგ საიტს.
/debug/clip.html
ინტერფეისი ასე გამოიყურება სურათზე. ეს არის საფუძველი ყველა ვებ ტრაფიკისა და შეფერილობის RESTful ინტერფეისისა.
მე მივიღე ეს ინფორმაცია Philips Hue საიტის Restful ინტერფეისის შესახებ.
URL: ეს არის რეალურად კონკრეტული რესურსის (ნივთის) ადგილობრივი მისამართი შეფერილობის სისტემაში. ეს შეიძლება იყოს მსუბუქი, შუქების ჯგუფი ან მრავალი სხვა რამ. ეს არის ობიექტი, რომელსაც თქვენ დაუკავშირდებით ამ ბრძანების ფარგლებში.
სხეული: ეს არის შეტყობინების ის ნაწილი, რომელიც აღწერს რისი შეცვლა გსურთ და როგორ. აქ თქვენ შეიყვანთ, JSON ფორმატში, რესურსის სახელს და მნიშვნელობას, რომლის შეცვლა/დამატება გსურთ.
მეთოდი: აქ თქვენ გაქვთ არჩევანი იმ 4 HTTP მეთოდისგან, რომელთა გამოყენებაც შეიძლება შეფერილობის ზარს.
GET: ეს არის ბრძანება, მოიძიოს ყველა ინფორმაცია მიმართული რესურსის შესახებ
PUT: ეს არის ბრძანება მიმართული რესურსის შესაცვლელად
POST: ეს არის ბრძანება ახალი რესურსის შესაქმნელად მიმართული რესურსის შიგნით
წაშლა: ეს არის ბრძანება მიმართული რესურსის წაშლის შესახებ პასუხი: ამ მხარეში თქვენ ნახავთ პასუხს თქვენს ბრძანებაზე. ასევე JSON ფორმატში.
ნაბიჯი 7: დავიწყოთ
ახლა ჩვენ გვჭირდება შემთხვევით გენერირებული მომხმარებლის სახელი, რომელსაც ხიდი ქმნის თქვენთვის. თქვენ მიიღებთ ერთს ამის შევსებით.
შეიყვანეთ URL:
/api/
ჩადეთ სხეულში:
და დააჭირეთ GET
ეს ბრძანება ძირითადად ამბობს "გთხოვთ შექმნათ ახალი რესურსი შიგნით /api" (სადაც მომხმარებლის სახელები ზის) შემდეგი თვისებებით. თავდაპირველად, თქვენ მიიღებთ შეცდომას და ეს იმიტომ, რომ ეს არის Philips Hue– ის უსაფრთხოების ნაბიჯი. ღილაკის დაჭერით ისინი ადასტურებენ, რომ თქვენ გაქვთ ფიზიკური წვდომა ხიდზე.
ნაბიჯი 8:
ახლა დააჭირეთ ღილაკს ხიდზე და კვლავ დააჭირეთ POST.
ახლა თქვენ მიიღებთ მომხმარებლის სახელს, რომელიც ხიდმა გააკეთა თქვენთვის.
ნაბიჯი 9: მოდით გავაკეთოთ რამე შუქებით
დააკოპირეთ თქვენი მომხმარებლის სახელი და განათავსეთ იგი შემდეგ სტრიქონში.
განათავსეთ ეს თქვენს URL- ში
/api//განათება
დააჭირეთ GET
თქვენ უნდა მიიღოთ JSON პასუხი თქვენი სისტემის ყველა შუქით და მათი სახელებით.
ნაბიჯი 10:
მე ნასესხები მაქვს Hue Lights სკოლიდან, ის, რასაც მე ვიყენებ, არის id 3. მინდა კონკრეტული ინფორმაცია ამ შუქის შესახებ.
განათავსეთ ეს იმ URL– ის გვერდით, რომელიც უკვე გქონდათ:
/api//lights/3
დააჭირეთ GET
ახლა თქვენ მიიღებთ ინფორმაციას Led 3 – ის შესახებ (თუ თქვენ გაქვთ სხვა 1 ნომერი, თქვენ ნახავთ ინფორმაციას ამ ერთის შესახებ).
ნაბიჯი 11: მოდით გავაკონტროლოთ შუქი
თქვენ ხედავთ "მდგომარეობაში", რომ ჩემი led არის "on". ჩვენ გვინდა გავაკონტროლოთ შუქი "მდგომარეობაში".
განათავსეთ ეს იმ URL– ის გვერდით, რომელიც უკვე გქონდათ: https:/// api// lights/ 3/ სახელმწიფო
მოათავსეთ შემდეგი ხაზი სხეულში
დააჭირეთ PUT
ახლა შენი შუქი ჩაქრება! შეცვალეთ მნიშვნელობა სხეულში ჭეშმარიტი და შუქი კვლავ აანთებს.
ნაბიჯი 12:
ახლა ყველაფერი მუშაობს, მინდა ამის გაკეთება ჩემს არდუინოსთან ერთად. მე შევხედე ბმულს, რომელიც ფილიპს ჰუემ მისცა ღია ფერის შეცვლის მიზნით. მაგრამ თქვენ გჭირდებათ პითონი, მე არასოდეს ვმუშაობ პითონთან, ასე რომ მე ვეძებდი სხვა რამეს.
თუ გსურთ გადახედოთ ამ კოდს, მე მაქვს Github ბმული აქ:
github.com/bsalinas/ArduinoHue
ნაბიჯი 13:
მე შევხედე, როგორ შემეძლო ინფორმაციის მიღება დეველოპერის საიტიდან ჩემს არდუინოში. უმეტესად მე არ მესმოდა ენა. მაგრამ მე ვიპოვე კოდი ჯეიმს ბრიუსის ვებგვერდზე.
ეს არის ბმული ვებსაიტზე.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
ნაბიჯი 14:
პირველად დავინახე, რომ ის იყენებდა Ethernet კაბელს. მე მხოლოდ Hue Light ნათურა და Bridge Arduino მქონდა და კოდის მცირე გაგება. ცოტა ხანი დამჭირდა მისი კოდის გასაგებად, მაგრამ მე მაინც ნამდვილად არ მესმის.
მე პირველად დავამატე ეს ბიბლიოთეკა ინტერნეტისთვის.
#ჩართეთ
ეს არის თქვენი ქსელისთვის (ის უნდა იყოს იგივე, რაც Hue Light ნათურა)
const char* ssid = ""; // განათავსეთ აქ თქვენი WiFi ქსელი SSIDconst char* password = ""; // განათავსეთ აქ თქვენი WiFi ქსელის პაროლი
ეს არის თქვენი ხიდის პირადობის მოწმობა და მომხმარებლის სახელი, რომელიც თქვენმა ხიდმა მოგანიჭათ. (მე არ ვიცი სად არის 80, მაგრამ როდესაც მე გავაკეთე კვლევა, დავინახე, რომ იგი გამოიყენება ქსელებისთვის).
// შეფერილობის მუდმივები const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Hue მომხმარებლის სახელი const int hueHubPort = 80;
// Hue ცვლადები bool hueOn; // ჩართვა/გამორთვა int hueBri; // სიკაშკაშის მნიშვნელობა long hueHue; // hue მნიშვნელობა String hueCmd; // Hue ბრძანება
ხელმოუწერელი გრძელი ბუფერი = 0; // ბუფერი მიღებული მონაცემების შესანახად ხელმოუწერელი გრძელი დამატებით;
ნაბიჯი 15:
ბათილი კონფიგურაციისთვის, მე გავაკეთე ყველაზე მეტი ინტერნეტ კავშირისთვის. ამ კოდში არდუინო ეძებს შეუძლია თუ არა ქსელთან დაკავშირება.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf (" %s- თან დაკავშირება", ssid);
WiFi.begin (ssid, პაროლი);
ხოლო (WiFi.status ()! = WL_CONNECTED) {
დაგვიანება (500);
Serial.print ("."); }
Serial.println ("დაკავშირებული"); }
ნაბიჯი 16:
ჯეიმსის მარყუჟში მე დავინახე, რომ მას ჰქონდა If და else განცხადება. მაგრამ ეს იყო Ethernet კაბელისთვის, ამიტომ შევეცადე ეს გამომეტოვებინა. მეც ზოგჯერ ვცდილობდი მის მორგებას, მაგრამ ჯერ არ ვიცოდი ბევრი მონაცემით. კოდში არის რაღაცეები რაც მე გავიგე, სტრიქონში არის მონაცემები, რომლებიც მოცემულია Hue შუქზე.
ბათილი მარყუჟი () {
// ოთხი ნიმუშის ბრძანების სერია, რომელიც ფერს აქრობს ორ შუქს წითელსა და ვარდისფერს შორის. წაიკითხეთ Hue API // დოკუმენტაცია უფრო ზუსტი ბრძანებების შესახებ, მაგრამ გაითვალისწინეთ, რომ ციტირების ნიშნები უნდა გაქრეს.
სიმებიანი ბრძანება = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" გარდამავალი დრო / ":"+სიმებიანი (შემთხვევითი (15, 25))+"}"; setHue (1, ბრძანება);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" გარდამავალი დრო / ":"+სიმებიანი (შემთხვევითი (15, 25))+"}"; setHue (2, ბრძანება);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" გარდამავალი დრო / ":"+სიმებიანი (შემთხვევითი (15, 25))+"}"; setHue (1, ბრძანება);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" გარდამავალი დრო / ":"+სიმებიანი (შემთხვევითი (15, 25))+"}"; setHue (2, ბრძანება);
}
ნაბიჯი 17:
შემდეგი კოდი იყო ლოგიკური, მაგრამ არდუინოში თქვენ უნდა დაწეროთ ბული. თავიდან მე ბევრი შეცდომა მივიღე სიტყვა კლიენტის გამო. ასე რომ, მე შევხედე და დავინახე, რომ რაღაც კოდი იყენებდა ხაზს "WifiClient client;". ამიტომ ვიყენებდი და მუშაობდა.
If განცხადებაში ხშირად ხედავთ client.print. თუ გადახედავთ კოდს, ნახავთ, რომ ადრე შეყვანილი URL იყოფა ნაწილებად. ახლა შეიყვანეთ თქვენი საკუთარი კოდი. მე უნდა ავირჩიო მე -3 LED შუქი.
/ * setHue () არის ჩვენი მთავარი ბრძანების ფუნქცია, რომელსაც უნდა გადაეცეს მსუბუქი ნომერი და * სწორად ფორმატირებული ბრძანების სტრიქონი JSON ფორმატში (ძირითადად Javascript სტილის მასივი ცვლადებისა * და მნიშვნელობებისა. ამის შემდეგ ის აკეთებს მარტივ HTTP PUT მოთხოვნას ხიდი IP– ზე მითითებული დასაწყისში. */
bool setHue (int lightNum, სიმებიანი ბრძანება) {
WiFiClient კლიენტი;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT /api /"); client.print (hueUsername); client.print ("/განათება/"); client.print (lightNum); // hueLight ნულოვანი, დაამატეთ 1 client.println ("3/მდგომარეობა"); // აქ შევცვალე შეფერილობის სახელი და stateclient.print ("მასპინძელი:"); client.println (hueHubIP); client.print ("შინაარსი-სიგრძე:"); client.println (command.length ()); client.println ("შინაარსი-ტიპი: ტექსტი/უბრალო; charset = UTF-8"); client.println (); // ცარიელი ხაზი body client.println (ბრძანება); // Hue ბრძანება
} client.stop (); ჭეშმარიტი დაბრუნება; // ბრძანება შესრულებულია}
სხვაგვარად ცრუ დაბრუნება; // ბრძანება ვერ შესრულდა}
ნაბიჯი 18:
მეორე ლოგიკურში, იგივე გავაკეთე რამდენიმე სიტყვის შეცვლით. ავტვირთე თუ არა მუშაობს.
/* დამხმარე ფუნქცია იმ შემთხვევაში, თუ თქვენი ლოგიკა დამოკიდებულია სინათლის ამჟამინდელ მდგომარეობაზე. * ეს ადგენს მთელ რიგ გლობალურ ცვლადებს, რომელთა შემოწმება შეგიძლიათ იმის გასარკვევად, არის თუ არა შუქი ამჟამად * და ელფერი და ა.შ. არ არის საჭირო მხოლოდ ბრძანებების გაგზავნა */
bool getHue (int lightNum) {
WiFiClient კლიენტი;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET /api /"); client.print (hueUsername); client.print ("/განათება/"); client.print (lightNum); client.println ("3/სახელმწიფო"); client.print ("მასპინძელი:"); client.println (hueHubIP); client.println ("შინაარსის ტიპი: პროგრამა/json"); client.println ("შეინარჩუნე სიცოცხლე"); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "ჭეშმარიტი"); // თუ შუქი ჩართულია, დააყენეთ ცვლადი true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // ცვლადის დაყენება brightness value client.findUntil ("\" ელფერი / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // ცვლადის დაყენება შეფერილობის მნიშვნელობის შესვენებისათვის; // სხვა მსუბუქი ატრიბუტები ჯერ არ არის გადაღებული}} client.stop (); ჭეშმარიტი დაბრუნება; // დაკავებული, bri, hue} სხვაგვარად დაბრუნება false; // შეცდომა წაკითხვისას, bri, hue}
ნაბიჯი 19:
მე ვფიქრობ, რომ შემეძლო კავშირის დამყარება ფილიპსის ელფერით. მე ვიღებ ინფორმაციას, მაგრამ ის მაინც უნდა იქნას გამოყენებული.
სამწუხაროდ, ეს სცილდება იმას, რისი კოდირებაც შემიძლია. თუ თქვენ იცით პასუხი, ან თუ არსებობს რეალური შეცდომები, რომლებიც უნდა გამოსწორდეს, დიდი სიამოვნებით მოვისმენდი მას.:-)
გირჩევთ:
ელფერი და მე: 7 ნაბიჯი
ელფერი და მე: შეფერილობა & მე ვარ Ambilight die reageert op ვიდეო. Dit პროექტი არის aangeleverd door de Hogeschool van de Kunsten Utrecht. გავიგე გასინჯვის პროტოტიპი, რომელიც ემსგავსება მათ Arduino– ს და გონივრულ ურთიერთობებს გვთავაზობს მათ შორის
Sad Cat Fixer, Catch -Me Cat Toy - სკოლის პროექტი: 3 ნაბიჯი
Sad Cat Fixer, Catch-Me Cat Toy-სკოლის პროექტი: აქ არის ჩვენი პროდუქტი, ეს არის ინტერაქტიული სათამაშო მაუსი: Catch-Me Cat Toy. აქ არის იმ პრობლემების ჩამონათვალი, რომელსაც ბევრი კატა აწყდება ჩვენს საზოგადოებაში: კატები ამ დღეებში არააქტიური და დეპრესიული ხდებიან არაფრის გასაკეთებლად. მფლობელების უმეტესობა დაკავებულია სამსახურით ან სკოლით და თქვენი საქმიანობით
10 ძირითადი არდუინოს პროექტი დამწყებთათვის! გააკეთეთ მინიმუმ 15 პროექტი ერთი დაფით!: 6 ნაბიჯი
10 ძირითადი არდუინოს პროექტი დამწყებთათვის! გააკეთეთ მინიმუმ 15 პროექტი ერთი დაფით!: Arduino პროექტი & სამეურვეო საბჭო; მოიცავს Arduino– ს 10 ძირითად პროექტს. ყველა კოდის კოდი, გერბერის ფაილი და სხვა. SMD არ არის! მარტივი შედუღება ყველასთვის. ადვილად მოსახსნელი და შესაცვლელი კომპონენტები. თქვენ შეგიძლიათ გააკეთოთ მინიმუმ 15 პროექტი ერთი პროგრამით
ფილიპსის ელფერი სინათლის ზოლების მოჭრა და ხელახლა დაკავშირება (მათთვის, ვინც შედუღებით არც ისე გამოცდილი ვართ): 6 ნაბიჯი
ჭრის და ხელახლა აკავშირებს Phillips Hue Light Strips (მათთვის, ვინც არც ისე დახვეწილია შედუღებით): თუ დახელოვნებული გაქვთ შედუღება, აქ არის კარგი პოსტი 'ruedli' თუ როგორ უნდა გააკეთოთ ეს გამაგრების ბალიშების შუაზე გაჭრის გარეშე .ეს ნაბიჯები მათთვისაა, ვინც ჩვენთვის ნაცნობია, მაგრამ არ არის მაღალკვალიფიციური შედუღების საქმეში. მე გავაკეთე ძირითადი გაყიდვები
ხატვის მკლავი, რომელიც კონტროლდება ხმით - არდუინოს სკოლის პროექტი: 4 ნაბიჯი (სურათებით)
ხატვის მკლავი, რომელიც კონტროლდება ხმით - არდუინოს სკოლის პროექტი: მე პირველად ვმუშაობ არდუინოსთან და ვმუშაობ მსგავს რამეზე, ასე რომ ბოდიში, თუ რაიმე შეცდომა დავუშვი! ეს იდეა მაშინ მივიღე, როდესაც ვიფიქრე ჩემს ჰობიზე, რომელიც არის ხატვა და მუსიკა. ასე რომ, მე შევეცადე ამ ორივეს გაერთიანება! გამყიდველი