You are on page 1of 19

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.Hồ Ngyễn Duy Thắng – 20119285 | 2.Nguyễn Tài Nhân 20119038 | 3.Nguyễn Ngọc Hưng 20119040
4.Nguyễn Quốc Hiển 20119044 | 5.Nguyễn Võ Thanh 20119281
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
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.

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

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ố

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


4. Các bước giao tiếp cảm biến MQ2 và ESP32 (kèm theo hình ảnh các bước thực hiện và
sơ đồ kết nối).
Sử dụng ESP với Firebase
Bước 1 : truy cập Web của Firebase https://firebase.google.com/?authuser=0
Tạo tài khoản, đằng nhập vào Firebase và tạo project mới
Chọn Go to console

Create a project Đặt tên cho project continueCreate project

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


CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
Chọn Default Account for FireBase

Đợi quá trình tạo Project nhấn continue khi hoàn tất

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


Mục Build Realtime DatabaseCreate Database

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


Chọn vị trí khu vực gần bạn nhất

Cho phép người khác sử dụng hay không có thể bỏ qua và chọn Enable

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


Giao diện hiển thị dữ liệu mà ESP gửi lên
Copy đường link để điền vào Firebase_host

Bước 3: lấy mã AIP key


Chọn icon bánh răng bên cạnh “Project Overview”  Project setting

Chọn “Service accounts”

Chọn “Database secrets”  “Show” để lấy Key cho firebase_auth

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


Tiến hành khai báo “Firebase Host” và “Firebase Auth” theo các thông tin ở trên.

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


Cài đặt thư viện Firebase: chọn Tool => Manage libraries

Nhập Firebase => Chọn Firebase ESP32 Client => Nhấn Install

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


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

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 được gửi sẽ hiển thị trên Private View

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


Sơ đồ chân kết nối MQ2 với ESP32

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

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


String apiKey = "ZYR9ND7W1TCTKBNP"; // 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);
CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
Serial.print(".");
}

Serial.println("")
Serial.println("WiFi connected");
}

// Đọc dữ liệu từ GASPIN và lưu vào GAS


void loop()
{

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

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

  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ị


CƠ SỞ VÀ ỨNG DỤNG IOTS - ITFA436064
  Serial.print("GAS: ");
  Serial.print(g);
  Serial.print("%  ");
 
// Gửi dữ liệu đến firebase
  Firebase.setInt( fbdo,"GAS", g);
  delay(200);

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


Tài liệu tham khảo

[1] [Online]. Available: https://viblo.asia/p/uu-diem-va-nhuoc-diem-cua-google-firebase-cac-


notification-api-can-thiet-cho-phia-server-E375zwJWKGW. [Accessed 14 11 2022].
[2] [Online]. Available:
https://blog.back4app.com/thingspeak-vs-firebase/#ThingSpeak_core_features_and_advan
tages. [Accessed 14 11 2022].
[3] 11 10 2022. [Online]. Available: https://www.projectpro.io/article/aws-vs-azure-who-is-
the-big-winner-in-the-cloud-war/401. [Accessed 14 11 2022`].
[4] [Online]. Available: https://www.saashub.com/compare-firebase-vs-thingspeak. [Accessed
14 11 2022].

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


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

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

You might also like