• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • Nixie Clock
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Phần mềm điện tử
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » DỰ ÁN & MẠCH ĐIỆN » Lập trình » ESP8266 PROJECT » Điều khiển thiết bị bằng Facebook Massenger thông qua Adafruit, Webhooks sử dụng NodeMCU ESP8266

Điều khiển thiết bị bằng Facebook Massenger thông qua Adafruit, Webhooks sử dụng NodeMCU ESP8266

10/06/2025 by admin Để lại bình luận

Đã được đăng vào 25/09/2020 @ 10:24

Điều khiển thiết bị bằng Facebook Massenger thông qua Adafruit, Webhooks sử dụng NodeMCU ESP8266

Mục lục hiện
Điều khiển thiết bị bằng Facebook Massenger thông qua Adafruit, Webhooks sử dụng NodeMCU ESP8266
Thiết lập Feeds và Dashboards trên iO Adafruit
Tạo Feeds iO Adafruit
Dashboards iO Adafruit
Thiết lập IFTTT Webhooks
Thiết lập chatfuel với Facebook
Thiết lập Chatfuel với IFTTT
Sơ đồ đấu nối
Các linh kiện cần thiết cho dự án
Code
Thư viện
Giải thích Code

Hôm nay mình sẽ hướng dẫn các bạn cách sử dụng Facebook Messenger để điều khển thiết bị thông qua io.adafruit.com.

Nếu bạn chưa biết cách cài đặt NodeMCU ESP8266 trên Arduino IDE thì các bạn xem bài viết bên dưới nhé.

  • Hướng dẫn cài đặt ESP8266 và kết nối với Blynk
  • Hệ thống điều khiển thiết bị nhà thông minh sử dụng NodeMCU ESP8266 và App Blynk

 

Thiết lập Feeds và Dashboards trên iO Adafruit

Tạo Feeds iO Adafruit

Các bạn truy cập vào website io.adafruit.com để tạo nhé.

Chọn “Feeds – Actions – Create a New Feed” .

 

  • Name: Đặt tên cho Feed “onoff”.
  • Description: Phần mô tả thông tin dự án bạn đang thực hiện (phần này không bắt buộc) và nhấn Create để hoàn thành.

 

 

Dashboards iO Adafruit

Bây giờ chúng ta sẽ tạo một Dashboards (bảng điều khiển) để điều khiển trực tiếp trên Adafruit IO.

Chọn Dashboards > Actions > Create a New Dashboard.

 

 

Chúng ta đặt tên cho bảng điều khiển và mô tả dự án đang thực hiện.

 

 

Chọn dấu  +  để tạo block mới và chọn Toggle như hình.

 

 

Tiếp theo vào Group / Feed đã tạo (Create a New Feed) và nhấn Next step.

 

Ở mục Block Title mình đặt là Arduinokit.vn, ở đây bạn ghi gì cũng được nhé.

  • Button On Text: 1 (trạng thái bật).
  • Button Off Text: 0 (trạng thái tắt).

Tiếp theo nhấn Create Block.

 

 

 

Active Key Adafruit

Bạn chọn Dashboards/Bảng điều khiển chọn cái chìa khóa màu vàng.

 

 

Chúng ta quan tâm đến Username và Active Key.

Phần này chúng ta Copy và cho vào trong Code nhé.

 

 

Thiết lập IFTTT Webhooks

Trong bài viết Điều khiển thiết bị bằng giọng nói thông qua Google Assistant Tiếng Viết sử dụng ESP8266, Blynk và IFTTT mình đã hướng dẫn chi tiết cách để tạo tài khoản trên IFTTT nên phần này các bạn xem lại bài trước để hiểu rõ hơn nhé.

Sau khi đăng nhập thành công các bạn Click vào “My Applets” và chọn “New Applet” để tạo một dự án mới.

 

 

Bấm vào  + this.

 

 

Và chọn Webhooks nhé.

 

 

Tiếp theo ta chọn  Receive a web request nhé.

 

 

Nhập bất kỳ tên sự kiện nào ở đây mình ghi là “Arduinokit.vn”

Sau đó nhấn vào Create trigger

 

Tiếp theo, nhấp vào  + that.

Tìm kiếm đến Adafruit và bấm kết nối.

 

 

 

  • Tiếp theo nhấp vào Send data to Adafruit IO
  • Mục Feed name mình chọn  “onoff”  ở phần tạo một Feed dự án ban đầu.
  • Chọn Value1 bằng cách nhấp vào Add ingredient.
  • Tiếp theo nhấn Create action.

 

 

Quay lại My Applest > Services > Webhooks vào phần Settings và Copy đoạn mã được bôi đậm như hình, (Lưu đoạn mã vào note để lát sử dụng nhé).

 

 

Thiết lập chatfuel với Facebook 

Truy cập https://chatfuel.com/ và nhấp vào đăng nhập bằng Id Facebook của bạn.

Lưu ý trong bước này bạn cần tạo cho mình một Fanpage trên Facebook.

Truy cập vào Link để đăng ký: https://www.facebook.com/pages/creation/

Sau khi hoàn tất việc đăng ký nhấn Create from Template để bắt đầu thiết lập.

 

 

Ở mục Automate chúng ta cần đặt câu lệnh để điều khiển thiết bị.

 

 

  • Nhấn vào RELAY ON chọn dấu + (tô vàng) ở mục Test & Send content  ta chọn Test và điền câu lệnh trả về ở đây mình ghi là “OK.Đèn Đã Được Bật”.
  • Nhấn vào RELAY OFF chọn dấu + (tô vàng) ở mục Test & Send content  ta chọn Test và điền câu lệnh trả về ở đây mình ghi là “OK Đèn Đã Được Tắt”.

 

 

Thiết lập Chatfuel với IFTTT

Thiết lập URL cho 2 nút điều khiển RELAY ON và RELAY OFF.

Chọn  Relay ON và nhấp vào + đăng nhập và chọn APIJSON từ các Plugin Chatfuel.

 

 

Các bạn làm theo cú pháp: https://maker.ifttt.com/trigger/Event Name/with/key/mã kích hoạt/?value1=1

  • “Event Name”: Tên sự kiện mình đặt là Arduinokit.vn
  • “mã kích hoạt”: m02i62jB5pkMh3xGAl5nljPnWtA0EofB2iJWieuVgdo
  • “value=1”: dành cho RELAY ON.

URL 1: https://maker.ifttt.com/trigger/Arduinokit.vn/with/key/m02i62jB5pkMh3xGAl5nljPnWtA0EofB2iJWieuVgdo/?value1=1

URL 2: https://maker.ifttt.com/trigger/Arduinokit.vn/with/key/m02i62jB5pkMh3xGAl5nljPnWtA0EofB2iJWieuVgdo/?value1=0

 

 

Nhấp vào mục Set Up AI ở bên trái màn hình: Ở phần này các bạn có thể đặt thêm các câu thoại dùng để bật tắt thiết bị.

 

 

Sơ đồ đấu nối

NodeMCU ESP8266 Relay
Vin 5V
GND GND
D0 IN

 

 

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
NodeMCU ESP8266 1
Dây cắm 3
Relay 1
Bóng đèn 220V 1

Code

#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
#define WLAN_SSID "Nha Tro 4"
#define WLAN_PASS "nguyennam"
#define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT  1883
#define AIO_USERNAME "hu123"
#define AIO_KEY "62fd797b121e4f2f89353f0711393257"
#define led D0

WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
Adafruit_MQTT_Subscribe onoffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/onoff");
void MQTT_connect();

void setup() {
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
  Serial.begin(115200);
  delay(10);
  Serial.println(F("Adafruit MQTT demo"));
  Serial.println(); Serial.println();
  Serial.print("Connecting to ");
  Serial.println(WLAN_SSID);
  WiFi.begin(WLAN_SSID, WLAN_PASS);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
  Serial.println("WiFi connected");
  Serial.println("IP address: "); Serial.println(WiFi.localIP());
  mqtt.subscribe(&onoffbutton);
}

uint32_t x=0;

void loop() {
  MQTT_connect();
  Adafruit_MQTT_Subscribe *subscription;
  while ((subscription = mqtt.readSubscription(5000))) {
    if (subscription == &onoffbutton) {
      Serial.print(F("Got: "));
      Serial.println((char *)onoffbutton.lastread);
      String response = (char*)onoffbutton.lastread; 
      if (response == "1"){
      digitalWrite(led, HIGH);
      }
      else {
        digitalWrite(led, LOW);
      }
    }
  }
}

void MQTT_connect() {
  int8_t ret;

  // Stop if already connected.
  if (mqtt.connected()) {
    return;
  }

  Serial.print("Connecting to MQTT... ");

  uint8_t retries = 3;
  while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected
       Serial.println(mqtt.connectErrorString(ret));
       Serial.println("Retrying MQTT connection in 5 seconds...");
       mqtt.disconnect();
       delay(5000);  // wait 5 seconds
       retries--;
       if (retries == 0) {
         // basically die and wait for WDT to reset me
         while (1);
       }
  }
  Serial.println("MQTT Connected!");
}

Thư viện

Download thư viện “Adafruit_MQTT.h”: Tải ngay

Download thư viện “Adafruit_MQTT_Client.h” :Tải ngay

Giải thích Code

WiFi.begin("wifi router name", "wifi router pass");
  • “WLAN_SSID”: Tên Wifi.
  •  “WLAN_PASS”: Mật khẩu Wifi.
#define AIO_USERNAME        "hu123"
#define AIO_KEY             "62fd797b121e4f2f89353f0711393257"
  • Username: “hu123”
  • Active key: “62fd797b121e4f2f89353f07113xxxxx”
Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/onoff");

Các bạn làm theo cú pháp: “&mqtt, AIO_USERNAME/feeds/feedname”

  • “username”: Tên người dùng.
  • “feeds”: cái này các bạn để mặc định.
  • “feedname”: tên Feed mà bạn đã đặc cho dự án.

Nguồn: arduinokit.vn

  • Share on Facebook
  • Tweet on Twitter

Thuộc chủ đề:ESP8266 PROJECT Tag với:Adafruit, esp8266, IFTTT, nodemcu, Webhooks

Bài viết trước « Mạch amply siêu rẻ công suất 14W dùng TDA2030A
Bài viết sau IN-14 (ИН-14) »

Reader Interactions

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Sidebar chính

Zalo hỏi đáp 24/7

Theo dõi qua mạng xã hội

  • Facebook

Bạn đang tìm gì?

Bài viết mới nhất

Các loại nguồn xung thông dụng và nguyên lý hoạt động

Các loại nguồn xung thông dụng và nguyên lý hoạt động

15/06/2025

Relay điện tử - Sử dụng TRIAC để đóng cắt thiết bị

Relay điện tử – Sử dụng TRIAC để đóng cắt thiết bị

15/06/2025

Mạch ổn áp cố định, IC ổn áp

Mạch ổn áp cố định, IC ổn áp

15/06/2025

Giám sát nhiệt độ, độ ẩm (DHT11) thông qua Thingspeak bằng NodeMCU ESP8266

15/06/2025

Phát hiện mưa (Rain Sensor) sử dụng NodeMCU ESP8266

15/06/2025

Danh mục

  • DỰ ÁN & MẠCH ĐIỆN (241)
    • Công nghiệp (16)
    • Dân dụng (29)
    • Điện tử ứng dụng (178)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (24)
      • Cảm biến (40)
      • Động cơ bước (5)
      • Kiểm thử và đo đạc (23)
      • LCD (15)
      • LED (20)
      • Mạch linh tinh (27)
      • Nguồn điện (42)
      • Pin sạc/Acquy và mạch sạc (24)
      • RF – FM (5)
      • Robotic (2)
    • HOME AUTOMATION (23)
    • Lập trình (82)
      • ARDUINO PROJECT (39)
      • ESP32 PROJECT (6)
      • ESP8266 PROJECT (17)
      • RASPBERRY PI PROJECT (9)
      • Vi điều khiển (24)
    • Nixie Clock (3)
  • Kiến thức căn bản (170)
    • Arduino (36)
    • Điện tử cơ bản (77)
    • Điện tử số (9)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (18)
    • Raspberry Pi (10)
    • Vi điều khiển (16)

Footer

Bài viết mới nhất

  • Các loại nguồn xung thông dụng và nguyên lý hoạt động
  • Relay điện tử – Sử dụng TRIAC để đóng cắt thiết bị
  • Mạch ổn áp cố định, IC ổn áp
  • Giám sát nhiệt độ, độ ẩm (DHT11) thông qua Thingspeak bằng NodeMCU ESP8266
  • Phát hiện mưa (Rain Sensor) sử dụng NodeMCU ESP8266
  • Điều khiển thiết bị thông qua Cayenne Mydevices và NodeMCU ESP8266

Bình luận mới nhất

  • admin trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • Rohan trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • Tên gì kệ tui trong Mạch Ampli 19W dùng IC LA4440
  • admin trong Đồng hồ số hiển thị trên LED 7 đoạn dùng 89S52 và DS1307

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.