ข้อแตกต่างของ NodeMCU V1 V2 และ V3
V1
(หรือเวอร์ชั่นเป็นทางการก็คือ V 0.9) เป็นตัวแรกที่ออกมา
โดยใช้ Module WiFi เบอร์ ESP-12 และ USB
to Serial เบอร์ CH340

V3
ไม่ได้เป็น Official NodeMCU ซึ่งผลิตโดยบริษัท
Lolin ใช้ Module WiFi เบอร์ ESP-12E
เหมือน V2 แต่ใช้ USB to Serial เบอร์ CH340 เหมือน V1 บอร์ดมีขนาดใหญ่สุดในทั้ง
3 version คือกว้างเท่า V1 แต่ยาวกว่า
ติดตั้ง Arduino IDE ลงบน ESP8266
NodeMCU
1 . https://www.arduino.cc/en/main/software
2. file >> Preferences
2.
Addition Board Manager
URLs: ให้ใส่ http://arduino.esp8266.com/stable/package_esp8266com_index.json
3.
Tools >>
board: “………..” >> Boards Manger
3.
Type >>
contributed >> esp8266 by ESP8266 Community
4.
Instiall
>> ลอติดตั้ง
5.
ติดตั้ง เสร้จแล้ว
6.
เลือก NodeMCU 1.0(ESP-12E Module)
*** ถ้าไม่เจอ NodeMCU
1.0 (ESP-12E Module)
ให้ remove
esp8266 แล้วติดตั้ง version ใหม่
จนเสร็จ
วิธีใช้งาน Node MCU
Server เป็นการกำหนดให้
ESP8266 ทำหน้าที่เป็นเครื่องแม่ข่ายให้บริการอย่างใดอย่างหนึ่ง
โดยการเปิดพอร์ต (Listening) เพื่อรอรับการเชื่อมต่อจากเครื่องลูกข่าย
Client เป็นการกำหนดให้
ESP8266 ทำหน้าที่เป็นเครื่องลูกข่าย
โดยเชื่อมต่อไปยังเครื่องแม่ข่ายด้วยไอพีแอดเดรสและพอร์ตที่กำหนดไว้เพื่อขอใช้บริการนั้นๆ
เป็นโปรแกรม ที่ทำหน้าที่เป็น
TCP Server เพื่อรอรับ TCP
Client จาก NodeMCU และสามารถ เป็น Client ส่งข้อมูลให้ TCP Server ของ
NodeMCU
Download Program Hercules >> http://new.hwg.cz/files/download/sw/version/hercules_3-2-8.exe
วิธีใช้ Hercule
อยู่หน้า UDP Setup เพื่อดู ip ของ pc network
TCP Client = ให้ pc เป็น Client
TCP Server = ให้ pc เป็น Server
PC เป็น Server
Received data = แสดงข้อมูลที่ Client ส่งมา
Sent data = แสดงข้อมูลที่ Server ส่งไป
Port = Port ที่ Server เปิดรับอยู่ต้องตั้งให้ตรงกับ Client
Listen = เริ่มทำงาน
PC เป็น Client
Received / sent data = แสดงข้อมูลที่ Client ส่งไปและ แสดงข้อมูลที่ Server ส่งมา
Send = ข้อมูลที่ต้องการจะส่งไป ให้Server
Module ip = ip network ของ Server
Port = Port
ที่ Server เปิดรับอยู่
Connect = เริ่มการเชื่อมต่อกับ Serverฃ
ตัวอย่าง Code การใช้ TCP Client
#include#define SERVER_PORT 8000 //กำหนด Port ใช้งาน const char* ssid = "…………."; //กำหนด SSID หรือ Name wifi const char* password = "………….."; //กำหนด Password wifi WiFiServer server(SERVER_PORT); //สร้าง object server และกำหนด port void setup() { Serial.begin(115200); //เปิดใช้ Serial Serial.println(""); Serial.println(""); WiFi.begin(ssid, password); //เชื่อมต่อกับ AP while (WiFi.status() != WL_CONNECTED) //รอการเชื่อมต่อ { delay(500); Serial.print("."); } Serial.println("WiFi connected"); //แสดงข้อความเชื่อมต่อสำเร็จ Serial.println("IP address: "); Serial.println(WiFi.localIP()); //แสดงหมายเลข IP server.begin(); //เริ่มต้นทำงาน TCP Server Serial.println("Server started"); //แสดงข้อความ server เริ่มทำงาน ESP.wdtDisable(); //ปิด watch dog Timer } void loop() { WiFiClient client = server.available(); //รอรับ การเชื่อมต่อจาก Client if (client) //ตรวจเช็คว่ามี Client เชื่อมต่อเข้ามาหรือไม่ { Serial.println("new client"); //แสดงข้อความว่ามี Client เชื่อมต่อเข้ามา while(1) //วนรอบตลอด { while(client.available()) //ตรวจเช็ตว่ามี Data ส่งมาจาก Client หรือไม่ { uint8_t data =client.read(); //อ่าน Data จาก Buffer Serial.write(data); //แสดงผล Data ทาง Serial } if(server.hasClient()) //ตรวจเช็คว่ายังมี Client เชื่อมต่ออยู่หรือไม่ { return; //ถ้าไม่มีให้ออกจาก ลูป ไปเริ่มต้นรอรับ Client ใหม่ } } } }
ตัวอย่าง Code การใช้ TCP Server
#include#define SERVER_PORT 8000 //กำหนด Port ใช้งาน const char* ssid = "……………."; //กำหนด SSID หรือ Name wifi const char* password = "………...."; //กำหนด Password wifi WiFiServer server(SERVER_PORT); //สร้าง object server และกำหนด port void setup() { Serial.begin(115200); //เปิดใช้ Serial Serial.println(""); Serial.println(""); WiFi.begin(ssid, password); //เชื่อมต่อกับ AP while (WiFi.status() != WL_CONNECTED) //รอการเชื่อมต่อ { delay(500); Serial.print("."); } Serial.println("WiFi connected"); //แสดงข้อความเชื่อมต่อสำเร็จ Serial.println("IP address: "); Serial.println(WiFi.localIP()); //แสดงหมายเลข IP server.begin(); //เริ่มต้นทำงาน TCP Server Serial.println("Server started"); //แสดงข้อความ server เริ่มทำงาน ESP.wdtDisable(); //ปิด watch dog Timer } void loop() { WiFiClient client = server.available(); //รอรับ การเชื่อมต่อจาก Client if (client) //ตรวจเช็คว่ามี Client เชื่อมต่อเข้ามาหรือไม่ { Serial.println("new client"); //แสดงข้อความว่ามี Client เชื่อมต่อเข้ามา while(1) //วนรอบตลอด { while(client.available()) //ตรวจเช็ตว่ามี Data ส่งมาจาก Client หรือไม่ { uint8_t data =client.read(); //อ่าน Data จาก Buffer Serial.write(data); //แสดงผล Data ทาง Serial } if(server.hasClient()) //ตรวจเช็คว่ายังมี Client เชื่อมต่ออยู่หรือไม่ { return; //ถ้าไม่มีให้ออกจาก ลูป ไปเริ่มต้นรอรับ Client ใหม่ } } } }
CODE อ้างอิง
http://thaieasyelec.com/article-wiki/embedded-electronics-application/getting-started-with-esp8266-nodemcu-ch2.html
ไม่มีความคิดเห็น:
แสดงความคิดเห็น