สร้าง Scale voltage/pH จำลองโดยให้ค่า 0-3 v/ pH 4-10/ 4-20 mA ทำได้ไหมครับ

อันนี้เป็นโค้ดที่อ่านขา Analog (A0) โดยผมอยากสร้าง Scale monitor เเละใช้ตัวปรับค่าความต้านทานที่ขา Analog (A0) ในการจำลองอ่านค่า Voltage กับ pH โดย Scale Voltage 0-3 v ส่วน pH 4-10 เเละ 4-20 mA
อย่างตัวอย่างเช่น ป้อนเเรงดันให้ขา A0 0 v = pH 4 , 3 v = pH 10 เเบบนี้ทำได้ไหมครับ คือผมใช้ pH sensor รุ่นเก่า มันส่งเป็นสัญญาณมาตรฐาน 4-20 mA เลยต้องใช้ ตัวเเปลง เป็นเเรงดัน ป้อนเข้า Nodemcu V3 เพื่อควบคุม relay ตามเเรงดันที่เรากำหนด

54.6


#define BLYNK_PRINT Serial 
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.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 volts = sensorValue * (3.3 / 1023.0);
  if(volts >= 3.0){
    Serial.print(" Voltage = ");
    Serial.print(volts,2);
    Serial.println(" V");
    Blynk.virtualWrite(V0, volts);
  }
  else if(volts <3.0){ 
  Serial.print(" Voltage = ");
  Serial.print(volts,2);
  Serial.println(" V");
  Blynk.virtualWrite(V0, volts);
  }
  
  float ph = volts * 3.3;
  Serial.print(" pH = ");
  Serial.print(ph,2);
  Serial.println(" ");
  Blynk.virtualWrite(V1, ph);
  
  Blynk.run();
  
 
  delay(100);
}
1 Likes

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