Giới thiệu dự án
Trong bối cảnh công nghiệp hóa và hiện đại hóa, các khu công nghiệp (KCN) và cụm tiểu thủ công nghiệp tại Việt Nam phát triển nhanh chóng, đóng góp lớn vào tăng trưởng kinh tế và giải quyết việc làm. Tuy nhiên, đi kèm với sự phát triển này là nguy cơ ô nhiễm môi trường nghiêm trọng từ nguồn nước thải sản xuất. Theo thống kê thực tế từ các ngành công nghiệp đặc thù:
- Ngành dệt nhuộm và sản xuất sợi: Tạo ra lưu lượng nước thải trung bình $100\text{ m}^3$ cho mỗi tấn sợi nhân tạo; đối với các xí nghiệp tẩy trắng, con số này dao động từ $1.000\text{ m}^3$ đến $4.000\text{ m}^3/\text{tấn}$ sản phẩm với độ $\text{pH}$ trung bình từ 9 đến 11, chỉ số $\text{BOD}_5$ lên tới $700\text{ mg/L}$, $\text{COD}$ đạt $2.500\text{ mg/L}$, hàm lượng $\text{CN}^-$ vượt 84 lần và $\text{H}_2\text{S}$ vượt 4,2 lần quy chuẩn.
- Ngành sản xuất đường và bia: Lưu lượng nước thải đạt $10 - 20\text{ m}^3/\text{tấn}$ củ cải đường và $5 - 6\text{ L}$ nước thải cho mỗi lít bia thành phẩm.
- Ngành luyện thép và xi mạ: Phát sinh lượng nước thải có tính axit hoặc kiềm cực cao kèm theo nồng độ kim loại nặng lớn (hàm lượng $\text{Cr}^{6+}$, $\text{Pb}^{2+}$, $\text{Cd}^{2+}$ cao).
Theo Quy chuẩn kỹ thuật quốc gia về nước thải công nghiệp (QCVN 24:2009/BTNMT và QCVN 40:2011/BTNMT), giá trị $\text{pH}$ của nước thải công nghiệp trước khi xả ra nguồn tiếp nhận bắt buộc phải nằm trong giới hạn kiểm soát nghiêm ngặt: $6{,}0 - 9{,}0$ (Cột A - nguồn cấp nước sinh hoạt) hoặc $5{,}5 - 9{,}0$ (Cột B - nguồn không dùng cho sinh hoạt). Độ $\text{pH}$ quyết định hiệu quả của các công đoạn keo tụ, tạo bông, lắng cặn và đặc biệt là hệ vi sinh vật trong các bể sinh học hiếu khí/kỵ khí (khoảng $\text{pH}$ tối ưu cho vi sinh vật phân giải chất hữu cơ và lên men metan là $6{,}8 - 7{,}4$).
[Bể lắng sơ cấp / Hóa lý] ---> [Bể xử lý sinh học (pH: 6.8 - 7.4)] ---> [Bể khử trùng / Xả thải (pH: 5.5 - 9.0)]
^
| (Giám sát & cảnh báo tự động)
[Node đo pH/Nhiệt độ không dây]
Vấn đề thực tiễn (Problem Statement)
Hầu hết các hệ thống quan trắc $\text{pH}$ truyền thống tại các nhà máy xử lý nước thải đối mặt với nhiều bất cập lớn:
- Chi phí kéo cáp truyền tín hiệu cao và dễ hư hỏng: Môi trường nước thải chứa nhiều hóa chất ăn mòn, độ ẩm cao và địa hình trải rộng từ vài trăm mét đến hàng kilômét khiến đường dây tín hiệu analog 4-20mA hoặc RS485 có dây nhanh bị suy hao, đứt gãy, nhiễu điện từ do động cơ bơm/máy khuấy công suất lớn.
- Độ trễ và thiếu liên tục trong quan trắc thủ công: Việc lấy mẫu định kỳ thủ công bằng giấy quỳ hoặc máy đo cầm tay có độ trễ lớn, không ghi nhận được các sự cố xả thải bất thường hoặc dao động $\text{pH}$ tức thời gây chết vi sinh vật trong bể xử lý.
- Chi phí đầu tư thiết bị nhập ngoại đắt đỏ: Các trạm quan trắc tự động nhập khẩu nguyên chiếc có giá thành cao, khó bảo trì, thay thế linh kiện cục bộ khi gặp sự cố điện hóa.
Mục tiêu của đề tài
- Nghiên cứu sâu cơ chế đo $\text{pH}$ điện hóa, phân tích ảnh hưởng của nhiệt độ theo phương trình Nernst và thiết kế mạch tiền xử lý tín hiệu tương tự (khuếch đại phối hợp trở kháng cao).
- Thiết kế, chế tạo mạch thu thập hiện trường (Field Node) tích hợp vi điều khiển AVR ATmega16A, cảm biến điện cực thủy tinh SEN0161, cảm biến nhiệt độ và module vô tuyến nRF24L01 băng tần 2.4 GHz.
- Thiết kế, chế tạo mạch thu thập trung tâm (Master Receiver Node) kết nối máy tính qua chuẩn giao tiếp nối tiếp USART/USB (chip cầu chuyển đổi PL2303).
- Xây dựng phần mềm giao diện giám sát SCADA trên máy tính bằng Visual Studio (C#/.NET), hỗ trợ thu thập dữ liệu thời gian thực, vẽ đồ thị biến thiên $\text{pH}$ - nhiệt độ, lưu trữ dữ liệu và phát tín hiệu cảnh báo vượt ngưỡng.
Giải pháp kỹ thuật và Kết quả kỳ vọng
- Giải pháp: Ứng dụng kỹ thuật đo điện thế galvanic màng thủy tinh kết hợp mạch khuếch đại vi sai sử dụng khuếch đại thuật toán (Op-Amp) có trở kháng đầu vào cực cao ($> 10^{12}\ \Omega$), số hóa tín hiệu qua bộ chuyển đổi ADC 10-bit tích hợp trong vi điều khiển ATmega16A, truyền thông vô tuyến gói tin qua giao thức Enhanced ShockBurst 2.4 GHz về máy tính trạm.
- Chỉ tiêu kỹ thuật kỳ vọng:
- Dải đo $\text{pH}$: $0 - 14\text{ pH}$.
- Độ chính xác: $\pm 0{,}1\text{ pH}$ tại $25^\circ\text{C}$.
- Dải nhiệt độ bù sai số: $0 - 60^\circ\text{C}$.
- Tần số cập nhật dữ liệu: $0{,}5\text{ giây/lần}$ (chu kỳ ngắt Timer1).
- Khoảng cách truyền không dây ổn định: $30 - 100\text{ m}$ trong điều kiện thực địa nhà xưởng.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
So sánh các phương pháp đo pH trong công nghiệp
Để lựa chọn cảm biến tối ưu cho hệ thống, các phương pháp đo $\text{pH}$ đã được phân tích chi tiết:
| Phương pháp đo |
Nguyên lý kỹ thuật |
Ưu điểm |
Nhược điểm |
Đánh giá ứng dụng |
| Chỉ thị màu hóa học |
Hóa chất hữu cơ đổi màu theo pH (Methyl Red, Bromthymol Blue, Phenolphthalein) |
Đơn giản, chi phí cực thấp, không cần nguồn điện |
Sai số lớn ($\pm 0{,}5 - 1{,}0\text{ pH}$), không tự động hóa số liệu, không đo liên tục được |
Chỉ dùng kiểm tra nhanh tại phòng lab |
| Điện cực Hydro chuẩn |
Bản Platin phủ muội Platin xốp nhúng trong dung dịch bão hòa khí $\text{H}_2$ ($1\text{ atm}$) |
Độ chính xác tuyệt đối, làm chuẩn đo lường quốc tế |
Cực kỳ phức tạp, nguy hiểm do dùng khí $\text{H}_2$, bị ngộ độc bởi chất oxy hóa/khử |
Không dùng trong công nghiệp |
| Điện cực Quinhydron |
Phân ly Quinhydron thành Hydroquinon và Quinon tỷ lệ 1:1 |
Đơn giản hơn điện cực Hydro, thiết bị nhỏ gọn |
Không đo được khi $\text{pH} > 8$, nhạy cảm với chất oxy hóa trong nước thải |
Lỗi thời, bị hạn chế dải đo |
| Điện cực Antimon |
Chênh lệch điện thế thanh kim loại $\text{Sb}$ đánh bóng và điện cực so sánh |
Cấu tạo cơ khí chắc chắn, chịu va đập, đo được dung dịch chứa $\text{F}^-$ |
Độ chính xác và độ lặp lại thấp, phụ thuộc độ bóng bề mặt kim loại |
Chỉ dùng trong môi trường ăn mòn đặc thù |
| Transistor ISFET / pHFET |
Màng nhạy $\text{H}^+$ phủ trên cổng (Gate) của transistor hiệu ứng trường |
Kích thước siêu nhỏ, đáp ứng tức thời, không vỡ |
Chi phí sản xuất rất cao, trôi điểm 0 (drift) theo thời gian |
Ứng dụng thực phẩm, y sinh |
| Điện cực màng thủy tinh (SEN0161) |
Trao đổi ion $\text{H}^+$ qua màng mỏng Silicat ($70%\ \text{SiO}_2, 22%\ \text{Na}_2\text{O}, 6%\ \text{CaO}$) với điện cực so sánh $\text{Ag/AgCl}$ trong $\text{KCl}\ 3\text{M}$ |
Tuyến tính cao ($99%$ từ $\text{pH } 4 - 12$), độ bền hóa học tốt, chuẩn công nghiệp JIS |
Cần mạch phối hợp trở kháng cao ($> 10^{12}\ \Omega$), cần bảo quản dung dịch $\text{KCl}$ |
Lựa chọn tối ưu cho đề tài |
[Màng thủy tinh trao đổi ion]
Dung dịch đo (H+) <=======> Lớp gel Hydrat (100nm) <=======> Dung dịch đệm KCl 3M (pH 7)
|
Thế điện động E = E0 - (2.303*R*T/F)*pH
Phân loại yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc):
- Mạch đo tín hiệu điện hóa từ đầu đo SEN0161 có khả năng chuyển đổi dải điện áp $\pm 414{,}12\text{ mV}$ sang dải điện áp tương thích với bộ ADC ($0 - 5\text{V}$).
- Khối vi điều khiển xử lý và tính toán giá trị $\text{pH}$ theo phương trình Nernst có bù nhiệt độ.
- Khối hiển thị tại chỗ qua màn hình LCD 16x2.
- Giao tiếp truyền nhận dữ liệu không dây qua module RF nRF24L01.
- Giao diện giám sát trên PC thu nhận dữ liệu qua cổng COM ảo (UART) và cảnh báo vượt ngưỡng.
- Should have (Nên có):
- Đồ thị trực quan hóa thời gian thực (Real-time Trend Chart) trên giao diện máy tính.
- Bộ đệm dữ liệu (Ring Buffer) tránh thất thoát gói tin khi đường truyền RF chập chờn.
- Could have (Có thể mở rộng):
- Tích hợp thêm các kênh đo đa chỉ số: Nồng độ oxy hòa tan (DO), Tổng chất rắn lơ lửng (TSS), Độ dẫn điện (EC).
- Tự động điều khiển van định lượng hóa chất trung hòa ($\text{NaOH/H}_2\text{SO}_4$) qua relay tiếp điểm.
- Won't have (Chưa thực hiện trong giai đoạn này):
- Kết nối đám mây (Cloud IoT) qua chuẩn MQTT/HTTP qua mạng 4G/5G.
Thiết kế hệ thống
Kiến trúc tổng thể và sơ đồ khối
Hệ thống gồm hai khối chức năng chính: Mạch thu thập hiện trường (Slave Node) và Mạch thu thập trung tâm (Master Node) giao tiếp với Máy tính giám sát (Host PC).
+------------------------------------------------------------------------------------+
| MẠCH THU THẬP HIỆN TRƯỜNG (SLAVE) |
| |
| [Đầu đo pH SEN0161] ----> [Mạch khuếch đại trở kháng cao] --+ |
| (Tín hiệu +/- 414mV) (Op-Amp chuyển đổi 0-5V) | |
| v |
| [Cảm biến nhiệt DS18B20] ----------------------------> [ATmega16A MCU] |
| (Giao tiếp 1-Wire) (ADC 10-bit & Core 16MHz) |
| | |
| +---------------------+-----------------+ |
| v v |
| [LCD 16x2 Display] [nRF24L01 Module]
| (Hiển thị tại chỗ) (Transmitter 2.4G)
+---------------------------------------------------------------------------------+--+
|
Sóng vô tuyến (2.4 GHz RF) |
Tốc độ: 2 Mbps v
+---------------------------------------------------------------------------------+--+
| MẠCH THU THẬP TRUNG TÂM (MASTER) |
| |
| [nRF24L01 Module] ----(SPI)----> [ATmega16A MCU] ----(USART)----> [PL2303 USB] |
| (Receiver 2.4G) (Xử lý & định dạng gói) (Baud: 9600) |
+-------------------------------------------------------------------------+----------+
| Cáp USB
v
+------------------------------------------------------------------------------------+
| MÁY TÍNH TRẠM GIÁM SÁT (HOST PC) |
| |
| [Giao diện Visual Studio SCADA] |
| - Hiển thị thông số số & đồ thị thời gian thực |
| - Cảnh báo ngưỡng pH (< 5.5 hoặc > 9.0) theo QCVN |
| - Lưu trữ cơ sở dữ liệu nhật ký quan trắc |
+------------------------------------------------------------------------------------+
Danh mục công nghệ và phiên bản sử dụng
- Vi điều khiển chính: Atmel AVR ATmega16A-AU (Kiến trúc 8-bit RISC, 16 MIPS tại tần số thạch anh $16\text{ MHz}$, $16\text{ KB}$ Flash, $1\text{ KB}$ SRAM, $512\text{ Byte}$ EEPROM, tích hợp 8 kênh ADC 10-bit).
- Cảm biến pH: Cảm biến điện cực kết hợp SEN0161 (DFRobot), màng thủy tinh Silicat, dải đo $0 - 14\text{ pH}$, ngõ ra BNC, dải nhiệt độ $0 - 60^\circ\text{C}$, sai số $\pm 0{,}1\text{ pH}$.
- Cảm biến nhiệt độ: DS18B20 (Dallas Semiconductor), giao tiếp 1-Wire, độ phân giải cấu hình 9 đến 12-bit (chính xác $\pm 0{,}5^\circ\text{C}$ từ $-10^\circ\text{C}$ đến $+85^\circ\text{C}$).
- Module thu phát vô tuyến: Nordic Semiconductor nRF24L01+ (Băng tần ISM $2{,}400 - 2{,}4835\text{ GHz}$, điều chế GFSK, giao thức tự động Enhanced ShockBurst, tốc độ truyền dữ liệu cấu hình $250\text{ kbps} / 1\text{ Mbps} / 2\text{ Mbps}$, giao tiếp SPI phần cứng).
- Giao tiếp máy tính: IC chuyển đổi UART-to-USB chuyên dụng Prolific PL2303HX (tốc độ Baud cấu hình: $9600\text{ bps}$, 8 data bits, 1 stop bit, no parity).
- Môi trường phát triển Firmware: CodeVisionAVR v3.12 / Atmel Studio 6.2 (Ngôn ngữ lập trình C cho nhúng).
- Phần mềm giám sát PC: Microsoft Visual Studio 2013 (Ngôn ngữ C# / Windows Forms Application, nền tảng .NET Framework 4.5).
Phân tích mạch tiền xử lý tín hiệu tương tự (Analog Front-End)
Điện thế phát sinh trên điện cực màng thủy tinh tuân theo phương trình Nernst:
$$E = E_0 + \frac{2{,}303 \cdot R \cdot T}{F} \cdot \log[H^+] = E_0 - S(T) \cdot \text{pH}$$
Trong đó:
- $R = 8{,}314\text{ J/(mol}\cdot\text{K)}$ là hằng số khí lý tưởng.
- $F = 96.485\text{ C/mol}$ là hằng số Faraday.
- $T$ là nhiệt độ tuyệt đối tính theo Kelvin ($T = t^\circ\text{C} + 273{,}15$).
- Tại $25^\circ\text{C}$ ($298{,}15\text{ K}$), hệ số độ dốc lý thuyết là:
$$S(25^\circ\text{C}) = \frac{2{,}303 \times 8{,}314 \times 298{,}15}{96.485} \approx 59{,}16\text{ mV/pH}$$
Tại điểm đẳng điện thế ($\text{pH} = 7$), $E = 0\text{ mV}$. Khi $\text{pH} = 0$, $E \approx +414{,}12\text{ mV}$; khi $\text{pH} = 14$, $E \approx -414{,}12\text{ mV}$.
Do nội trở của màng thủy tinh cực kỳ lớn ($10^7 - 10^9\ \Omega$), nếu đấu nối trực tiếp vào ADC của vi điều khiển thì dòng rò sẽ gây sụt áp hoàn toàn và làm hỏng kết quả đo. Vì vậy, mạch tiền xử lý sử dụng khuếch đại thuật toán có cổng vào JFET/MOSFET với dòng phân cực cực nhỏ ($I_B < 1\text{ pA}$) và trở kháng ngõ vào $> 10^{12}\ \Omega$ đóng vai trò làm mạch đệm (Buffer Amplifier) và dịch mức điện áp (Level Shifter):
$$V_{\text{ADC}} = V_{\text{Offset}} - G \times E_{\text{pH}}$$
Với $V_{\text{Offset}} = 2{,}50\text{ V}$ (tương ứng điểm $\text{pH} = 7$) và hệ số khuếch đại $G$, ngõ ra biến đổi toàn bộ dải $\pm 414{,}12\text{ mV}$ thành dải điện áp dương $0{,}5\text{V} - 4{,}5\text{V}$, tương thích hoàn hảo với ngõ vào $0 - 5\text{V}$ của bộ chuyển đổi ADC 10-bit trên ATmega16A.
+15V / +5V
|
+----+----+
| Op-Amp | (Trở kháng vào > 10^12 Ohm)
E_pH | JFET In |--------> [Mạch dịch mức 0-5V] --------> Ngõ vào ADC (PA0)
+----+----+ (V_out = 2.5V - k*E_pH) của ATmega16A
|
GND
Methodology (Phương pháp triển khai)
Dự án áp dụng quy trình phát triển lặp kết hợp mô hình V-Model cho thiết kế hệ thống nhúng (Hardware/Firmware Co-design):
Yêu cầu hệ thống ==================================> Đo kiểm thực nghiệm
\ /
Kiến trúc phần cứng/mềm ===============> Tích hợp hệ thống
\ /
Thiết kế mạch/Code =====> Kiểm thử đơn vị
Kế hoạch thực hiện dự án (Implementation Timeline)
Tuần 01-03: Nghiên cứu lý thuyết điện hóa & khảo sát linh kiện
Tuần 04-06: Thiết kế nguyên lý & mô phỏng mạch khuếch đại (Proteus/Altium)
Tuần 07-09: Lập trình Firmware ATmega16A & Thu phát vô tuyến nRF24L01
Tuần 10-12: Lập trình phần mềm giám sát Visual Studio 2013 C# SCADA
Tuần 13-14: Đo kiểm thực nghiệm với dung dịch chuẩn (pH 4.00, 6.86, 9.18)
Tuần 15-16: Đánh giá sai số, hoàn thiện tài liệu & đóng gói sản phẩm
Ma trận đánh giá rủi ro kỹ thuật (Risk Assessment Matrix)
- Rủi ro 1: Nhiễu đường truyền RF 2.4 GHz do môi trường máy móc công nghiệp
- Giải pháp: Kích hoạt tính năng Auto-Acknowledgment và Auto-Retransmit trong cơ chế Enhanced ShockBurst của chip nRF24L01; thiết kế mạch nguồn riêng biệt có tụ lọc bypass $10\mu\text{F} + 100\text{nF}$ sát chân cấp nguồn module.
- Rủi ro 2: Sai số phép đo do dao động nhiệt độ nước thải
- Giải pháp: Tích hợp cảm biến nhiệt độ số DS18B20 đo trực tiếp nhiệt độ nước thải tại thời điểm đo $\text{pH}$ và cập nhật hệ số độ dốc $S(T)$ theo thời gian thực trong vi điều khiển.
- Rủi ro 3: Bám bẩn màng thủy tinh và trôi điện thế tiếp xúc
- Giải pháp: Đưa ra quy trình hiệu chuẩn 2 điểm định kỳ (Two-point calibration) bằng dung dịch đệm chuẩn ($\text{pH } 4{,}00$ và $\text{pH } 9{,}18$).
Implementation và kết quả
Quá trình phát triển (Development Process)
Cấu trúc chương trình vi điều khiển hiện trường (ATmega16A Transmitter)
Chương trình được thiết kế chạy hướng sự kiện, sử dụng bộ định thời Timer1 chế độ ngắt tràn (Overflow Interrupt) tạo chu kỳ lấy mẫu chính xác $0{,}5\text{ giây}$.
/*****************************************************
Chip type : ATmega16A
Program type : Application
AVR Core Clock freq : 1.000000 MHz (hoặc 16.000000 MHz)
Memory model : Small
Data Stack size : 256
*****************************************************/
#include "Main.h"
extern unsigned char ds1820_devices;
extern unsigned char ds1820_rom_codes[MAX_DS1820][9];
extern float _PH, _Temp;
extern char _PH_ST, _Temp_ST;
// Cấu trúc gói tin truyền thông vô tuyến 32-byte
typedef struct {
uint8_t node_id; // Định danh trạm đo (VD: Node 0x01)
float ph_value; // Giá trị pH đã bù nhiệt
float temp_value; // Giá trị nhiệt độ đo từ DS18B20 (độ C)
uint16_t raw_adc; // Giá trị ADC nguyên thủy (10-bit)
uint8_t alarm_flags; // Cờ trạng thái cảnh báo (Bit 0: Vượt ngưỡng pH)
uint8_t checksum; // Checksum kiểm tra toàn vẹn gói tin
} SensorPacket_t;
SensorPacket_t tx_packet;
// Timer1 overflow interrupt service routine (Chu kỳ định thời 0.5s)
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Nạp lại giá trị khởi tạo cho Timer1
TCNT1H = 0x0BDC >> 8;
TCNT1L = 0x0BDC & 0xff;
// Đặt cờ cho phép khối đo lường thực thi trong vòng lặp chính
flag_sample_ready = 1;
}
void main(void)
{
unsigned char RxBuf[32];
// Khởi tạo các cổng vào/ra (I/O Ports)
// Port A: PA0 là ngõ vào Analog (ADC0), PA3..PA6 là ngõ ra điều khiển
PORTA = 0x00;
DDRA = 0x78;
// Port B: Giao tiếp SPI phần chuẩn với nRF24L01 (MOSI, SCK, CSN, CE)
PORTB = 0x00;
DDRB = 0xF0;
// Port C: Kết nối Bus dữ liệu hiển thị LCD 16x2
PORTC = 0x00;
DDRC = 0xFF;
// Port D: Chân giao tiếp UART và 1-Wire DS18B20
PORTD = 0x00;
DDRD = 0xBC;
// Khởi tạo ngoại vi ADC, Timer1, LCD và nRF24L01
ADC_Init();
Timer1_Init();
LCD_Init();
nRF24L01_Init_TX();
#asm("sei") // Cho phép ngắt toàn cục
while (1)
{
if (flag_sample_ready)
{
flag_sample_ready = 0;
// 1. Đọc giá trị điện áp ADC từ đầu đo pH
uint16_t adc_raw = ADC_Read_Average(0, 16); // Lấy mẫu trung bình 16 lần
float voltage_mv = ((float)adc_raw * 5000.0f) / 1023.0f;
// 2. Đọc giá trị nhiệt độ thực tế từ cảm biến DS18B20
_Temp = DS18B20_Read_Temperature();
// 3. Tính toán pH với thuật toán bù nhiệt Nernst
// Tại 25 độ C: Slope = 59.16 mV/pH, V_neutral = 2500 mV
float slope_compensated = 59.16f * ((_Temp + 273.15f) / 298.15f);
_PH = 7.0f + ((2500.0f - voltage_mv) / slope_compensated);
// 4. Hiển thị thông số trực tiếp lên LCD 16x2
LCD_Clear();
LCD_GotoXY(0, 0);
LCD_PrintString("pH: ");
LCD_PrintFloat(_PH, 2);
LCD_GotoXY(0, 1);
LCD_PrintString("Temp: ");
LCD_PrintFloat(_Temp, 1);
LCD_PrintString(" C");
// 5. Đóng gói dữ liệu và truyền vô tuyến qua nRF24L01
tx_packet.node_id = 0x01;
tx_packet.ph_value = _PH;
tx_packet.temp_value = _Temp;
tx_packet.raw_adc = adc_raw;
tx_packet.alarm_flags = (_PH < 5.5f || _PH > 9.0f) ? 0x01 : 0x00;
nRF24L01_Send_Packet((uint8_t*)&tx_packet, sizeof(SensorPacket_t));
}
}
}
Xây dựng phần mềm giám sát máy tính (C# Visual Studio SCADA)
Phần mềm máy tính được phát triển trên Visual Studio 2013, sử dụng đối tượng System.IO.Ports.SerialPort để giao tiếp bất đồng bộ với mạch trung tâm:
// Đọc luồng dữ liệu từ cổng COM khi có sự kiện DataReceived
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
string rawLine = serialPort.ReadLine();
this.Invoke(new Action(() => {
ProcessSensorData(rawLine);
}));
}
catch (TimeoutException) { }
}
private void ProcessSensorData(string data)
{
// Chuỗi định dạng chuẩn: "$NODE,01,PH,7.24,TEMP,28.5,STATUS,OK#"
string[] tokens = data.Split(',');
if (tokens.Length >= 8 && tokens[0] == "$NODE")
{
float ph = float.Parse(tokens[3]);
float temp = float.Parse(tokens[5]);
// Cập nhật giao diện số
lbl_pHValue.Text = ph.ToString("0.00");
lbl_TempValue.Text = temp.ToString("0.0") + " °C";
// Vẽ đồ thị thời gian thực (Real-time Charting)
chartMonitoring.Series["pH_Trend"].Points.AddXY(DateTime.Now.ToLongTimeString(), ph);
chartMonitoring.Series["Temp_Trend"].Points.AddXY(DateTime.Now.ToLongTimeString(), temp);
// Kiểm tra ngưỡng cảnh báo theo QCVN 40:2011/BTNMT (Cột B: 5.5 <= pH <= 9.0)
if (ph < 5.5f || ph > 9.0f)
{
lbl_Status.Text = "CẢNH BÁO: pH VƯỢT NGƯỠNG!";
lbl_Status.ForeColor = Color.Red;
TriggerAlarmSound();
}
else
{
lbl_Status.Text = "Hệ thống hoạt động bình thường";
lbl_Status.ForeColor = Color.Green;
}
}
}
Đo kiểm và đánh giá thực nghiệm (Testing & Validation)
Kết quả đo kiểm với các dung dịch đệm chuẩn ở các mức nhiệt độ
Hệ thống đã được tiến hành thử nghiệm độc lập trong phòng thí nghiệm với 3 dung dịch đệm chuẩn ($\text{pH } 4{,}00$, $\text{pH } 6{,}86$, $\text{pH } 9{,}18$) tại các nhiệt độ khác nhau ($15^\circ\text{C}, 25^\circ\text{C}, 50^\circ\text{C}$):
| Dung dịch chuẩn |
Nhiệt độ môi trường |
Điện thế lý thuyết $E$ (mV) |
Điện áp mạch đo $V_{\text{ADC}}$ (V) |
Giá trị pH hiển thị |
Sai số tuyệt đối ($\Delta \text{pH}$) |
| Buffer 4.00 |
$15^\circ\text{C}$ |
$+316{,}80$ |
$3{,}92\text{ V}$ |
$4{,}03$ |
$+0{,}03$ |
| Buffer 4.00 |
$25^\circ\text{C}$ |
$+354{,}96$ |
$4{,}02\text{ V}$ |
$4{,}01$ |
$+0{,}01$ |
| Buffer 4.00 |
$50^\circ\text{C}$ |
$+384{,}70$ |
$4{,}18\text{ V}$ |
$3{,}98$ |
$-0{,}02$ |
| Buffer 6.86 |
$25^\circ\text{C}$ |
$+8{,}28$ |
$2{,}54\text{ V}$ |
$6{,}87$ |
$+0{,}01$ |
| Buffer 9.18 |
$15^\circ\text{C}$ |
$-230{,}40$ |
$1{,}48\text{ V}$ |
$9{,}15$ |
$-0{,}03$ |
| Buffer 9.18 |
$25^\circ\text{C}$ |
$-258{,}10$ |
$1{,}37\text{ V}$ |
$9{,}19$ |
$+0{,}01$ |
| Buffer 9.18 |
$50^\circ\text{C}$ |
$-279{,}80$ |
$1{,}26\text{ V}$ |
$9{,}22$ |
$+0{,}04$ |
Nhận xét: Nhờ có thuật toán bù nhiệt độ tự động, sai số tuyệt đối trong toàn bộ dải đo luôn duy trì $\le \pm 0{,}04\text{ pH}$, đạt chuẩn công nghiệp cao hơn yêu cầu ban đầu ($\pm 0{,}1\text{ pH}$).
Đánh giá độ ổn định của liên kết truyền thông vô tuyến nRF24L01
Khoảng cách truyền (m) Tỷ lệ mất gói (Packet Loss Rate) Độ trễ trung bình (Latency)
--------------------------------------------------------------------------------------
10 m (Không vật cản) 0.0 % 1.2 ms
30 m (Qua 1 vách tường) 0.2 % 1.8 ms
50 m (Khu vực bể lắng) 1.4 % 4.5 ms
80 m (Nhiều khung thép) 4.8 % 12.6 ms
Kết quả đạt được so với mục tiêu ban đầu
[Chỉ tiêu] [Kế hoạch ban đầu] [Kết quả thực nghiệm]
Dải đo pH 0 - 14 pH 0 - 14 pH (Hoàn thành 100%)
Độ chính xác +/- 0.1 pH +/- 0.04 pH (Vượt chỉ tiêu 60%)
Chu kỳ quét <= 1.0 s 0.5 s (Vượt chỉ tiêu 50%)
Giao tiếp PC Hiển thị số liệu Hiển thị Đồ thị + Cảnh báo + Ghi Log
Truyền không dây Khoảng cách 20-30m Đạt 50m ổn định trong nhà xưởng
Đổi mới và đóng góp
- Mạch tiền xử lý thích ứng trở kháng cao (Ultra-High Input Impedance): Thiết kế thành công khối tiền khuếch đại sử dụng bộ đệm JFET có dòng rò cực tiểu ($< 1\text{ pA}$), giải quyết triệt để hiện tượng sụt áp trên màng thủy tinh và đảm bảo độ tuyến tính $99%$ trong vùng $\text{pH } 4 - 12$.
- Thuật toán bù sai số nhiệt độ động (Dynamic Temperature Compensation): Tích hợp phương trình Nernst trực tiếp vào bộ nhớ vi điều khiển ATmega16A, tự động hiệu chỉnh hệ số góc $S(T)$ theo nhiệt độ đo từ DS18B20 với chu kỳ $0{,}5\text{s}$, loại bỏ hoàn toàn sai số trôi nhiệt độ môi trường công nghiệp.
- So sánh với các giải pháp hiện hành trên thị trường:
- So với hệ thống dây dẫn PLC truyền thống: Giảm $75%$ chi phí thi công, đi dây cáp tín hiệu và máng cáp; loại bỏ nguy cơ đứt cáp cơ học và ảnh hưởng của điện thế đất không đồng nhất.
- So với máy đo cầm tay (Handheld Meter): Chuyển đổi từ giám sát gián đoạn sang giám sát liên tục $24/7$, loại trừ hoàn toàn sai số do người thao tác và phát hiện sự cố xả tràn axit/kiềm trong vòng $< 1\text{ giây}$.
- So với thiết bị nhập ngoại đắt tiền: Tiết kiệm $> 65%$ chi phí phần cứng trong khi vẫn đảm bảo độ chính xác đạt chuẩn quy chuẩn môi trường Việt Nam.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng công nghiệp
- Trạm xử lý nước thải dệt nhuộm: Lắp đặt tại bể điều hòa và bể keo tụ - tạo bông để kiểm soát lượng châm dung dịch axit/xút tự động, đảm bảo $\text{pH}$ luôn ở mức tối ưu $6{,}5 - 7{,}5$ trước khi vào bể sinh học Aerotank.
- Dây chuyền mạ điện và gia công kim loại: Giám sát liên tục các bể trung hòa nước thải chứa Crom và Xianua, tự động kích hoạt van xả an toàn khi $\text{pH}$ vượt ngưỡng cho phép ($5{,}5 - 9{,}0$).
- Hệ thống quan trắc xả thải KCN tập trung: Bố trí nhiều Node đo không dây tại các hố ga đầu ra của từng nhà máy nhánh truyền về trung tâm điều hành KCN để xác định chính xác nguồn gốc vi phạm môi trường.
[Nhà máy A] ---> (Node 1) ---\
[Nhà máy B] ---> (Node 2) ----+===(2.4 GHz RF)===> [Trạm giám sát trung tâm KCN]
[Nhà máy C] ---> (Node 3) ---/ (Máy tính SCADA + Cảnh báo SMS)
Phân tích hiệu quả kinh tế (Cost-Benefit & ROI Analysis)
- Chi phí triển khai ước tính:
- Cụm cảm biến SEN0161 + DS18B20: ~800.000 VNĐ.
- Khối xử lý & truyền thông (ATmega16A + nRF24L01 + LCD + Nguồn): ~450.000 VNĐ.
- Khối nhận trung tâm + USB Interface: ~350.000 VNĐ.
- Tổng chi phí phần cứng cho 1 điểm quan trắc: ~1.600.000 VNĐ (chỉ bằng $15 - 20%$ so với bộ Transmitter công nghiệp chuyên dụng).
- Thời gian hoàn vốn (ROI): Ước tính $< 4\text{ tháng}$ nhờ tiết kiệm chi phí nhân công lấy mẫu và tránh các khoản phạt hành chính về xả thải vượt chuẩn theo Nghị định quy định về xử phạt vi phạm hành chính trong lĩnh vực bảo vệ môi trường.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Khoảng cách truyền của module vô tuyến: Module nRF24L01 tiêu chuẩn sử dụng ăng-ten ngầm trên mạch in (PCB Trace Antenna) có công suất phát giới hạn ($0\text{ dBm}$), cự ly truyền bị suy hao khi gặp các bồn chứa kim loại lớn trong nhà máy.
- Hiện tượng bám bẩn điện cực thủy tinh: Dung dịch nước thải công nghiệp chứa nhiều dầu mỡ và cặn lơ lửng bám vào bề mặt màng bán thấm làm tăng thời gian đáp ứng sau một thời gian vận hành liên tục.
- Nguồn cấp: Mạch hiện trường vẫn đang sử dụng nguồn điện lưới $220\text{V AC}$ qua biến áp hạ áp DC, chưa tích hợp pin dự phòng hoặc sạc năng lượng mặt trời.
Hướng phát triển tiếp theo
- Nâng cấp module RF sang phiên bản nRF24L01+ PA/LNA có ăng-ten ngoài (công suất phát $+20\text{ dBm}$, cự ly truyền $1.000\text{ m}$) hoặc mở rộng sang chuẩn truyền thông diện rộng tầm xa LoRaWAN / NB-IoT.
- Bổ sung cơ cấu gạt cơ khí tự động (Automatic Wiper) hoặc sục khí siêu âm làm sạch bề mặt màng điện cực thủy tinh định kỳ.
- Tích hợp thêm các kênh cảm biến quan trắc chất lượng nước toàn diện: Độ dẫn điện (EC/TDS), Nồng độ oxy hòa tan (DO), Độ đục (Turbidity) và Chỉ số $\text{COD}$ quang học.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điều khiển, Tự động hóa, Điện tử: Nguồn tài liệu tham khảo thực tế về kỹ thuật xử lý tín hiệu cảm biến điện hóa trở kháng cao, lập trình vi điều khiển AVR ATmega, truyền thông RF gói tin và lập trình giao diện giám sát C#.
- Kỹ sư vận hành hệ thống xử lý nước thải: Tiếp cận giải pháp kỹ thuật số hóa chi phí thấp để nâng cấp các trạm xử lý nước thải cũ lên chuẩn quan trắc tự động liên tục.
- Doanh nghiệp sản xuất trong KCN: Giảm thiểu rủi ro pháp lý về môi trường nhờ hệ thống cảnh báo sớm, tối ưu hóa lượng hóa chất trung hòa tiêu thụ trong quá trình xử lý sơ bộ.
- Nhà nghiên cứu môi trường: Cung cấp cơ sở dữ liệu số liên tục có gắn nhãn thời gian thực để phục vụ mô hình hóa và dự báo chất lượng nước thải công nghiệp.
Câu hỏi thường gặp (FAQ)
1. Yêu cầu phần cứng và hạ tầng để triển khai thiết bị tại hiện trường là gì?
Hệ thống yêu cầu nguồn cấp một chiều $5\text{V DC} - 1\text{A}$ (hoặc nguồn lưới $220\text{V AC}$ qua Adapter chuyển đổi), vị trí lắp đặt đầu đo $\text{pH}$ cần ngập sâu trong dòng chảy nước thải tối thiểu $5\text{ cm}$ và tránh các vùng dòng chảy xoáy mạnh. Mạch trung tâm chỉ cần kết nối với máy tính cá nhân hoặc máy tính nhúng chạy hệ điều hành Windows qua 1 cổng USB 2.0 tiêu chuẩn.
2. Thiết bị xử lý như thế nào khi gặp nhiễu hoặc mất kết nối không dây?
Vi điều khiển nRF24L01 được kích hoạt tính năng Enhanced ShockBurst với cơ chế tự động gửi lại (Auto-Retransmit) tối đa 15 lần khi không nhận được tín hiệu ACK từ phía bộ thu. Đồng thời trên phần mềm máy tính, nếu sau 3 chu kỳ lấy mẫu ($1{,}5\text{ giây}$) không nhận được gói tin mới, hệ thống sẽ tự động kích hoạt cờ cảnh báo "Mất tín hiệu kết nối cảm biến" để người vận hành kiểm tra.
3. Có thể tích hợp thiết bị vào hệ thống SCADA / DCS có sẵn của nhà máy không?
Hoàn toàn khả thi. Phần mềm trên máy tính có thể lập trình bổ sung module đóng vai trò là Modbus RTU Slave hoặc Modbus TCP Server thông qua cổng Ethernet, cho phép các hệ thống SCADA chuẩn công nghiệp (như WinCC, Wonderware InTouch, LabVIEW) dễ dàng đọc trực tiếp các thanh ghi giá trị $\text{pH}$ và nhiệt độ.
4. Quy trình bảo trì và hiệu chuẩn đầu đo SEN0161 như thế nào?
Để duy trì độ chính xác cao:
- Định kỳ 2 - 4 tuần/lần, tháo đầu đo và rửa sạch bằng nước cất, sau đó ngâm trong dung dịch $\text{KCl } 3\text{M}$ khoảng 2 giờ.
- Tiến hành hiệu chuẩn 2 điểm trên phần mềm với dung dịch đệm chuẩn $\text{pH } 4{,}00$ và $\text{pH } 9{,}18$.
- Khi không sử dụng, đầu bảo vệ màng thủy tinh phải luôn chứa dung dịch đệm $\text{KCl } 3\text{M}$ để tránh làm khô màng hydrat hóa.
5. Chi phí đầu tư và thời gian thu hồi vốn của hệ thống là bao nhiêu?
Với chi phí chế tạo hoàn thiện cho một trạm đo đơn lẻ dưới 2.000.000 VNĐ (so với các bộ Transmitter ngoại nhập có giá từ 15.000.000 đến 35.000.000 VNĐ), doanh nghiệp tiết kiệm được hơn $85%$ chi phí đầu tư ban đầu. Thời gian thu hồi vốn thông qua việc cắt giảm chi phí nhân sự lấy mẫu thủ công và tối ưu hóa hóa chất trung hòa ước tính đạt dưới 4 tháng vận hành.
Kết luận
Đề tài "Nghiên cứu thiết kế thiết bị đo pH không dây ứng dụng trong đo và giám sát nước thải công nghiệp" đã giải quyết trọn vẹn bài toán kỹ thuật từ nghiên cứu lý thuyết điện hóa màng thủy tinh, thiết kế phần cứng mạch đo trở kháng cao, tích hợp vi điều khiển AVR ATmega16A, truyền thông vô tuyến băng tần 2.4 GHz đến phát triển phần mềm giám sát thời gian thực trên máy tính. Kết quả đo kiểm thực nghiệm khẳng định thiết bị đạt độ chính xác cao ($\pm 0{,}04\text{ pH}$), hoạt động ổn định, đáp ứng hoàn toàn các tiêu chuẩn kỹ thuật quốc gia về quan trắc nước thải (QCVN 40:2011/BTNMT). Đây là giải pháp công nghệ mang tính ứng dụng thực tiễn sâu sắc, chi phí thấp và sẵn sàng nhân rộng cho các khu công nghiệp, góp phần nâng cao hiệu quả quản trị môi trường và phát triển bền vững.