กิจกรรมที่ 3
การสื่อสารอนุกรม 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
*/
ข้อความที่อยู่ระหว่าง /* .... */ โปรแกรมจะไม่ทำงานในส่วนนี้ จะถือว่าเป็นคำอธิบาย
อุปกรณ์ที่ใช้
1. บอร์ดทดลอง Wifi NodeMCU V2 CP2102 LUA based ESP8266-12F/N
2. สาย Micro USB Type B to USB 2.0 Type A ยาว 1 เมตร
3. บอร์ดทดลอง Breadboard 830 Point MB-102
4. Resistor ตัวต้านทาน 330 Ohm 1/4W Metal film 1% จำนวน 5 ชิ้น
5. สายไฟจัมเปอร์ ผู้-ผู้ ยาว 20cm. จำนวน 6 เส้น
6. LED ขนาด 5mm สีแดง จำนวน 5 ดวง
ขั้นตอนการปฏิบัติ
NodeMCU ESP8266 -> หลอดไฟ LED

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

เลือกรุ่นบอร์ด 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 และส่งข้อความเข้าคอมพิวเตอร์ตามรูปด้านล่าง
