ต้องการให้บอร์ด ESP8266 สั่งให้ Relay ON-OFF ตามค่า Voltage ที่เรากำหนด
ถ้าเราต้องการ ป้อนไฟ 0-3 v ที่ขา Analog(A0) เเล้วให้อ่านเป็นค่า Voltage, pH , mA บน Blynk
Voltage = 0-3 v
pH = 4-10
Current = 4-20 mA
เเล้วสั่งให้
Relay ON เปิดเมื่อ ค่า pH น้อยหรือมากกว่า 7
เเล้วสั่งให้ Relay OFF ปิดเมื่อ ค่า pH เป็น 7
เเบบนี้ต้องเขียนโค้ดอย่างไง
ตอนนี้ผมสามารถอ่านค่า ขา A0 เเปลงให้เป็นค่า Voltage, Current เเละ pH ได้เเล้วเเต่เหลือ คำสั่ง Relay ให้ปิดเมื่อ pH เท่ากับ 7 เเละสั่งให้ปิดเมื่อ pH น้อยกว่าหรือมากกว่า 7
วงจรที่ต่อเข้าบอร์ด
อันนี้เป็นโค้ดที่เขียนมาเพื่อเเสดงค่า Voltage,Current เเละ pH ที่ขา A0
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "fyglxE-xxZZMaMexHhi1LZHGysuNjYhu"; //Token key
char server[] = "elec.cmtc.ac.th";
char ssid[] = "prem";
char pass[] = "01234567";
int port = 8080;
void setup() {
Serial.begin(115200);
Serial.println("กำลังเชื่อมต่อไปที่ Blynk Server");
WiFi.begin(ssid, pass); //เชื่อมต่อ WiFi
Blynk.config(auth, server, port); //กำหนด Token key , ชื่อ Server และ port
Blynk.connect(); //เชื่อมต่อไปยัง Blynk
}
BLYNK_CONNECTED() { // ฟังก์ชันนี้ทำงานเมื่อต่อ Blynk ได้
Serial.println("App Blynk ทำงาน!");
}
void loop() {
int sensorValue = analogRead(A0);
float Vin = sensorValue*(3.3/1024);
float Voltage = Vin;
Serial.print(" Voltage = ");
Serial.print(Vin,2);
Serial.println(" V");
Blynk.virtualWrite(V0, Vin);
float PH = (Vin*2)+4;
Serial.print(" PH = ");
Serial.print(PH,2);
Serial.println(" ");
Blynk.virtualWrite(V1, PH);
float current = (Vin*5.333)+4;
Serial.print(" Current = ");
Serial.print(current,2);
Serial.println(" mA");
Blynk.virtualWrite(V2, current);
Blynk.run();
delay(100);
}
อันนี้เป็นตารางเปรียบเทียบค่า Current, Voltage เเละ pH
อันนี้เป็น ภาพที่เเสดงค่า Voltage,Current เเละ pH ใน Serial Monitor เเละบน Blynk