Mục lục:
- Bước 1: Bắt đầu
- Bước 2: Ứng dụng Hue
- Bước 3: Kết nối cây cầu
- Bước 4: Địa chỉ IP
- Bước 5:
- Bước 6: Gỡ lỗi Hue của bạn
- Bước 7: Bắt đầu
- Bước 8:
- Bước 9: Hãy làm điều gì đó với đèn
- Bước 10:
- Bước 11: Hãy kiểm soát ánh sáng
- Bước 12:
- Bước 13:
- Bước 14:
- Bước 15:
- Bước 16:
- Bước 17:
- Bước 18:
- Bước 19:
Video: Dự án trường học IoT Philips Hue: 19 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Đây là sách hướng dẫn tôi phải viết cho trường học. Nó không hoàn chỉnh và tôi không chắc liệu bạn có thể sử dụng nó hay không. Kiến thức của tôi về API là mức tối thiểu. Chúng tôi muốn tạo ra một chiếc gương tương tác với đèn ở mặt sau phản ứng với thời tiết, ánh sáng từ bên ngoài, v.v.
Tôi đã tìm hiểu cách lập trình đèn Philips Hue với Arduino. Trong phần này, tôi giải thích tất cả các bước của tôi và tôi đã đi được bao xa. Tôi đã không thành công trong việc lập trình Hue với Arduino nhưng tôi nghĩ đó là một khởi đầu tốt.
Tôi cần cái này: Arduino a hue light a bridge Tài khoản nhà phát triển Philips Hue
Nguồn: 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-…
Bước 1: Bắt đầu
Trước khi có thể truy cập tài liệu API, bạn cần đăng ký làm nhà phát triển. Nó miễn phí, nhưng bạn cần phải chấp nhận các điều khoản và điều kiện. Bạn có thể tạo một tài khoản tại đây>
Bước 2: Ứng dụng Hue
Tải xuống Ứng dụng Philips Hue chính thức. Kết nối điện thoại của bạn với mạng mà bạn muốn cầu Huế đang bật.
Bước 3: Kết nối cây cầu
Kết nối cầu nối của bạn với mạng của bạn và đang hoạt động bình thường. Kiểm tra xem ứng dụng trên điện thoại thông minh có thể điều khiển đèn trên cùng một mạng hay không. Nó phải trên cùng một mạng Wi-Fi.
Bước 4: Địa chỉ IP
Sau đó, bạn cần phải khám phá địa chỉ IP của cầu nối trên mạng của bạn. Nhấn liên kết để kết nối với cây cầu trong ứng dụng và thử điều khiển đèn.
Bước 5:
Nếu tất cả đều hoạt động, hãy chuyển đến menu cài đặt trong ứng dụng. Ngoài chuyển đến “Cầu của tôi”, hãy chuyển đến “Cài đặt mạng”. Tắt công tắc DHCP và bạn sẽ thấy địa chỉ IP của cầu nối. Lưu ý địa chỉ IP, sau đó bật lại DHCP.
Bước 6: Gỡ lỗi Hue của bạn
Khi bạn viết ra điều đó, bạn cần gỡ lỗi Hue của mình. Bạn cần Địa chỉ IP cho bước này. Bạn phải truy cập trang web tiếp theo.
/debug/clip.html
Giao diện sẽ như thế này trong hình. Đây là cơ sở của tất cả lưu lượng truy cập web và giao diện Hue RESTful.
Tôi nhận được thông tin này về giao diện Restful của trang Philips Hue.
URL: đây thực sự là địa chỉ cục bộ của một tài nguyên cụ thể (thứ) bên trong hệ thống màu sắc. Nó có thể là ánh sáng, một nhóm đèn hoặc nhiều thứ khác. Đây là đối tượng bạn sẽ tương tác trong lệnh này.
Phần nội dung: đây là phần của thông báo mô tả những gì bạn muốn thay đổi và cách thực hiện. Tại đây, bạn nhập, ở định dạng JSON, tên và giá trị tài nguyên bạn muốn thay đổi / thêm.
Phương thức: ở đây bạn có một lựa chọn trong số 4 phương thức HTTP mà lệnh gọi hue có thể sử dụng.
GET: đây là lệnh tìm nạp tất cả thông tin về tài nguyên đã được định địa chỉ
PUT: đây là lệnh để sửa đổi một tài nguyên có địa chỉ
POST: đây là lệnh tạo một tài nguyên mới bên trong tài nguyên đã được định địa chỉ
DELETE: đây là lệnh xóa tài nguyên đã được định địa chỉ Phản hồi: Trong khu vực này, bạn sẽ thấy phản hồi cho lệnh của mình. Cũng ở định dạng JSON.
Bước 7: Bắt đầu
Bây giờ chúng tôi cần một tên người dùng được tạo ngẫu nhiên mà cầu nối tạo cho bạn. Bạn sẽ nhận được một bằng cách điền vào này.
Đặt vào URL:
/ api /
Đưa vào CƠ THỂ:
và nhấn GET
Lệnh này về cơ bản nói rằng "vui lòng tạo một tài nguyên mới bên trong / api" (nơi đặt tên người dùng) với các thuộc tính sau. Lúc đầu, bạn sẽ gặp lỗi, và đó là vì đó là bước bảo mật của Philips Hue. Bằng cách nhấn nút, họ chứng minh rằng bạn có quyền truy cập thực tế vào cây cầu.
Bước 8:
Bây giờ Nhấn nút trên Cầu và nhấp vào ĐĂNG một lần nữa.
Bây giờ bạn sẽ nhận được tên người dùng mà cây cầu đã tạo cho bạn.
Bước 9: Hãy làm điều gì đó với đèn
Sao chép tên người dùng của bạn và đặt nó vào dòng sau.
Đặt cái này vào URL của bạn
/ api / / đèn
Nhấn GET
Bạn sẽ nhận được phản hồi JSON với tất cả các đèn trong hệ thống của bạn và tên của chúng.
Bước 10:
Em có mượn ở trường mấy cái đèn Hue, cái em dùng là cái có id 3. Em muốn thông tin cụ thể về cái đèn này.
Đặt cái này bên cạnh URL bạn đã có:
/ api / / lights / 3
Nhấn GET
Bây giờ bạn nhận được thông tin về Led 3 (nếu bạn có số khác như 1 bạn sẽ thấy thông tin về Led đó).
Bước 11: Hãy kiểm soát ánh sáng
Bạn thấy ở "trạng thái" rằng đèn led của tôi đang "bật". Chúng tôi muốn kiểm soát ánh sáng ở "trạng thái".
Đặt cái này bên cạnh URL bạn đã có: https:// / api / / lights / 3 / state
Đặt dòng tiếp theo trong BODY
Nhấn PUT
Bây giờ đèn của bạn sẽ tắt! Thay đổi giá trị trong phần thân thành true và đèn sẽ sáng trở lại.
Bước 12:
Bây giờ mọi thứ đang hoạt động, tôi muốn làm điều này với Arduino của mình. Tôi đã xem liên kết mà Philips Hue đưa ra để làm cho màu ánh sáng thay đổi. Nhưng bạn cần Python cho việc này, tôi chưa bao giờ làm việc với Python nên tôi đã tìm kiếm thứ khác.
Nếu bạn muốn xem mã này, tôi có liên kết Github ở đây:
github.com/bsalinas/ArduinoHue
Bước 13:
Tôi đã xem cách tôi có thể lấy thông tin từ trang web của nhà phát triển này đến arduino của mình. Hầu hết thời gian tôi không hiểu ngôn ngữ. Nhưng tôi đã tìm thấy một số mã trên một trang web của James Bruce.
Đây là liên kết đến trang web.
www.makeuseof.com/tag/control-philips-hue-lights-arduino-and-motion-sensor/
Bước 14:
Đầu tiên tôi thấy rằng anh ấy đang sử dụng cáp Ethernet. Tôi chỉ có một bóng đèn Hue và cầu nối Arduino, và ít hiểu biết về mã. Phải mất một lúc để tôi hiểu được mã của anh ấy, nhưng tôi vẫn không thực sự hiểu nó.
Lần đầu tiên tôi thêm thư viện này cho Internet.
#bao gồm
Cái này dành cho mạng của bạn (nó phải giống với bóng đèn Hue)
const char * ssid = ""; // đặt ở đây mạng WiFi của bạn SSIDconst char * password = ""; // đặt mật khẩu mạng WiFi của bạn ở đây
Đây là ID của Bridge của bạn và tên người dùng mà Bridge của bạn đã cấp cho bạn. (Tôi không biết 80 là viết tắt của từ đâu nhưng khi tôi thực hiện một số nghiên cứu, tôi thấy rằng nó được sử dụng cho các mạng).
// Hằng số Hue const char hueHubIP = ""; // Hue hub IP const char hueUsername = ""; // Tên người dùng Hue const int hueHubPort = 80;
// Các biến Hue bool hueOn; // bật / tắt int hueBri; // giá trị độ sáng long hueHue; // giá trị hue String hueCmd; // Lệnh Hue
bộ đệm dài không dấu = 0; // bộ đệm cho lưu trữ dữ liệu nhận được unsigned long addr;
Bước 15:
Đối với thiết lập void, tôi đã làm nhiều nhất cho kết nối internet. Trong đoạn mã này, Arduino đang xem liệu anh ta có thể kết nối với mạng hay không.
void setup () {Serial.begin (9600);
Serial.println ();
Serial.printf ("Đang kết nối với% s", ssid);
WiFi.begin (ssid, mật khẩu);
trong khi (WiFi.status ()! = WL_CONNECTED) {
chậm trễ (500);
Serial.print ("."); }
Serial.println ("được kết nối"); }
Bước 16:
Trong vòng lặp của James, tôi thấy rằng anh ấy có câu lệnh If và else. Nhưng đó là đối với cáp ethernet, vì vậy tôi đã cố gắng loại bỏ điều này. Tôi cũng đã đôi khi cố gắng điều chỉnh nó, nhưng tôi chưa biết với rất nhiều dữ liệu. Một số điều trong mã tôi đã hiểu, trong chuỗi là dữ liệu được cung cấp cho ánh sáng Huế.
void loop () {
// Một loạt bốn lệnh mẫu, màu nào làm mờ hai đèn giữa đỏ và hồng. Đọc thêm tài liệu Hue API // để biết thêm chi tiết về các lệnh chính xác sẽ được sử dụng, nhưng lưu ý rằng dấu ngoặc kép phải được thoát ra.
Lệnh chuỗi = "{" on / ": true, \" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + Chuỗi (ngẫu nhiên (15, 25)) + "}"; setHue (1, lệnh);
command = "{" on / ": true, \" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + Chuỗi (ngẫu nhiên (15, 25)) + "}"; setHue (2, lệnh);
command = "{" hue / ": 65280, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + String (random (15, 25)) + "}"; setHue (1, lệnh);
command = "{" hue / ": 50100, \" sat / ": 255, \" bri / ": 255, \" transitiontime / ":" + String (random (15, 25)) + "}"; setHue (2, lệnh);
}
Bước 17:
Mã tiếp theo là Boolean, nhưng trong Arduino bạn phải viết Bool. Lúc đầu, tôi mắc rất nhiều lỗi vì từ khách hàng. Vì vậy, tôi đã tìm kiếm nó và thấy rằng một số mã sử dụng dòng "WifiClient client;". Vì vậy, tôi đã sử dụng nó và nó đã hoạt động.
Trong câu lệnh if, bạn thường thấy client.print. Nếu bạn nhìn vào mã, bạn sẽ thấy rằng URL bạn đã nhập trước đó được chia thành nhiều phần. Bây giờ hãy nhập mã của riêng bạn. Tôi đã phải chọn đèn LED thứ 3 của mình.
/ * setHue () là hàm lệnh chính của chúng ta, hàm này cần được chuyển vào một số nhẹ và một chuỗi lệnh * được định dạng đúng ở định dạng JSON (về cơ bản là một mảng kiểu Javascript gồm các biến * và giá trị. Sau đó, nó thực hiện một yêu cầu HTTP PUT đơn giản để Bridge tại IP được chỉ định lúc bắt đầu. * /
bool setHue (int lightNum, lệnh String) {
Máy khách WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
while (client.connected ()) {
client.print ("PUT / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); // hueLight dựa trên 0, thêm 1 client.println ("3 / state"); // ở đây tôi đã thay đổi tên hue và stateclient.print ("Máy chủ:"); client.println (hueHubIP); client.print ("Nội dung-Độ dài:"); client.println (command.length ()); client.println ("Loại-Nội dung: văn bản / trơn; bảng mã = UTF-8"); client.println (); // dòng trống trước body client.println (lệnh); // Lệnh Hue
} client.stop (); trả về true; // lệnh được thực thi}
khác trả về false; // Lệnh không thành công }
Bước 18:
Ở Boolean thứ hai, tôi cũng làm điều tương tự với việc thay đổi một số từ. Tôi đã tải nó lên để xem nó có hoạt động không.
/ * Một chức năng trợ giúp trong trường hợp logic của bạn phụ thuộc vào trạng thái hiện tại của ánh sáng. * Điều này đặt một số biến toàn cục mà bạn có thể kiểm tra để tìm hiểu xem đèn hiện có đang sáng hay không * và màu sắc, v.v. Không cần thiết chỉ để gửi lệnh * /
bool getHue (int lightNum) {
Máy khách WiFiClient;
if (client.connect (hueHubIP, hueHubPort)) {
client.print ("GET / api /"); client.print (hueUsername); client.print ("/ lights /"); client.print (lightNum); client.println ("3 / bang"); client.print ("Máy chủ:"); client.println (hueHubIP); client.println ("Kiểu nội dung: application / json"); client.println ("giữ nguyên"); client.println ();
while (client.connected ()) {if (client.available ()) {client.findUntil ("\" on / ":", "\ 0"); hueOn = (client.readStringUntil (',') == "true"); // nếu đèn sáng, hãy đặt biến thành true client.findUntil ("\" bri / ":", "\ 0"); hueBri = client.readStringUntil (',').toInt (); // đặt biến thành giá trị độ sáng client.findUntil ("\" hue / ":", "\ 0"); hueHue = client.readStringUntil (',').toInt (); // đặt biến thành giá trị hue break; // chưa nắm bắt được các thuộc tính ánh sáng khác}} client.stop (); trả về true; // capture on, bri, hue} else return false; // lỗi đọc on, bri, hue}
Bước 19:
Tôi nghĩ rằng tôi có thể kết nối với Philips Hue. Tôi nhận được thông tin nhưng nó vẫn cần được sử dụng.
Thật không may, điều này vượt quá những gì tôi có thể viết mã. Nếu bạn biết câu trả lời hoặc nếu có lỗi thực sự cần được sửa chữa, tôi rất muốn nghe.:-)
Đề xuất:
Màn hình cảm biến CO2 Plug & Play với NodeMCU / ESP8266 cho trường học, trường mẫu giáo hoặc nhà của bạn: 7 bước
Màn hình cảm biến CO2 Plug & Play Với NodeMCU / ESP8266 cho Trường học, Mẫu giáo hoặc Nhà của bạn: Tôi sẽ chỉ cho bạn cách nhanh chóng tạo một phích cắm & chơi cảm biến CO2 nơi tất cả các yếu tố của dự án sẽ được kết nối với dây DuPont. Sẽ chỉ có 5 điểm cần hàn, bởi vì tôi đã không hàn trước dự án này cả
Chuông trường cho học sinh từ xa: 6 bước
Chuông trường học dành cho học sinh từ xa: Với đại dịch COVID-19, nhiều trường học dành cho trẻ em đã phải chuyển giao từ xa. Chuông học tại nhà này là một cách thú vị để giữ đúng lịch trình sử dụng Raspberry Pi và loa USB. Bạn có thể làm điều đó với con mình và chúng có thể học về lập trình một
Tiện ích gián điệp trường học tuyệt vời! Hack bút mực vô hình: 6 bước
Tiện ích gián điệp trường học tuyệt vời! Invisible Ink Pen Hack: Với bản hack tuyệt vời này, bạn có thể gửi tin nhắn bí mật cho ai đó hoặc thậm chí gian lận trong các bài kiểm tra trên lớp
Bản đồ bãi đậu xe cho sinh viên trong khuôn viên trường đại học: 7 bước (có hình ảnh)
Bản đồ bãi đậu xe cho sinh viên trong khuôn viên trường Đại học: Nhiều sinh viên thắc mắc rằng họ có thể đậu xe ở đâu trong khuôn viên trường đại học. Để giải quyết vấn đề này, tôi đã tạo một bản đồ bãi đậu xe có ánh sáng của khu vực chính trong khuôn viên của Đại học Bang Utah. Bản đồ dành cho sinh viên để xem nhanh các tùy chọn đỗ xe là gì
Trường hợp Mp3 về Môi trường thù địch: 9 bước
Hộp đựng Mp3 về Môi trường thù địch: Tôi đã làm một chiếc vỏ bảo vệ để giữ cho chiếc Creative Zen V Plus mới của mình an toàn trước các yếu tố thù địch trong môi trường cửa hàng hàn. Ba yếu tố tôi quan tâm nhất là: tia lửa hàn, mảnh đạn mài và bụi kim loại. Tia lửa hàn có thể nóng