- Vật liệu tinh tế:
- Phần 1: Thiết lập Raspberry Pi với SSH và VNC
- Phần 2: Thiết lập tài khoản nhà phát triển Amazon của bạn và định cấu hình dịch vụ giọng nói Alexa trên Raspberry Pi:
- Phần 3: Thiết lập PubNub và IFTTT cho Alexa Pi Home Automation :
- Phần 3-2: Thiết lập IFTTT cho Dịch vụ Amazon Alexa:
- Phần 4: Kết nối phần cứng và Sơ đồ mạch:
- Phần 5: Mã Python để điều khiển đèn LED:
Bạn đã bao giờ nghĩ về một chiếc loa có thể điều khiển bằng giọng nói của bạn chưa !!! Điều gì sẽ xảy ra nếu chúng ta có thể kiểm soát các thiết bị gia dụng của mình theo cách này và làm cho các thiết bị này thông minh hơn? Trợ lý giọng nói trở nên phổ biến hơn khi chúng ta đang hướng tới kỷ nguyên của các hệ thống dựa trên AI và IoT. Bạn đã nghe nói về Trợ lý Google, Apple Siri và Amazon Alexa . Tất cả đều là hệ thống AI dựa trên giọng nói, điều làm cho chúng khác biệt với nhau là hệ sinh thái của chúng và đây là nơi Amazon Alexa nổi bật nhất. Google, Apple và Amazon, tất cả những công ty này đều đã ra mắt loa thông minh của họ nhưng Amazon là hãng đầu tiên giới thiệu loa thông minh. Amazon echo, Echo Dot Spot, v.v. là những loa thông minh có sẵn trên thị trường.
Amazon cung cấp API để sử dụng dịch vụ thoại phổ biến của nó, Alexa. Nó là mã nguồn mở và có sẵn trên Github. Hơn nữa, bạn có thể cài đặt hoặc tích hợp Alexa trên các thiết bị tùy chỉnh như Raspberry Pi và nhận toàn bộ chức năng Amazon Echo trong thiết bị đó.
Sử dụng dịch vụ thoại của Alexa, chúng ta có thể phát nhạc, nhận thông tin về thời tiết, đặt vé và nhiều hơn thế nữa. Tất cả bạn phải làm là yêu cầu'. Trong hướng dẫn này, chúng ta sẽ xem cách chúng ta có thể điều khiển Raspberry Pi GPIO bằng cách sử dụng các dịch vụ Alexa Voice để phát sáng đèn LED.
Vật liệu tinh tế:
Yêu cầu phần cứng:
- Raspberry Pi 3 hoặc Raspberry Pi 2 Model B và SD Card (8GB trở lên)
- Loa ngoài với cáp AUX 3,5 mm
- Bất kỳ Webcam hoặc Micrô USB 2.0 nào
- Mô-đun chuyển tiếp
- Đèn LED
Lưu ý: Webcam có micrô có sẵn, vì vậy chúng tôi sẽ sử dụng micrô này thay cho micrô USB 2.0.
Ứng dụng phần mềm và Yêu cầu web:
- Đăng ký tài khoản với Alexa Voice Services
- Đăng ký tài khoản với PubNub
- Đăng ký tài khoản với IFTTT
Chúng tôi cũng giả định rằng Raspberry pi của bạn đã được thiết lập với Hệ điều hành Raspbian và được kết nối với internet. Với những điều này, hãy tiếp tục với hướng dẫn. Nếu bạn chưa quen với Raspberry Pi thì trước tiên hãy xem phần Bắt đầu với Raspberry pi.
Toàn bộ hướng dẫn chủ yếu được chia thành 5 phần như sau:
- Nếu bạn không có màn hình thì chúng tôi phải thiết lập Raspberry Pi với SSH và VNC, đồng thời kiểm tra kết nối USB Micrô.
- Thiết lập Nhà phát triển Amazon của bạn và cài đặt Alexa trên Raspberry Pi
- Thiết lập PubNub và IFTTT cho Alexa Home Automation
- Kết nối phần cứng
- Mã Python cho Alexa Pi GPIO Control
Nếu bạn chỉ muốn điều khiển đèn LED bằng giọng nói của mình, hãy kiểm tra dự án Đèn LED điều khiển bằng giọng nói dựa trên Bluetooth của chúng tôi.
Phần 1: Thiết lập Raspberry Pi với SSH và VNC
Đầu tiên, chúng tôi sẽ kết nối Raspberry Pi với SSH và VNC. Đối với hướng dẫn làm theo này trên trang web chính thức của Raspberry Pi, các liên kết được cung cấp bên dưới.
Đối với SSH: liên kết SSh
Đối với VNC: liên kết VNC
Nếu bạn có Màn hình thì bạn có thể rời khỏi bước này và chuyển trực tiếp đến bước 2 là Thiết lập dịch vụ giọng nói Alexa (Avs). Trước đó chúng ta phải kiểm tra kết nối mic.
Kiểm tra Mic của Webcam với Raspberry Pi:
1. Mở thiết bị đầu cuối Raspberry Pi và gõ lệnh arecord -l. Thao tác này sẽ hiển thị các thiết bị phần cứng được kết nối với Raspberry Pi như hình dưới đây:
Thẻ 1 là micrô trên webcam của bạn mà chúng tôi sẽ sử dụng. Nếu nó không được hiển thị, webcam của bạn có thể bị lỗi.
2. Bây giờ, hãy kiểm tra xem mic có hoạt động hay không bằng cách chạy lệnh ghi âm như:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Để phát âm thanh đã ghi, hãy nhập lệnh này:
omxplayer -p -o local /home/pi/Desktop/test.wav
Nếu bạn đã kết nối Raspberry Pi với màn hình bằng cáp HDMI thì đầu ra âm thanh theo mặc định là qua loa của màn hình (nếu có loa tích hợp trong đó). Vì vậy, để thay đổi nó thành 3.5mm, bạn phải gõ lệnh sau:
sudo raspi-config và chuyển đến tùy chọn Advance.
Chọn Âm thanh từ danh sách -> chọn Buộc 3,5 mm -> chọn Ok và Khởi động lại bạn Raspberry Pi.
Bây giờ, bạn sẽ nghe thấy âm thanh từ giắc cắm 3,5 mm.
LƯU Ý: Nếu bạn muốn tăng hoặc giảm âm lượng giọng nói đầu vào cho micrô, hãy nhập alsamixer trong thiết bị đầu cuối. Chọn card âm thanh từ thiết bị đầu cuối bằng cách nhấn F6.
Nhấn F4 để thay đổi mức tăng dB của Mic và đặt nó như bạn muốn.
Nếu bạn có micrô USB 2.0 thì các bước tiếp theo cũng giống như vậy để kiểm tra micrô. Ở đây chúng tôi đã sử dụng Webcam cho microcphone USB.
Phần 2: Thiết lập tài khoản nhà phát triển Amazon của bạn và định cấu hình dịch vụ giọng nói Alexa trên Raspberry Pi:
Chúng tôi đã giải thích chi tiết điều này trong hướng dẫn trước đây, nơi chúng tôi đã chế tạo loa thông minh Amazon Echo. Ở đây chúng tôi đang tập trung vào việc điều khiển Raspberry Pi GPIO bằng Alexa nên chúng tôi sẽ không giải thích lại toàn bộ quá trình, vì vậy hãy đọc bài viết trước và chuẩn bị cho Loa của bạn sẵn sàng với các dịch vụ thoại Alexa được cài đặt trên Raspberry pi của bạn.
Để kiểm tra Alexa, chỉ cần đánh thức cô ấy bằng cách nói tên của cô ấy! Kiểm tra Video Demo Đưa ra ở cuối hướng dẫn.
Bạn có thể hỏi cô ấy về nhiệt độ của thành phố của bạn để kiểm tra xem nó có hoạt động hay không.
Phần 3: Thiết lập PubNub và IFTTT cho Alexa Pi Home Automation :
Để điều khiển Raspberry Pi GPIO bằng Alexa Pi này, chúng tôi cần sự trợ giúp của PubNub python SDK và IFTTT. Chúng tôi sẽ đưa ra các lệnh cho IFTTT thông qua Alexa và PubNub đưa ra tín hiệu cho RPi để bật / tắt đèn LED. Vì vậy, trước tiên chúng tôi sẽ cài đặt PubNub trên Raspberry Pi.
Phần 3-1: Cài đặt SDK Python PubNub:
PubNub cung cấp một API nhắn tin để xuất bản / đăng ký bất kỳ thông báo nào trên mạng Toàn cầu của họ. Ở đây chúng tôi đang sử dụng IFTTT và Alexa để xuất bản thông báo trên PubNub, nhằm làm cho GPIO của Raspberry Pi ở mức thấp / cao. Thông báo này được nhận bởi Raspberry Pi và Pi sẽ Bật hoặc TẮT đèn LED tương ứng. Làm theo các bước dưới đây để thiết lập PubNub trên Raspberry Pi:
Bước 1: Mở thiết bị đầu cuối trên RPi của bạn và chạy lệnh sau để cài đặt SDK:
sudo pip cài đặt pubnub == 3.9.0
Chỉ cài đặt phiên bản 3.9.0, phiên bản khác sẽ không hoạt động với tập lệnh python mà chúng tôi sẽ chạy trong phần cuối cùng.
Bước 2: Bây giờ, hãy truy cập PubNub và đăng nhập bằng thông tin đăng nhập của bạn.
Bước 3:. Nhận các Phím Xuất bản và Đăng ký mà chúng tôi sẽ sử dụng sau này.
Phần 3-2: Thiết lập IFTTT cho Dịch vụ Amazon Alexa:
IFTTT là một dịch vụ dựa trên web miễn phí cho phép người dùng tạo chuỗi câu lệnh điều kiện đơn giản, được gọi là "công thức nấu ăn", được kích hoạt dựa trên các thay đổi đối với các dịch vụ web khác như Gmail, Facebook, Instagram và. IFTTT là từ viết tắt của “If This Then That”.
Đối với dự án này, IFTTT được sử dụng để làm cho GPIO Raspberry Pi THẤP / CAO dựa trên lệnh thoại nhận được bởi dịch vụ Alexa đang chạy trên RPi.
Làm theo các bước sau để tạo một Applet:
Bước 1: - Đăng nhập IFTTT bằng thông tin đăng nhập của bạn hoặc Đăng ký nếu bạn chưa có tài khoản trên đó.
Bước 2: - Trên Applet của tôi, nhấp vào New Applet
Bước 3: - Nhấp vào + cái này
Bước 4: - Tìm kiếm Amazon Alexa và nhấp vào nó, đăng nhập bằng chi tiết tài khoản nhà phát triển amazon của bạn.
Bước 5: - Chọn trình kích hoạt, Nói một cụm từ cụ thể
Bước 6: - Cung cấp cụm từ “ bật đèn” , nhấn vào Create Trigger.
Bước 7: - Nhấp vào + cái đó
Bước 8: - Tìm kiếm Webhooks, nhấp vào nó và chọn Thực hiện yêu cầu web
Bước 9: - Webhooks cung cấp Yêu cầu REST WEB, Sử dụng các khóa Xuất bản và Đăng ký có được từ PubNub và sửa đổi URL sau.
http://pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":1}
Bước 10: - Dán URL đã sửa đổi vào hộp văn bản URL.
Bước 11: - Đặt Phương thức là GET, Nội dung là ứng dụng / json và bấm vào lưu.
Bước 12: - Thực hiện theo các bước tương tự để tạo trình kích hoạt “ tắt đèn ” và sửa đổi URL thành như sau.
pubsub.pubnub.com//publish/pub_key/sub_key/0/alexaTrigger/0/{"requester":"Alexa","trigger":"light","status":0
Bước 13: - Bây giờ chúng tôi đã sẵn sàng với tất cả các thành phần web cho bản demo.
Phần 4: Kết nối phần cứng và Sơ đồ mạch:
Đối với dự án này, chúng tôi cần một đèn LED đơn giản cho mục đích thử nghiệm. Dưới đây là sơ đồ mạch và các kết nối Phần cứng để điều khiển Raspberry Pi GPIO với Amazon Alexa.
Chúng tôi sẽ sử dụng GPIO18 trong tập lệnh python của mình, vì vậy, hãy kết nối chuyển tiếp đèn LED 18. Bạn có thể thay đổi điều này trong tập lệnh python.
Phần 5: Mã Python để điều khiển đèn LED:
Tìm Tập lệnh Python hoàn chỉnh ở cuối hướng dẫn này.
Bạn cần chỉnh sửa Pub và Sub key bằng các khóa pubnub của mình trong mã python.
# Khởi tạo Phím Pubnub pub_key = "***************************" sub_key = "*********** ************* "
Bây giờ chạy Script
python alexaRpi.py
Bây giờ tất cả chúng ta đã sẵn sàng cho bản demo, Hãy đảm bảo rằng bạn đang chạy tất cả ba dịch vụ từ Phần 1 (ba thiết bị đầu cuối) trước khi tiếp tục.
Để đưa ra bất kỳ lệnh nào, bạn cần đánh thức dịch vụ Alexa bằng cách gọi “Alexa” mỗi khi bạn muốn gửi lệnh. Bạn sẽ nghe thấy một âm thanh bíp. Khi bạn nghe thấy tiếng bíp, hãy nói “ Alexa Trigger Turn on the Light. ”Bạn có thể thấy đèn BẬT trong giây lát. Và sau đó nếu bạn nói “ Alexa Trigger Turn off the Light ”, đèn sẽ TẮT.
Đó là nó…. Bạn có thể thêm một rơ le để điều khiển thiết bị AC, thậm chí bạn có thể điều khiển nhiều thiết bị bằng cách sử dụng nhiều rơ le hơn và nhiều chân GPIO hơn của Raspberry pi.
Kiểm tra mã hoàn chỉnh và Video minh họa bên dưới. Ngoài ra, hãy xem tất cả các Dự án Tự động hóa Gia đình của chúng tôi tại đây.