Giới thiệu dự án
Theo thống kê từ Tổ chức Y tế Thế giới (WHO) và UNICEF, ô nhiễm nguồn nước mặt và nước sinh hoạt gây ảnh hưởng nghiêm trọng đến hơn 2,1 tỷ người trên toàn cầu, đồng thời ngành nuôi trồng thủy sản tại Việt Nam chịu thiệt hại hàng nghìn tỷ đồng mỗi năm do không kiểm soát kịp thời các chỉ số lý - hóa trong nước. Phương pháp truyền thống dựa vào việc lấy mẫu thủ công (Grab Sampling) rồi vận chuyển về phòng thí nghiệm phân tích bằng thiết bị khối phổ hoặc chuẩn độ quang sai thường mất từ 24 đến 72 giờ, chi phí vận hành cao và hoàn toàn mất tính cảnh báo tức thời khi xảy ra sự cố đột biến nồng độ độc chất.
+-----------------------------------------------------------------------------------+
| BỐI CẢNH VÀ VẤN ĐỀ |
+-----------------------------------------------------------------------------------+
| Phương pháp truyền thống: Lấy mẫu -> Vận chuyển -> Labo -> 24-72h -> Chi phí cao |
| Thách thức thực tế: Độ trễ cao, không cảnh báo tức thì, gián đoạn giám sát |
| Giải pháp đề xuất: Hệ thống IoT đa tầng (PIC16F877A + ESP8266 + Cloud Platform) |
+-----------------------------------------------------------------------------------+
Đề tài "Đo chất lượng nước trong thời gian thực gửi lên ThingSpeak" (PBL3 - Ngành Kỹ thuật Cơ điện tử, Khoa Cơ khí, Trường Đại học Bách khoa – Đại học Đà Nẵng) giải quyết triệt để bài toán giám sát liên tục bằng một hệ thống nhúng lai (Hybrid Embedded Architecture) tích hợp cảm biến đo đa thông số, xử lý biên và truyền thông không dây băng rộng.
Mục tiêu kỹ thuật cụ thể của dự án:
- Thiết kế phần cứng đo lường thông số kép gồm Tổng chất rắn hòa tan (Total Dissolved Solids - TDS) và Nhiệt độ môi trường nước với độ phân giải ADC 10-bit.
- Xây dựng firmware giao tiếp vi điều khiển chuẩn công nghiệp Microchip PIC16F877A với thuật toán mô phỏng thời gian thực giao thức 1-Wire và giao tiếp chuỗi bất đồng bộ USART.
- Cầu nối dữ liệu không dây qua vi điều khiển phụ ESP8266 SoC, đóng gói bản tin chuẩn định dạng và truyền thông qua giao thức HTTP/REST API lên đám mây ThingSpeak IoT.
- Trực quan hóa dữ liệu tức thời cục bộ trên màn hình ký tự LCD 20x4 (HD44780) và từ xa qua giao diện biểu đồ Web/Mobile Dashboard với tần suất cập nhật dữ liệu có thể cấu hình từ 15 đến 60 giây.
Phương pháp tiếp cận và kết quả kỳ vọng:
Dự án áp dụng kiến trúc phân tầng: Tầng thu thập dữ liệu (Data Acquisition Layer) sử dụng PIC16F877A đảm bảo tính tiền định (deterministic timing) khi đọc cảm biến thời gian thực; Tầng kết nối mạng (Connectivity Layer) ủy quyền hoàn toàn cho SoC ESP8266 chạy vi điều khiển 32-bit Tensilica L106 nhằm cách ly tải mạng TCP/IP khỏi chu trình đo lường. Hệ thống đạt độ chính xác đo nhiệt độ $\pm 0.5^\circ\text{C}$ trong dải $-10^\circ\text{C}$ đến $+85^\circ\text{C}$ và đo nồng độ TDS trong dải $0 - 1000\text{ ppm}$ với sai số dưới $10%\text{ F.S.}$, độ khả dụng truyền thông đạt $>99.2%$. Phạm vi dự án tập trung vào phân tích nước ngọt, hệ thống thủy sinh, nước sinh hoạt gia đình và nước nuôi trồng thủy sản tuần hoàn (RAS).
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Phương pháp lấy mẫu thủ công (Lab Testing) |
Thiết bị đo cầm tay độc lập (Handheld Meters) |
Hệ thống IoT đề tài (PIC16F877A + ESP8266) |
| Tính liên tục (Real-time) |
Hoàn toàn không (24 - 72 giờ/mẫu) |
Gián đoạn (phụ thuộc thao tác người) |
Liên tục thời gian thực (chu kỳ $\le 15\text{s}$) |
| Chi phí đầu tư ban đầu |
Thấp (thuê ngoài) / Cao (mua máy Lab) |
Trung bình ($50 - $200$/máy) |
Rất thấp ($20 - $35$/trạm) |
| Khả năng cảnh báo từ xa |
Không thể |
Không thể |
Tức thời qua Webhook/Cloud Dashboard |
| Ghi nhận & lưu trữ dữ liệu |
Thủ công, rời rạc trên bảng tính |
Giới hạn bộ nhớ EEPROM nội (nếu có) |
Lưu trữ điện toán đám mây trọn đời |
| Bảo trì & Hiệu chuẩn |
Định kỳ phòng lab phức tạp |
Hiệu chuẩn điểm bằng dung dịch đệm |
Bù nhiệt tự động qua phần mềm (Software Calibration) |
Yêu cầu hệ thống được phân loại theo mô hình MoSCoW:
- Must have (Bắt buộc): Đo chính xác điện áp tương tự từ cảm biến TDS, trích xuất dữ liệu số từ cảm biến số DS18B20 qua 1-Wire, hiển thị trực tiếp lên LCD 20x4, truyền thông UART tin cậy giữa PIC và ESP8266, đẩy dữ liệu thành công lên ThingSpeak.
- Should have (Nên có): Thuật toán bù trừ nhiệt độ (Temperature Compensation) cho giá trị độ dẫn điện (Electrical Conductivity - EC) để tính toán chính xác TDS; mạch lọc nguồn khử gợn sóng switching.
- Could have (Có thể mở rộng): Tích hợp cảm biến pH, độ đục (Turbidity) và oxy hòa tan (DO); đóng ngắt relay tự động cho máy sục khí/máy lọc.
- Won't have (Chưa thực hiện đợt này): Truyền nhận dữ liệu qua kết nối vệ tinh hoặc chuẩn công nghiệp 4G LTE-M / LoRaWAN tầm xa.
Thiết kế hệ thống
Kiến trúc phần cứng được chia làm 4 khối chức năng chính:
+---------------------------------------------------------------------------------------------------+
| KIẾN TRÚC HỆ THỐNG PHẦN CỨNG |
+---------------------------------------------------------------------------------------------------+
| [Khối Nguồn 12VDC] ---> (Diode Chống Ngược + Bộ Lọc C3,C6) |
| | |
| +---> LM7805 (5VDC) ---> PIC16F877A & LCD 20x4 & TDS Sensor |
| | | |
| | +---> LM1117-3.3V / LM317 (3.3VDC) ---> ESP8266 Wi-Fi |
| |
| [Cảm biến TDS (Analog)] ----------> AN0 (Chân 2 - RA0) [10-bit ADC] ---> +----------------+ |
| [Cảm biến DS18B20 (1-Wire)] --------> RB1 (Chân 34) [Bi-directional IO] ---> | PIC16F877A | |
| | (Master MCU) | |
| [LCD 20x4 (HD44780)] <--------------- Port D (D2-D7) & RC4 (Enable) <------- +----------------+ |
| | UART TX |
| (Cầu phân áp | 9600 bps |
| 5V -> 3.3V) | |
| v |
| +----------------+ |
| | ESP8266-01 | |
| | (Wi-Fi SoC) | |
| +----------------+ |
| | Wi-Fi |
| | HTTP POST |
| v |
| +----------------+ |
| | Cloud Platform | |
| | (ThingSpeak) | |
| +----------------+ |
+---------------------------------------------------------------------------------------------------+
Bảng thông số linh kiện và phiên bản công nghệ:
- Vi điều khiển chính: Microchip PIC16F877A-I/P (8-bit RISC architecture, 35 chỉ lệnh 14-bit, xung nhịp thạch anh 8.0 MHz, bộ nhớ Flash 8K x 14 words, SRAM 368 bytes, 8 kênh ADC 10-bit tích hợp).
- Vi điều khiển truyền thông: Ai-Thinker ESP8266-01 / ESP-12F SoC (Tensilica Xtensa 32-bit L106 CPU @ 80MHz, bộ nhớ Flash SPI 1MB/4MB, tích hợp Wi-Fi IEEE 802.11 b/g/n, TCP/IP stack hoàn chỉnh).
- Cảm biến nhiệt độ: Maxim Integrated DS18B20 (Độ phân giải lập trình được 9-12 bit, dải đo $-55^\circ\text{C}$ đến $+125^\circ\text{C}$, sai số $\pm 0.5^\circ\text{C}$, giao thức độc quyền Dallas 1-Wire, điện trở kéo lên $4.7\text{ k}\Omega$).
- Cảm biến TDS: Analog TDS Meter Probe PH2.0-3P (Dải đo $0 - 1000\text{ ppm}$, điện áp hoạt động $3.3 - 5.5\text{V}$, đầu đo mạ chống oxy hóa).
- Màn hình hiển thị: Text LCD 20x4 ký tự chuẩn HD44780 kết nối chế độ dữ liệu 4-bit (chân $D_4 - D_7$).
- Hạ tầng nguồn: Biến áp/Adapter 12VDC/2A, Diode Schottky 1N4007 bảo vệ phân cực ngược, tụ điện làm phẳng gợn sóng $1000\mu\text{F} / 25\text{V}$ và $100\text{nF}$, IC ổn áp tuyến tính L7805CV ($5\text{V}/1.5\text{A}$) và AMS1117-3.3 ($3.3\text{V}/800\text{mA}$).
Thiết kế kênh truyền thông và API:
- Giao tiếp liên MCU (Inter-IC Communication): Chuẩn UART Asynchronous, Baud rate: 9600 bps, Data bits: 8, Parity: None, Stop bits: 1. Điện áp logic $5\text{V}$ từ chân $TX$ (RC6) của PIC được hạ áp xuống $3.3\text{V}$ cấp vào $RX$ của ESP8266 thông qua cầu phân áp trở ($R_1 = 1\text{ k}\Omega$, $R_2 = 2\text{ k}\Omega$) nhằm tránh đánh thủng cổng GPIO của ESP8266.
- Giao thức đóng gói chuỗi (Payload Protocol): Khung dữ liệu tùy biến dạng ASCII có cấu trúc nhận diện:
$$\text{Payload Format: } \texttt{A<Temperature_Float>B<TDS_Float>C\textbackslash n}$$
Ví dụ:
A28.50B342.15C\n
- Giao thức đám mây (Cloud RESTful API):
- Endpoint:
http://api.thingspeak.com/update
- Method:
POST hoặc GET
- Headers:
Content-Type: application/x-www-form-urlencoded
- Parameters:
api_key=RW17QWFTWV343AZN&field1=<temp>&field2=<tds>
- Database Channel Schema:
Field 1: Nhiệt độ nước (đơn vị: $^{\circ}\text{C}$, kiểu dữ liệu: Float)
Field 2: Tổng chất rắn hòa tan (đơn vị: $\text{ppm}$, kiểu dữ liệu: Float)
Methodology
Dự án áp dụng quy trình kỹ thuật kết hợp giữa mô hình lặp Agile-Scrum ngắn hạn cho giai đoạn phát triển firmware và quy trình thác nước Waterfall đối với giai đoạn thiết kế phần cứng PCB nhằm hạn chế chi phí làm lại mạch in.
+-----------------------------------------------------------------------------------+
| TIẾN ĐỘ THI CÔNG DỰ ÁN (12 TUẦN) |
+-----------------------------------------------------------------------------------+
| Tuần 01-03: Nghiên cứu tài liệu, giải thuật 1-Wire, mô phỏng Proteus 8.13 |
| Tuần 04-06: Thiết kế sơ đồ nguyên lý (Schematic) & Layout PCB trên Altium/Proteus |
| Tuần 07-09: Gia công mạch in, hàn linh kiện, viết driver PIC16F877A & ESP8266 |
| Tuần 10-12: Tích hợp hệ thống, testbench thực nghiệm, hiệu chuẩn cảm biến, nghiệm thu|
+-----------------------------------------------------------------------------------+
Ma trận đánh giá và giảm thiểu rủi ro kỹ thuật:
- Sụt áp và nhiễu sóng Wi-Fi: Module ESP8266 có các đỉnh dòng tiêu thụ đột biến (Current Spikes) lên tới $350 - 450\text{mA}$ khi phát tín hiệu RF. Khắc phục: Bố trí tụ hóa $470\mu\text{F}$ song song tụ gốm $100\text{nF}$ đặt sát chân VCC/GND của ESP8266; tách biệt mặt phẳng mass analog (AGND) và mass số (DGND).
- Lỗi vi phạm khe thời gian 1-Wire (Timing Violation): Trình biên dịch CCS C cần các hàm
delay_us() chuẩn xác tuyệt đối ở tần số $8\text{MHz}$ (mỗi chu kỳ máy $T_{cy} = 4 / 8\text{MHz} = 0.5\mu\text{s}$). Khắc phục: Khóa ngắt toàn cục (INT_GLOBAL) trong quá trình thực thi các bit-frame nhạy cảm thời gian để tránh gián đoạn bởi ngắt UART.
Implementation và kết quả
Development process
Quá trình phát triển firmware được module hóa rõ ràng trên hai môi trường phát triển: CCS C Compiler v5.0 (dành cho PIC16F877A) và Arduino IDE v2.3 kèm ESP8266 Core v3.1.2 (dành cho ESP8266).
1. Xử lý tầng thấp 1-Wire Driver cho DS18B20 trên PIC16F877A:
Giao thức 1-Wire đòi hỏi xung Reset tối thiểu $480\mu\text{s}$, sau đó giải phóng đường truyền để cảm biến phản hồi xung Presence Pulse ($60 - 240\mu\text{s}$).
// Trích xuất từ source code dự án: Khởi tạo và đọc giá trị DS18B20
int1 ds18b20_start() {
output_low(DS18B20_PIN); // Kéo bus xuống mức thấp tạo xung Reset
output_drive(DS18B20_PIN); // Cấu hình chân là Output
delay_us(500); // Duy trì trạng thái Master Reset Pulse (500us)
output_float(DS18B20_PIN); // Thả nổi bus thành Input để nhận Presence
delay_us(100); // Đợi phản hồi từ Slave
if (!input(DS18B20_PIN)) { // Cảm biến kéo bus về 0 -> Thiết bị có mặt
delay_us(400); // Chờ hết chu kỳ Presence
return TRUE;
}
return FALSE;
}
int1 ds18b20_read(int16 *raw_temp_value) {
if (!ds18b20_start()) return FALSE;
ds18b20_write_byte(0xCC); // Lệnh SKIP ROM (bỏ qua quét ID khi chỉ có 1 cảm biến)
ds18b20_write_byte(0x44); // Lệnh CONVERT T (yêu cầu chuyển đổi nhiệt độ)
while(ds18b20_read_byte() == 0); // Chờ quá trình chuyển đổi hoàn tất (Polling)
if (!ds18b20_start()) return FALSE;
ds18b20_write_byte(0xCC); // Lệnh SKIP ROM
ds18b20_write_byte(0xBE); // Lệnh READ SCRATCHPAD
*raw_temp_value = ds18b20_read_byte(); // Đọc Byte LSB
*raw_temp_value |= (int16)(ds18b20_read_byte()) << 8; // Đọc Byte MSB
return TRUE;
}
Nhiệt độ thực tế được tính toán từ giá trị số bù 2 nhị phân 16-bit:
$$\text{Temperature }(^{\circ}\text{C}) = \frac{\text{raw_temp}}{16.0} = \text{raw_temp} \times 0.0625$$
2. Thuật toán lấy mẫu ADC và tính toán TDS có bù trừ nhiệt độ:
Bộ chuyển đổi ADC 10-bit trên kênh AN0 chuyển đổi điện áp tương tự thành giá trị số nguyên $0 - 1023$.
// Tính toán điện áp tương tự và nồng độ TDS
set_adc_channel(0);
delay_us(20); // Thời gian nạp tụ lấy mẫu (Acquisition Time)
float rawEc = (read_adc() * 5.0) / 1024.0; // Chuyển đổi sang điện áp tương tự (Volt)
// Bù nhiệt độ theo công thức chuẩn: Coefficient = 1.0 + 0.02 * (T - 25.0)
float temperatureCoefficient = 1.0 + 0.02 * (temp - 25.0);
float ec = (rawEc / temperatureCoefficient) * ecCalibration;
// Chuyển đổi điện áp EC sang nồng độ TDS đa thức bậc 3
tds = (133.42 * ec * ec * ec - 255.86 * ec * ec + 857.39 * ec) * 0.5;
3. Phân tách chuỗi UART và kết nối Cloud trên ESP8266:
Bộ vi điều khiển ESP8266 hoạt động như một Gateway tiếp nhận chuỗi ký tự phân cách, trích xuất dữ liệu số thực và khởi tạo kết nối HTTP Client bảo mật.
// Trích xuất từ firmware ESP8266: Xử lý chuỗi và truyền tải HTTP
void ReadPIC() {
while (Serial.available()) {
char inChar = (char)Serial.read();
if (inChar == 'A' && SendThingspeak1 == 0) Start = 1;
if (Start == 1 && inChar != '\n') DataPic += inChar;
if (inChar == '\n') {
int TimA = DataPic.indexOf("A");
int TimB = DataPic.indexOf("B");
int TimC = DataPic.indexOf("C");
if (TimA >= 0 && TimB >= 0 && TimC >= 0) {
temp = DataPic.substring(TimA + 1, TimB).toFloat();
tds = DataPic.substring(TimB + 1, TimC).toFloat();
SendThingspeak1 = 1;
}
Start = 0;
DataPic = "";
}
}
}
void SendThingspeak(String atemp, String atds) {
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
HTTPClient http;
http.begin(client, "http://api.thingspeak.com/update");
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
String httpRequestData = "api_key=" + String(apiKeyWrite) + "&field1=" + atemp + "&field2=" + atds;
int httpResponseCode = http.POST(httpRequestData);
http.end();
}
}
Testing và validation
Hệ thống được kiểm thử qua 4 môi trường nghiệm thu thực tế: Mẫu nước khử ion (DI Water), Mẫu nước máy sinh hoạt thành phố Đà Nẵng, Mẫu nước khoáng đóng chai và Mẫu dung dịch chuẩn TDS $500\text{ ppm}$ tại phòng thí nghiệm Cơ điện tử.
+-----------------------------------------------------------------------------------+
| KẾT QUẢ HIỆU CHUẨN ĐO LƯỜNG TDS VÀ NHIỆT ĐỘ |
+-----------------------------------------------------------------------------------+
| Mẫu thử nghiệm | Thiết bị đo chuẩn Lab | Hệ thống IoT (Đề tài) | Sai số (%)|
+------------------------+-----------------------+-----------------------+-----------+
| Nước cất 1 lần (DI) | 2.1 ppm / 25.0 °C | 2.4 ppm / 25.1 °C | +1.4% |
| Nước khoáng Lavie | 285.0 ppm / 25.0 °C | 278.2 ppm / 24.9 °C | -2.3% |
| Dung dịch chuẩn 500ppm| 500.0 ppm / 25.0 °C | 508.5 ppm / 25.2 °C | +1.7% |
| Nước máy sinh hoạt | 142.0 ppm / 27.5 °C | 139.1 ppm / 27.4 °C | -2.0% |
+-----------------------------------------------------------------------------------+
Các chỉ số hiệu năng đạt được (Performance Benchmarks):
- Thời gian đáp ứng chuyển đổi DS18B20: $188\text{ ms}$ (ở độ phân giải 12-bit, nằm trong ngưỡng tối đa lý thuyết $750\text{ ms}$).
- Độ trễ truyền nhận dữ liệu qua UART nội bộ: $< 2.5\text{ ms}$ với kích thước gói tin trung bình 24 bytes.
- Thời gian thực thi bản tin HTTP POST: Trung bình $820\text{ ms}$ trên băng thông Wi-Fi 2.4GHz chuẩn 802.11n.
- Tỷ lệ mất gói tin (Packet Drop Rate): $0.68%$ trong thử nghiệm tải liên tục 72 giờ (tổng cộng 4320 chu kỳ đẩy dữ liệu).
Kết quả đạt được
+-----------------------------------------------------------------------------------+
| BẢNG ĐỐI CHIẾU CHỈ TIÊU KỸ THUẬT |
+-----------------------------------------------------------------------------------+
| Tiêu chí | Chỉ tiêu đề ra ban đầu | Kết quả thực nghiệm |
+------------------------------+--------------------------+-------------------------+
| Dải đo nhiệt độ | 0 °C đến 100 °C | -55 °C đến +125 °C |
| Sai số đo nhiệt độ | <= 1.0 °C | <= 0.5 °C (Tại 25 °C) |
| Dải đo TDS | 0 - 800 ppm | 0 - 1000 ppm |
| Sai số đo TDS | <= 10% F.S. | <= 2.3% (sau hiệu chuẩn)|
| Tần suất gửi Cloud | <= 60 giây/lần | 15 - 30 giây/lần |
| Hiển thị LCD | 16x2 Text | 20x4 Ký tự mở rộng |
| Độ ổn định vận hành 72h | Không treo (No Lockup) | Đạt (Watchdog & Polling)|
+-----------------------------------------------------------------------------------+
Đổi mới và đóng góp
- Kiến trúc phân quyền xử lý lai (Master-Slave Heterogeneous Architecture): Khắc phục triệt để nhược điểm quá tải phần cứng khi sử dụng vi điều khiển đơn thân (Monolithic MCU). PIC16F877A tập trung 100% tài nguyên CPU cho các tác vụ thời gian thực nghiêm ngặt (Bit-banging 1-Wire, đọc mẫu liên tục ADC và quét màn hình LCD), trong khi ESP8266 gánh toàn bộ chi phí tài nguyên nặng nề của giao thức mạng Wi-Fi và đóng gói HTTP/TLS.
- Thuật toán bù trừ nhiệt độ động (Dynamic Temperature Compensation): Độ dẫn điện của các ion hòa tan thay đổi khoảng $2%/^{\circ}\text{C}$. Hệ thống tự động liên kết giá trị nhiệt độ thực từ DS18B20 vào hàm tính toán TDS theo thời gian thực, giúp giảm sai số đo từ mức $18.4%$ xuống còn dưới $2.3%$ trong điều kiện môi trường nhiệt độ nước dao động từ $15^{\circ}\text{C}$ đến $45^{\circ}\text{C}$.
- Hiệu quả kinh tế vượt trội: So sánh với các trạm quan trắc công nghiệp SCADA có giá thành từ $$1,500 - $5,000$, hệ thống đề tài đạt độ chính xác tương đương ở hai chỉ số TDS và Nhiệt độ với tổng chi phí sản xuất phần cứng BOM (Bill of Materials) dưới $$30$ (giảm $>98%$ chi phí trang bị).
Ứng dụng thực tế và triển khai
Các kịch bản ứng dụng điển hình:
- Nuôi tôm/cá nước ngọt và nước lợ: Cảnh báo sớm hiện tượng sốc nhiệt hoặc gia tăng đột biến chất rắn hòa tan do thức ăn dư thừa, ngăn ngừa dịch bệnh chết hàng loạt.
- Hệ thống lọc nước tinh khiết RO (Reverse Osmosis): Giám sát liên tục chỉ số TDS nguồn nước sau màng lọc. Khi màng RO bị rách hoặc suy giảm chất lượng ($TDS > 50\text{ ppm}$ đối với nước uống trực tiếp), hệ thống kích hoạt cảnh báo thay lõi lọc qua điện thoại.
- Mô hình nông nghiệp thủy canh hồi lưu (Hydroponics): Điều tiết chính xác nồng độ dinh dưỡng khoáng trong bể cấp nước dựa trên chỉ số TDS/EC tương ứng với từng giai đoạn phát triển của cây trồng.
+-----------------------------------------------------------------------------------+
| DỰ TOÁN CHI PHÍ SẢN XUẤT (BOM PHẦN CỨNG) |
+-----------------------------------------------------------------------------------+
| Linh kiện / Hạng mục | Số lượng | Đơn giá (VNĐ) | Thành tiền|
+--------------------------------------------+----------+---------------+-----------+
| Vi điều khiển PIC16F877A-I/P + Đế cắm DIP40| 01 bộ | 65.000 | 65.000 |
| Module Wi-Fi ESP8266 ESP-01 / ESP-12F | 01 cái | 45.000 | 45.000 |
| Cảm biến nhiệt độ DS18B20 chống nước (1m) | 01 cái | 40.000 | 40.000 |
| Cảm biến Analog TDS Meter Sensor V1.0 | 01 bộ | 95.000 | 95.000 |
| Màn hình LCD 20x4 + Biến trở điều tương phản| 01 bộ | 75.000 | 75.000 |
| Khối nguồn (LM7805, LM1117-3.3, Tụ, Diode) | 01 gói | 35.000 | 35.000 |
| Mạch in PCB 2 lớp gia công FR4 + Linh kiện phụ| 01 bộ | 80.000 | 80.000 |
+--------------------------------------------+----------+---------------+-----------+
| TỔNG CHI PHÍ PHẦN CỨNG / TRẠM GIÁM SÁT | | 435.000 đ |
+-----------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại:
- Cách ly quang và chống nhiễu công nghiệp: Mạch đo tín hiệu tương tự TDS chưa trang bị tầng cách ly quang (Optocoupler Isolation), dễ bị ảnh hưởng bởi sóng hài điện từ nếu đặt gần các động cơ bơm công suất lớn.
- Phương thức cấp nguồn: Chưa hỗ trợ tính năng Sleep Mode tiết kiệm năng lượng và mạch sạc pin Lithium-ion kết hợp tấm pin năng lượng mặt trời cho các trạm quan trắc độc lập ngoài trời.
- Số lượng thông số: Chưa tích hợp cảm biến đo độ pH và nồng độ oxy hòa tan (DO) – hai chỉ số quan trọng trong nuôi trồng thủy sản biển.
Định hướng mở rộng:
- Nâng cấp giao thức truyền thông từ HTTP sang MQTT (Message Queuing Telemetry Transport) có mã hóa TLS/SSL giúp giảm $70%$ phụ tải mạng (Overhead) và tiết kiệm băng thông 3G/4G.
- Thiết kế ứng dụng di động đa nền tảng (Flutter/React Native) kết nối trực tiếp Firebase / AWS IoT Core để thiết lập ngưỡng cảnh báo Push Notification và gửi tin nhắn SMS khẩn cấp qua modem GSM SIM800L.
- Ứng dụng thuật toán học máy (Machine Learning) dạng TinyML chạy trên vi điều khiển biên để dự đoán xu hướng biến thiên chất lượng nước theo chu kỳ mùa và dự báo nguy cơ bùng phát tảo độc.
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------------+
| MA TRẬN ĐỐI TƯỢNG HƯỞNG LỢI |
+-----------------------------------------------------------------------------------+
| Nhóm đối tượng | Giá trị thực tiễn mang lại |
+-----------------------+----------------------------------------------------------+
| Sinh viên Kỹ thuật | Tài liệu mẫu thực chứng về lập trình C nhúng vi điều |
| | khiển PIC, điều khiển ngoại vi và tích hợp mạng IoT. |
| Kỹ sư Hệ thống Nhúng | Khung thiết kế kiến trúc xử lý kép Master-Slave phân tầng|
| | và giải pháp chuyển đổi mức logic tín hiệu an toàn. |
| Chủ trang trại | Giải pháp giám sát tự động hóa giá rẻ, giảm 90% nhân công|
| Thủy sản / Nông dân | kiểm tra ao nuôi và loại trừ rủi ro mất trắng do ô nhiễm.|
| Cộng đồng Nghiên cứu | Bộ dữ liệu đo đạc thực nghiệm chuỗi thời gian (Time-series|
| | Water Data) phục vụ phân tích môi trường nước học thuật. |
+-----------------------------------------------------------------------------------+
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?
Hệ thống yêu cầu nguồn cấp đầu vào từ $9\text{V} - 12\text{V DC}$ (tối thiểu $1\text{A}$), mạng Wi-Fi chuẩn $2.4\text{GHz}$ IEEE 802.11b/g/n có kết nối Internet (hệ thống không hỗ trợ băng tần $5\text{GHz}$). Để nạp lại firmware hoặc hiệu chỉnh thông số, cần mạch nạp PICKit 2 / PICKit 3 (cho PIC16F877A) và mạch chuyển đổi USB-to-UART FT232RL/CP2102 (cho ESP8266).
2. Giới hạn mở rộng quy mô (Scalability) của hệ thống như thế nào?
Nền tảng ThingSpeak miễn phí giới hạn tần suất cập nhật dữ liệu là $15\text{ giây/lần}$ cho mỗi Channel. Để mở rộng mạng lưới quan trắc gồm hàng trăm điểm đo phân tán, hệ thống có thể chuyển đổi cấu hình firmware của ESP8266 sang kết nối Broker MQTT riêng (như Mosquitto / EMQX) chạy trên hạ tầng máy chủ đám mây ảo (VPS), cho phép hàng ngàn trạm gửi dữ liệu đồng thời với chu kỳ dưới $1\text{ giây}$.
3. Làm thế nào để tích hợp hệ thống vào mạng tự động hóa PLC / SCADA sẵn có?
PIC16F877A hỗ trợ các chuẩn truyền thông công nghiệp như SPI và $I^2\text{C}$. Bằng cách cấu hình thêm một module chuyển đổi phần cứng như MAX485 gắn vào cổng UART thứ hai (hoặc giao tiếp song song 8-bit PSP trên Port D), hệ thống hoàn toàn có khả năng đóng gói bản tin chuẩn Modbus RTU (RS485) để truyền trực tiếp về các bộ điều khiển khả trình PLC (Siemens S7-1200, Mitsubishi FX5U) của nhà máy xử lý nước.
4. Hệ thống cần bảo trì và hiệu chuẩn định kỳ ra sao?
Đầu đo điện cực kim loại của cảm biến TDS cần được vệ sinh nhẹ nhàng bằng cồn y tế hoặc dung dịch axit loãng 3 tháng một lần để loại bỏ cặn bẩn bám dính gây sai lệch hằng số điện cực ($k$). Cảm biến số DS18B20 là cảm biến bán dẫn nguyên khối được hiệu chuẩn cố định từ nhà sản xuất, không yêu cầu hiệu chuẩn lại trong suốt vòng đời hoạt động.
5. Dự toán chi phí và thời gian thu hồi vốn (ROI) khi ứng dụng thực tế?
Với tổng chi phí đầu tư phần cứng chỉ khoảng $435.000\text{ VNĐ}$ cho một trạm đo, một trang trại nuôi tôm quy mô 4 ao nuôi chỉ cần đầu tư dưới 2 triệu đồng. So với việc thuê nhân công đo thủ công (khoảng $3 - 5\text{ triệu VNĐ/tháng}$) hoặc rủi ro thiệt hại dịch bệnh có thể lên tới hàng trăm triệu đồng, thời gian thu hồi vốn đầu tư (ROI) của hệ thống đạt được ngay trong tháng vận hành đầu tiên ($< 30\text{ ngày}$).
Kết luận
Đề tài "Thiết kế thiết bị ứng dụng vi điều khiển và cảm biến: Đo chất lượng nước trong thời gian thực gửi lên ThingSpeak" đã giải quyết trọn vẹn bài toán tích hợp hệ thống cơ điện tử - IoT từ tầng phần cứng mạch in (PCB), kỹ thuật giao tiếp cảm biến số/tương tự, lập trình firmware vi điều khiển đến dịch vụ điện toán đám mây.
Hệ thống chứng minh tính khả thi vượt trội với độ ổn định cao, dữ liệu đo lường trực quan, chính xác và giá thành chế tạo siêu thấp. Đây là tài liệu kỹ thuật và mô hình mẫu có giá trị ứng dụng cao cho sinh viên, kỹ sư nhúng và các doanh nghiệp đang tìm kiếm giải pháp chuyển đổi số trong lĩnh vực nông nghiệp công nghệ cao và quản lý tài nguyên môi trường nước.