ESP32 IFTTT

Hướng dẫn này sẽ chỉ bạn cách sử dụng ESP32 với IFTTT. Các nội dung chính dưới đây sẽ được trình bày:

Thiết Bị Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×(Tùy chọn) DC Power Jack
1×breadboard
1×dây jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

IFTTT là gì?

IFTTT là một dịch vụ web miễn phí kết nối các dịch vụ khác nhau (ví dụ: Twitter, Facebook, Weather Service, Email ...) với nhau. Ví dụ:

  • IFTTT có thể giúp bạn tự động lưu hình ảnh mà bạn đăng trên Facebook vào Dropbox.
  • IFTTT có thể giúp bạn tự động gửi Email nếu ngày mai trời mưa.

IFTTT là viết tắt của If This Then That (Nếu Điều Này Thì Điều Kia). Có nghĩa là nếu một dịch vụ được kích hoạt, các dịch vụ IFTTT khác sẽ thực hiện hành động

Từ góc độ của ESP32, IFTTT là cầu nối giữa ESP32 và các dịch vụ khác. Với IFTTT, ESP32 có thể thực hiện một số việc khó khăn một cách dễ dàng. Ví dụ:

  • ESP32 gửi thông báo đến smartphone
  • ESP32 gửi email, tin nhắn SMS
  • Google Assistant, Alexa điều khiển ESP32
  • Lập lịch cho ESP32 thông qua Google Calendar

Khi bạn tìm hiểu về IFTTT, bạn cần biết bốn thuật ngữ quan trọng trên IFTTT: Applet, dịch vụ, trigger (kích hoạt), và action (hành động).

  • IFTTT bao gồm các Applet.
  • Applet thường bao gồm hai dịch vụ IFTTT (ví dụ: Evernote, Facebook, Weather Service, Email...):
    • Một dịch vụ được gọi là trigger
    • Một dịch vụ được gọi là action
  • ⇒ Khi có điều gì đó xảy ra trên trigger, action sẽ được thực hiện
  • Một số dịch vụ có thể là trigger. Một số dịch vụ có thể là action. Một số dịch vụ có thể vừa là trigger vừa là action:

Một Applet có thể được tạo ra:

  • bởi công ty IFTTT: Để sử dụng loại Applet này, bạn chỉ cần kích hoạt nó
  • bởi bên thứ ba: Để sử dụng loại Applet này, bạn chỉ cần kích hoạt nó
  • bởi chính bạn: Để sử dụng loại Applet này, bạn cần tạo Applet của riêng mình trước, sau đó kích hoạt nó.

Để sử dụng IFTTT Applet với ESP32, bạn cần tạo một Applet bởi chính bạn. Đừng lo lắng, việc này rất dễ dàng.

Applet được tạo bởi chính bạn cho ESP32 bao gồm:

  • Dịch vụ Webhooks: dịch vụ này tương tác trực tiếp với ESP32
  • Dịch vụ khác: bất kỳ dịch vụ nào mà bạn muốn sử dụng (ví dụ: Twitter, Facebook, Weather Service, Email ...)

Có hai trường hợp sử dụng:

  • ESP32 kích hoạt IFTTT: ESP32 kích hoạt IFTTT để làm điều gì đó. Ví dụ, ESP32 kích hoạt IFTTT để gửi email
  • IFTTT kích hoạt ESP32: Một dịch vụ bên ngoài kích hoạt IFTTT, sau đó IFTTT kích hoạt ESP32 để làm điều gì đó. Ví dụ, Alexa yêu cầu ESP32 bật đèn

Chúng ta sẽ học từng trường hợp một.

ESP32 IFTTT

Cách ESP32 kích hoạt IFTTT

Chúng ta cần tạo một Applet IFTTT mà:

  • Dịch vụ Webhooks đóng vai trò là trigger
  • Dịch vụ khác (ví dụ: Email) đóng vai trò là action

Sau khi tạo một Applet IFTTT cho ESP32:

  • ESP32 tương tác với dịch vụ Webhooks trong IFTTT bằng cách tạo HTTP/HTTPS request đến dịch vụ Webhooks.
  • Dịch vụ Webhooks tự động kích hoạt dịch vụ khác trong IFTTT
  • Dịch vụ khác trong IFTTT thực hiện hành động (ví dụ: gửi email)

Cách làm ESP32 kích hoạt IFTTT

  • Tạo một tài khoản IFTTT
  • Đăng nhập vào IFTTT
  • Tạo một Applet, kết nối Webhooks với một dịch vụ mong muốn (ví dụ: Email, Twitter, VoIP ...)
  • Vào trang tài liệu của Webhooks để lấy khóa Webhooks.
  • Viết code ESP32 để tạo HTTP request (POST hoặc GET) đến Webhooks.

Để tìm hiểu ESP32 - HTTP Request.

Những gì chúng ta cần bao gồm trong HTTP request

  • Khóa Webhooks: được cung cấp bởi IFTTT. Đây là khóa duy nhất và bí mật để xác định Webhooks của bạn. Bạn có thể tìm thấy khóa này bằng cách đăng nhập vào website IFTTT
  • Tên sự kiện: do chính bạn đặt khi tạo applet. Đây là tên để xác định sự kiện.
  • (Tùy chọn) Dữ liệu: ESP32 có thể bao gồm dữ liệu vào HTTP request gửi đến IFTTT

Khóa Webhooks và tên sự kiện là một phần của URL. Dữ liệu là tùy chọn và được bao gồm trong query string. IFTTT Webhook cho phép query string có tối đa 3 biến với tên cố định: value1, value2, value3.

Các định dạng URL HTTP GET request:

  • Trigger không có dữ liệu:
http://maker.ifttt.com/trigger/EVENT_NAME/with/key/YOUR_KEY
  • Trigger với một biến:
http://maker.ifttt.com/trigger/EVENT_NAME/with/key/YOUR_KEY?value1=25
  • Trigger với hai biến:
http://maker.ifttt.com/trigger/EVENT_NAME/with/key/YOUR_KEY?value1=25&value2=19
  • Trigger với ba biến:
http://maker.ifttt.com/trigger/EVENT_NAME/with/key/YOUR_KEY?value1=25&value2=19&value3=6

Thay thế EVENT_NAME và YOUR_KEY trong các định dạng trên.

Cách gửi dữ liệu từ ESP32 đến IFTTT

Để gửi dữ liệu từ ESP32 đến dịch vụ IFTTT khác (ví dụ: Email, facebook), chúng ta cần:

  • Trong ESP32: Bao gồm dữ liệu vào HTTP request
  • Trong Applet: chỉnh sửa cài đặt để trích xuất dữ liệu từ HTTP request.

Quy trình làm việc:

  1. ESP32 tạo HTTP/HTTPS request đến dịch vụ IFTTT Webhooks
  2. Dịch vụ Webhooks trích xuất dữ liệu từ HTTP request
  3. Dịch vụ Webhooks kích hoạt dịch vụ IFTTT khác và bao gồm dữ liệu vào trigger.
  4. Dịch vụ khác thực hiện hành động

Có năm biến có thể được chỉ định trong cấu hình của Webhooks khi tạo Applet:

{{EventName}} Khi chỉ định biến này, dữ liệu sẽ được trích xuất từ HTTP request
{{OccurredAt}} Khi chỉ định biến này, dữ liệu sẽ là thời gian hệ thống IFTTT
{{Value1}} Khi chỉ định biến này, dữ liệu sẽ được trích xuất từ biến value1 trong query string trong HTTP request
{{Value2}} Khi chỉ định biến này, dữ liệu sẽ được trích xuất từ biến value2 trong query string trong HTTP request
{{Value3}} Khi chỉ định biến này, dữ liệu sẽ được trích xuất từ biến value3 trong query string trong HTTP request

Hướng dẫn chi tiết sẽ được trình bày trong các hướng dẫn cụ thể.

Code Ví Dụ

Hướng dẫn và code ví dụ của ESP32 gửi dữ liệu đến dịch vụ IFTTT khác có sẵn trong các hướng dẫn dưới đây:

Cách IFTTT kích hoạt ESP32

  • Một dịch vụ bên ngoài kích hoạt một dịch vụ IFTTT
  • Dịch vụ IFTTT tự động kích hoạt dịch vụ Webhooks
  • Dịch vụ Webhooks tự động tạo HTTP/HTTPS request đến ESP32. Trong trường hợp này, ESP32 phải hoạt động như một web server để xử lý request từ dịch vụ IFTTT Webhooks

Dưới đây là một ví dụ về cách ESP32 tương tác với Amazon Echo dot.

IFTTT alexa how it works

Cách Làm IFTTT kích hoạt ESP32

  • Đăng nhập vào IFTTT
  • Tạo một Applet, kết nối một dịch vụ (ví dụ: Google Assistant, Amazon Alexa, Google Calendar ...) với dịch vụ Webhooks:
    • Dịch vụ khác là trigger
    • Dịch vụ Webhooks là action
  • Viết code ESP32 để xử lý HTTP requests từ Webhooks.

Khi tạo Applet với dịch vụ Webhooks là trigger, Webhook yêu cầu nhập địa chỉ IP của ESP32 trong cài đặt. Khi một sự kiện được kích hoạt, IFTTT tạo HTTP request đến ESP32 thông qua địa chỉ IP đã nhập.

Hướng dẫn chi tiết sẽ được trình bày trong các hướng dẫn cụ thể.

Code Ví Dụ

Hướng dẫn và code ví dụ về việc IFTTT kích hoạt ESP32 có sẵn trong các hướng dẫn dưới đây: