Mục lục:
- Bước 1: Thiết lập ban đầu
- Bước 2: Thiết lập Ngrok
- Bước 3: Tập lệnh Python để điều khiển công tắc ánh sáng
- Bước 4: Tập lệnh Python để điều khiển quạt
- Bước 5: Cài đặt và cấu hình gói LIRC
- Bước 6: Tập lệnh Python cho Điều khiển TV
- Bước 7: Đăng nhập vào tài khoản AWS
- Bước 8: Thiết lập kỹ năng TV Alexa
- Bước 9: Bật thiết lập kỹ năng Alexa
- Bước 10: Thiết lập kỹ năng Fan Alexa
- Bước 11: Xây dựng Ciruit
- Bước 12: Lệnh Alexa
Video: Kiểm soát phòng khách bằng Alexa và Raspberry Pi: 12 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Điều khiển TV, đèn và Quạt trong phòng khách của bạn bằng Alexa (Amazon Echo hoặc Dot) và Raspberry Pi GPIO.
Bước 1: Thiết lập ban đầu
Tôi đã sử dụng Raspberry Pi 2 và hình ảnh Raspbian Jessie được tải xuống từ
Sau khi đăng nhập, hãy nhập các lệnh sau để cài đặt các gói và thư viện python được yêu cầu:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Flask flask-ask sudo apt-get install lirc
Bước 2: Thiết lập Ngrok
Truy cập https://ngrok.com/download và tải xuống bản phát hành Linux ARM mới nhất dưới dạng zip và giải nén bên trong thư mục chính:
giải nén /home/pi/ngrok-stable-linux-arm.zip
Mở một thiết bị đầu cuối mới và nhập lệnh sau:
sudo./ngrok http 4000
Mở một thiết bị đầu cuối mới và nhập lệnh sau:
sudo./ngrok http 4500
Mở thiết bị đầu cuối mới thứ ba và nhập lệnh sau:
sudo./ngrok http 5000
Bước 3: Tập lệnh Python để điều khiển công tắc ánh sáng
Mở một phiên đầu cuối mới và tạo một tệp python mới có tên light_control.py:
nano light_control.py
Sao chép / dán mã sau vào tệp mới:
from flask import Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 ngoại trừ Exception as e: return statement ('Số pin không hợp lệ.') GPIO.setup (pinNum, GPIO. OUT) nếu trạng thái ở ['bật', 'cao']: GPIO.output (pinNum, GPIO. LOW) nếu trạng thái ở ['tắt', ' low ']: Câu lệnh trả về GPIO.output (pinNum, GPIO. HIGH) (' Đang bật {} Đèn phòng khách'. định dạng (trạng thái)) if _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 ', port = cổng)
Lưu và đóng tập tin.
Khởi động máy chủ bình với:
sudo python light_control.py
Để cả ngrok và light_control.py chạy
Bước 4: Tập lệnh Python để điều khiển quạt
Mở một phiên đầu cuối mới và tạo một tệp python mới có tên fan_control.py:
nano fan_control.py
Sao chép / dán mã sau vào tệp mới:
từ bình nhập khẩu Bình
từ flask_ask import Ask, statement, convert_errors nhập RPi. GPIO dưới dạng ghi nhật ký nhập GPIO nhập os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 ngoại trừ Exception as e: return statement ('Pin number không hợp lệ. ') GPIO.setup (pinNum, GPIO. OUT) nếu trạng thái ở [' bật ',' cao ']: GPIO.output (pinNum, GPIO. LOW) nếu trạng thái ở [' tắt ',' thấp ']: Câu lệnh trả về GPIO.output (pinNum, GPIO. HIGH) ('Đang bật {} Đèn phòng khách'. định dạng (trạng thái)) if _name_ ==' _main_ ': port = 4500 app.run (host =' 0.0.0.0 ', port = cổng)
Lưu và đóng tập tin.
Khởi động máy chủ bình với:
sudo python fan_control.py
Để cả ngrok, light_control.py và fan_control.py chạy
Bước 5: Cài đặt và cấu hình gói LIRC
Để điều khiển TV, bạn phải định cấu hình chân cắm trên Raspberry Pi để tạo tín hiệu hồng ngoại (IR) cho TV cụ thể của bạn. Mở thiết bị đầu cuối và nhập lệnh sau để cài đặt gói LIRC mô phỏng tín hiệu hồng ngoại của nhiều điều khiển từ xa.
sudo apt-get install lirc
Tiếp theo, bạn cần kích hoạt và cấu hình mô-đun hạt nhân lirc_rpi. Để làm như vậy, hãy mở các mô-đun trong trình chỉnh sửa Nano
sudo nano / etc / modules
Thêm các dòng bên dưới vào tệp (Đảm bảo rằng tham số gpio_out_pin trỏ đến chân điều khiển đèn LED hồng ngoại):
lirc_devlirc_rpi gpio_out_pin = 17
Tiếp theo, mở tệp tin Hardware.conf Nano như trước với sudo:
sudo nano /etc/lirc/hardware.conf
Thêm cấu hình sau vào tệp:
LIRCD_ARGS = "- uinput" LOAD_MODULES = true
DRIVER = "mặc định"
THIẾT BỊ = "/ dev / lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Bây giờ, khởi động lại Raspberry Pi:
khởi động lại sudo
Bước 6: Tập lệnh Python cho Điều khiển TV
Mở một phiên đầu cuối mới và tạo một tệp python mới có tên là ir_control.py:
nano ir_control.py
Truy cập
Tìm một điều khiển từ xa tương thích với TV của bạn. Trong trường hợp của tôi, tôi có TV Sanyo hoạt động với tệp cấu hình sanyo-tv01. Khi bạn tìm thấy tệp hỗ trợ TV của mình, hãy mở tệp đó và xem qua các tùy chọn lệnh.
Sao chép / dán mã sau vào tệp mới và thay thế sanyo-tv01 bằng tên tệp hoạt động với TV của bạn. Đồng thời đảm bảo rằng các lệnh TV được hỗ trợ bởi tệp cấu hình TV của bạn; Bạn có thể phải sửa đổi các lệnh KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN và KEY_MUTE để hoạt động chính xác với tệp cấu hình của TV:
from flask import Flaskfrom flask_ask import Ask, statement, convert_errors import RPi. GPIO as GPIO import logging import os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) # 'pin': 'pin'}) def tv_ functions (status): if status in ['turn on']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") câu lệnh trả về ('Bật TV') trạng thái elif trong ['turn off']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") câu lệnh return ('Đang tắt TV') trạng thái elif trong ['change input']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") return câu lệnh ('Thay đổi đầu vào trên TV') trạng thái elif trong ['tăng âm lượng']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") câu lệnh trả về os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") ('Tăng âm lượng trên TV') trạng thái elif trong ['giảm âm lượng']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN ") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VrseUMEDOWN") os.system ("tv01" KEY_VOLUMEDOWN ") KEY_VOL01 ") câu lệnh return ('Đang giảm âm lượng trên TV') trạng thái tắt trong ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") câu lệnh trả về ('Tắt tiếng TV') trạng thái im lặng trong ['bật tiếng Câu lệnh trả về ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") (' Đang tắt tiếng TV ') else: return (' Không tìm thấy chức năng từ xa. ') if _name_ ==' _main_ ': port = 5000 app.run (host = '0.0.0.0', port = cổng)
Lưu và đóng tập tin.
Khởi động máy chủ bình với:
sudo python ir_control.py
Để cả ba cửa sổ đầu cuối ngrok, light_control.py, fan_control.py và ir_control.py chạy
Bước 7: Đăng nhập vào tài khoản AWS
Trước tiên, hãy tạo hoặc đăng nhập vào Tài khoản nhà phát triển AWS của bạn và mở danh sách Kỹ năng Alexa của bạn.
Bước 8: Thiết lập kỹ năng TV Alexa
Chọn "Thêm một kỹ năng mới".
Đặt Tên kỹ năng thành 'Kích hoạt TV' và Tên mời thành (các) từ bạn muốn sử dụng để kích hoạt kỹ năng.
Nhấn Next để tiếp tục.
Sao chép / dán phần sau vào hộp 'Lược đồ ý định':
"slot": [{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "ý định": "GPIOControlIntent "}]}
Tiếp theo, nhấp vào 'Thêm loại vị trí'
Nhập TV_Function vào trường 'Nhập Loại'.
Nhập các giá trị sau vào trường 'Nhập Giá trị':
bật
tắt thay đổi đầu vào tăng âm lượng giảm âm lượng tắt tiếng
Tiếp theo, Sao chép / dán phần sau vào hộp 'Hình ảnh mẫu':
GPIOControlIntent {status}
GPIOControlIntent {status} theo {amount}
Nhấn Next để tiếp tục.
Chọn 'HTTPS' làm Loại điểm cuối dịch vụ và chọn một khu vực. Nhập URL ngrok từ bước 2 và nhấp vào 'Tiếp theo'. URL phải có dạng như sau:
ed6ea04d.ngrok.io
Nhấp vào 'Tiếp theo' để tiếp tục và nhấn 'Lưu'.
Bước 9: Bật thiết lập kỹ năng Alexa
Đóng kỹ năng đang mở và chọn "Thêm kỹ năng mới".
Đặt Tên kỹ năng thành 'Điều khiển đèn' và Tên mời thành (các) từ bạn muốn sử dụng để kích hoạt kỹ năng.
Nhấn Next để tiếp tục. Sao chép / dán phần sau vào hộp 'Lược đồ ý định':
{
"intents": [{"slot": [{"name": "status", "type": "LIGHTS_CONTROL"}], "Ý định": "LightsControlIntent"}]}
Tiếp theo, nhấp vào 'Thêm loại vị trí'.
Nhập "LIGHTS_CONTROL" vào trường "Nhập Loại".
Nhập các giá trị sau vào trường 'Nhập Giá trị':
trên
tắt
Tiếp theo, Sao chép / dán nội dung sau vào hộp 'Hình ảnh mẫu':
LightsControlIntent lần lượt {trạng thái}
Nhấn Next để tiếp tục. Chọn 'HTTPS' làm Loại điểm cuối dịch vụ và chọn một khu vực. Nhập URL ngrok từ bước 2 và nhấp vào 'Tiếp theo'. URL phải có dạng như sau:
ed6ea04d.ngrok.io
Nhấp vào 'Tiếp theo' để tiếp tục và nhấn 'Lưu'.
Bước 10: Thiết lập kỹ năng Fan Alexa
Đóng kỹ năng đang mở và chọn "Thêm kỹ năng mới".
Đặt Tên kỹ năng thành 'Điều khiển quạt' và Tên mời thành (các) từ bạn muốn sử dụng để kích hoạt kỹ năng.
Nhấn Next để tiếp tục.
Sao chép / dán phần sau vào hộp 'Lược đồ ý định':
{
"intents": [{"slot": [{"name": "status", "type": "FAN_CONTROL"}], "Ý định": "FANControlIntent"}]}
Tiếp theo, nhấp vào 'Thêm loại vị trí'.
Nhập "FAN_CONTROL" vào trường "Nhập Loại".
Nhập các giá trị sau vào trường 'Nhập Giá trị':
trên
tắt
Tiếp theo, Sao chép / dán nội dung sau vào hộp 'Hình ảnh mẫu':
FANControlIntent lần lượt {status}
Nhấn Next để tiếp tục. Chọn 'HTTPS' làm Loại điểm cuối dịch vụ và chọn một khu vực. Nhập URL ngrok từ bước 2 và nhấp vào 'Tiếp theo'. URL phải có dạng như sau:
ed6ea04d.ngrok.io
Nhấp vào 'Tiếp theo' để tiếp tục và nhấn 'Lưu'.
Bước 11: Xây dựng Ciruit
Kết nối mạch điện như trong sơ đồ. Tôi đã sử dụng Mô-đun chuyển tiếp JBtek 8 kênh DC 5V để kết nối với đường dây AC 120v và mặt đất của nhà tôi.
Bước 12: Lệnh Alexa
Giờ đây, các lệnh sau có thể được nói với Alexa để điều khiển phòng khách của bạn.
Đề xuất:
MÔ PHỎNG TRÒ CHƠI TỰ LÀM MÔ PHỎNG -- MÔ PHỎNG F1: 5 bước
MÔ PHỎNG TRÒ CHƠI TỰ LÀM MÔ PHỎNG || F1 MÔ PHỎNG: Xin chào mọi người Chào mừng đến với kênh của tôi, Hôm nay tôi sẽ giới thiệu cho các bạn cách tôi xây dựng " Trình mô phỏng trò chơi đua xe " với sự trợ giúp của Arduino UNO. đây không phải là một blog xây dựng, nó chỉ là tổng quan và thử nghiệm của trình mô phỏng. Sắp có blog xây dựng hoàn chỉnh
Kiểm soát phòng với ESP8266 - Nhiệt độ, chuyển động, rèm cửa và ánh sáng: 8 bước
Kiểm soát phòng với ESP8266 | Nhiệt độ, Chuyển động, Rèm cửa và Ánh sáng: Dự án này bao gồm một hệ thống dựa trên mô-đun NodeMCU ESP8266 cho phép bạn kiểm soát độ sáng của Dải đèn LED và rèm của căn phòng của bạn, đồng thời nó cũng có thể gửi dữ liệu về các sự kiện chuyển động trong phòng của bạn và nhiệt độ của đám mây
Thiết bị mô phỏng sự hiện diện tại nhà và thiết bị kiểm soát bảo mật: 6 bước (có hình ảnh)
Thiết bị mô phỏng sự hiện diện tại nhà và thiết bị kiểm soát an ninh: Dự án này cho phép chúng tôi mô phỏng sự hiện diện và phát hiện các chuyển động trong nhà của chúng tôi. các tính năng trên một d
Kiểm soát nhiệt độ phòng dựa trên IOT: 5 bước
Điều khiển nhiệt độ phòng dựa trên IOT: Điều này được hướng dẫn trên dự án điều khiển nhiệt độ phòng dựa trên IOT. Các tính năng: -1. Tự động BẬT quạt trên nhiệt độ phòng quy định. Tự động TẮT quạt dưới nhiệt độ phòng quy định. Kiểm soát thủ công tại bất kỳ thời điểm nào
Kiểm soát mê cung cân bằng với Alexa: 6 bước (có hình ảnh)
Kiểm soát mê cung cân bằng với Alexa: Kiểm soát mê cung cân bằng với Alexa Di chuyển mê cung bằng giọng nói. Trước hết, hãy xem video, đó là một bản tóm tắt hoạt động. Nói chuyện với Alexa (Raspberry Pi + AVS) NÓI: Alexa Bắt đầu kỹ năngSAY: BARANSU MEIRO WO KIDOU SHITE Hướng dẫn kỹ năngSAY: 1 LÀM, UE N