งานที่ 4

 

สอนใช้งาน NodeMCU ESP8266 การสื่อสารอนุกรม Serial อ่านค่าข้อความที่ NodeMCU ส่งมาให้คอมพิวเตอร์

2 ปีที่ผ่านมา
 
โดย เจ้าของร้าน

สอนใช้งาน NodeMCU ESP8266 การสื่อสารอนุกรม Serial อ่านค่าข้อความที่ NodeMCU ส่งมาให้คอมพิวเตอร์

บทความนี้จะสอนอ่านค่าต่างๆที่ NodeMCU ESP8266 ส่งมาให้ คอมพิวเตอร์ เราสามารถ ส่งค่า Sensor ต่างๆที่ NodeMCU ESP8266 อ่านได้มาแสดงในคอมพิวเตอร์ได้ หรือ จะให้ NodeMCU ESP8266 ส่งค่าโค้ดของจุดต่างๆที่กำลังทำงาน มาแสดงในคอมพิวเตอร์เพื่อให้เราตรวจสอบการทำงานของโค้ดว่าถูกต้องหรือไม่ได้อีกด้วย

การสื่อสารระหว่างคอมพิวเตอร์กับ NodeMCU ESP8266 เราต้องกำหนดอัตราการส่งข้อมูลให้ตรงกัน ถึงจะอ่านค่าได้ ถ้ากำหนดไม่ตรงกัน โปรแกรมจะขึ้นภาษาต่างดาว

การกำหนดอัตราการส่งข้องมูล Baudrate ซึ่งโดยทั่วไปจะกำหนดความเร็วในการติดต่อดัง เช่น 
300 , 1200 , 2400 , 4800 , 9600 , 14400 , 38400 , 57600 , 115200 , 230400 , 460800 , 921600 

คำสั่งที่ใช้กำหนดอัตราการส่งข้อมูลของ Arduino จะใส่ไว้ในฟังก์ชั่น void setup() 
Serial.begin(9600); //กำหนดอัตราการส่งข้อมูลเป็น 9600

คำสั่งที่ใช้ให้ Arduino ส่งข้อความมาให้ คอมพิวเตอร์
Serial.print("I Love "); //ปริ้นคำว่า "I Love " แต่ไม่ขึ้นบันทัดใหม่ จะไม่มี In
Serial.println("My arduino");  //ปริ้นคำว่า "My Arduino" แล้วขึ้นบันทัดใหม่ เมื่อมีการพิมพ์ครั้งต่อไป

คำสั่ง ข้อความอธิบายในบรรทัดนั้น //
// คือ คำสั่งที่ใช้เขียนอธิบายข้อความใน 1 บรรทัด

ตัวอย่าง คำสั่ง ข้อความอธิบาย //
digitalWrite(led1, HIGH); // ไฟ LED 1 ติด
ข้อความหลัง // โปรแกรมจะไม่ทำงานใส่ส่วนนี้ จะเป็นสีเทา จะถือว่าเป็นคำอธิบาย

คำสั่ง ข้อความอธิบาย /* ข้อความ */
/* คือ คำสั่งที่ใช้เปิดเขียนอธิบาย สามารถเขียนข้อความได้หลายบรรทัด
ข้อความ คือ ข้อความที่ต้องการเขียนอธิบายโค้ด
*/ 
คือ คำสั่งปิดเขียนอธิบาย

ตัวอย่าง คำสั่ง ข้อความอธิบาย /* ข้อความ */
/*ไฟ LED 1 ติด
NodeMCU ส่งค่าในตัว แปล val ให้ arduino
*/
ข้อความที่อยู่ระหว่าง /* .... */ โปรแกรมจะไม่ทำงานในส่วนนี้ จะถือว่าเป็นคำอธิบาย

อุปกรณ์ที่ต้องใช้ใน บทความ สอนใช้งาน NodeMCU ESP8266 การสื่อสารอนุกรม Serial อ่านค่าข้อความที่ NodeMCU ส่งมาให้คอมพิวเตอร์
วิธีการต่ออุปกรณ์  บทความ สอนใช้งาน NodeMCU ESP8266 การสื่อสารอนุกรม Serial อ่านค่าข้อความที่ NodeMCU ส่งมาให้คอมพิวเตอร์

NodeMCU ESP8266 -> หลอดไฟ LED

  • ขา D0 -> LED1



ให้ต่ออุปกรณ์ตามรูปข้างบน แล้ว อัพโหลด โค้ดตัวอย่างด้านล่างลงบอร์ด NodeMCU ESP8266

int led1 = D0; // กำหนดขาใช้งาน
int val = 1;
void setup()
{
pinMode(led1, OUTPUT); // กำหนดขาทำหน้าที่ให้ขา D0 เป็น OUTPUT
Serial.begin(9600);
Serial.println("My arduino.net");
}
void loop()
{
digitalWrite(led1, HIGH); // ไฟ LED 1 ติด
Serial.print(val); // NodeMCU ส่งค่าในตัว แปล val ให้ arduino
Serial.print(" ON "); // NodeMCU ส่งคำว่า " ON "
Serial.println("LED"); // NodeMCU ส่งคำว่า "LED"
delay(2000); // ดีเลย์ 2000 มิลลิวินาที
digitalWrite(led1, LOW); // ไฟ LED 1 ดับ
Serial.print("OFF "); // NodeMCU ส่งคำว่า "OFF "
Serial.println("LED"); // NodeMCU ส่งคำว่า "LED"
delay(2000); // ดีเลย์ 2000 มิลลิวินาที
}
view rawgistfile1.txt hosted with ❤ by GitHub


เลือกรุ่นบอร์ด NodeMCU ESP8266 ที่จะอัพโหลด




เลือก Port ที่บอร์ด NodeMCU ESP8266 เชื่อมต่อ แล้วกดอัพโหลดโค้ด




ถ้าอัพโหลดสำเร็จ จะขึ้นตามรูปด้างล่าง




ให้เปิด Serial Monitor ขึ้นมาแล้วกำหนดอัตราการส่งข้อมูลให้ตรงกับโปรแกรมที่อัพโหลดลง NodeMCU ESP8266




ในคอมพิวเตอร์กำหนดอัตราการส่งข้อมูลเป็น 9600




จะเห็นว่า NodeMCU ESP8266 จะส่งคำว่า 1 ON LED และ OFF LED มาให้คอมพิวเตอร์
เป็นแบบข้อความ ในฟันหนู   " "  
Serial.println("LED");
ถ้าเราอยากส่งค่า Sensor ต่างๆที่เก็บไว้ในตัวแปล ให้เราใส่ค่าตัวแปรนั้นในวงเล็บได้เลย ในตัวอย่างจะส่งค่า 1 ในตัวแปล val
Serial.print(val);




บอร์ด NodeMCU ESP8266 ก็จะส่งสัญญาณไฟควบคุมหลอดไฟ LED และส่งข้อความเข้าคอมพิวเตอร์ตามรูปด้านล่าง


ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ESP8266 ควบคุมเว็ป(NodeMCU ESP8266 เชื่อมต่อ DHT11 เซ็นเซอร์วัดอุณหภูมิและความชื้น แสดงค่าผ่าน wifi web server)