pHG-2091-pH Controller

มาทดสอบ pHG-2091 กันครับ
ในโครงการนี้จะอาศัยบอร์ด Mini-LoRa ที่มี RS485  เชื่อมต่อกับเครื่อง  pHG-2091  pH/ORP Controller
สำหรับการเชื่อมต่อ RS485 เราจะมีการเชื่อมต่อ 2 แบบ  โดยเราจะใช้วิธีที่  1 ก่อนตามโค้ดด้านล่าง

#include <SoftwareSerial.h>  // https://github.com/PaulStoffregen/SoftwareSerial
#define RX        22    //Serial Receive pin 16
#define TX        23    //Serial Transmit pin 17
#define RTS_LED    25    //LED
#define RS485Transmit    HIGH
#define RS485Receive     LOW
float temp,pH ;
SoftwareSerial RS485Serial(RX, TX);
void setup() {
   pinMode(RTS_LED, OUTPUT);
   Serial.begin(115200);
   RS485Serial.begin(9600);
   delay(1000);
}
void loop() {
   digitalWrite(RTS_LED, RS485Transmit);     // init Transmit
   byte RS485_request[8] = {0x01, 0x03, 0x26, 0x00, 0x00, 0x04, 0x4F, 0x41}; //the one commonly seen online
   //to find out what I am sending
   for( byte a=0; a<8; a++ ) {
     Serial.print(RS485_request[a], HEX);
  }
   Serial.println();
   RS485Serial.write(RS485_request, sizeof(RS485_request));
   RS485Serial.flush();
   digitalWrite(RTS_LED, RS485Receive);      // Init Receive
   byte RS485_received[13];
   RS485Serial.readBytes(RS485_received, 13);
   Serial.print("Result : ");
   for( byte i=0; i<13; i++ ) {
   Serial.print(RS485_received[i], HEX);
   Serial.print(" ");
   }
   Serial.println();
   Serial.print("Data 7 :  ");
   Serial.println(RS485_received[7],DEC);
   temp = RS485_received[5]/10+RS485_received[6]/10;
   pH = RS485_received[7]/70+RS485_received[8]/70+RS485_received[9]/70+RS485_received[10]/70;
   Serial.print("Temp : ");Serial.println(temp,2);
   Serial.print("pH   : ");Serial.println(pH,2);
   //Serial.print("Digit 12 ");
   //Serial.println(RS485_received[12]);
   //Serial.print(" something");
   Serial.println();
   delay(2000);
}

สำหรับผลลัพธ์ที่ได้นั้น  ขณะนี้เราใช้การสูตรการแปลงค่าโดยประมาณไปก่อน  แต่อย่างน้อย คือ เราสามารถอ่านข้อมูลออกมาได้
บรรทัดสำคัญคือ
byte RS485_request[8] = {0x01, 0x03, 0x26, 0x00, 0x00, 0x04, 0x4F, 0x41}; //the one commonly seen online
โดยที่
0x01 คือ  ID ของ Slave
0x03 คือ Function code
สำหรับผลลัพธ์ที่ได้  ต้องรอการยืนยันสูตรการแปลงจากผู้ผลิตยืนยันมาอีกรอบ
00:53:57.100 -> 13260044F41
00:53:58.095 -> Result : 1 3 8 CD CC CC 41 14 AE EF 40 50 0
00:53:58.095 -> Data 7 : 20
00:53:58.095 -> Temp : 26.00
00:53:58.095 -> pH : 10.00
00:53:58.095 ->
00:54:00.083 -> 13260044F41
00:54:01.077 -> Result : 1 3 8 CD CC CC 41 14 AE EF 40 50 0
00:54:01.123 -> Data 7 : 20
00:54:01.123 -> Temp : 26.00
00:54:01.123 -> pH : 10.00