Phong_new
(Phong_new)
1
คือ ผมต้องการให้ ESP32 Node MCU รับค่าจาก Sensor วัดเสียง ผ่านทาง RS232 แล้วนำค่าไปแสดงที่จออีกที่ครับ
สิ่งที่ผมเจอคือ ไม่ได้ค่าเลยครับ
เลยสงสัยว่า ต้องใช้ตัวแปลง เพิ่มหรือป่าวครับ
#include <HardwareSerial.h>
int Get_data_esp2;
bool Read_Sensor2_val1 = false;
bool Read_Sensor3_val1 = false;
bool Read_Sensor4_val1 = false;
bool Read_Sensor5_val1 = false;
int _Sensor2_val1; // ค่าที่อ่านได้
int _Sensor3_val1; // ค่าที่อ่านได้
int _Sensor4_val1; // ค่าที่อ่านได้
int _Sensor5_val1; // ค่าที่อ่านได้
void setup() {
// initialize serial:
Serial.begin(115200);
Serial2.begin(115200,SERIAL_8N1, 16, 17);
}
void loop() {
Get_data_esp2 = Serial2.read();
Serial.println(String("กำลังอ่านข้อมูล => ") + Get_data_esp2);
if (Get_data_esp2 == 1){
_Sensor3_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่2");
Read_Sensor2_val1 = true;
delay(200);
}
if (Get_data_esp2 == -1){
_Sensor3_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่3");
Read_Sensor3_val1 = true;
delay(200);
}
if (Get_data_esp2 == 0){
_Sensor4_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่4");
Read_Sensor4_val1 = true;
delay(200);
}
if (Get_data_esp2 == 255){
_Sensor5_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่5");
Read_Sensor5_val1 = true;
delay(200);
}
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่2 => ") + _Sensor2_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่3 => ") + _Sensor3_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่4 => ") + _Sensor4_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่3 => ") + _Sensor5_val1);
delay(2000);
}
Remy_Martin
(Permpol Thanapunnamas)
2
เหมือนโค้ตจะไม่ครบ กับภาพ ลงรายละเอียดใหม่หน่อยครับ
Phong_new
(Phong_new)
3
ครับผม ต้องขออภัยด้วยครับ
Phong_new
(Phong_new)
4
ผมแก้ไข รายละเอียดcode ใหม่แล้วครับ และได้ลงรูปที่ wiring sensor กับ esp32 Node MCU เพิ่มครับ
1 Likes
Maokee
(Maokeeลูกแมวเหมียว)
5
จากโค้ดเหมือนจะติดตอนส่งค่าออกครับ ไม่มั่นใจ ลองรันโค้ดนี้ดูได้ไหมครับ
#include <HardwareSerial.h>
int Get_data_esp2;
bool Read_Sensor2_val1 = false;
bool Read_Sensor3_val1 = false;
bool Read_Sensor4_val1 = false;
bool Read_Sensor5_val1 = false;
int _Sensor2_val1; // ค่าที่อ่านได้
int _Sensor3_val1; // ค่าที่อ่านได้
int _Sensor4_val1; // ค่าที่อ่านได้
int _Sensor5_val1; // ค่าที่อ่านได้
void setup() {
// initialize serial:
Serial.begin(115200);
Serial2.begin(115200,SERIAL_8N1, 16, 17);
}
void loop() {
// Read and process all available bytes from Serial2 buffer
while (Serial2.available()) {
Get_data_esp2 = Serial2.read();
Serial.println(String("กำลังอ่านข้อมูล => ") + Get_data_esp2);
if (Get_data_esp2 == 1){
_Sensor2_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่2");
Read_Sensor2_val1 = true;
} else if (Get_data_esp2 == -1){
_Sensor3_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่3");
Read_Sensor3_val1 = true;
} else if (Get_data_esp2 == 0){
_Sensor4_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่4");
Read_Sensor4_val1 = true;
} else if (Get_data_esp2 == 255){
_Sensor5_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่5");
Read_Sensor5_val1 = true;
}
}
// Print sensor values
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่2 => ") + _Sensor2_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่3 => ") + _Sensor3_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่4 => ") + _Sensor4_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่5 => ") + _Sensor5_val1);
delay(2000);
}
Phong_new
(Phong_new)
6
จะลองนำ code ไป run ดูครับ ขอบคุณครับ
Phong_new
(Phong_new)
7
จาก code ที่ลองนำไป run ดู เหมือนจะไม่ได้ค่าจาก Serial2.available() ใน Loop While ครับ
หรือจะต้องหาตัวแปลง ผิดประเภทครับ
Maokee
(Maokeeลูกแมวเหมียว)
8
ผมว่าน่าจะเป็นที่ต่อขาสัญญาณ sensor กับ บอร์ดหรือเปล่า I2C, SPI, UART หรือ ลองเสียบเเค่ sensor ตัวเดียว เเล้วลอง print ค่าออกมาดูก่อนก็ได้ครับ อาจจะลองไล่ debug ทีละจุด