Chuyên mục
Network Smart-Home

Mở máy tính bằng giọng nói sử dụng Google Assistant, IFTTT và Nginx Proxy Manager

Trong bài viết trước mình đã hướng dẫn cách mở máy tính từ xa sử dụng Raspberry Pi và Python. Với cách này, chúng ta sẽ sử dụng trình duyệt web để gửi yêu cầu WOL thông qua một địa chỉ web đến máy tính nằm trong mạng nội bộ.

Lần này mình sẽ hướng dẫn thêm cách ra lệnh mở PC bằng giọng nói sử dụng Google Assistant và dịch vụ IFTTT. Chỉ cần ngồi 1 chỗ ra lệnh: “Hey Google, Turn on my Computer”, máy tính sẽ tự động mở lên. Không cần phải mở trình duyệt web trên máy tính / điện thoại để thao tác nữa.

Nguyên lý hoạt động như sau:

Bạn ra lệnh mở máy với Google Assistant: “Turn on my Computer”. Câu lệnh này sẽ được IFTTT xử lý và thực hiện kết nối đến một địa chỉ web đã thiết lập sẵn. Máy chủ nơi thiết lập địa chỉ web trên khi nhận được yêu cầu sẽ gửi magic packet Wake-On-LAN ra mạng nội bộ để mở máy tính.

Yêu cầu chuẩn bị

Trước khi thực hiện các thao tác trong bài viết này, bạn cần phải hoàn thành các bước thiết lập trong bài viết phần I: Hướng dẫn cấu hình Wake On LAN – Mở máy tính PC từ xa sử dụng Raspberry Pi và Python.

Ngoài ra, bạn cần chuẩn bị thêm các thiết bị / dịch vụ sau:

  • Một thiết bị chạy Google Assistant: Google Home / Google Nest Mini / Google Nest Hub, hoặc tải app Google Assistant trên điện thoại,…
  • Một tên miền riêng đã được trỏ về Public IP tại nhà. Xem hướng dẫn: Cấu hình Dynamic DNS.
  • Một tài khoản IFTTT (miễn phí) đã được kết nối với Google Assistant.
  • Một máy ảo đã được cài đặt sẵn Nginx Proxy Manager.

I. Cấu hình IFTTT

IFTTT (If This, Then That) là dịch vụ tự động hoá giúp bạn kết nối các ứng dụng / dịch vụ với nhau thông qua các điều kiện đã được lập trình sẵn

Đăng nhập vào IFTTT vào tạo thêm Applet mới bằng cách bấm vào nút Create trên Header bar.

Bấm vào nút Add ở mục If This để tạo điều kiện kích hoạt

Gõ Google vào ô tìm kiếm để lọc bớt dịch vụ, sau đó bấm chọn Google Assistant

Nếu bạn chưa kết nối với Google Assistant, IFTTT sẽ yêu cầu bạn kết nối đến tài khoản Google để cấp quyền truy cập cho IFTTT. Sau khi hoàn thành, bấm chọn Say a simple phrase.

Điền vào câu lệnh bạn muốn sử dụng để ra lệnh mở máy tính bằng Google Assistant. Có thể nhập 3 câu lệnh khác nhau trong các mục

  • What do you want to say?
  • What’s another way to say it?
  • And another way?

Nếu muốn nhận được phản hồi từ Google Assistant sau khi nhận được lệnh, bạn điền vào mục What do you want the Assistant to say in response?

Bấm Create để tạo.

Bấm tiếp vào nút Add của mục Then That

Chọn dịch vụ Webhooks

Chọn Make a web request

Nhập vào các thông tin như sau:

  • URL: Nhập vào tên miền phụ bạn muốn sử dụng để ra lệnh mở máy tính từ xa.
  • Method: GET
  • Content Type: text/plain

Bấm Create action.

Bạn có thể bấm dấu + để tạo thêm hành động. Nếu không cần, bấm Continue

Đặt tên cho Applet trong mục Apple Title và bấm Finish để hoàn thành.

II. Tạo Proxy Host trên Nginx Proxy Manager

Trong phần cấu hình IFTTT ở trên, mình sử dụng tên miền phụ https://wakeuppc.thuanbui.me để ra lệnh mở PC từ xa. Để tên miền phụ này chuyển hướng về địa chỉ http://192.168.0.5:8888/wol trong mạng nội bộ, mình sẽ sử dụng Nginx Proxy Manager làm Reverse Proxy.

Trước khi thêm Proxy Host trong Nginx Proxy Manager, mình đã thiết lập DNS Record cho tên miền wakeuppc.thuanbui.me trên Cloudflare, trỏ về Public IP ở nhà.

Tạo Proxy Host với thông tin như dưới đây. Chú ý thay đổi Domain Names, Forward Hostname / IP và Forward Port cho phù hợp với thiết lập của bạn.

Chuyển qua tab Custom locations, bấm vào Add location và cấu hình thêm

  • Define location: /
  • Scheme: http
  • Forward Hostname / IP: 192.168.0.5/wol
  • Forward Port: 8888

Mục đích của phần thiết lập này là để NPM tự động chuyển hướng truy cập từ https://wakeuppc.thuanbui.me đến http://192.168.0.5:8888/wol thay vì mặc định là http://192.168.0.5:8888

Chuyển qua tab SSL, chọn Request a new SSL Certificate, bấm I Agree… và bấm Save để lưu lại.

Sau khi tạo Proxy host xong, bạn có thể thử truy cập vào địa chỉ tên miền phụ https://wakeuppc.thuanbui.me. Nếu nó chuyển hướng về đúng server WOL của Raspberry Pi và máy tính của bạn đang tắt được mở lên là ngon.

III. Tận hưởng thành quả

Sau khi hoàn thành việc cấu hình IFTTT và Nginx Proxy Manager, bạn đã có thể ra lệnh mở máy tính từ xa thông qua Google Assistant. Nhà mình được trang bị cục Google Home Mini ở khắp nơi, mỗi khi muốn mở máy tính chỉ cần ra lệnh: “Hey Google, Turn on computer”. Máy tính sẽ tự động mở lên ngay lập tức.

Còn khi ra ngoài đường, mình có thể sử dụng app Google Assistant trên điện thoại để thao tác tương tự.

Chúc bạn thực hiện thành công

Nếu bài viết của mình mang đến thông tin, kiến thức hữu ích cho bạn, đừng ngại mời mình ly bia để có thêm động lực chia sẻ nhiều hơn nữa. Cám ơn bạn!

Bởi Thuận Bùi

Runner at Yêu Chạy Bộ. Blogger at Ba Lô & Dép Lào. Web Developer at TB's Blog.
Follow me: Facebook / Instagram

Trả lời