Professional Documents
Culture Documents
LỜI CẢM ƠN
Trong thời gian học tập tai trường đại học Thủ Dầu Một, em đã được các thầy cô giáo
giảng dạy tận tình, truyền đạt cho em những kiến thức rất bổ ích để cho em có được
những vốn kiến thức rất quan trong cho chuyên ngành của em sau này. Trên thực tế không
có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù
trực tiếp hay gián tiếp của người khác. Em xin trân trọng cảm ơn và bày tỏ lòng biết ơn
sâu sắc nhất tới thầy Nguyễn Vũ Linh – Giảng viên viện kỹ thuật-công nghệ Trường Đại
học Thủ Dầu Một, giảng viên giảng dạy và hướng dẫn project đã nhiệt tình hướng dẫn,
chỉ bảo.
Em xin kính chúc thầy ngày càng khỏe mạnh để phấn đấu đạt thành tích cao trong
công tác giảng dạy. Chúc trường đại học Thủ Dầu Một sẽ mãi là niềm tin, nền tảng vững
chắc cho nhiều thế hệ sinh viên với bước đường học tập.
Em xin chân thành cảm ơn!
Trưởng nhóm
Tân
Nguyễn Phúc Tân
2
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
MỤC LỤC
LỜI CẢM ƠN 2
MỤC LỤC 3
DANH MỤC HÌNH 4
DANH MỤC BẢNG 5
CHƯƠNG 1: PHÂN TÍCH BÀI TOÁN 6
I. Khảo sát và phân tích bài toán 6
II. Lựa chọn giải pháp 6
Ý tưởng: 6
III. Giới thiệu và cơ sở lý thuyết 6
Chỉ số chất lượng không khí API là gì? 6
Esp8266 là gì ?: 7
Esp8266 nodemcu là gì ?: 7
ThingSpeak: 8
Cảm biến MQ135: 9
Màn hình Oled 0.96: 9
I. Sơ đồ tổng quát 12
II. Các module hệ thống và linh kiện 12
Các module hệ thống và linh kiện 12
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG 13
I. Thiết kế phần cứng 13
II. Thiết kế phần mềm 13
III. Code 16
IV. Lưu đồ thuật toán 20
CHƯƠNG 4: KẾT LUẬN 21
I. Kết quả đã làm được 21
II. Hạn chế 23
III. Thuận lợi và khó khăn 23
1. Khó khăn 23
2. Thuận lợi 23
IV. Bảng phân công việc 23
3
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
4
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
5
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
EPA tính toán AQI cho năm chất gây ô nhiễm không khí chính được quy định bởi Đạo
luật Không khí sạch: ôzôn ở tầng mặt đất, ô nhiễm hạt (còn được gọi là vật chất hạt),
carbon monoxide, sulfur dioxide và nitrogen dioxide. Đối với mỗi chất ô nhiễm này, EPA
đã thiết lập các tiêu chuẩn chất lượng không khí quốc gia để bảo vệ sức khỏe cộng đồng.
Ôzôn ở tầng mặt đất và các hạt trong không khí là hai chất ô nhiễm đe dọa lớn nhất đến
sức khỏe con người ở đất nước này.
6
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Esp8266 là gì ?:
ESP8266 là một vi mạch dạng SoC (System-on-a-chip) do hãng ESPRESSIF của
Trung Quốc sản xuất và đã trở nên phổ biến trên toàn thế giới khi tích hợp được
module WiFi vào vi mạch với giá rẻ. Với ESP8266, việc đưa kết nối WiFi vào các hệ
thống nhúng trở nên vô cùng dễ dàng.
Esp8266 nodemcu là gì ?:
ESP8266 là một mạch vi điều khiển có thể giúp chúng ta điều khiển các thiết bị
điện tử.Thêm vào đó nó được tích hợp wi-fi 2.4GHz có thể dùng cho lập trình.
Thông số kỹ thuật
-WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n
-Điện áp hoạt động: 3.3V
-Điện áp vào: 5V thông qua cổng USB
-Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ
chân D0)
-Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
-Bộ nhớ Flash: 4MB
-Giao tiếp: Cable Micro USB ( tương đương cáp sạc điện thoại )
-Hỗ trợ bảo mật: WPA/WPA2
-Tích hợp giao thức TCP/IP
-Lập trình trên các ngôn ngữ: C/C++, Micropython,…
7
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
ThingSpeak:
ThingSpeak là một nền tảng mà bạn có thể hiển thi dữ liệu trên Cloud. Bạn có thể
truy cập để hiển thị hoặc lấy dữ liệu từ Cloud về thiết bị IOT thông qua giao thức
HTTP.
ThingSpeak cho phép bạn thu thập, lưu trữ, phân tích, trực quan hóa và hành động
trên dữ liệu từ các cảm biến.
8
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
9
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
OLED (Organic Light-Emitting Diode) là công nghệ tự phát sáng bao gồm một
màng hữu cơ mỏng, nhiều lớp được đặt giữa cực dương và cực âm. Ngược lại với
công nghệ LCD, OLED không yêu cầu đèn nền. OLED có tiềm năng ứng dụng cao
cho hầu hết mọi loại màn hình và được coi là công nghệ tối tân cho thế hệ màn hình
phẳng tiếp theo.
10
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Sơ đồ nối chân
11
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Giao diện hiển thị Oled i2c với Sơ đồ mạch Arduino Uno:
Hình 1. 6 Giao diện hiển thị Oled i2c với Sơ đồ mạch Arduino Uno
12
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
13
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Đầu tiên, kết nối chân đầu vào Analog MQ135 với A0 của NodeMCU. Sau đó kết
nối VCC và GND của nó với NodeMCU Vin & GND tương ứng. Tương tự, Màn hình
OLED 0,96 inch là một Mô-đun I2C. Vì vậy, hãy kết nối Chân SDA & SCL của nó
với Chân Nodemcu D2 & D1. Kết nối VCC của nó với 3.3V GND đến GND.
Hình ảnh thực tế của kết nối:
II. Thiết kế phần mềm
Để upload chỉ số chất lượng không khí lên server ThingSpeak thì ta làm các bước
như sau:
Bước 1: Truy cập trang web https://ThingSpeak.com/
14
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Bước 3: Tạo một một kênh lưu trữ dữ liệu để tiến hành upload data lên trên server của
ThingSpeak bằng cách chọn nút “New Channel”
Sau đó điền thông tin ở các cột: Name, Description, Field 1 như hình bên dưới:
Kết quả sau khi tạo một new channel trên ThingSpeak
15
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Hình 3. 6 Kết quả sau khi tạo một new channel trên ThingSpeak
Để có thể ghi dữ liệu vào một kênh lưu trữ hoặc đọc dữ liệu từ một kênh lưu trữ cá
nhân (private channel) thì chúng ta cần phải sử dụng đến các khóa API (API Key). Các
khóa API này sẽ tự động được tạo ra khi chúng ta tạo một kênh lưu trữ dữ liệu mới.
Ở đây đề tài số 7 của nhóm chúng em sẽ sử dụng chỉ số Write API Key có công dụng
là để ghi dữ liệu lên kênh lưu trữ “Nhom3_Project” mà chúng em đã tạo trước đó.
16
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
III. Code
Build Source Code cho ESP8266 trên Arduino IDE
#include <ESP8266WiFi.h>
#include <SPI.h>
#include <Wire.h> // thư viện hỗ trợ chuẩn giao tiếp I2C
#include "MQ135.h" // thư viện cảm biến không khí
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h> // thư viện LCD
#define SCREEN_WIDTH 128 // Chiều rộng màn hình OLED, tính bằng pixel
#define SCREEN_HEIGHT 64 // Chiều cao màn hình OLED, tính bằng pixel
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
//Trước khi sử dụng I2C, chân SDA và SCL cần phải đước thiết lập bằng cách gọi thư
viện Wire
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire,
OLED_RESET);
WiFiClient client;
void setup()
{
//Initialize serial and wait for port to open
Serial.begin(115200); // khai báo port serial monitor
17
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Serial.println("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, pass);
18
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
display.display();
delay(4000);
}
void loop()
{
MQ135 gasSensor = MQ135(A0);
float air_quality = gasSensor.getPPM();
Serial.print("Air Quality: ");
Serial.print(air_quality);
Serial.println(" PPM");
Serial.println();
display.clearDisplay();
display.setCursor(0,0);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println("Air Quality Index");
display.setCursor(0,20);
display.setTextSize(2);
display.setTextColor(WHITE);
display.print(air_quality);
display.setTextSize(1);
display.setTextColor(WHITE);
display.println(" PPM");
display.display();
delay(2000);
}
20
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
21
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Sau khi kết nối với mạng Wifi, cảm biến sẽ đọc giá trị và giá trị đó sẽ được hiển thị
trên màn hình OLED 0.96
22
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
Tương tự, chúng em có thể xem dữ liệu trực tuyến của Chỉ số Chất lượng Không
khí trên Máy chủ Thingspeak. Chỉ cần vào chế độ xem Thingspeak Riêng tư và kiểm tra
dữ liệu đang được tải lên sau khoảng thời gian 15 giây.
Hình 4. 3 Xem dữ liệu trực tuyến Chỉ số Chất lượng Không khí trên Máy chủ Thingspeak
23
Giám sát chỉ số chất lượng không khí dựa trên IoT với ESP8266 & MQ135 Nhóm 3 đề tài số 7
24