Mục lục:
- Bước 1: Điều kiện tiên quyết
- Bước 2: Xây dựng bảng
- Bước 3: Sơ đồ
- Bước 4: Thêm Thư viện Irremote vào Phần mềm Arduino
- Bước 5: Ghi lại mã từ điều khiển từ xa của bạn
- Bước 6: Tạo trang web cho điều khiển từ xa của bạn
- Bước 7: Tải mã điều khiển từ xa lên Arduino của bạn
- Bước 8: Kết nối với máy chủ web từ máy tính của bạn
- Bước 9: Bước tùy chọn: Chỉnh sửa tệp máy chủ lưu trữ của bạn để dễ sử dụng hơn
Video: Điều khiển từ xa dựa trên trình duyệt Arduino (linux): 9 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Chúng tôi có những đứa trẻ. Tôi yêu chúng đến từng bit nhưng chúng vẫn giấu điều khiển từ xa cho vệ tinh và TV khi họ bật các kênh dành cho trẻ em. Sau khi điều này xảy ra hàng ngày trong vài năm, và sau khi người vợ yêu dấu của tôi cho phép tôi có Arduino vào dịp Giáng sinh, tôi quyết định rằng đã đến lúc tạo ra thứ gì đó hữu ích (trong mắt cô ấy!) Với Arduino. Vì vậy, ở đây chúng tôi có đỉnh cao của điều đó: một giao diện dựa trên web cho Arduino thay thế điều khiển từ xa của tôi và có thể truy cập được từ mạng nội bộ của tôi. Khi tôi tìm ra lý do tại sao lá chắn ethernet của mình không cho phép arduino giữ bản phác thảo, tôi sẽ viết một bản phác thảo mới sử dụng lá chắn ethernet làm máy chủ web, nghĩa là tôi không cần cài đặt apache trên máy tính của mình. Hãy theo dõi, tôi sẽ đạt được điều đó!
Bước 1: Điều kiện tiên quyết
Phần cứng: Phía Arduino: Arduino - Tôi đang sử dụng Arduino Uno R2 Breadboard - cửa hàng điện tử ở địa phương của bạn hoặc nhà bếp nếu bạn muốn có một breadboard đích thực Vỏ bọc - Tôi đã sử dụng một hộp nhựa cũ có nắp trong suốt Thành phần: Đèn LED hồng ngoại - Tôi đã khử ẩm một từ bộ điều khiển từ xa bị hỏng (cảm ơn các em!) Bộ thu hồng ngoại - Tôi đã nhận được của tôi từ bộ mở rộng từ xa bằng mắt thần - Tôi đã sử dụng Điện trở BC547 - Tôi đã sử dụng một biến trở 1,5k ohm được đặt thành 1k ohm Dây nhảy Breadboard - Tôi đã nhận được của tôi từ cuộn cáp RJ45 lõi rắn Phía máy tính: Máy tính để sử dụng làm máy chủ USB dẫn đến Arduino Phần mềm: Phần mềm Arduino - từ thư viện không thể chuyển đổi arduino.cc - từ https://www.arcfn.com/2009/08/multi-protocol- hồng ngoại-remote-library.html (cảm ơn Ken, rất tốt!) Máy chủ web Apache có cài đặt PHP - apache.org Địa chỉ IP nội bộ - của tôi là 192.168.0.9 Hình ảnh điều khiển từ xa của bạn - google hoặc hình ảnh được chụp trên máy ảnh của bạn. Tôi đã lưu của mình ở độ phân giải 200x600
Bước 2: Xây dựng bảng
Sử dụng breadboard cho arduino rất được khuyến khích. Tôi đã gắn Arduino của mình và một breadboard trong cùng một vỏ bọc và nối dây vĩnh viễn tất cả các chân mà tôi thường sử dụng vào breadboard. Chân Arduino được sử dụng cho dự án này: 5v, nối đất Chân kỹ thuật số 3, 11 (chân 3 điều khiển đèn LED hồng ngoại, chân 11 kết nối với bộ thu IR)
Bước 3: Sơ đồ
Sơ đồ này rất đơn giản, 4 thành phần và 6 dây. Kết nối IR LED: Kết nối một trong các chân của điện trở với chân kỹ thuật số Arduino 3 Kết nối chân còn lại của điện trở với chân cơ sở của bóng bán dẫn (chân giữa trong trường hợp của tôi) Kết nối bộ phát của bóng bán dẫn với đất Kết nối bộ thu của bóng bán dẫn với chân âm của đèn LED (chân ngắn, mặt phẳng của đèn LED) Kết nối chân dương (chân dài, mặt cong) của đèn LED với các kết nối bộ thu IR chân 5v (bạn sẽ cần tìm chân cắm cho bộ thu IR cụ thể của bạn): chân GND nối đất chân VS đến chân VO 5v tới chân số 11 của Arduino
Bước 4: Thêm Thư viện Irremote vào Phần mềm Arduino
Unmote là một thư viện tuyệt vời được viết bởi Ken Shirriff và có sẵn từ blog của anh ấy tại https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Tải xuống thư viện từ https:// arcfn.com / files / IRremote.zip và cài đặt nó như bạn làm với bất kỳ thư viện nào khác cho arduino. Blog của anh ấy có rất nhiều thông tin hữu ích về thư viện và cách cài đặt nó.
Bước 5: Ghi lại mã từ điều khiển từ xa của bạn
Đây là phần bắt đầu của phần nhàm chán (nhưng không thể tránh khỏi): Nhấn mọi nút trên điều khiển từ xa, lưu chuỗi đầu ra và ánh xạ nó vào điều khiển từ xa ảo. Bạn chỉ cần thực hiện một lần, mất khoảng 20 phút hoặc lâu hơn. Khởi động trình soạn thảo văn bản để lưu đầu ra của bạn. Tạo tài liệu mới và gõ mọi nút trên điều khiển từ xa của bạn, mỗi nút trên mỗi dòng: Power Up Down Left Right.. vv Khởi động Arduino IDE và nhấp vào "Files-> Examples-> IRremote-> IRrecvDump" và tải nó lên Arduino của bạn. Ví dụ này sẽ kết xuất các mã từ xa vào cổng nối tiếp. Khởi động màn hình cổng nối tiếp và nhấn một phím trên điều khiển từ xa của bạn. Bạn sẽ thấy một chuỗi xuất hiện trong cửa sổ theo dõi nối tiếp: "Đã giải mã *: * (* bit)". Sao chép dòng này và lưu vào tài liệu của bạn trên dòng thích hợp. Lặp lại cho đến khi bạn có tất cả các khóa được lưu trữ trong tệp văn bản. Tôi biết điều này thú vị như thế nào, tôi đã làm nó hai lần cho đến nay: P Bây giờ chúng ta cần thực hiện một chút tìm kiếm và thay thế trong tệp văn bản: tìm kiếm "Đã giải mã" thay thế bằng "" tìm kiếm cho ": 0x" thay thế bằng "," search for "(" thay thế bằng "," tìm kiếm "bit)" thay thế bằng "" Vì vậy, đối với một dòng như: NEC được giải mã: 0x000110 (15 bit), bây giờ chúng ta sẽ có một dòng cho biết: NEC, 000110, 15
Bước 6: Tạo trang web cho điều khiển từ xa của bạn
Bây giờ chúng tôi cần ánh xạ các nút trên hình ảnh điều khiển từ xa của bạn.
Tôi đã sử dụng https://www.maschek.hu/imagemap/imgmap để lập bản đồ các nút và sửa đổi mã mà trang web cung cấp cho bạn để làm cho nó hoạt động.
Nhấp vào "Sử dụng hình ảnh trên máy tính của bạn: [chọn tệp]", chọn hình ảnh của bạn, nhấp vào [tải lên], nhấp vào [chấp nhận] Thả hình chữ nhật, hình tròn, v.v. vào mỗi nút. Đối với HREF, hãy đặt /remote.php?command= và dòng cho nút đó từ tài liệu văn bản ví dụ /remote.php?command=NEC, 000110, 15 Sẽ là khôn ngoan (và hỗ trợ rất nhiều trong việc gỡ lỗi) nếu bạn cũng điền vào Alt: với tên nút nhưng điều đó tùy thuộc vào bạn.
Lặp lại cho mỗi nút.
Tất cả đã được làm xong? Sau đó, chúng tôi sẽ tiếp tục. Ở cuối trang đó là "Mã", hãy nhấp vào đó và một hộp sẽ mở ra hiển thị mã cho bản đồ hình ảnh. Sao chép và dán nó vào một tài liệu văn bản mới. Đây là phần chính của trang web của chúng tôi.
Đây là trang web hoàn chỉnh của tôi, chỉ cần thay thế…
với mã của riêng bạn ở trên và lưu nó dưới dạng remote.php trong thư mục web của bạn (/ var / www trên linux) cùng với các hình ảnh điều khiển từ xa của bạn. Thay đổi dòng cho hình ảnh của riêng bạn:
"https://www.w3.org/TR/html4/loose.dtd">
Điều khiển Arduino LED
Bước 7: Tải mã điều khiển từ xa lên Arduino của bạn
Tạo một bản phác thảo mới và dán đoạn mã sau vào đó: / * * WebRemote * Một đèn LED hồng ngoại phải được kết nối với chân Arduino PWM 3. * Phiên bản 0.1 Tháng Bảy, 2009 * Mã này bản quyền Gregory Fenton, https://labby.co. uk / 2012/02 /’tmote-arduino-Experimental / * Bản quyền của Thư viện IRremote 2009 Ken Shirriff, https://arcfn.com * / #include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); trả lại obj; } boolean end = false; char inData [64]; // Kích thước như chỉ số byte thích hợp = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Serial << "Khởi tạo cổng nối tiếp" << EOP; } void loop () {Chuỗi pch, sType, sTemp; char inChar, sTest, k; int sBits; sHex dài; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (index == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; chỉ số = 0; nghỉ; } else {if (index <64) // Kích thước mảng {pch + = inChar; chỉ số ++; }}} if (end) {// Phân tích cú pháp dữ liệu trong inData tại đây… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // bỏ qua ',' hoặc '' // bây giờ tôi trỏ đến đầu của hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j bây giờ trỏ tới ',' hoặc '' sau hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex * = 16; if (k> = '0' && k <= '9') sHex + = (k - '0'); else if (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j + 1); sBits = 0; for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits * = 10; if (k> = '0' && k <= '9') sBits + = (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Code type:" << sType << "Hex:"; Serial.print (sHex, HEX); Serial << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; đã kết thúc = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBits); } else if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } else if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } else if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } else if (sType.equals (String (""))) {Serial << "Trì hoãn" << EOP; chậm trễ (450); } delay (30); }}
Bước 8: Kết nối với máy chủ web từ máy tính của bạn
.. hoặc điện thoại hoặc android hoặc ipad hoặc bất cứ thứ gì: truy cập https:// địa chỉ IP máy chủ web / remote.php trong trình duyệt của bạn Đối với tôi địa chỉ là https://192.168.0.9/remote.php nhưng chắc chắn địa chỉ của bạn sẽ khác. Nếu tất cả đều hoạt động, bạn sẽ thấy hình ảnh điều khiển từ xa của mình với các nút bạn có thể nhấp vào.
Bước 9: Bước tùy chọn: Chỉnh sửa tệp máy chủ lưu trữ của bạn để dễ sử dụng hơn
Một bước tôi đã làm là chỉnh sửa tệp hosts của mình (/ etc / hosts trên linux, C: / Windows / System32 / Drivers / etc / hosts trên windows). Lưu ý rằng tệp này chỉ có thể được chỉnh sửa trong dấu nhắc lệnh quản trị (windows) hoặc bằng su (linux) Thêm dòng ip.add.re.ss từ xa thay thế ip.add.re.ss bằng địa chỉ IP máy chủ và lưu tệp. Bạn sẽ cần thực hiện việc này trên mọi thiết bị mà bạn muốn truy cập trang web với tên viết tắt. Bây giờ bạn có thể truy cập điều khiển từ xa bằng https://remote/remote.php Đây là hướng dẫn thích hợp đầu tiên của tôi, hãy nhẹ nhàng và cho tôi biết nếu có bất kỳ sự cố nào để tôi có thể khắc phục chúng.
Đề xuất:
ATTiny84 dựa trên trình điều khiển LED 3A bước xuống: 7 bước (có hình ảnh)
ATTiny84 Dựa trên trình điều khiển LED 3A bước xuống: Nếu bạn muốn cấp nguồn cho đèn LED 10W, bạn có thể sử dụng trình điều khiển LED 3A này. Với 3 đèn LED Cree XPL, bạn có thể đạt được 3000 lumen
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Trình tạo nhạc dựa trên thời tiết (Trình tạo âm trung dựa trên ESP8266): 4 bước (có hình ảnh)
Trình tạo nhạc dựa trên thời tiết (Trình tạo âm trung dựa trên ESP8266): Xin chào, hôm nay tôi sẽ giải thích cách tạo trình tạo nhạc dựa trên thời tiết nhỏ của riêng bạn. Nó dựa trên ESP8266, giống như Arduino và nó phản ứng với nhiệt độ, mưa và cường độ ánh sáng. Đừng mong đợi nó có thể tạo ra toàn bộ bài hát hoặc hợp âm
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +: 6 bước (có hình ảnh)
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +: Tổng quan Có thể hướng dẫn này sẽ tập trung vào cách cung cấp cho Roomba đã chết một bộ não mới (Raspberry Pi), mắt (Webcam) và cách kiểm soát mọi thứ từ trình duyệt web. Có rất nhiều bản hack Roomba cho phép điều khiển thông qua giao diện nối tiếp. Tôi không có
Cách chế tạo Robot điều khiển di động - Dựa trên DTMF - Không có Vi điều khiển & Lập trình - Kiểm soát từ mọi nơi trên thế giới - RoboGeeks: 15 bước
Cách chế tạo Robot điều khiển di động | Dựa trên DTMF | Không có Vi điều khiển & Lập trình | Kiểm soát từ mọi nơi trên thế giới | RoboGeeks: Muốn tạo ra một robot có thể được điều khiển từ mọi nơi trên thế giới, Hãy làm điều đó