ขอความช่วยเหลือหน่อยครับพี่ๆในกลุ่มพอดีผมใช้ คำสั่ง lcd.clear แล้วคำสั่งไม่ทำงานครับ ผลลัพธ์ออกมาคนละแบบกับที่เขียนโค๊ดลงไปเลยครับ
โค้ต
//--------------------------------------------------------------- LIBRARY SENSOR -----------------------------------------------------------------------------------------//
#define BLYNK_PRINT Serial
#include <LiquidCrystal_I2C.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
BlynkTimer timer;
LiquidCrystal_I2C lcd(0x27, 16, 2);
//--------------------------------------------------------------- VARIABLES --------------------------------------------------------------------------------------------//
int measurePin = A0;
int ledPower = D5;
int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
//--------------------------------------------------------------- FUNCTION --------------------------------------------------------------------------------------------//
int WifiPercentSignal() {
int CurrentWiFiSignal,WifiSignal;
CurrentWiFiSignal = WiFi.RSSI();
if(CurrentWiFiSignal > -40) CurrentWiFiSignal = -40;
if(CurrentWiFiSignal < -90) CurrentWiFiSignal = -90;
WifiSignal = map(CurrentWiFiSignal, -40, -90, 0, 100);
return WifiSignal;
}
int Airdust(){
digitalWrite(ledPower, LOW);
delayMicroseconds(samplingTime);
voMeasured = analogRead(measurePin);
delayMicroseconds(deltaTime);
digitalWrite(ledPower, HIGH);
delayMicroseconds(sleepTime);
calcVoltage = voMeasured * (3.3 / 1024);
dustDensity = 0.17 * calcVoltage - 0.1;
Serial.print("Raw Signal Value (0-1023): ");
Serial.print(voMeasured);
Serial.print(" - Voltage: ");
Serial.print(calcVoltage);
if (dustDensity <= 0.00) {
dustDensity = 0.00;
}
dustDensity = dustDensity * 1000;
Serial.print(" - Dust Density: ");
Serial.print(dustDensity);
Serial.println(" µg/m³");
lcd.home();
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Dus");
lcd.setCursor(2, 1);
lcd.print(dustDensity);
lcd.print(" ug/m3 ");
return dustDensity;
}
void sendsensor(){
Blynk.virtualWrite(V10,WifiPercentSignal());
Blynk.virtualWrite(V1,Airdust());
}
void connect_internet(){
char auth[34] = "yz-122hagdcFwGKRmfL8jEWFdy5lWgew";
char sever[15] = "103.233.194.42";
int port = 8080;
const char* ssid = "aisfibre_2.4G_Netpuk";
const char* pass = "kaew170217";
WiFi.begin(ssid, pass);
Blynk.begin(auth, ssid, pass, "103.233.194.42", 8080);
while (WiFi.status() != WL_CONNECTED) {
Serial.println("Connecting... ");
Serial.printf("Connection Status: %d\n", WiFi.status());
delay(1000);
}
Serial.print("Wi-Fi connected.");
Serial.print("IP Address : ");
Serial.println(WiFi.localIP());
Serial.print("WifiPercentSignal(%) : ");
Serial.println(WifiPercentSignal());
}
//--------------------------------------------------------------- SET DEFAULT--------------------------------------------------------------------------------------------//
void setup() {
Serial.begin(9600);
connect_internet();
timer.setInterval(5000L, sendsensor);
}
void loop() {
Blynk.run();
timer.run();
}
ผลลัพธ์
ปล.ผลลัพธ์ที่ต้อองการอยู่ในฟังก์ชั่น Airdust ครับ
ขอขอบคุณล่วงหน้าครับ