II.Thi Công Hệ Thống
Lập Trình ESP8266 MCU
Hình 20 Sơ Đồ Chân 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ình mô-đun này. Ta có thể sử dụng RXD1 và TXD1 bất cứ lúc nào.
Cài đặt NodeMCU trên Arduino IDE:
Hình 21 Cai Đ t MCU Trên IDEă
Hình 23 Cai Đ t MCU Trên IDEă
• 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()
• Lập trình và chạy thử trên IDE Thiết lập Wifi và Password
Hình 24 L p Wif va 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() {
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);
}
Chạy thử chương trình
Hình 26 Test chương trình
❖ Mô Phỏng Hệ Thống