Test và chạy thử mạch TDS
Lập Trình ESP8266 MCU
Pin GPIO:NodeMCU có 16 chân GPIO như trong sơ đồtrên có thểđược sử dụng
đểđiều khiển các thiết bị ngoại vi khác như cảm biến, đèn LED, công tắc, v.v. Những chân này cũng có thểđược sử dụng làm chân PWM.
Pin ADC (Bộ chuyển đổi tương tự sang số): Nó có một kênh ADC và có thểđược truy cập thông qua chân A0.
Pin SPI:Có 4 chân (SCK, MISO, MOSI, v.v.) có sẵn để giao tiếp SPI như được hiển thịtrong hình chữ nhật màu xanh lá cây trong sơ đồ.
Pin I2C: Nó có hỗ trợ chức năng I2C nhưng do sử dụng nội bộcác chân này, bạn phải tìm chân nào là I2C.
Pin UART:Nó có hai giao diện UART. Vì, RXD0 và TXD0 được sử dụng để tải
mã lên bảng, chúng tôi không thể sử dụng chúng trong khi lập trìnhmô-đun này. Ta có thể sử dụng RXD1 và TXD1 bất cứlúc nào.
28
Cài đặt NodeMCU trên Arduino IDE:
Hình 21 Cài Đặt MCU Trên IDE
29
• Lập trình Web trên IDE bằng NodeMCU
Chương trình web
Hàm setup()
Lập trình giao diện web nhận và hiện thị kết quả
webPage += “<h1>HT Electronic – ESP8266 Web Server</h1>
Kết nối vào mạng Wifi, gửi nội dung web server để hiện thịkhi có client truy xuất
vào
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED); //đợi kết nối Wifi thành công server.on(“/”, [](){ server.send(200, “text/html”, webPage);});
Bắt đầu chạy Web server server.begin();
Hàm loop()
Chỉ gọi hàmserver.handleClient() để xửlý các event của Web server Hình 23 Cài Đặt MCU Trên IDE
30
• Lập trình và chạy thửtrên IDE
Thiết lập Wifi và Password
• Source Code/Program #include <EEPROM.h> #include "GravityTDS.h" #define TdsSensorPin A1 GravityTDS gravityTds;
float temperature = 25,tdsValue = 0;
void setup() {
Serial.begin(115200);
gravityTds.setPin(TdsSensorPin);
gravityTds.setAref(5.0); //reference voltage on ADC, default 5.0V on Arduino UNO
gravityTds.setAdcRange(1024); //1024 for 10bit ADC;4096 for 12bit ADC gravityTds.begin(); //initialization
}
void loop() {
//temperature = readTemperature(); //add your temperature sensor and read it Hình 24 Lập Wifi và Password
31
gravityTds.setTemperature(temperature); // set the temperature and execute temperature compensation
gravityTds.update(); //sample and calculate
tdsValue = gravityTds.getTdsValue(); // then get the value Serial.print(tdsValue,0);
Serial.println("ppm"); delay(1000);
}
32
Chạy thửchương trình
Hình 26 Test chương trình
33 Hình 28 Kết quả hiển thị
34
❖ Mô Phỏng Hệ Thống