You are on page 1of 15

BỘ MÔN KỸ THUẬT MÁY TÍNH – VIỄN THÔNG

CƠ SỞ VÀ ỨNG DỤNG IOTS


MMH: ITFA436064
Thời gian thực hiện: 2 buổi

1. So sánh server Thingspeak và Google Firebase [1]


ThingSpeak Firebase
Sự mô  Phần mềm cho phép người dùng giao tiếp với  Nền tảng phát triển ứng
tả các thiết bị IoT. dụng toàn diện
 Không có mã nguồn mở,

 Có mã nguồn mở. là công nghệ độc quyền
nguồn
của Google
 Phù hợp với các phần cứng yêu cầu sự trực
Đối  Phù hợp với các dự án ở
quan hóa và xử lý dữ liệu trực tuyến theo
tượng mọi quy mô và phạm vi
thời gian thực
 Thu thập dữ liệu một cách riêng tư theo yêu
 Tích hợp dịch vụ phụ trợ
cầu từ các nguồn của bên thứ ba.
Tích hợp dữ liệu phân
 Sử dụng các công cụ phân tích trực tuyến do
Tính tích của google.
MATLAB
năng  Có bảng điều khiển để
 Cung cấp cung cấp tiện ích để kích hoạt giao
theo dõi dữ liệu và khắc
tiếp thiết bị và tự động kích hoạt khi có phản
phục sự cố
hồi giữa các thiết bị với nhau
 Dễ dàng thiết lập thiết bị để gửi dữ liệu
 Đọc dữ liệu cảm biến trong thời gian thực.  Cơ sở dữ liệu thời gian
 Thực hiện quét IoT của bạn tự động dựa trên thực. Hỗ trợ các hoạt
Ưu lịch hoặc sự kiện. động ngoại tuyến.
điểm  Phát triển hệ thống IoT mà không cần thiết  Tính bảo mật cao có
lập máy chủ hoặc phát triển phần mềm web. đám mây để lưu trữ và
 Truyền đạt dữ liệu bằng các dịch vụ của bên đồng bộ dữ liệu.
thứ ba và các nền tảng mạng xã hội.
 Thiếu hỗ trợ cập nhật
Nhược  Nếu lỗi sẽ lỗi toàn hệ thống
hương trình cơ sở OTA.
điểm  Giao diện khó cho người mới bắt đầu.
 Khó quản lý dữ liệu [2]

2. So sánh Amazon AWS IoT và Microsoft Azure IoT hub


3. AWS Azure
Hệ thống điện toán đám mây của cộng đồng
Dịch vụ điện toán đám mây của Amazon
Microsoft
Hỗ trợ mã nguồn mở từ khi bắt đầu sử Kết nối với cộng đồng mã nguồn mở bị hạn
dụng chế
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
Có thể điều chỉnh, hỗ trợ nhiều mức phí
Việc điều chỉnh giá hạn chế hơn so với AWS.
thích hợp cho nhu cầu người dùng.
Các tổ chức có thể liên kết các máy chủ cục bộ
AWS đang liên tục cải tiến các giải pháp
với các cloud, có lợi trong không gian Hybrid
Hybrid Cloud
Cloud
Dành cho Windows và Linux với mạng Dành cho hệ sinh thái số phát triển bỏ qua sự
lưới đối tác rộng lớn. hạn chế của Linux.
Lưu trữ EBS rất nhanh chóng đối với dữ
Khó khăn trong việc lưu trữ dữ liệu lớn.
liệu lớn.
Đối với dữ liệu lớn, cần phải có cơ sở hạ các dịch vụ cho dữ liệu lớn ít được phát triển
tầng đám mây tiên tiến hơ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ữ và
Khối, Hàng đợi và Bảng tương tự như những
truy xuất nhanh trong một khoảng thời
gì được tìm thấy trong dịch vụ lưu trữ (S3)
gian ngắn.
Hiện nay không có sự lựa chọn để lưu trữ và
Amazon Glacier hỗ trợ lưu trữ và truy
truy xuất dữ liệu lâu dài.
xuất dữ liệu lâu dài.
Azure Active Directory là một nguồn duy nhất
Các vai trò của user được xác định bằng
để quản lý quyền và ủy quyền. Trong khi ở
các quyền kiểm soát duy nhất được sử
AWS, người dùng, liên kết và quyền truy cập
dụng để cung cấp bảo mật, cung cấp việc
vào từng tài khoản phải được định cấu hình,
triển khai các nhóm bảo mật và IAM chi
Azure cho phép bạn thực hiện việc này từ một
tiết.
thư mục duy nhất.

3. Nguyên lý chuyển đổi và thông số của cảm biến MQ2.


- Nguyên lý chuyển đổi:
 MQ2 được cấu tạo từ chất bán dẫn SnO2. Chất này có độ nhạy cảm thấp với không
khí sạch. Khi trong môi trường có chất gây cháy, độ dẫn của nó lập tức thay đổi.
Chính nhờ điều này mà người ta thường hay thêm vào các mạch đơn giản để biến
đổi từ độ nhạy này sang điện áp. Khi môi trường sạch thì điện áp đầu ra của cảm
biến thấp, giá trị điện áp đầu ra sẽ càng tăng khi nồng đồ khí từ chất gây cháy xung
quanh MQ2 càng cao
 Khi phát hiện khí gas bị rò rỉ module sẽ xuất tín hiệu ở hai dạng DOUT_dạng số
(digital) và AOUT dạng tương tự (analog). Người dùng có thể tùy vào mục đích sử
dụng để lựa chọn tín hiệu sao cho phù hợp
- Thông số kỹ thuật
Phạm vi phát hiện 300 10000ppmm
Đặc điểm của khí 1000ppmm isobutan
Độ nhạy sáng R in air/Rin typical gas≥5
1KΩ to
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
Cảm Cảm kháng 20KΩ / 50ppm
Thời gian đáp ứng ≤10s 
Thời gian phục hồi ≤ 30s
Trở kháng khi nóng 31Ω ± 3Ω
Dòng tiêu thụ khi nóng ≤ 180mA
Điện áp khi nóng 5.0V ± 0.2V
Năng lượng khi nóng ≤ 900mW
Điện áp đo ≤ 24V
Điều kiện làm việc Nhiệt độ: -20 ℃ ~ 55 ℃
Độ ẩm: ≤ 95%
RH Hàm lượng oxy môi trường: 21%
Điều kiện bảo quản Nhiệt độ: -20 ℃ ~ 70 ℃
Độ ẩm: ≤ 70% RH

4. Các bước giao tiếp cảm biến MQ2 (MQ3) và ESP32 (kèm theo hình ảnh các bước
thực hiện và sơ đồ kết nối).
Sơ đồ kết nối:

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Theo Ramesh G – DOFBOT
Sử dụng ESP với Firebase

Bước 1 : truy cập Web của Firebase và tạo project


https://firebase.google.com/?authuser=0
chọn Go to console

tạo project mới Đặt tên cho project continueCreate project

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 2 Tạo cơ sở dữ liệu thời gian thực

Kết nối ESP với Thinkspeak

Bước 1 : truy cập https://thingspeak.com/


Tạo tài khoản và đăng nhập vào Thinkspeak

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 2: tạo Channel
chọn Channels  My Channels New Channelđặt tên và lưu Channel vừa tạo

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Bước 3: cập nhập AIP Keys copy Key nhập đoạn key vào code Arduino

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Dữ liệu nhận được từ cảm biến sẽ được hiện ở đây:

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


Sơ đồ chân kết nối MQ2 với ESP32 gửi dữ liệu lên Thinkspeak

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 (video clip demo nếu có).
// 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

//Khai báo dữ liệu để kết nối thingspeak

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


String apiKey = "9KLA9KJNBCTFZ500"; // API key

const char* server = "api.thingspeak.com"; //Thingspeak server

int GASPIN = A0; //Đặt biến GASPIN lấy dữ liệu từ chân A0 của MQ2

// Khởi tạo thư viện máy khách


WiFiClient client;

// 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);

Serial.print(".");

Serial.println("");

Serial.println("WiFi connected");

}
// Đọc dữ liệu từ GASPIN và lưu vào GAS
void loop()

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


{

int GAS = analogRead(GASPIN);

// In ra dòng Failed to read from MQ-2 sensor! nếu không có dữ liệu từ MQ2
if (isnan(GAS))

Serial.println("Failed to read from MQ-2 sensor!");

return;

// Kết nối đến server Thingspeak


if (client.connect(server, 80))

String postStr = apiKey;

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: ");

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


client.print(postStr.length());

client.print("\n\n");

client.print(postStr);

// In dữ liệu ra màn hình hiển thị


Serial.print("Gas Level: ");

Serial.println(GAS);

Serial.println("Data Send to Thingspeak");

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...");

// Thingspeak cần tối thiểu 15s cho mỗi lần cập nhật dữ liệu

delay(1500);

Link video kết quả thực hiện: https://youtu.be/Sghh6f_hftk


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 (video clip demo nếu có).
//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/"

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


#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

FirebaseData fbdo; //Khai báo đối tượng dữ liệu của firebase

//Thiết lập kết nối wifi và firebase


void setup() {

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() {

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


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;

// In các dòng chữ ra màn hình hiển thị


Serial.print("GAS: ");
Serial.print(g);
Serial.print("% ");

// Gửi dữ liệu đến firebase


Firebase.setInt( fbdo,"GAS", g);

delay(200);

}
Link video kết quả thực hiện: https://youtu.be/nK8cSNrgbRU
Tài liệu tham khảo (liệt kê theo đúng chuẩn IEEE)

Hình ảnh làm việc nhóm

CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064


CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064

You might also like