การส่งข้อมูลหากันระหว่าง Arduino to Nodemuc Esp8266 โดยผ่าน Serial

การออกแบบของเราจะพัฒนาให้มีการถามตอบ ให้มันคุยกันนั้นเอง เพื่อให้ได้ข้อมูลที่ถูกต้องครับ

  • Nodemcu : ฉันถามเธอ (ตัวแปรที่ 1 คือค่าอะไรส่งค่ามาน่ะ) ถ้าเธอไม่ตอบฉันจะถามเธอซ้ำๆ จนกว่าเธอจะตอบ
  • Arduino : ส่งตัวแปรให้ Nodemcu

พี่จะยกตัวอย่าง การส่งค่าแบบค่าตายตัว ให้น้องได้ไปพัฒนากันต่อน่ะครับ

ตัวอย่างการต่อวงจร 

 

Arduino Nodemcu Esp8266
Pin 10 Pin D6
Pin 11 Pin D5

หากต้องการสื่อสาร ระหว่าง uno กับ nodemcu ด้วย serial

การต่อ tx , rx จาก uno ไป node mcu  ต้องต่อผ่าน Logic Level Converter ก่อนครับ

เพราะ tx , rx ของ uno ทำงานที่ 5v แต่   nocd MCU  tx,rx ทำงานที่ 3.3v

UNO                                                                NodeMcu
Tx                – Logic level convert  –>     rx
rx                <—                         —      tx

Code ตัวอย่างการส่งค่า ฝั่ง Arduino ส่งค่า ไปยัง Nodemcu

int a = 13;

int b = 25;

#include <SoftwareSerial.h>

SoftwareSerial chat(10, 11); // RX, TX

int i;

void setup()  {

Serial.begin(9600);

chat.begin(4800);

}

 

void loop() {

if (chat.readString()){

// chat.print(1);

if(chat.readString()== “Question1”){ //มีการถามคำถาม Question1 ส่งข้อมูลตัวแปร a ออกไป

chat.print(a);

}

if(chat.readString()== “Question2”){ //มีการถามคำถาม Question2 ส่งข้อมูลตัวแปร b ออกไป

chat.print(b);

}

Serial.print(“Send = “);

Serial.println(i);

}

i++;

delay(1000);

 

}

 Code ตัวอย่างการส่งค่า ฝั่ง Arduino ส่งค่า ไปยัง Nodemcu

#include <SoftwareSerial.h>

SoftwareSerial chat(D5, D6); // RX, TX

String a;

void setup() {

Serial.begin(9600);

chat.begin(4800);

 

delay(10);

}

void loop() {

Serial.println(“Please wait Serial..”);

while (a == “”) {

chat.print(“Question1”); // ส่งหัวข้อคำถาม ว่า Question1 ไปยัง Arduino

a = chat.readString();  // อ่าน Serial และนำไปเก็บในตัวแปร A

Serial.print(a);

delay(100);

Serial.print(“.”);

 

}

}

เท่านี้น้องก็จะได้รูปแบบการส่งข้อมูลระหว่าง Arduino และ Nodecmu esp8266 เพิ่มขึ้น สามารถนำไปพัฒนาต่อยอด ได้แล้วครับ ต่อไปอยากให้ Nodecmu รับ Sensor Analog ได้ 16 ตัวก็ไม่เป็นปัญหาอีกต่อไปแล้วครับ เราใช้ Arduino Mega 2560 ต่อ กับ Nodemcu ได้เลย