Professional Documents
Culture Documents
Lab 3 - ESP Thingspeak Firebase
Lab 3 - ESP Thingspeak Firebase
AWS Azure
Dịch vụ điện toán đám mây của Hệ thống điện toán đám mây của cộng đồng
Amazon Microsoft
Kết nối
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
Hỗ trợ mã nguồn mở từ khi bắt đầu sử
với cộng đồng mã nguồn mở bị hạn chế
dụng
Có thể điều chỉnh, hỗ trợ nhiều mức
Việc điều chỉnh giá hạn chế hơn so với AWS.
phí thích hợp cho nhu cầu người dùng.
AWS đang liên tục cải tiến các giải Các tổ chức có thể liên kết các máy chủ cục bộ với
pháp Hybrid Cloud các cloud, có lợi trong không gian Hybrid Cloud
Dành cho Windows và Linux với Dành cho hệ sinh thái số phát triển bỏ qua sự hạn
mạng lưới đối tác rộng lớn. chế của Linux.
Lưu trữ EBS rất nhanh chóng đối với
Khó khăn trong việc lưu trữ dữ liệu lớn.
dữ liệu lớn.
Đối với dữ liệu lớn, cần phải có cơ sở các dịch vụ cho dữ liệu lớn ít được phát triển hơn
hạ tầng đám mây tiên tiến nhưng chúng đang được cải thiện
Sử dụng chung tên miền nhưng các dịch vụ sử
Có thể giám sát từng thiết bị cụ thể .
dụng trên các cổng khác nhau.
Trả tiền theo giờ. Trả tiền theo phút.
Dịch vụ lưu trữ đơn giản (S3): lưu trữ
Khối, Hàng đợi và Bảng tương tự như những gì
và truy xuất nhanh trong một khoảng
được tìm thấy trong dịch vụ lưu trữ (S3)
thời gian ngắn.
Hiện nay không có sự lựa chọn để lưu trữ và truy
Amazon Glacier hỗ trợ lưu trữ và truy
xuất dữ liệu lâu dài.
xuất dữ liệu lâu dài.
Các vai trò của user được xác định Azure Active Directory là một nguồn duy nhất để
bằng các quyền kiểm soát duy nhất quản lý quyền và ủy quyền. Trong khi ở AWS,
được sử dụng để cung cấp bảo mật, người dùng, liên kết và quyền truy cập vào từng tài
cung cấp việc triển khai các nhóm bảo khoản phải được định cấu hình, Azure cho phép
mật và IAM chi tiết. bạn thực hiện việc này từ một thư mục duy nhất.
Sơ đồ chân MQ2
Tên chân Mô tả
Vcc Nguồn 3.5V – 5.5V
Ground Nối đất
A0 Chân tín hiệu tương tự
D0 Chân tín hiệu số
Đợi quá trình tạo Project nhấn continue khi hoàn tất
Cho phép người khác sử dụng hay không có thể bỏ qua và chọn Enable
Nhập Firebase => Chọn Firebase ESP32 Client => Nhấn Install
5. Các bước thực hiện, giải thích code quá trình cập nhật dữ liệu lên server Thingspeak và
kết quả thực hiện .
Link video thực hiện demo: https://youtu.be/Sghh6f_hftk
// Khai báo thư viện
#include <WiFi.h>
//Khai báo dữ liệu để kết nối wifi
const char* ssid = "POCO X3 NFC"; // Tên wifi
const char* password = "tu1dentam"; // Mật khẩu wifi
// Thiết lập kết nối đến wifi và in các dòng ra màn hình hiển thị
void setup() {
Serial.begin(115200);
delay(10);
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) // Kết nối đến wifi
{
delay(500);
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
Serial.print(".");
}
Serial.println("")
Serial.println("WiFi connected");
}
postStr +="&field1=";
postStr += String(GAS);
postStr += "r\n";
// Tạo HTTP request
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
delay(500);
// Nếu không kết nối được thì dừng client và đợi kết nối lại
client.stop();
Serial.println("Waiting...");
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
// Thingspeak cần tối thiểu 15s cho mỗi lần cập nhật dữ liệu
delay(1500);
6. Các bước thực hiện, giải thích code quá trình cập nhật dữ liệu lên Google Firebase và
hình ảnh kết quả thực hiện.
Linl video thực hiện demo : https://youtu.be/nK8cSNrgbRU
//Khai báo thư viện
#include <FirebaseESP32.h>
#include <WiFi.h>
//Khai báo các biến để kết nối đến wifi và firebase
#define FIREBASE_HOST "https://sensormq2-b654a-default-rtdb.firebaseio.com/"
#define FIREBASE_AUTH "BewLQzyJbGX9h4GwcbVtLETkZiIfCGbWV5LdYJms"
#define WIFI_SSID "POCO X3 NFC" // Thay đổi tên wifi của bạn
#define WIFI_PASSWORD "tu1dentam" // Thay đổi password wifi của bạn
int GASPIN = A0; //Đặt biến GASPIN lấy dữ liệu từ A0 của MQ2
Serial.begin(9600);
delay(1000);
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
Serial.print("Dang ket noi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println ("");
Serial.println ("Da ket noi WiFi!");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
// Lấy dữ liệu từ GASPIN và đưa vào g
void loop() {
int g = analogRead(GASPIN);
// In dòng Failed to read from MQ2 sensor! nếu không có dữ liệu từ MQ2
if (isnan(g) ) {
Serial.println("Failed to read from MQ2 sensor!");
return;
}