Hotline/Zalo: 0919.890.938 (Mr Hơn)
Bài 7. Cách sử dụng Blynk IOT với ESP32
Blynk IoT là một nền tảng đơn giản và mạnh mẽ, cho phép bạn kết nối và điều khiển các thiết bị IoT từ xa qua internet. Kết hợp với ESP32, một vi điều khiển tích hợp Wi-Fi, Blynk mang đến giải pháp hoàn hảo cho việc giám sát và điều khiển các thiết bị điện tử dễ dàng từ điện thoại di động hoặc máy tính. Trong bài viết này Điện thông minh E-smart sẽ hướng dẫn các bạn sử dụng Blynk để làm một project IOT đơn giản.
Blynk là gì?
- Blynk IoT là một nền tảng IOT platform giúp bạn dễ dàng kết nối và điều khiển các thiết bị IoT từ xa qua internet.
- Server Blynk đóng vai trò trung gian, xử lý các yêu cầu từ ứng dụng Blynk IOT và các thiết bị IoT như ESP32.
Ưu điểm của Blynk
- Dễ sử dụng: Blynk có giao diện thân thiện và trực quan, giúp bạn dễ dàng tạo các dự án IoT mà không cần nhiều kiến thức chuyên sâu về lập trình.
- Đa nền tảng: Ứng dụng Blynk IOT hoạt động trên cả Android và iOS, cho phép bạn giám sát và điều khiển thiết bị từ bất kỳ thiết bị di động nào.
- Thời gian thực: Dữ liệu từ các thiết bị IoT được cập nhật liên tục và hiển thị ngay trên ứng dụng Blynk IOT, giúp bạn giám sát và phản hồi kịp thời.
- Thư viện phong phú: Blynk hỗ trợ nhiều loại vi điều khiển như ESP32, Arduino, và Raspberry Pi, với thư viện phong phú và dễ tích hợp.
- Bảo mật: Sử dụng mã xác thực (Auth Token) để kết nối và bảo vệ thông tin giữa ứng dụng Blynk IOT và các thiết bị IoT.
Khuyết điểm của Blynk
- Giới hạn miễn phí: Phiên bản miễn phí của Blynk có giới hạn về số lượng widget và thiết bị mà bạn có thể sử dụng. Để sử dụng nhiều hơn, bạn cần nâng cấp lên phiên bản trả phí.
- Phụ thuộc internet: Blynk yêu cầu kết nối internet liên tục để hoạt động. Điều này không phù hợp cho các ứng dụng cần hoạt động ngoại tuyến.
- Chi phí nâng cấp: Để sử dụng đầy đủ các tính năng và không bị giới hạn, bạn cần trả phí để nâng cấp tài khoản.
Cách dùng Blynk với ESP32
1. Khởi tạo server Blynk
a. Đăng ký tài khoản
Truy cập vào https://blynk.cloud/ và chọn Create new account
Nhập email của bạn và đồng ý với các điều khoản
Sau đó, kiểm tra hộp thư email của bạn và nhấn vào nút Create Password trong email mà Blynk gửi cho bạn.
Nhập mật khẩu của bạn và nhấn Continue. Sau đó, điền các thông tin cần thiết cho hồ sơ của bạn, như tên, quốc gia, công ty và lĩnh vực hoạt động.
b. Tạo bảng cơ sở dữ liệu Template
Sau khi hoàn tất hồ sơ, bạn chọn tiếp mục Developer Zone -> Chọn New Template để tạo 1 bảng cơ sở dữ liệu mới cho project của bạn.
Các bạn điền tên project vào ô NAME và chọn HARDWARE là ESP32 sau đó ấn Done.
Chúng ta chọn tiếp vào mục Datastreams và chọn New Datastream để tạo các biến Virtual Pin liên kết với bảng cơ sở dữ liệu trên Blynk
Các bạn sẽ tạo lần lược các biến Virtual Pin, đặt tên và chọn kiểu dữ liệu tương ứng để sử dụng trong quá trình lập trình code trên ESP32.
Nếu bạn muốn thêm chức năng tự động hóa cho các biến Virtual Pin, bạn cần truy cập vào tab ‘Expose to Automations‘ để kích hoạt các tính năng tự động hóa. Chức năng này cho phép bạn cài đặt lịch trình, cảnh báo, hoặc điều khiển dựa trên các tình huống cụ thể.
Sau khi tạo các biến Virtual Pin, bạn hãy chuyển sang mục Web Dashboard để cấu hình giao diện điều khiển và theo dõi qua web. Ta sẽ thêm các Widget Switch vào bảng điều khiển để điều khiển các cổng ra trên ESP32.
Bạn cần liên kết Widget Switch với biến Virtual Pin mà bạn đã tạo để có thể điều khiển thông qua cơ sở dữ liệu trên Blynk.
Sau khi hoàn thành xong các bạn ấn vào nút Save để lưu lại Template Blynk.
c. Thêm thiết bị mới vào server Blynk
Để thêm thiết bị mới vào server Blynk, hãy chọn ‘Devices‘, sau đó ‘New Device‘, và ‘From Template‘. Chọn Template bạn vừa tạo và nhấn ‘Create‘.
Lúc này, chúng ta đã thêm một thiết bị vào server Blynk, và server này sẽ cung cấp các thông tin cần thiết để kết nối với cơ sở dữ liệu của thiết bị, bao gồm: BLYNK_TEMPLATE_ID, BLYNK_TEMPLATE_NAME và BLYNK_AUTH_TOKEN. Bạn cần lưu lại những thông tin này để viết code cho ESP32.
2. Kết nối ESP32 với server Blynk
Để kết nối ESP32 với server Blynk chúng ta cần biên soạn và nạp chương trình cho ESP32. Trong chương trình đó các bạn cần phải sử dụng thư viện do Blynk cung cấp. Ở đây mình sẽ sử dụng phần mềm Arduino IDE version 2.3.3 để viết và nạp chương trình cho ESP32.
Để cài đặt thư viện Blynk vào Arduino IDE thì các bạn vào mục Library Manager -> tìm từ khóa Blynk, sau đó cài đặt thư viện Blynk.
Tiếp theo, để sử dụng được code của Blynk thì các bạn có thể truy cập vào website https://examples.blynk.cc trên website này sẽ cung cấp cho chúng ta tất cả các code mẫu để sử dụng kết nối với server Blynk.
Sau đây là đoạn mã cơ bản để điều khiển bốn thiết bị thông qua server Blynk sử dụng ESP32. Trong đoạn mã này, bạn cần thay thế ba dòng đầu tiên bằng mã mà server Blynk cung cấp khi bạn thêm thiết bị mới, bao gồm: BLYNK_TEMPLATE_ID, BLYNK_TEMPLATE_NAME và BLYNK_AUTH_TOKEN. Tại dòng 12 và 13, bạn cần nhập chính xác tên Wi-Fi và mật khẩu Wi-Fi để thiết lập kết nối internet.
#define BLYNK_TEMPLATE_ID "TMPL6MPV1HtAo"
#define BLYNK_TEMPLATE_NAME "ESMART"
#define BLYNK_AUTH_TOKEN "8MWn-Rt0mMpSYjClBBmEQEl9pQxy21ox"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
#define relayPin1 26
#define relayPin2 25
#define relayPin3 33
#define relayPin4 32
#define RELAY1 V1
#define RELAY2 V2
#define RELAY3 V3
#define RELAY4 V4
BLYNK_WRITE(RELAY1){
int p = param.asInt();
digitalWrite(relayPin1,p);
}
BLYNK_WRITE(RELAY2){
int p = param.asInt();
digitalWrite(relayPin2,p);
}
BLYNK_WRITE(RELAY3){
int p = param.asInt();
digitalWrite(relayPin3,p);
}
BLYNK_WRITE(RELAY4){
int p = param.asInt();
digitalWrite(relayPin4,p);
}
void setup(){
Serial.begin(115200);
pinMode(relayPin1,OUTPUT);
pinMode(relayPin2,OUTPUT);
pinMode(relayPin3,OUTPUT);
pinMode(relayPin4,OUTPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
}
void loop(){
Blynk.run();
}
Sau khi sửa phần code xong thì các bạn tiến hành nạp code cho ESP32. Vào mục Tool -> Board -> chọn ESP32 Dev Module. Tiếp tục vào Tool -> Port -> chọn cổng COM đang kết nối với ESP32 qua cáp USB (nếu không xuất hiện cổng COM thì bạn cần tiến hành cài đặt driver giao tiếp máy tính CP2102 vào nhé).
Ấn UPLOAD để nạp chương trình và tiến hành thiết lập giao diện trên điện thoại.
3. Kết nối App Blynk IOT với server Blynk
Trên điện thoại, hãy truy cập CH Play hoặc App Store, tìm kiếm và cài đặt ứng dụng Blynk IOT. Khi cài đặt hoàn tất, mở ứng dụng, chọn Login và đăng nhập bằng tài khoản Blynk đã đăng ký trước đó trên trang web Blynk.cloud.
Tiếp tục ấn vào mục thiết bị có trên màn hình vào chọn vào icon trên góc trên để vào phần thiết lập giao diện. Ấn tiếp vào mục dấu “+” để thêm các Widget vào giao diện điều khiển.
Chọn bốn Widget Switch để tạo giao diện điều khiển cho bốn relay liên kết với ESP32. Sau khi chọn và sắp xếp chúng phù hợp, tiến hành thiết lập kết nối tới các biến Virtual Pin đã tạo trên server Blynk. Chúng ta sẽ chọn Relay1, Relay2, Relay3, và Relay4 tương ứng. Nhấn vào mục Design để cài đặt tile và màu sắc cho mỗi Switch.
Sau khi hoàn tất việc thiết lập, chúng ta sẽ có giao diện điều khiển trên ứng dụng Blynk IoT. Nếu ESP32 đã kết nối thành công với server Blynk, ứng dụng Blynk IoT sẽ hiển thị trạng thái ONLINE. Bạn có thể điều khiển các RELAY bằng cách sử dụng các công tắc trên giao diện.
4. Điều khiển và giám sát thiết bị qua Blynk
Sau khi hoàn tất các bước trên, chúng ta sẽ tiến hành kết nối phần cứng. Các bạn có thể kiểm tra nhanh phần cứng bằng cách sử dụng các LED đơn giản, chỉ cần cắm vào breadboard là xong.
Sau khi đấu nối xong tất cả thì được kết quả như sau:
Kết luận
Trong bài viết này, tôi đã hướng dẫn các bạn cách sử dụng nền tảng Blynk để tự tạo một dự án điều khiển thiết bị qua internet bằng điện thoại di động. Tôi hy vọng rằng với hướng dẫn này, các bạn có thể hiểu rõ cách thức hoạt động của Blynk và áp dụng nó vào dự án của mình.