สอบถามเรื่อง บอร์ด E-201-C PH Detection Sensor Module ที่วัด ph กับ temperature พอดีมีปัญหาว่าเหมือนมันไม่เจอตัววัดtemp

ตอนนี้ทดสอบรันโค้ดบน esp 32 30 pin  รูปแบบการต่อ คือ จากบอร์ดมี ไฟบวก 1 ไฟลบ 2 สัญญาณ PO(ที่วัดค่า PH) ต่อกับ ขา D34ของ บอร์โ esp และ ขา T2(Temp) ต่อกับขา D35 ของบอร์ด esp
#include <OneWire.h>
#include <DallasTemperature.h>
// กำหนดขาที่จะเชื่อมต่อ DS18B20 Sensor
#define ONE_WIRE_BUS 2 // ตัวอย่างใช้ GPIO 2  
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// กำหนดขาที่จะเชื่อมต่อ pH module
const int analogPhPin = 34; // ใช้ GPIO 34 เป็นขา ADC สำหรับ pH module
const int analogTempPin = 35; // ใช้ GPIO 35 เป็นขา ADC สำหรับเซ็นเซอร์อุณหภูมิอนาล็อก (ถ้ามี)
// ตัวแปรสำหรับเก็บข้อมูลค่าเฉลี่ย
long phTot, temTot;
float phAvg, temAvg;
int x;
// ค่าคงที่สำหรับเส้นตรง (Y = mx + C)
float C = 25.85;
float m = -6.80;
void setup() {
  // เริ่มต้นการสื่อสารแบบ Serial
  Serial.begin(9600);
  // เริ่มต้นการทำงานของ DS18B20
  sensors.begin();
  // ตรวจสอบจำนวนเซ็นเซอร์ที่เชื่อมต่อ
  if (sensors.getDeviceCount() == 0) {
    Serial.println("No DS18B20 sensors are connected!");
    while (1); // หยุดการทำงานถ้าไม่มีเซ็นเซอร์เชื่อมต่อ
  }
}
void loop() {
  phTot = 0;
  temTot = 0;
  phAvg = 0;
  temAvg = 0;
  // อ่านค่า 10 ตัวอย่างและรวมค่าแต่ละตัวอย่าง
  for (x = 0; x < 10; x++) {
    phTot += analogRead(analogPhPin);
    temTot += analogRead(analogTempPin);
    delay(10);
  }
  // คำนวณค่าเฉลี่ย
  phAvg = phTot / 10.0;
  temAvg = temTot / 10.0;
  // แปลงค่าอนาล็อกเป็นแรงดันไฟฟ้า
  float phVoltage = phAvg * (3.3 / 4095.0); // ESP32 ใช้ ADC 12-bit
  // float temVoltage = temAvg * (3.3 / 4095.0); // ESP32 ใช้ ADC 12-bit (ถ้าต้องการแปลงค่าอุณหภูมิจากแรงดันไฟฟ้า)
  // คำนวณค่า pH จากแรงดันไฟฟ้า
  float pHValue = phVoltage * m + C;
  // แสดงค่าแรงดันไฟฟ้าและค่า pH
  Serial.print("phVoltage = ");
  Serial.print(phVoltage);
  Serial.print(" ");
  Serial.print("pH = ");
  Serial.println(pHValue);
  // อ่านค่าอุณหภูมิจาก DS18B20
  sensors.requestTemperatures();
  // ตรวจสอบว่าเซ็นเซอร์อ่านค่าได้หรือไม่
  float temperatureC = sensors.getTempCByIndex(0);
  if (temperatureC == DEVICE_DISCONNECTED_C) {
    Serial.println("Error: Could not read temperature data");
  } else {
    Serial.print("Temperature is: ");
    Serial.print(temperatureC);
    Serial.println(" *C");
  }
  Serial.println("");
  // หน่วงเวลา 1 วินาทีก่อนเริ่มวนลูปใหม่
  delay(1000);
}
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่