Các công cụ máy móc đang dần thay thế sự hiện hiện của con người và tự động hóađang được đặt lên hết giúp con người trong mọi công việc trở nên đơn giản hơn.Trong giám sát môi trường cũn
Trang 1ỨNG DỤNG LORA GIÁM SÁT MÔI
TRƯỜNG
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT VII
CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1
1.1 GIỚI THIỆU CHUNG 1
1.2 TRUYỀN NHẬN KHÔNG DÂY TRONG GIÁM SÁT MÔI TRƯỜNG 1
1.3 LÝ THUYẾT VỀ THU THẬP DỮ LIỆU MÔI TRƯỜNG VÀ MỤC ĐÍCH CỦA ĐỀ TÀI 1
CHƯƠNG 2 SƠ ĐỒ KHỐI VÀ MẠCH NGUYÊN LÝ 2
2.1 SƠ ĐỒ CỦA HỆ THỐNG 2
2.1.1 Sơ đồ khối slave 3
2.1.2 Sơ đồ khối master 4
2.2 SƠ ĐỒ NGUYÊN LÝ 5
2.2.1 Mạch slave 5
2.2.2 Mạch master 6
2.3 SƠ ĐỒ MẠCH IN 7
2.3.1 Mạch slave 7
2.3.2 Mạch slave 7
2.4 MỘT SỐ LINH KIỆN CHÍNH ĐƯỢC SỬ DỤNG TRONG MẠCH 8
2.4.1 Giới thiệu về PIC16F877A 8
2.4.2 Cảm biến độ bụi 8
2.4.3 Cảm biến nhiệt độ, độ ẩm 9
2.4.4 Cảm biến chất lượng không khí 10
2.4.5 Cảm biến đo độ pH trong nước 11
2.4.6 Module LoRa SX1278 433MHz 12
2.4.7 LCD 12
CHƯƠNG 3 THI CÔNG ĐỀ TÀI 13
3.1 YÊU CẦU 13
Trang 33.3 SƠ ĐỒ GIẢI THUẬT 15
3.3.1 Khối slave 15
3.3.2 Khối master 16
3.3.3 Hoạt động của hệ thống 17
3.4 KẾT QUẢ THI CÔNG 17
CHƯƠNG 4 THỬ NGHIỆM VÀ ĐÁNH GIÁ 20
4.1 MÔ HÌNH HỆ THỐNG 20
4.2 NHẬN XÉT 20
4.3 ƯU ĐIỂM 21
4.4 HẠN CHẾ 21
CHƯƠNG 5 KẾT LUẬN 22
5.1 KẾT LUẬN 22
5.2 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 22
TÀI LIỆU THAM KHẢO 23
PHỤ LỤC A ……… 24
Trang 4HÌNH 2-2: SƠ ĐỒ KHỐI MẠCH SLAVE 3
HÌNH 2-3: SƠ ĐỒ KHỐI MẠCH MASTER 4
HÌNH 2-4: SƠ ĐỒ NGUYÊN LÝ MẠCH SLAVE 5
HÌNH 2-5: SƠ ĐỒ NGUYÊN LÝ MASTER 6
HÌNH 2-6: SƠ ĐỒ MẠCH IN MASTER 7
HÌNH 2-7: SƠ ĐỒ MẠCH IN SLAVE 7
HÌNH 2-8: PIC16F877A 8
HÌNH 2-9: CẢM BIẾN ĐỘ BỤI 9
HÌNH 2-10: MODULE CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM 10
HÌNH 2-11: CẢM BIẾN NỒNG ĐỘ CO 2 11
HÌNH 2-12: CẢM BIẾN PH 11
HÌNH 2-13: MODULE RF LORA 12
HÌNH 2-14: LCD 20X4 12
HÌNH 3-1: GIAO DIỆN WEBSITE 14
HÌNH 3-2: SƠ ĐỒ GIẢI THUẬT 15
HÌNH 3-3: SƠ ĐỒ GIẢI THUẬT 16
HÌNH 3-4: BỘ ĐIỀU KHIỂN TRUNG TÂM 18
HÌNH 3-5: BỘ TRUYỀN TÍN HIỆU CẢM BIẾN VỀ TRUNG TÂM 19
HÌNH 3-5: MÔ HÌNH HỆ THỐNG 20
Trang 5LCD Liquid Crystal Display
LED Light Emitting Diode
LoRa Long Range
RF Radio Frequency
UART Universal Asynchronous Receiver
Trang 6CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu chung
Với sự phát triển của công nghệ không dây như hiện nay các ứng dụng truyền nhận
dữ liệu không dây đang dần thay thế cách dữ dụng truyền bằng cáp Mạng khôngdây với chí phí lắp đặt, triển khai hệ thống một cách linh hoạt hơn để giảm chi phílặp đặt và bảo trì
Các công cụ máy móc đang dần thay thế sự hiện hiện của con người và tự động hóađang được đặt lên hết giúp con người trong mọi công việc trở nên đơn giản hơn.Trong giám sát môi trường cũng thế với hệ thống truyền không dây và các cảm biếntheo dõi được các chất ô nhiễm môi trường sống của chúng ta mà không cần nhiềungười xuống hiện trường để đo kiểm
1.2 Truyền nhận không dây trong giám sát môi trường
Với sự phát triển của công nghệ, truyền nhận không dây đang ngày càng phổ biếnnhư hiện nay, giám sát môi trường sống của chúng ta ngày càng dễ dàng hơn
Công nghệ truyền dữ liệu không dây để thu thập dữ liệu từ xa mà không cần conngười xuống tại hiện trường để đo đạt mà chúng tự truyền về trung tâm và cảnh báokhi các chỉ số đo đạt quá ngưỡng
1.3 Lý thuyết về thu thập dữ liệu môi trường và mục đích của đề tài
Dùng cảm biến cùng với vi điều khiển để theo dõi được các thông số môi trườngnhư: hàm lượng CO2 trong không khí, nhiệt độ, độ ẩm, giá trị pH, độ bụi trongkhông khí Tất cả các giá trị được truyền về trung tâm để cảnh báo cho chúng ta biết
và đưa ra hướng giải quyết tốt nhất cho môi trường sống
Chúng ta chỉ cần bật hệ thống lên là có thể theo dõi được các thông số gửi về từnhiều trạm đặt cảm biến khác nhau
Trang 7CHƯƠNG 2 SƠ ĐỒ KHỐI VÀ MẠCH NGUYÊN LÝ
1.1 Sơ đồ của hệ thống
Hình 2-1: Sơ đồ toàn mạch
Giải thích sơ đồ:
- Khối slave có chức năng thu thập các giá trị cảm biến và gửi về cho trungtâm bộ master
- Khối master có chức năng tổng hợp các giá trị cảm biến từ slave gửi về đưa
ra các cảnh báo và đẩy dữ liệu lên server để theo dõi
- Khối alarm cảnh báo qua đèn tín hiệu và loa
- Khối server dữ liệu được thể hiện ở đây để theo dõi
1.1.1 Sơ đồ khối slave
Trang 8Hình 2-2: Sơ đồ khối mạch slave
Giải thích sơ đồ:
- Khối nguồn cấp nguồn cho các thiết bị hoạt động
- Khối cảm biến để đo các giá trị môi trường như CO2, pH…
- Khối truyền nhận sử dụng LoRa để truyền dữ liệu về trung tâm
- Khối xử lý để xử lý các giá trị cảm biến đo được và ra lệnh truyền về trung tâm khi được yêu cầu từ trung tâm
1.1.2 Sơ đồ khối master
Trang 9Hình 2-3: Sơ đồ khối mạch master
Giải thích sơ đồ:
Khối nguồn cấp nguồn cho mạch hoạt động
Khối hiển thị, cảnh báo dung để hiển thị các giá trị đo được và cảnh báo ra màn hình để chúng ta dễ dàng theo dõi
Khối phát RF sử dụng module LoRa để truyền nhận dữ liệu
Khối xử lí dùng PIC16F877A để đưa dữ liệu lên server thông qua UART kết nối với máy tính
Khối server hiển thị các giá trị đo được cho chúng ta theo dõi
Trang 101.4 Sơ đồ nguyên lý
1.1.3 Mạch slave
Sơ đồ khối nguồn và cảm biến:
Hình 2-4: Sơ đồ nguyên lý mạch slave
Từ sơ đồ khối ta xây dựng được sơ đồ nguyên lý
Sơ đồ kết nối các cảm biến và module LoRa với vi khiển khiển PIC16F877A Cảm biến DHT11 đo nhiệt độ và độ ẩm được kết nối với chân RB0 của vi điềukhiển
Module RF LoRa sử dụng kết nối UART để giao tiếp với vi điều khiển truyền tínhiệu về cho bộ trung tâm
Trang 111.1.4 Mạch master
Hình 2-5: Sơ đồ nguyên lý master
Sơ đồ với chip ESP8266 để điều khiển truyền nhận dữ liệu qua module LoRa và kếtnối với server
Hiển thị các thông số cảm biến đo được qua LCD và cảnh báo qua đèn tín hiệu và loa
Trang 121.5 Sơ đồ mạch in
1.1.5 Mạch slave
Hình 2-6: Sơ đồ mạch in master
1.1.6 Mạch slave
Hình 2-7: Sơ đồ mạch in slave
1.6 Một số linh kiện chính được sử dụng trong mạch
Trang 131.1.7 Giới thiệu về PIC16F877A
PIC16F877A là loại vi điều khiển 8bit tầm trung của hãng Microchip
- PIC16F877A có kiểu tập lênh RISC và có 35 tập lệnh cơ bản
- Tất cả các lệnh được thực hiện trong một chu kì lệnh ngoại trừ các lệnh rẽnhánh
- Sơ đồ chân với chip loại cắm 28 chân:
Hình 2-8: PIC16F877A
1.1.8 Cảm biến độ bụi
Cảm biến cho phép đo được độ bụi trong không khí Với tín hiệu đầu ra là giá trị analog quy đổi theo điện áp cứ 0,5V ~ 0,1mg/m3 Hoạt động dựa trên LED phát
Trang 14hồng ngoại được tích hợp trên cảm biến khi có bụi đi qua sẽ làm khúc xạ tia hồng ngoại từ đó thay đổi giá trị điện áp.
Cảm biến với dải đo 0 đến 0,5mg/m3 độ chính xác tương đối, dễ sử dụng và có giá thành hợp lý
Với yêu cầu của đề tài cần đo độ bụi của không khí nên sử dụng cảm biến này vì sựthông dụng và dễ sử dụng của nó
Trang 15Hình 2-10: Module cảm biến nhiệt độ, độ ẩm
1.1.10 Cảm biến chất lượng không khí
Cảm biến MQ-135 có thể phát hiện ra nồng độ CO2 trong không khí, MQ-135 có thểphát hiện NH3, NOx, Ancol, Benzen, khói, CO2 trong không khí từ đó đánh giá được chất lượng không khí chúng ta đang sinh sống
Với giá trị trả về là dạng analog ta dễ dàng lấy được nồng độ CO2 trong không khí.Thông số ký thuật:
- Điện áp nguồn: 5V±0.1 AC/DC,
- Điện trở tải: thay đổi được (2kΩ-47kΩ),
- Điện trở của heater: 33Ω±5%,
- Công suất tiêu thụ của heater: ít hơn 800mW,
- Khoảng phát hiện: 10 - 300 ppm NH3, 10 - 1000 ppm Benzene, 10 - 300Alcol, 0 – 1000 ppm CO2,
- Khoảng đo rộng,
- Bền, tuổi thọ cao,
- Phát hiện nhanh, độ nhạy cao
Trang 16Hình 2-11: Cảm biến nồng độ CO 2
1.1.11 Cảm biến đo độ pH trong nước
Cảm biến pH giúp ta đo được giá trị pH với tín hiệu trả về là analog quy đổi theo điện áp 3,5mV ~ 1pH
Cảm biến đo độ pH Analog DFRobot đáp ứng được yêu cầu đo, dễ tìm thấy trên thị trường và tương đối dễ sử dụng
Hình 2-12: Cảm biến pH
1.1.12 Module LoRa SX1278 433MHz
Trang 17LoRa truyền tín hiệu không dây qua tần số sóng mang 433MHz với kênh truyền và địa chỉ riêng được cấu hình sẵn.
Với khả năng truyền xa dễ sử dụng và dễ tìm thấy trên thị trường nên chọn module này để sử dụng truyền nhận tín hiệu cho hệ thống
Trang 18CHƯƠNG 3 THI CÔNG ĐỀ TÀI
1.7 Yêu cầu
Yêu cầu của đề tài:
- Sử dụng module RF LoRa để truyền nhận dữ liệu không dây
- Hỗ trợ khả năng thêm bớt các node
- Đưa dữ liệu lên web, lưu trữ và thống kê dữ liệu thu thập được
- Sử dụng các cảm biến để đo nhiệt độ, độ ẩm, nồng độ CO2, nồng độ pH, độbụi, cảm biến mưa
- Thiết kế và thi công phần cứng
1.8 Đưa dữ liệu lên web
1.1.14 Tìm hiểu về ThingSpeak
ThingSpeak ™ có thể phân tích dữ liệu khi nó được đưa lên, dung để theo dõi cácgiá trị thông qua internet Có thể cảnh báo các giá trị ngưỡng cài đặt trước qua mailhoặc sms và có thể lưu trữ dữ liệu để ta dễ dàng theo dõi
Giao diện bao gồm:
- Nhiệt độ, độ ẩm môi trường
- Độ bụi không khí
- Độ pH, nồng độ CO2
- Cảnh báo mưa
Trang 19Hình 3-1: Giao diện website
1.1.15 Các tính năng của ThingSpeak
ThingSpeak có nhiều chức năng cho phép phân tích lưu trữ đám mây các dữ liệutheo thời gian thực và lưu trữ lại:
- Ta có thể dễ dàng chỉnh sửa giao diện theo dõi
- Dữ liệu đưa lên sẽ thể hiện theo thời gian thực
- Dùng MATLAB để phân tích dữ liệu
- Phân tích dữ liệu theo lịch biểu và sự kiện có sẵn
- Cảnh báo qua mail, tin nhắn khi quá ngưỡng cho phép được cài đặt trước.1.9 Sơ đồ giải thuật
1.1.1 Khối slave
Trang 20Hình 3-2: Sơ đồ giải thuật
Giải thích lưu đồ:
Khởi tạo ban đầu, slave sẽ chờ tín hiệu từ master nếu được yêu cầu thì sẽ đọc cảm biến và gửi dữ liệu về slave
1.1.2 Khối master
Lưu đồ:
Trang 21Hình 3-3: Sơ đồ giải thuật
Giải thích lưu đồ:
Khởi tạo giá trị thời gian và biến số thứ tự slave, master sẽ gửi lệnh xuống yêu cầuslave và chờ trả lời, nếu không nhận được tín hiệu từ slave sẽ tăng biến để vào trình
Trang 22xóa slave Nếu biến xóa lớn hơn 10 thì sẽ xóa slave Nếu Ssave trả lời thì master sẽbắt đầu xử lý dữ liệu, hiển thị ra LCD và đẩy dữ liệu lên server.
1.1.3 Hoạt động của hệ thống
Khi cho hệ thống bắt đầu hoạt động thì master sẽ bắt đầu truyền lệnh tuần tự xuốngtừng slave thôi khe thời gian Khi slave nhận được tín hiệu yêu cầu của master thì sẽbắt đầu đọc cảm biến và gửi về master Sau khi master nhận được dữ liệu từ slavegửi về thì bắt đầu phân tích dữ liệu, đưa dữ liệu lên server và cảnh báo nếu nhữngthông số gửi về vượt ngưỡng Cứ thế tuần tự từng slave
Khi master gửi yêu cầu xuống slave ba lần mà slave không phản hồi thì master sẽphát cảnh báo là slave đã tắt, nếu gửi yêu cầu 10 lần mà không thấy trả lời thì sẽ tựđộng xóa slave đó ra khỏi hệ thống
Trên master có một nút nhấn để thêm slave vào hệ thống, khi nhấn nút thì master sẽtruyền lệnh thêm xuống và khi slave nhận được thì sẽ truyền về master mã số củamình để lưu vào hệ thống và bắt đầu hoạt động
1.10 Kết quả thi công
Mạch điều khiển bao gồm:
- ESP8266 kết nối wifi và điều khiển, xử lý dữ liệu
- Module LoRa truyền nhận dữ liệu
- Màn hình hiển thị LCD cho phép theo dõi trực tiếp thông số mà không cầnthông qua điện thoại hay web
Trang 23Hình 3-4: Bộ điều khiển trung tâm
Mạch truyền tín hiệu về trung tâm bao gồm:
- Vi điều khiển PIC 16F877A đọc các giá trị từ cảm biến và gửi các giá trị đó
đi
- Cảm biến nhiệt độ, độ ẩm trả về các thông số về môi trường
- Cảm biến pH để lấy đo độ pH nguồn nước
- Cảm biến CO2 để đô lượng CO2 trong không khí
- Module LoRa cho phép truyền nhận dữ liệu không dây về bộ điều khiển
Trang 24Hình 3-5: Bộ truyền tín hiệu cảm biến về trung tâm
Trang 25CHƯƠNG 4 THỬ NGHIỆM VÀ ĐÁNH GIÁ
1.11 Mô hình hệ thống
Hình 3-5: Mô hình hệ thống
1.12 Nhận xét
Trong khi thực hiện đề tài có gặp một số khó khăn:
- Tín hiệu nhận được không ổn định, thỉnh thoảng sẽ bị trễ hoặc không gửiđược do tín hiệu bị ảnh hưởng môi trường truyền hoặc do bộ phát bị treo,khắc phục sự cố bằng cách cho hệ thống tự khởi động lại khi quá thời giancho phép
- Khoảng cách truyền, độ chính xác và ổn định khi truyền dữ liệu đi cũng bịảnh hưởng do vật cản
1.13 Ưu điểm
Ưu điểm hệ thống:
Trang 26- Truyền nhận được dữ liệu ở xa thuận lợi cho công tác quản lý theo dõi môitrường.
Trang 27CHƯƠNG 5 KẾT LUẬN
1.2 Kết luận
Trong khi thực hiện đề tài đã thu được những kết quả như sau:
- Mạch điện với các module được kết nối với nhau, truyền nhận thông tin và
dữ liệu theo dõi cũng như giám sát các thông số thu thập được thông quaweb và điện thoại
- Xây dựng được hệ thống giám sát và theo dõi các quá trình
1.3 Hướng phát triển của đề tài
Hướng phát triển đề tài:
- Phát triển hệ thống với cảnh báo qua giao diện web giúp dễ dàng theo dõi và
xử lý
- Sử dụng một số loại cảm biến đo chính xác hơn
- Sử dụng module LoRa có công suất lớn hơn để truyền nhận được xa hơn
TÀI LIỆU THAM KHẢO
Trang 28Tiếng việt:
[1] Nguyễn Tấn Phước(2005), “Mạch điện tử - Tập 1”, Nhà xuất bản Trẻ
[2] Nguyễn Tấn Phước(2005), “Mạch điện tử - Tập 2”, Nhà xuất bản Trẻ
[3] Nguyễn Đình Phú, Phan Vân Hoàn, Trương Ngọc Anh (2018), “Giáo trình thựchành vi điều khiển PIC”, Nhà xuất bản Đại học quốc gia thành phố Hồ Chí Minh
Internet:
[4] Microchip (2003), “PIC16F8XA Data Sheet”, Link: http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf
Trang 29float dust=0, noise=0;
float co2now=0; //int array for co2 readings
float co2raw = 0; //int for raw value of co2
SMS[Index++]=c; //Nap ki tu vao mang
if(Index>=80)//Kiem tra neu vuot qua chi so mang thi reset lai
Trang 30delay_ms(200);
co2raw=co2raw + co2now;
}
co2raw = co2raw/10 ;
delay_ms(200); //divide samples by 10
co2comp = co2raw - co2Zero; //get compensated value
co2ppm = co2comp*4.5f + 400; //map value for atmospheric levels
{
printf("node3,co2:%lu,dust:%lu",co2ppmint,dustint);
Trang 32#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#BIT Data_Pin = 0x06.0 // Pin mapped to PORTB.0
#BIT Data_Pin_Direction = 0x86.0 // Pin direction mapped to TRISB.0void _CaiDat(void);
char message1[] = "Temp: 00.0 C";
Trang 33void _Reset(unsigned int16 time, char Option);
SMS[Index++]=c; //Nap ki tu vao mang
if(Index>=30)//Kiem tra neu vuot qua chi so mang thi reset lai
unsigned int8 Read_Data(){
unsigned int8 i, k, _data = 0; // k is used to count 1 bit reading duration if(Time_out)
Trang 34if(!Data_Pin)
bit_clear(_data, (7 - i)); // Clear bit (7 - i)
else{
bit_set(_data, (7 - i)); // Set bit (7 - i)
while(Data_Pin){ // Wait until pin goes low
if(check_response()){ // If there is response from sensor
RH_byte1 = Read_Data(); // read RH byte1
RH_byte2 = Read_Data(); // read RH byte2
T_byte1 = Read_Data(); // read T byte1
T_byte2 = Read_Data(); // read T byte2
Checksum = Read_Data(); // read checksum
void _Reset(unsigned int16 time, char Option)
Trang 36#include <Wire.h>;
#include <ESP8266WiFi.h>
#include <LiquidCrystal_I2C.h>;
LiquidCrystal_I2C lcd(0x27, 20, 4);
const char* ssid = "FPT Telecom"; // your wireless network name (SSID)
const char* password = "41302485"; // your Wi-Fi network password
String c;
String ph, co2, dust, temp , humi, rain, pass1, pass2, pass3;
uint16_t phint, co2int, dustint, tempint , humiint, rainint;
const char* server = "api.thingspeak.com";
const int postingInterval = 2 * 1000; // post data every 2 seconds
pinMode(btnPin, INPUT); // sets the digital pin as input
//pinMode(btnPin, INPUT_PULLUP); //pull-up butto