Mục lục:

Máy chiếu hồng ngoại ESP-12: 7 bước
Máy chiếu hồng ngoại ESP-12: 7 bước

Video: Máy chiếu hồng ngoại ESP-12: 7 bước

Video: Máy chiếu hồng ngoại ESP-12: 7 bước
Video: Hãi Hùng Hồn Ma Bước Ra Từ Ngôi Mộ Nằm Giữa Nhà Ai Nhìn Thấy Cũng Nổi Óc Cục | Duy Còi Vlog 2024, Tháng bảy
Anonim
Máy chiếu hồng ngoại ESP-12
Máy chiếu hồng ngoại ESP-12

Blaster điều khiển từ xa hồng ngoại sử dụng esp8266

Truyền mã điều khiển từ xa nhận được từ Web hỗ trợ nhiều thiết bị đầu ra.

Được xây dựng trong trang web đơn giản chủ yếu để thử nghiệm.

Việc sử dụng thông thường là thông qua tin nhắn ĐĂNG có thể đến từ các trang web hoặc từ điều khiển giọng nói IFTTT / Alexa.

Hỗ trợ bộ dò kích hoạt Amazon Echo / Dot để tắt tiếng / im lặng ngay khi nói từ kích hoạt.

Lệnh là lệnh đơn hoặc chuỗi. Chuỗi có thể được lưu trữ dưới dạng macro được đặt tên, sau đó có thể được sử dụng dưới dạng lệnh hoặc trong các chuỗi khác.

Lịch sử gần đây và danh sách các macro có thể được lấy qua giao diện web

Hỗ trợ tải lên OTA chương trình cơ sở mới và sử dụng thư viện WifiManager để thiết lập wifi ban đầu

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng

Sử dụng các thành phần sau

  • Mô-đun ESP-12F
  • Bộ điều chỉnh 3.3V (bộ điều chỉnh buck mini MP2307)
  • Công tắc MOSFET (AO3400)
  • Bộ phát hồng ngoại (3mm)
  • Điện trở phụ thuộc ánh sáng GL2258 (Máy dò hoạt động Alexa tùy chọn)
  • Điện trở
  • Tụ điện tách (20uF)
  • Ổ cắm USB cái (tốt nhất là hàn thân thiện với tay áo
  • Dải ổ cắm 3 chân IC cho máy dò Alexa
  • Các bộ phận cơ khí (có thể được in 3D)

Có thể được lắp ráp vào hộp dự án ESP-12F

  • Gắn bộ điều chỉnh vào đầu nối USB và lắp vào hộp
  • Tạo trình điều khiển IR trên một phần nhỏ của bảng vero (3 dây, đầu vào cổng + 5V, 0V)
  • Kết nối trình điều khiển IR với USB + 5V, 0V
  • Chèn ổ cắm 3 chân IC vào hộp dự án nếu sử dụng bộ dò Alexa. Kết nối với + 3.3V, 0V và dây cho đầu vào
  • Tạo ESP-12F với 2,2K từ GPIO15 đến GND, EN sang Vdd, 4K7 GPIO13 đến Vdd, đầu vào Alexa đến GPIO13, trình điều khiển IR tới GPIO14, 0V và Vdd đến 3,3V
  • Tạo bộ phát hiện Alexa và bộ đệm hỗ trợ nếu được yêu cầu.

Lưu ý rằng có thể dễ dàng hơn để lập trình ESP-12F trước tiên nếu bạn có một số loại thiết bị lập trình nối tiếp hoặc cơ sở tạo breadboard tạm thời như thế này để kết nối với các cổng nối tiếp.

Lập trình tiếp theo có thể được thực hiện bằng cách sử dụng bản cập nhật OTA tích hợp sẵn.

Bước 2: Phần mềm

Ir Blaster sử dụng bản phác thảo Arduino có sẵn trên github

Điều này cần được điều chỉnh để phù hợp với điều kiện địa phương và sau đó được biên dịch trong môi trường esp8266 Arduino.

Các thư viện sau đây cần thiết, hầu hết là tiêu chuẩn hoặc có thể được thêm vào. Hai phần cuối cùng được bao gồm trong git.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • Máy chủ DNS
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (bao gồm trong Git)
  • BitMessages (bao gồm trong Git)

Các mục trong bản phác thảo sẽ được thay đổi bao gồm

  • Mã ủy quyền để truy cập web AP_AUTHID
  • Mật khẩu trình quản lý Wfi WM_PASSWORD
  • firmware OTA password update_password
  • Các thiết bị / mã nút IR mới (xem sau)

Khi điều này được thực hiện thì trước tiên nó sẽ được tải lên bằng cách tải lên nối tiếp thông thường.

Vì SPIFFS được sử dụng thì nên chuẩn bị bộ nhớ bằng cách cài đặt và sử dụng công cụ tải lên dữ liệu phác thảo arduino ESP8266. Thao tác này sẽ tải lên thư mục dữ liệu dưới dạng nội dung SPIFFS ban đầu

Khi thiết bị không thể kết nối với mạng cục bộ (như sẽ xảy ra lần đầu) thì trình quản lý Wifi sẽ tạo một điểm truy cập (192.168.4.1). Kết nối với mạng này từ điện thoại hoặc máy tính bảng sau đó duyệt đến 192.168.4.1 Bạn sẽ nhận được giao diện web để kết nối với wifi cục bộ. Những lần truy cập tiếp theo sẽ sử dụng cái này. Nếu mạng cục bộ thay đổi thì nó sẽ chuyển về chế độ cấu hình này.

Cập nhật tiếp theo có thể được thực hiện bằng cách biên dịch nhị phân xuất trong môi trường Arduino và sau đó truy cập giao diện OTA tại ip / firmware.

Bước 3: Thêm mã thiết bị / nút

Lưu ý: Phần này đã thay đổi so với phương pháp trước đó, nơi cấu hình đã được biên dịch trước đó thành mã. Bây giờ nó sử dụng các tệp được tải từ hệ thống lưu trữ SPIFFs. Điều này làm cho việc tải lên các định nghĩa mới dễ dàng hơn nhiều.

Định nghĩa nút được bao gồm trong tệp buttonnames.txt. Đó là danh sách toàn cầu các tên trên tất cả các điều khiển từ xa đang được sử dụng vì nhiều tên có xu hướng phổ biến. Như đã cung cấp, phần này chứa thông tin chi tiết về các điều khiển từ xa mà tôi sử dụng. Các mục mới có thể được thêm vào. Có khoảng trống cho tổng số 160 tên nhưng điều này có thể được tăng lên bằng cách điều chỉnh các hằng số trong bitMessages.h và biên dịch lại. Các tên được định nghĩa ở đây là các tên được sử dụng khi gửi lệnh.

Mỗi thiết bị từ xa được xác định trong một tệp có tên dev_remotename. Nó bao gồm một phần cấu hình ở trên cùng và sau đó là một bảng ánh xạ từ tên nút đến mã là chuỗi hex chứa các bit sẽ được gửi. Chỉ những tên nút được yêu cầu mới cần được xác định.

Phần cấu hình ở đầu tệp thiết bị chứa các tham số được sử dụng khi gửi mã. Mục đầu tiên là tên thiết bị được sử dụng khi gửi lệnh. Các thông số khác được mô tả trong readme trên trang web mã.

Hầu hết các điều khiển từ xa thuộc một trong 3 loại giao thức (chưa rõ, rc5 và rc6). Nec có lẽ là phổ biến nhất và có cấu trúc tiêu đề đơn giản và thời gian bit. Có một biến thể nhỏ của điều này chỉ khác về thời gian xung tiêu đề. rc5 và rc6 là các giao thức do Philips xác định nhưng cũng được một số nhà sản xuất khác sử dụng. Chúng phức tạp hơn một chút và đặc biệt rc6 có một yêu cầu thời gian đặc biệt cho một trong các bit.

Để nắm bắt mã cho một điều khiển từ xa mới, tôi sử dụng bộ thu IR (TSOP) thường được sử dụng với phích cắm bộ thu từ xa. Điều này thực hiện giải mã cơ bản và đưa ra đầu ra mức logic. Chúng thường đi kèm với giắc cắm 3,5 mm với các kết nối + 5V, GND, DATA. Tôi đã hy sinh một, rút ngắn dây dẫn và đưa nó qua bộ đệm 3.3V đảo ngược để cấp chân GPIO trên Raspberry Pi.

Sau đó, tôi sử dụng công cụ python rxir.py (trong thư mục công cụ git) để nắm bắt mã. Để giúp dễ dàng sử dụng hơn để nắm bắt một số lượng lớn các nút, công cụ này sử dụng tệp định nghĩa văn bản để xác định các nút trên điều khiển từ xa và chỉ là tên của các nút trong một nhóm trên điều khiển từ xa. Ví dụ: một người có thể có một điều khiển từ xa Sony mới và một thiết lập 3 tệp văn bản có tên là sonytv-cursor, sonytv-number, sonytv-playcontrols, mỗi tệp có tên nút liên quan trong đó. Công cụ sẽ nhắc thiết bị (sonytv), phần (con trỏ) và giao thức nào sẽ sử dụng (chưa được xác định, chưa được xác định) Sau đó, nó sẽ nhắc tuần tự cho mỗi lần nhấn nút và ghi kết quả vào tệp sonytv-ircodes. Các phần có thể được lặp lại nếu được yêu cầu để kiểm tra các ảnh chụp còn tốt. Các bit từ tệp.ircodes có thể được chỉnh sửa thành các bảng BitDevices.

Bước 4: Kiểm soát Web và Macro

Điều khiển web cơ bản là một lượt nhận hoặc một bài đăng json có thể chứa một chuỗi.

Get to / ir có 6 tham số

  • auth - chứa mã ủy quyền
  • thiết bị - tên của thiết bị từ xa
  • tham số - tên của nút
  • bit - số bit tùy chọn
  • lặp lại - số lần lặp lại tùy chọn
  • chờ đợi - độ trễ tính bằng mili giây trước khi lệnh tiếp theo có thể được thực thi.

Thiết bị cũng có thể là 'null' để chỉ có độ trễ, 'macro' để sử dụng macro được tham chiếu bởi tham số hoặc 'phát hiện' để sử dụng tính năng phát hiện Alexa (xem sau).

Bài đăng đến / irjson bao gồm một cấu trúc json như

{

"auth": "1234", "lệnh": [{"thiết bị": "yamahaAV", "tham số": "hdmi4", "chờ": "5000", "bit": "0", "lặp lại": "1"}, {"device": "yamahaAV", "parameter": "mute", "wait": "100", "bits": "0", "repeat": "1"}]

}

Trình tự có thể dài bất kỳ và các thiết bị có thể là tham chiếu macro.

Cấu trúc tương tự có thể được sử dụng để xác định macro. Chỉ cần bao gồm macro: "macroname", ở cấp cao nhất, ví dụ: sau khi xác thực. Nội dung thực tế được lưu trữ trong một tệp có tên macroname.txt

Macro có thể bị xóa bằng cách xác định chúng mà không có "lệnh".

Các lệnh web khác

  • / gần đây (liệt kê hoạt động gần đây)
  • / check (hiển thị trạng thái cơ bản)
  • / (tải biểu mẫu web để gửi lệnh theo cách thủ công)
  • / edit (tải một biểu mẫu web để xem danh sách tệp và xóa / tải tệp lên)
  • / edit? file = filename (xem nội dung của một tệp cụ thể)
  • / reload (tải lại tên nút và tệp thiết bị. Sử dụng sau khi thay đổi bất kỳ tên nào trong số này)

Bước 5: Điều khiển bằng giọng nói Alexa bằng IFTTT

Cách đơn giản nhất để sử dụng ir Blaster với Alexa là sử dụng IFTTT làm cổng.

Cổng đầu tiên chuyển tiếp cổng được sử dụng cho blaster trong bộ định tuyến của bạn để nó có thể truy cập được từ internet. Có thể tốt khi sử dụng một dịch vụ dns như Liberationns để đặt tên cho ip bên ngoài của bộ định tuyến và giúp xử lý dễ dàng hơn nếu ip này thay đổi.

Thiết lập tài khoản IFTTT và bật kênh Maker Webhooks và kênh Alexa. Bạn sẽ cần đăng nhập vào trang Amazon khi thực hiện việc này để kích hoạt quyền truy cập IFTT.

Tạo trình kích hoạt IF bằng kênh IFTTT Alexa, chọn hành động dựa trên một cụm từ và nhập cụm từ bạn muốn (Ví dụ: tăng âm lượng).

Tạo hành động bằng cách chọn kênh Maker webhooks. Nhập vào trường URL một cái gì đó như

myip: port / irjson? trơn = {"auth": "1234", "comm…

Hành động này sẽ được gửi đến ir blaster nơi nó sẽ cố gắng thực hiện khối lượng macro. Một có thể là thiết bị / nút cụ thể ở đây nếu muốn nhưng tôi thấy tốt hơn nên xác định và sử dụng macro vì sau đó chuỗi hành động có thể dễ dàng thay đổi chỉ bằng cách xác định lại macro.

Cần có một applet IFTTT riêng cho mỗi lệnh.

Bước 6: Kỹ năng thoại của Alexa bản địa

Thay vì IFTTT, người ta có thể xây dựng một kỹ năng tùy chỉnh bên trong phát triển Alexa. Điều này tập trung tất cả quá trình xử lý ở một nơi và có nghĩa là bạn không phải tạo các hành động riêng biệt cho từng nút.

Bạn cần đăng ký với tư cách là nhà phát triển Amazon Alexa và bạn cần đăng ký với dịch vụ lambda bảng điều khiển Amazon AWS. Bạn cũng sẽ cần phải xem các hướng dẫn để hiểu quy trình một chút.

Về phía nhà phát triển Alexa, bạn cần tạo một kỹ năng tùy chỉnh mới, nhập từ kích hoạt của nó và tạo danh sách các từ lệnh như tăng âm lượng, hướng dẫn, v.v.

Sau đó, Alexa gửi cụm từ đến một chương trình chạy trên dịch vụ lamda, chương trình này sẽ diễn giải cụm từ và thực hiện một lệnh gọi URL tới Ir blaster để thực hiện nó.

Tôi đã bao gồm lược đồ ý định của Alexa và hàm lambda của bảng điều khiển mà tôi sử dụng trong git. URL sẽ cần được sửa đổi để tham chiếu đến ip thích hợp và có quyền phù hợp. Để đơn giản, các hàm lambda gọi một macro có phiên bản chữ thường được tước bỏ khoảng trắng của cụm từ. Nó cũng cố gắng loại bỏ từ khóa kích hoạt mà đôi khi có thể được bao gồm. Ví dụ. blaster VOLUME up sẽ gọi một macro được gọi là volumeup nếu từ kích hoạt là blaster.

Bước 7: Kích hoạt công cụ dò tìm Alexa

Mặc dù nhận dạng giọng nói Echo / Dot tốt nhưng đôi khi có thể bị nhầm lẫn nếu âm thanh đang phát từ TV trừ khi bạn đến gần và nói to.

Để cải thiện điều này, tôi đã thêm một bộ dò kích hoạt vào Dot của mình. Ngay sau khi từ khóa (Alexa được nói), vòng đèn LED sáng lên. Bộ phát hiện đưa điều này vào blaster nơi nó sẽ sử dụng macro alexaon để tắt tiếng TV, tương tự khi kết thúc quá trình xử lý lệnh, đèn sẽ tắt và macro alexaoff khôi phục âm thanh.

Lệnh 'phát hiện' cũng có thể được sử dụng để bật và tắt tính năng này. Vì vậy, ví dụ, tôi sử dụng macro turnon ban đầu để kích hoạt tính năng phát hiện và macro turnoff để vô hiệu hóa nó. Điều này cũng có thể được sử dụng trong macro hành động để hỗ trợ một coomand tắt tiếng và bật tiếng thực sự mà nếu không sẽ có vấn đề.

Bộ phát hiện vật lý là một điện trở phụ thuộc ánh sáng mà mạch hỗ trợ. Tôi gắn của tôi trên Chấm bằng một khung in 3D

Đề xuất: