Bối cảnh và vấn đề nghiên cứu
Trong tiến trình công nghiệp hóa và hiện đại hóa, bên cạnh việc thúc đẩy tăng trưởng kinh tế, công tác bảo vệ môi trường và kiểm soát các yếu tố tác động trực tiếp đến sức khỏe con người đang trở thành nhiệm vụ cấp thiết. Trong lĩnh vực sản xuất nông nghiệp, việc chỉ dựa vào kinh nghiệm canh tác truyền thống không còn bảo đảm hiệu quả tối ưu; người sản xuất cần các thiết bị quan trắc chuyên dụng nhằm ghi nhận chính xác các thông số môi trường vi khí hậu tại thời điểm thực tế. Cùng với sự phát triển của cuộc Cách mạng công nghiệp lần thứ tư, công nghệ Internet vạn vật (Internet of Things - IoT) đã mở ra khả năng thu thập, truyền tải và giám sát dữ liệu môi trường từ xa thông qua mạng Internet một cách nhanh chóng và trực quan.
Để xác định giải pháp kỹ thuật phù hợp, đồ án đã tiến hành khảo cứu bốn công trình và tài liệu nghiên cứu liên quan tại Việt Nam:
- Luận văn thạc sĩ của Phạm Đức Huy về đề tài "Nghiên cứu và xây dựng một số hệ đo mưa ứng dụng vào hệ thống cảnh báo trượt đất", sử dụng cảm biến WS-3000 đo lượng mưa, tốc độ và hướng gió, kết hợp bo mạch Arduino Uno R3 và module truyền thông di động SIM900.
- Tài liệu chuyên khảo "Thiết kế hệ thống nhúng" của TS. Phan Văn Ca và ThS. Trương Quang Phúc với mô hình trạm quan trắc thời tiết đo hướng gió và nhiệt độ, hiển thị dữ liệu qua màn hình tinh thể lỏng (LCD) kết hợp vòng LED tròn và truyền dữ liệu nối tiếp đến thiết bị ngoại vi.
- Luận văn của Trịnh Minh Phương về "Nghiên cứu ứng dụng IoT cho giám sát môi trường", sử dụng máy tính nhúng Raspberry Pi giao tiếp với cảm biến cường độ ánh sáng BH1750 và cảm biến nhiệt ẩm DHT22, lập trình bằng ngôn ngữ Python để truyền dữ liệu lên giao diện Web.
- Luận văn của Trần Văn Đen và Đỗ Quang Vinh về "Hệ thống báo cháy và báo trộm thông qua SMS", tích hợp vi điều khiển MSP430, module SIM900, cảm biến khí gas MQ6, cảm biến chuyển động PIR230B và cảm biến quang trở CDS.
Mục tiêu cốt lõi của đồ án là thiết kế, chế tạo và thử nghiệm thành công mô hình trạm quan trắc vi khí hậu quy mô nhỏ, có khả năng đo đạc chính xác bốn thông số môi trường gồm nhiệt độ, độ ẩm không khí, mật độ bụi và cường độ ánh sáng; đồng thời hiển thị dữ liệu tại chỗ qua màn hình LCD và truyền dữ liệu không dây qua mạng WiFi để theo dõi từ xa trên nền tảng Web IoT theo thời gian thực.
Văn bản giao nhiệm vụ đồ án xác định tám nội dung nghiên cứu cụ thể:
- Đọc và nghiên cứu các tài liệu khoa học, đồ án tốt nghiệp và các công trình liên quan đến giám sát môi trường.
- Tìm hiểu nguyên lý và cách thức vận hành của các cảm biến đo lường sử dụng trong hệ thống.
- Nghiên cứu các chuẩn giao tiếp truyền thông phần cứng gồm UART và I2C.
- Thiết kế giao diện Web phục vụ công tác giám sát dữ liệu thu thập từ các cảm biến.
- Thiết kế và thi công mô hình phần cứng của trạm giám sát môi trường.
- Tính toán các thông số quy đổi điện áp sang giá trị vật lý cho các cảm biến.
- Viết chương trình điều khiển cho bo mạch vi điều khiển Arduino, nạp mã nguồn, chạy thử nghiệm thực tế, hiệu chỉnh và hoàn thiện toàn bộ hệ thống.
- Soạn thảo thuyết minh đồ án tốt nghiệp và tiến hành bảo vệ trước hội đồng chuyên môn.
Đối tượng nghiên cứu của đề tài là hệ thống nhúng quan trắc môi trường tích hợp đa cảm biến và giao tiếp truyền thông không dây. Phạm vi nghiên cứu được giới hạn ở các thông số kỹ thuật cụ thể:
- Dải đo nhiệt độ của hệ thống: từ 0°C đến 50°C.
- Dải đo độ ẩm không khí: từ 20% đến 90% RH.
- Dải nhiệt độ môi trường để hệ thống hoạt động ổn định: từ 10°C đến 50°C (nhiệt độ vượt ngoài khoảng này sẽ gây sai lệch kết quả đo hoặc làm hư hại linh kiện bán dẫn).
- Phạm vi triển khai: mô hình trạm thực nghiệm cỡ nhỏ dùng trong nhà hoặc phòng thí nghiệm, sử dụng nguồn điện cố định qua Adapter 12V.
Cơ sở lý thuyết và phương pháp
Hệ thống được phát triển dựa trên nền tảng kỹ thuật vi điều khiển 8-bit kết hợp module mạng và các linh kiện cảm biến chuyên dụng:
| Tên linh kiện / Khối |
Vai trò chức năng |
Đặc tính kỹ thuật chính |
Chuẩn giao tiếp phần cứng |
| Arduino Uno R3 |
Khối xử lý trung tâm |
Vi điều khiển ATmega328P họ AVR 8-bit; xung nhịp 16 MHz; bộ nhớ Flash 32 KB (0,5 KB cho bootloader); SRAM 2 KB; EEPROM 1 KB; 14 chân Digital I/O (6 chân PWM); 6 chân Analog (ADC 10-bit). |
UART, I2C, SPI |
| DHT11 |
Đo nhiệt độ và độ ẩm |
Dải nhiệt độ: 0 - 50°C; dải độ ẩm: 20 - 90% RH; điện áp cấp 3 - 5,5V DC. |
Giao thức 1 dây (1-Wire) |
| Sharp GP2Y10 |
Đo mật độ bụi |
Dòng tiêu thụ 10 mA; ngõ ra điện áp tương tự (analog) với độ nhạy 0,5V tương đương 0,1 mg/m³; dải nhiệt độ làm việc -40 đến 85°C. |
1 chân Analog Output (Vo), 1 chân Digital Input (kích hoạt IR LED) |
| BH1750 |
Đo cường độ ánh sáng |
Dải đo: 1 - 65.535 lux; tích hợp sẵn bộ chuyển đổi ADC nội và mạch tiền xử lý; điện áp 3 - 5V DC; 3 chế độ đo phân giải: H-Resolution (0,5 lux), H-Resolution (1 lux), L-Resolution (4 lux). |
Giao tiếp nối tiếp I2C |
| ESP8266-01 |
Khối truyền nhận WiFi |
SoC ESP8266EX; chuẩn WiFi 802.11 b/g/n; bộ nhớ Flash 1 MB; hỗ trợ giao thức mạng TCP/IP; điện áp hoạt động 3,3V; baudrate tối đa 115.200 bps. |
UART (giao tiếp thông qua tập lệnh AT) |
| LCD 20x4 + Module I2C |
Hiển thị tại chỗ |
Hiển thị 4 hàng, mỗi hàng 20 ký tự chuẩn ASCII; IC điều khiển SPLC780D-01 (tương thích HD44780); module chuyển đổi I2C dùng địa chỉ mặc định 0x27. |
I2C (2 dây tín hiệu SDA, SCL) |
Về nguyên lý thu thập dữ liệu, cảm biến DHT11 sử dụng một dây tín hiệu duy nhất để truyền nhận dữ liệu số. Quá trình bắt đầu khi khối điều khiển kéo chân dữ liệu xuống mức thấp tối thiểu 18 ms rồi nâng lên mức cao từ 20 đến 40 µs. Sau đó, DHT11 hồi tiếp mức thấp trong 80 µs rồi đưa lên mức cao trong 80 µs để chuẩn bị truyền 40 bit dữ liệu (chia làm 5 byte: Byte 1 là phần nguyên độ ẩm, Byte 2 là phần thập phân độ ẩm, Byte 3 là phần nguyên nhiệt độ, Byte 4 là phần thập phân nhiệt độ, Byte 5 là byte kiểm tra checksum). Dữ liệu chỉ được công nhận hợp lệ khi tổng của 4 byte đầu tiên bằng chính xác giá trị của Byte 5.
Cảm biến bụi Sharp GP2Y10 hoạt động dựa trên cơ chế tán xạ ánh sáng hồng ngoại. Bên trong cảm biến có một đi-ốt phát hồng ngoại (IR LED) và một transistor quang (Phototransistor) đặt lệch góc nhau. Khi các hạt bụi bay vào buồng đo, tia sáng từ IR LED bị tán xạ đập vào phototransistor. Tín hiệu dòng điện sinh ra được khuếch đại (Amplifier) và chuyển thành điện áp analog đưa ra chân Vo.
Về mặt truyền thông, hệ thống khai thác hai giao thức phần cứng cơ bản:
- Chuẩn giao tiếp I2C (Inter-Integrated Circuit): hoạt động trên hai đường tín hiệu SDA (dữ liệu nối tiếp hai chiều) và SCL (xung nhịp đồng bộ một chiều từ thiết bị chủ), cả hai đường đều cần điện trở kéo lên nguồn dương (pull-up resistors) do cấu trúc cực máng hở. Giao tiếp quản lý theo mô hình chủ/tớ (master/slave) thông qua các điều kiện START, truyền địa chỉ 7-bit, bit đọc/ghi, xung xác nhận ACK/NACK và điều kiện kết thúc STOP.
- Chuẩn giao tiếp UART (Universal Asynchronous Receiver-Transmitter): hoạt động truyền nhận nối tiếp bất đồng bộ qua hai chân chéo Tx và Rx với khung truyền gồm bit Start (kéo điện áp từ cao xuống thấp), khung dữ liệu 5 đến 8 bit, bit kiểm tra chẵn lẻ (parity bit) và bit Stop (kéo điện áp lên mức cao trong tối thiểu hai chu kỳ xung).
Về tầng ứng dụng mạng, hệ thống sử dụng tập lệnh AT chuẩn để cấu hình module ESP8266-01 (các lệnh như AT kiểm tra kết nối, AT+RST khởi động lại, AT+CWMODE thiết lập chế độ trạm Station hoặc điểm truy cập Access Point, AT+CWJAP kết nối mạng WiFi cục bộ, AT+CIPMUX cấu hình số kênh truyền thông, AT+CIFSR truy vấn địa chỉ IP). Tầng mạng đóng gói các bản tin theo giao thức TCP/IP nhằm truyền tải các gói tin HTTP GET lên máy chủ đám mây IoT ThingSpeak do hãng MathWorks quản lý.
Phương pháp nghiên cứu áp dụng trong đồ án là phương pháp thiết kế và thực nghiệm kỹ thuật, kết hợp giữa tính toán lý thuyết mạch phần cứng, thiết kế bản vẽ mạch in PCB, lập trình mã nguồn nhúng bằng ngôn ngữ Wiring/C++ trên môi trường Arduino IDE và đo đạc thu thập dữ liệu thực tế tại hiện trường.
Thiết kế và triển khai
Hệ thống được thiết kế hoàn chỉnh theo cấu trúc 5 khối chức năng tương hỗ chặt chẽ:
[Khối cảm biến: DHT11, GP2Y10, BH1750]
|
v
[Khối điều khiển trung tâm: Arduino Uno R3] ---> [Khối hiển thị: LCD 20x4 qua I2C]
|
v
[Khối truyền thông: ESP8266-01 qua UART]
|
v (WiFi / HTTP)
[Nền tảng Web IoT: Server ThingSpeak]
(Toàn bộ hệ thống được cấp nguồn ổn định thông qua Khối nguồn Adapter 12V)
Tính toán tham số kỹ thuật và mạch nguyên lý
Đối với việc đọc giá trị mật độ bụi từ cảm biến Sharp GP2Y10, theo thông số kỹ thuật của nhà sản xuất, một chu kỳ đo hoàn chỉnh kéo dài 10 ms. Vi điều khiển sẽ kích hoạt chân điều khiển D7 ở mức thấp trong 0,32 ms để bật IR LED. Tín hiệu điện áp ngõ ra Vo tại chân A0 chỉ được đọc tại thời điểm 0,28 ms tính từ lúc bật LED. Sau đó, vi điều khiển tắt IR LED và duy trì trạng thái nghỉ trong khoảng thời gian còn lại là 9,68 ms.
Bộ chuyển đổi ADC 10-bit trên Arduino Uno R3 lượng tử hóa dải điện áp tham chiếu 5V thành 1024 mức (giá trị số từ 0 đến 1023). Giá trị điện áp tương ứng với một đơn vị số ($v_{pd}$) được tính như sau:
$$v_{pd} = \frac{v_{Ref}}{1024} = \frac{5}{1024} \approx 4{,}8828 \times 10^{-3}\text{ (V)}$$
Từ giá trị số ADC đọc được từ chân Vo, nồng độ bụi trong không khí ($\text{mg/m}^3$) được xác định theo hệ số quy đổi độ nhạy của cảm biến (0,5V tương đương 0,1 mg/m³):
$$\text{Mật độ bụi} = \frac{V_o \times v_{pd}}{0{,}5}\text{ (mg/m}^3)$$
Đối với cảm biến nhiệt ẩm DHT11 và cảm biến ánh sáng BH1750, do cả hai đều được tích hợp sẵn vi xử lý và bộ chuyển đổi ADC nội bộ nên dữ liệu số trả về trực tiếp theo đơn vị đo vật lý (°C, % RH và lux), không cần qua phép toán quy đổi trung gian trên vi điều khiển. Chân ADDR của BH1750 được nối xuống mức mass (GND), do đó địa chỉ I2C phục vụ lập trình là 0100011.
Mạch nguyên lý tích hợp một đèn LED báo nguồn có điện trở hạn dòng $R_{Led}$. Với điện áp nguồn cung cấp $V_{cc} = 5\text{V}$, điện áp rơi định mức trên LED $V_{Led} = 1{,}7\text{V}$ và dòng điện định mức $I_{Led} = 10\text{ mA}$, giá trị điện trở hạn dòng được tính theo định luật Ohm:
$$R_{Led} = \frac{V_{cc} - V_{Led}}{I_{Led}} = \frac{5 - 1{,}7}{10 \times 10^{-3}} = 330\ \Omega$$
Tính toán công suất và cân bằng năng lượng
Để bảo đảm hệ thống vận hành liên tục và ổn định, đồ án đã lập bảng thống kê dòng điện và điện áp làm việc danh định của tất cả các phần tử phần cứng:
| Linh kiện |
Điện áp làm việc danh định |
Dòng điện tiêu thụ danh định |
| Arduino Uno R3 |
7 - 12V DC |
30 mA |
| Cảm biến DHT11 |
3,5 - 5V DC |
10 mA |
| Cảm biến BH1750 |
3 - 5V DC |
10 mA |
| Cảm biến bụi GP2Y10 |
3,5 - 5V DC |
10 mA |
| Màn hình LCD 20x4 kèm module I2C |
3 - 5V DC |
5 mA |
| Module WiFi ESP8266-01 |
2 - 3,3V DC |
300 mA (dòng đỉnh phát sóng) |
Tổng dòng điện làm việc định mức của toàn hệ thống là:
$$\sum I = 30 + 10 + 10 + 10 + 5 + 300 = 365\text{ mA}$$
Tổng công suất điện tiêu thụ trên đường nguồn một chiều của mạch được tính bằng:
$$\sum P = (30 + 10 + 10 + 10 + 5) \times 10^{-3} \times 5 + 300 \times 10^{-3} \times 3{,}3 = 1{,}35\text{ W}$$
Công suất tỏa nhiệt trên các điện trở là không đáng kể. Để bảo đảm hệ số an toàn về dòng và áp, đồ án lựa chọn bộ nguồn Adapter 12V - 1A (công suất định mức 12W), vượt xa ngưỡng công suất tính toán tối thiểu 1,35W và dòng tải 365 mA.
Kết nối phần cứng và giải thuật điều khiển
Sơ đồ nguyên lý toàn hệ thống xác định các kết nối phần cứng chính xác:
- Cảm biến DHT11: chân VCC nối 5V, chân GND nối mass, chân dữ liệu Data nối chân số D5 của Arduino.
- Cảm biến bụi Sharp GP2Y10: chân 6 (VCC) nối 5V, chân 4 (S-GND) nối mass, chân 2 (LED-GND) nối mass, chân 5 (Vo) nối chân ngõ vào tương tự A0, chân 3 (LED) nối chân số D7, chân 1 (V-LED) mắc nối tiếp qua điện trở $150\ \Omega$ và tụ hóa $220\ \mu\text{F}$ để ổn định dòng kích phát hồng ngoại.
- Cảm biến BH1750 và màn hình LCD 20x4 (thông qua module chuyển đổi I2C): kết nối song song vào bus I2C của Arduino tại chân A4 (SDA) và A5 (SCL); chân ADDR của BH1750 nối GND.
- Module ESP8266-01: chân VCC và chân cho phép chip CH_PD nối nguồn 3,3V; chân GND nối mass; chân UTXD và URXD kết nối lần lượt với chân D2 và D3 của Arduino (cấu hình cổng nối tiếp mềm qua thư viện
SoftwareSerial).
Giải thuật chương trình chính trên Arduino Uno R3 khởi tạo cổng nối tiếp mềm, cấu hình màn hình LCD và gửi tập lệnh AT kiểm tra module ESP8266-01. Trong vòng lặp thực thi void loop(), vi điều khiển tuần tự đọc các giá trị đo từ DHT11, BH1750 và GP2Y10; định dạng và hiển thị kết quả lên màn hình LCD 20x4.
Đồng thời, chương trình con truyền thông khởi tạo kết nối TCP/IP tới máy chủ ThingSpeak. Sau khi nhận được xác nhận IP hợp lệ, hệ thống đóng gói các giá trị đo thành chuỗi yêu cầu HTTP GET, kiểm tra độ dài chuỗi và đẩy tuần tự vào từng trường dữ liệu (Field) trên kênh quản lý của ThingSpeak. Chu kỳ cập nhật dữ liệu lên Web được thiết lập cố định là 15 giây/lần.
Mô hình vật lý của trạm quan trắc được thiết kế kết cấu hình hộp bảo vệ trên phần mềm AutoCAD, cắt gia công chính xác và lắp ghép cố định bo mạch PCB cùng các cảm biến bên trong, bảo đảm tính thẩm mỹ và độ vững chắc cơ khí.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 thiết lập tính cấp thiết của đề tài trong bối cảnh ô nhiễm môi trường gia tăng và nhu cầu ứng dụng tự động hóa vào nông nghiệp; khảo cứu các công trình nghiên cứu đi trước của Phạm Đức Huy, Phan Văn Ca - Trương Quang Phúc, Trịnh Minh Phương, và Trần Văn Đen - Đỗ Quang Vinh. Tác giả xác định rõ mục tiêu chế tạo hệ thống quan trắc hiển thị Web, lập danh mục 8 nhiệm vụ nghiên cứu cụ thể, chỉ rõ các giới hạn vật lý của trạm (nhiệt độ 0 - 50°C, độ ẩm 20 - 90% RH, môi trường hoạt động 10 - 50°C) và phác thảo bố cục 6 chương của đồ án.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày quy trình giám sát tổng quát của hệ thống với chu kỳ cập nhật dữ liệu 15 giây. Nội dung đi sâu phân tích thông số kỹ thuật của các dòng cảm biến nhiệt ẩm phổ biến (DHT11, AS2301, SHT10), từ đó biện luận việc chọn DHT11 nhờ chi phí thấp (30.000 VNĐ) và đáp ứng dải đo yêu cầu. Chương này mô tả chi tiết sơ đồ chân, giản đồ xung truyền nhận 40 bit của DHT11; cấu tạo quang học và tỷ lệ ngõ ra analog của cảm biến bụi Sharp GP2Y10; nguyên lý đo độ rọi (Lux) cùng 3 chế độ đo của cảm biến ánh sáng BH1750. Về phần xử lý và hiển thị, chương phân tích cấu trúc phần cứng của Arduino Uno R3, module WiFi ESP8266-01 (phân biệt bản 1MB màu đen và 512KB màu xanh), màn hình LCD 20x4 cùng mạch chuyển đổi I2C dùng driver HD44780. Phần cuối chương hệ thống hóa lý thuyết về bus I2C, chuẩn truyền thông UART, bảng tập lệnh AT cấu hình WiFi và bộ giao thức TCP/IP.
Chương 3: Tính toán và thiết kế
Chương 3 xây dựng sơ đồ khối chi tiết và sơ đồ nguyên lý toàn hệ thống. Tác giả thực hiện tính toán công thức quy đổi ADC cho cảm biến bụi Sharp GP2Y10 với chu kỳ đọc 10 ms (bật LED 0,32 ms, lấy mẫu tại 0,28 ms, nghỉ 9,68 ms); chứng minh công thức tính mật độ bụi qua độ phân giải $v_{pd} = 4{,}8828 \times 10^{-3}\text{V}$. Chương này thiết kế chi tiết kết nối giữa ESP8266-01 với Arduino qua chân D2, D3 bằng thư viện SoftwareSerial; tính toán điện trở hạn dòng LED báo nguồn đạt $330\ \Omega$; tổng hợp bảng dòng áp của từng linh kiện với tổng dòng 365 mA và tổng công suất 1,35W làm cơ sở lựa chọn bộ nguồn an toàn Adapter 12V - 1A (12W). Phần lập trình trình bày chi tiết lưu đồ thuật toán chính và lưu đồ chương trình con đóng gói truyền dữ liệu TCP/IP lên Web; đồng thời hướng dẫn cài đặt môi trường Arduino IDE và cấu hình các widget hiển thị (đồ thị điểm, đồ thị cột, đồng hồ đo Gauge, cảnh báo độ ẩm) trên máy chủ ThingSpeak.
Chương 4: Thi công hệ thống
Chương 4 mô tả toàn bộ quy trình gia công phần cứng thực tế, bắt đầu từ công đoạn vẽ mạch in lớp dưới (Bottom PCB), ăn mòn, hàn gắn các linh kiện điện tử lên bo mạch chính. Tiếp đó, tác giả tiến hành quy trình lắp ráp cơ khí dựa trên bản vẽ thiết kế hình khối lập thể dựng bằng phần mềm AutoCAD, cố định các vách ngăn, bố trí vị trí các cảm biến và màn hình LCD ra mặt ngoài của hộp trạm. Chương này cũng trình bày các bước kiểm tra thông mạch, nạp firmware cho ESP8266-01 bằng module chuyển đổi USB-TTL, nạp mã nguồn điều khiển cho vi điều khiển Arduino và biên soạn tài liệu hướng dẫn vận hành cho người sử dụng.
Chương 5: Kết quả, nhận xét và đánh giá
Chương 5 công bố các kết quả thực nghiệm của hệ thống khi vận hành thực tế. Tác giả chụp lại hình ảnh hoạt động của hệ thống phần cứng, giao diện hiển thị đồng thời trên màn hình LCD 20x4 và giao diện giám sát trên nền tảng ThingSpeak. Kết quả đo đạc các thông số nhiệt độ, độ ẩm, mật độ bụi và cường độ ánh sáng được ghi nhận cụ thể tại các mốc thời gian (như thời điểm 16:00 và 16:30); toàn bộ số liệu lịch sử được trích xuất và xử lý thống kê thông qua phần mềm Microsoft Excel. Trên cơ sở đó, tác giả đưa ra các nhận xét khách quan về độ ổn định truyền nhận dữ liệu, tính trực quan của các giao diện và đánh giá mức độ hoàn thành nhiệm vụ thiết kế.
Chương 6: Kết luận và hướng phát triển
Chương 6 tổng kết việc hoàn thành toàn bộ các mục tiêu thiết kế phần cứng và phần mềm đã đề ra từ đầu đồ án. Tác giả nhìn nhận thẳng thắn các mặt hạn chế còn tồn tại do giới hạn của linh kiện giá rẻ và điều kiện thực nghiệm; đồng thời đề xuất các định hướng nâng cấp, mở rộng hệ thống trong tương lai nhằm nâng cao độ chính xác đo lường và khả năng ứng dụng thực tế.
Kết quả và đóng góp
Về kết quả thực nghiệm, đồ án đã chế tạo thành công một mô hình trạm quan trắc hoàn chỉnh, tích hợp hoạt động đồng bộ giữa bo mạch điều khiển Arduino Uno R3, module truyền thông ESP8266-01 và bốn cụm cảm biến. Dữ liệu thực nghiệm được đo đạc và ghi nhận chi tiết tại các mốc thời gian cố định:
- Tại thời điểm 16:00 và 16:30, các giá trị nhiệt độ, độ ẩm, nồng độ bụi và cường độ ánh sáng được hệ thống đo đạc, cập nhật liên tục với chu kỳ 15 giây.
- Dữ liệu hiển thị tức thời tại chỗ trên màn hình LCD 20x4 và được gửi đồng thời lên máy chủ ThingSpeak thông qua giao thức TCP/IP.
- Giao diện ThingSpeak phản ánh trực quan diễn biến thông số thông qua hệ thống đồ thị dạng điểm (Point Chart), đồ thị dạng cột (Bar Chart), đồng hồ đo giá trị tức thời (Gauge) và cơ chế cảnh báo ngưỡng độ ẩm tự động. Toàn bộ cơ sở dữ liệu được kết xuất thành công sang phần mềm Microsoft Excel phục vụ lưu trữ và phân tích thống kê.
Về các giải pháp kỹ thuật do tác giả đề xuất và triển khai:
- Giải pháp tối ưu hóa tài nguyên phần cứng: sử dụng mạch chuyển đổi I2C giúp giảm số chân vi điều khiển kết nối với LCD 20x4 từ tối thiểu 6 chân xuống chỉ còn 2 chân (SDA, SCL), đồng thời dùng chung bus với cảm biến ánh sáng BH1750.
- Giải pháp giao tiếp module WiFi: ứng dụng thư viện
SoftwareSerial tạo cổng nối tiếp mềm trên hai chân số D2 và D3 của Arduino để giao tiếp UART với ESP8266-01, giữ nguyên cổng phần cứng Serial mặc định phục vụ việc nạp mã nguồn và gỡ lỗi từ máy tính.
- Giải pháp bao gói mô hình: thiết kế vỏ hộp chuyên dụng bằng phần mềm AutoCAD, bảo vệ bo mạch và bố trí hợp lý các đầu cảm biến tiếp xúc môi trường.
Về đóng góp thực tiễn, đồ án cung cấp một giải pháp công nghệ IoT chi phí thấp (sử dụng cảm biến DHT11 giá 30.000 VNĐ, bo mạch Arduino Uno giá 130.000 VNĐ cùng module WiFi giá rẻ), giúp người dùng dễ dàng theo dõi chất lượng không khí và môi trường sống từ xa mà không đòi hỏi chi phí đầu tư hạ tầng viễn thông phức tạp.
Hạn chế và hướng nghiên cứu tiếp
Văn bản đồ án nêu rõ các hạn chế kỹ thuật xuất phát từ phạm vi linh kiện và điều kiện thực nghiệm:
- Dải đo của hệ thống bị giới hạn bởi đặc tính kỹ thuật của cảm biến giá rẻ: cảm biến DHT11 chỉ hoạt động trong dải nhiệt độ từ 0 đến 50°C và độ ẩm từ 20 đến 90% RH với độ nhạy ở mức cơ bản, kém hơn các dòng cảm biến cao cấp như SHT10 (-40 đến 123,8°C; 0 - 100% RH) hay AS2301 (-40 đến 80°C).
- Giới hạn môi trường vận hành an toàn của toàn mạch chỉ nằm trong khoảng 10°C đến 50°C; nếu nhiệt độ môi trường vượt quá giới hạn này sẽ gây ảnh hưởng tiêu cực đến độ chính xác của cảm biến và tiềm ẩn nguy cơ hư hỏng toàn bộ mạch điện tử.
- Nguồn cấp điện bắt buộc phải dùng trực tiếp qua Adapter 12V gắn vào lưới điện, chưa có giải pháp cấp nguồn dự phòng di động.
- Module ESP8266-01 có dòng tiêu thụ phát sóng tương đối lớn (300 mA) và rất nhạy cảm với mức điện áp ổn định 3,3V; hệ thống phụ thuộc hoàn toàn vào vùng phủ sóng của mạng WiFi cố định.
- Tần suất gửi dữ liệu lên nền tảng ThingSpeak miễn phí bị giới hạn ở chu kỳ tối thiểu 15 giây/lần.
Từ các hạn chế trên, hướng phát triển tiếp theo được tác giả đề xuất:
- Thay thế các cảm biến hiện tại bằng những dòng cảm biến chuyên dụng có độ chính xác cao hơn, dải đo rộng hơn và độ bền công nghiệp (như dòng SHT10 hoặc AS2301).
- Tích hợp thêm các khối cảm biến nhận diện khí độc hại trong không khí như khí CO, CO2, khí gas (module dòng MQ) để nâng cao khả năng cảnh báo ô nhiễm và an toàn cháy nổ.
- Thiết kế hệ thống nguồn năng lượng độc lập kết hợp giữa pin lưu trữ và tấm pin năng lượng mặt trời nhằm mở rộng khả năng triển khai trạm giám sát tại các khu vực canh tác nông nghiệp xa nguồn điện lưới.
- Nâng cấp và mở rộng giao diện giám sát: tự xây dựng máy chủ cơ sở dữ liệu và Web Server độc lập hoặc phát triển ứng dụng di động (Mobile App) để không bị giới hạn tần suất cập nhật dữ liệu từ dịch vụ đám mây bên thứ ba.
Giá trị tham khảo
Đồ án là tài liệu kỹ thuật có giá trị tham khảo thiết thực cho:
- Sinh viên các ngành Công nghệ Kỹ thuật Điện tử Truyền thông, Kỹ thuật Máy tính, Cơ điện tử, Hệ thống nhúng và Kỹ thuật Điều khiển - Tự động hóa đang chuẩn bị thực hiện đồ án môn học hoặc khóa luận tốt nghiệp về ứng dụng IoT.
- Các kỹ sư và nhà phát triển nghiệp dư (Maker) cần tài liệu hướng dẫn phương pháp tích hợp hệ thống đo lường vi khí hậu giá thành thấp.
Các phần nội dung có giá trị tham khảo kỹ thuật cao trong tài liệu gồm:
- Quy trình tính toán lượng tử hóa ADC và thuật toán kích hoạt xung theo thời gian thực (0,32 ms bật LED, 0,28 ms lấy mẫu, 9,68 ms nghỉ) để xử lý tín hiệu cho cảm biến bụi Sharp GP2Y10.
- Phương pháp sử dụng tập lệnh AT kết hợp thư viện
SoftwareSerial để thiết lập kết nối mạng TCP/IP cho module ESP8266-01 mà không làm xung đột cổng Serial mặc định của Arduino Uno.
- Bản vẽ cấu trúc mạch in và phương pháp tính toán cân bằng phụ tải, công suất nguồn một chiều giữa các linh kiện 5V và 3,3V.
- Quy trình từng bước cấu hình Channel, Field, giao diện Dashboard hiển thị và thiết lập API gửi dữ liệu từ thiết bị phần cứng lên máy chủ ThingSpeak.
Câu hỏi thường gặp
1. Vì sao nhóm nghiên cứu lại lựa chọn cảm biến DHT11 thay vì các dòng cảm biến có dải đo rộng hơn như AS2301 hay SHT10?
Dựa trên bảng so sánh thông số kỹ thuật ở Chương 2 của đồ án, cảm biến SHT10 có giá thành quá cao, trong khi AS2301 cũng có giá thành đắt và phương thức điều khiển phức tạp. Cảm biến DHT11 có giá thành rẻ (chỉ khoảng 30.000 VNĐ), rất phổ biến trên thị trường và dải đo nhiệt độ 0 - 50°C, độ ẩm 20 - 90% RH hoàn toàn đáp ứng đúng mục tiêu và giới hạn kỹ thuật đặt ra cho đề tài.
2. Công thức và quy trình xác định nồng độ bụi từ cảm biến Sharp GP2Y10 được tác giả triển khai như thế nào?
Một chu kỳ đo của GP2Y10 kéo dài 10 ms. Vi điều khiển bật IR LED trong 0,32 ms và tiến hành đọc giá trị điện áp tương tự tại chân A0 ở thời điểm 0,28 ms, sau đó tắt IR LED và chờ 9,68 ms. Với điện áp tham chiếu 5V và độ phân giải ADC 10-bit ($v_{pd} = 5/1024 \approx 4{,}8828 \times 10^{-3}\text{V}$), nồng độ bụi ($\text{mg/m}^3$) được tính bằng:
$$\text{Mật độ bụi} = \frac{V_o \times v_{pd}}{0{,}5}$$
với $V_o$ là giá trị số ADC đọc từ chân cảm biến và 0,5V là hệ số điện áp tương đương 0,1 mg/m³ bụi.
3. Tổng công suất tiêu thụ của toàn bộ mạch là bao nhiêu và tác giả đã chọn giải pháp cấp nguồn như thế nào?
Theo bảng tính toán dòng và áp ở Chương 3, tổng dòng điện làm việc định mức của các linh kiện (Arduino, DHT11, BH1750, GP2Y10, LCD 20x4 và ESP8266-01) là 365 mA. Tổng công suất tiêu thụ một chiều tính toán đạt 1,35W. Để bảo đảm độ an toàn và ổn định nhiệt lâu dài, tác giả lựa chọn sử dụng Adapter nguồn 12V - 1A (công suất danh định 12W, dòng định mức 1A), đáp ứng vượt mức công suất và dòng điện tiêu thụ tính toán.
4. Module WiFi ESP8266-01 được đấu nối và giao tiếp với Arduino Uno R3 thông qua những chân nào?
ESP8266-01 được cấp nguồn 3,3V vào chân VCC và chân CH_PD; chân GND nối mass. Hai chân truyền nhận tín hiệu UTXD và URXD của ESP8266-01 được nối lần lượt vào chân số D2 và D3 của Arduino Uno R3. Nhóm nghiên cứu sử dụng thư viện SoftwareSerial để gán D2 làm chân nhận (RX) và D3 làm chân truyền (TX) của Arduino, cho phép gửi nhận tập lệnh AT qua chuẩn UART mà không chiếm dụng cổng Serial cứng của bo mạch.
5. Nền tảng nào được sử dụng để theo dõi dữ liệu trên Web và chu kỳ cập nhật dữ liệu là bao lâu?
Dữ liệu giám sát được đẩy lên nền tảng IoT ThingSpeak (do MathWorks quản lý) thông qua giao thức truyền thông TCP/IP và yêu cầu HTTP. Chu kỳ cập nhật dữ liệu cảm biến từ trạm đo lên máy chủ ThingSpeak được thiết lập định kỳ theo thời gian thực là 15 giây một lần.
Kết luận
Đồ án tốt nghiệp "Thiết kế và thi công hệ thống giám sát chỉ số môi trường và hiển thị thông tin trên Web" của sinh viên Trần Xuân Thức và Trần Văn Trí đã hoàn thành đầy đủ các mục tiêu nghiên cứu và nhiệm vụ đề ra. Nhóm tác giả đã kết hợp hiệu quả nền tảng vi điều khiển Arduino Uno R3, module ESP8266-01 cùng bốn cụm cảm biến để tạo nên một trạm đo vi khí hậu vận hành ổn định, hiển thị trực quan đồng thời tại chỗ qua màn hình LCD 20x4 và từ xa qua nền tảng đám mây ThingSpeak. Dù còn một số giới hạn về dải đo linh kiện và điều kiện cấp nguồn cố định, công trình là tài liệu tham khảo kỹ thuật hữu ích, có tính ứng dụng thực tế cao đối với sinh viên và kỹ sư phát triển các hệ thống IoT giám sát môi trường chi phí thấp.