ต้องการให้บอร์ด ESP8266 สั่งให้ Relay ON-OFF ตามค่า Voltage ที่เรากำหนด คำอธิบายอยู่ด้านล่าง

ต้องการให้บอร์ด 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

วงจรที่ต่อเข้าบอร์ด
54.6

อันนี้เป็นโค้ดที่เขียนมาเพื่อเเสดงค่า 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





1 Likes

nathan fillion hd GIF

สั่งให้ปิดไปแล้วอันนี้ต้องเป็นสั่งให้เปิดรึป่าวครับ ถ้าเป็นสั่งให้เปิดก็ตามนี้ Relay ต้องไปกำหนดค่าขาที่ต้องการเพิ่มเติม

#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);

  if(PH == 7){
    digitalWrite(Relay, LOW);
  }else{
    digitalWrite(Relay, HIGH);
  }




}