Remy_Martin
(Permpol Thanapunnamas)
1
การต่อใช้งาน
ตัวอ่าน
#include <HardwareSerial.h>
String a;
void setup() {
// initialize serial:
Serial.begin(115200);
Serial2.begin(9600,SERIAL_8N1, 16, 17);
}
void loop() {
Serial.println(String("Trst => ") + Serial2.read());
delay(200);
}
ตัวส่งค่า
#include <HardwareSerial.h>
//HardwareSerial Serial2(2); //Needed since this is an ESP32
int a = 55;
void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, 16, 17);
}
void loop() {
//if (Serial2.readString()){
//if(Serial2.readString()== "Question1"){ //มีการถามคำถาม Question1 ส่งข้อมูลตัวแปร a ออกไป
//Serial.print(a);
//}
//}
Serial2.write(a);
delay(200);
}
output ที่ตัวอ่าน

รูปแบบที่ 2
ตัวรับ
#include <HardwareSerial.h>
int a;
void setup() {
// initialize serial:
Serial.begin(115200);
Serial2.begin(9600,SERIAL_8N1, 16, 17);
}
void loop() {
a = Serial2.read();
Serial.println("กำลังอ่านข้อมูล");
if (a == 123){
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่2 => ") + Serial2.read());
delay(200);
}
}
ตัวส่ง
#include <HardwareSerial.h>
//HardwareSerial Serial2(2); //Needed since this is an ESP32
int Sensor1_val1 = 123; //รหัส อ่าน
int _Sensor1_val1 = 50; // ค่าที่อ่านได้
void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, 16, 17);
}
void loop() {
Serial2.write(Sensor1_val1);
Serial2.write(_Sensor1_val1);
delay(200);
}
output จากตัวรับ

Remy_Martin
(Permpol Thanapunnamas)
4
ตัวส่งเต็ม
#include <HardwareSerial.h>
//HardwareSerial Serial2(2); //Needed since this is an ESP32
int Sensor3_val1 = 123; //รหัส อ่าน
int _Sensor3_val1 = 50; // ค่าที่อ่านได้
int Sensor3_val2 = 223; //รหัส อ่าน
int _Sensor3_val2 = 40; // ค่าที่อ่านได้
int Sensor4_val1 = 245; //รหัส อ่าน
int _Sensor4_val1 = 30; // ค่าที่อ่านได้
int Sensor4_val2 = 255; //รหัส อ่าน
int _Sensor4_val2 = 20; // ค่าที่อ่านได้
bool Read_Sensor3_val1 = false;
bool Read_Sensor3_val2 = false;
bool Read_Sensor4_val1 = false;
bool Read_Sensor4_val2 = false;
void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, 16, 17);
}
void loop() {
if(Read_Sensor3_val1 == false){
Serial2.write(Sensor3_val1);
Serial2.write(_Sensor3_val1);
Serial.println("Send_Sensor3_val1");
delay(200);
Read_Sensor3_val1 = Serial2.read();
}
if((Read_Sensor3_val2 == false) && (Read_Sensor3_val1 == true)){
Serial2.write(Sensor3_val2);
Serial2.write(_Sensor3_val2);
Serial.println("Send_Sensor3_val2");
delay(200);
Read_Sensor3_val2 = Serial2.read();
}
if((Read_Sensor4_val1 == false) && (Read_Sensor3_val2 == true)){
Serial2.write(Sensor4_val1);
Serial2.write(_Sensor4_val1);
Serial.println("Send_Sensor4_val1");
delay(200);
Read_Sensor4_val1 = Serial2.read();
}
if((Read_Sensor4_val2 == false) && (Read_Sensor4_val1 == true)){
Serial2.write(Sensor4_val2);
Serial2.write(_Sensor4_val2);
Serial.println("Send_Sensor4_val2");
delay(200);
Read_Sensor4_val2 = Serial2.read();
}
Read_Sensor3_val1 = false;
Read_Sensor3_val2 = false;
Read_Sensor4_val1 = false;
Read_Sensor4_val2 = false;
}
ตัวรับ
#include <HardwareSerial.h>
int Get_data_esp2;
bool Read_Sensor3_val1 = false;
bool Read_Sensor3_val2 = false;
bool Read_Sensor4_val1 = false;
bool Read_Sensor4_val2 = false;
int _Sensor3_val1; // ค่าที่อ่านได้
int _Sensor3_val2; // ค่าที่อ่านได้
int _Sensor4_val1; // ค่าที่อ่านได้
int _Sensor4_val2; // ค่าที่อ่านได้
void setup() {
// initialize serial:
Serial.begin(115200);
Serial2.begin(9600,SERIAL_8N1, 16, 17);
}
void loop() {
Get_data_esp2 = Serial2.read();
Serial.println(String("กำลังอ่านข้อมูล => ") + Get_data_esp2);
if (Get_data_esp2 == 123){
_Sensor3_val1 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่3 Temp");
Read_Sensor3_val1 = true;
Serial2.write(Read_Sensor3_val1);
delay(200);
}
if (Get_data_esp2 == 223){
_Sensor3_val2 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่3 Humidity");
Read_Sensor3_val2 = true;
Serial2.write(Read_Sensor3_val2);
delay(200);
}
if (Get_data_esp2 == 245){
_Sensor4_val1 = Serial2.read();
Serial.println("อ่านจากเซ็นเซอร์ตัวที่4 Temp");
Read_Sensor4_val1 = true;
Serial2.write(Read_Sensor4_val1);
delay(200);
}
if (Get_data_esp2 == 255){
_Sensor4_val2 = Serial2.read();
Serial.println("อ่านเซ็นเซอร์ตัวที่4 Humidity");
Read_Sensor4_val2 = true;
Serial2.write(Read_Sensor4_val2);
delay(200);
}
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่3 Temp => ") + _Sensor3_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่3 Humidity => ") + _Sensor3_val2);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่4 Temp => ") + _Sensor4_val1);
Serial.println(String("ค่าจากเซ็นเซอร์ตัวที่4 Humidity => ") + _Sensor4_val2);
delay(2000);
}
output

Btnr_Bsw
(Btnr Bsw)
5
พี่ครับโค๊ดของพี่ แบบนี้เลยครับที่ผมตามหา มันเป็นประโยชน์มากเลยครับ ขอบคุณมากเลยนะครับพี่
1 Likes
ถ้าตัวส่งเป็น arduino unor3 ตัวรับเป็น ESP32 ต้องต่อขา tx rx เเบบไหนครับ
NS_Yok
(Nattawut Suwanratanachai)
8
ถ้าใช้เป็น arduino uno กับ ESP32 โดยทั้งคู่ต้องเป็นทั้งตัวส่งและตัวรับ ควรต่อ tx rx แบบไหนครับ
Remy_Martin
(Permpol Thanapunnamas)
9


โค้ต URT ฝั่ง Arduino
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello eleceasy.com");
delay(1500);
}
โค้ต URT ฝั่ง ESP32
#define RX2pin 16
#define TX2pin 17
void setup() {
Serial.begin(115200);
Serial2.begin(9600, SERIAL_8N1, RX2pin, TX2pin);
}
void loop() {
Serial.println("Message Received: ");
Serial.println(Serial2.readString());
}

ในกรณีที่ arduino Serial.print temp เเละ temp1 เเล้วต้องการให้ esp32 อ่านค่า temp เเละ temp1 ต้องเเก้ไขโค๊ดส่วนไหนครับ
Remy_Martin
(Permpol Thanapunnamas)
11
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(temp);
delay(1500);
Serial.println(temp1);
delay(1500);
}
1 Likes
ครับตอนนี้ผมเหลือโค๊ดฝั่งของ esp32 เพื่อให้อ่านค่า temp เเละ temp1 จาก arduino
ถ้า esp32 อ่านค่า temp เเละ temp1 เเล้ว นำค่าของ temp เปิด ไฟหลอที่ 1 , temp1 เปิดไฟหลอดที่ 2 ต้องเเก้ไขเพิ่มเติมในส่วนของโค๊ด esp32 ยังไงครับ
Remy_Martin
(Permpol Thanapunnamas)
15
ผมยังไม่เห็นการใส่เงื่อนไขในส่วนนี้ เราเรียนพื้นฐาน การเขียนมาบ้างรึป่าวครับ
พอเรียนมาบ้างเเล้วครับ ตอนนี้ที่ผมกำลังทำอยู่คือ ถ้าต้องการนำค่า temperature ที่ esp32 อ่านได้ออกควบคุมหลอดไฟ ผมต้องเขียนโค๊ดเพิ่มในส่วน ของesp32 ยังไงครับ
Remy_Martin
(Permpol Thanapunnamas)
17
ลองใช้ที่เรียนมาใส่ดูสิครับ ว่าเป็นยังไงผมจะช่วยตรวจดูให้ ที่เห็นอยู่นี้คือโค้ตที่ยังไม่ได้ทำอะไรเลยครับ
ขอวิธีการส่งข้อมูลระหว่างบอร์ด ESP32 ไปบอร์ด ESP32-cam พร้อมโค้ดตัวอย่างหน่อยครับ
ในโค้ดจำเป็นต้องระบุรหัสที่อ่านมั้ยคะ หากต้องการต่อกับเซนเซอร์หลายๆตัวแล้วให้วัดค่าออกมาพร้อมๆกันค่ะ
Remy_Martin
(Permpol Thanapunnamas)
21
ถ้าไม่ระบุรหัสเราก็ไม่รู้สิครับว่ารับค่าของตัวไหนมา