การทดสอบโมดูล NodeMCU ในการเชื่อมต่อ WiFi
โมดูล NodeMCU จะใช้โมดูล ESP8266-12E เป็นหัวใจหลักในการใช้งาน ซึ่งตัว ESP8266-12E ใช้ชิพ esp8266 เป็นตัวประมวลผลอยู่ภายใน ซึ่งเมื่อนำมาประกอบเป็นตัวโมดูลเพื่อใช้งานอาจเกิจข้อบกพร่องจากการประกอบได้ เช่นไม่สามารถเชื่อมต่อกับ WiFi ได้ซึ่งอาจเกิดจากการประกอบอุปกรณ์ต่าง ๆในตัวโมดูล หน้าตาชิพ eps8266 เป็นดังรูป
(http://www.praphas.com/PhotoForum/iot/Lab-10-WiFiTest/3.png)
เมื่อประกอบเข้าเป็นโมดูล ESP8266 12E จะมีลักษณะดังรูป
(http://www.praphas.com/PhotoForum/iot/Lab-10-WiFiTest/2.png)
มีผู้ผลิตโมดูล ESP8266 12E หลายราย ซึ่งบางรายอาจผลิตออกมาไม่ได้คุณภาพทำให้เชื่อมต่อกับ WiFi ไม่ได้
(http://www.praphas.com/PhotoForum/iot/Lab-10-WiFiTest/12E-ALL.png)
ดังนั้นการทดลองครั้งนี้เป็นการทดสอบโมดูลว่าสามารถเชื่อมต่อกับ WiFi ได้หรือไม่
โปรแกรมที่ใช้ในการทดสอบ
#include <ESP8266WiFi.h> // Include ESP8266 library
const char* ssid = "Your SSID"; // SSID is set
const char* password = "Your password"; // Password is set
#define LEDpin D0
void setup()
{
Serial.begin(115200); // Enable UART
Serial.println();
Serial.print("Connecting to "); // Print title message to the serial monitor
Serial.println(ssid); // Print SSID name
pinMode(LEDpin, OUTPUT);
digitalWrite(LEDpin,HIGH); // WiFi detected indicator - active low
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); // Send password
while (WiFi.status() != WL_CONNECTED) // Check WiFi status
{
delay(200);
digitalWrite(LEDpin, LOW);
Serial.print("."); // Print dot for showing the progress status
delay(200);
digitalWrite(LEDpin, HIGH);
}
Serial.println("");
WiFi.printDiag(Serial);
Serial.println("");
Serial.println("WiFi connected"); // Print the connected message
Serial.println("IP address: "); // Print IP address
Serial.println(WiFi.localIP());
}
void loop()
{
digitalWrite(LEDpin, LOW); // WiFi connected indicator - active low
while (WiFi.status() != WL_CONNECTED) // Check WiFi status
{
digitalWrite(LEDpin, 0); // LED at D0 blink when disconnect WiFi
delay(900);
Serial.println("connection WiFi failed"); // Print error message to Serial Monitor
digitalWrite(LEDpin, 1);
delay(100);
}
}
ตัวอย่าง ต้องการเชื่อมต่อกับ WiFi ที่คอมพิวเตอร์กำลังเชื่อมต่อดังรูป
(http://www.praphas.com/PhotoForum/iot/Lab-10-WiFiTest/WiFi-List.png)
เมื่อแก้ค่า ssid (ชื่อ WiFi ที่ต้องการเชื่อมต่อ) และ password (พาสเวิร์ดของ WiFi) สำหรับตัวอย่างนี้ WiFi ไม่มีพาสเวิร์ด เมื่อแก้ค่าเสร็จแล้วทำการอัพโหลดลงโมดูล สามารถดูผลการทำงานได้จากหน้าต่าง Serial monitor ดังรูป
(http://www.praphas.com/PhotoForum/iot/Lab-10-WiFiTest/Connected.png)
ซึ่งจะเห็นว่าสามารถเชื่อมต่อกับ WiFi ได้แล้วและได้รับการแจก ip ให้กับโมดูล NodeMCU เป็นค่า 192.168.9.241 (ในขณะที่ยังเชื่อมต่อไม่ได้ LED บน NodeMCU จะกระพริบและเมื่อเชื่อมต่อได้แล้วจะติดค้าง)
https://www.youtube.com/v/DGj-AXmqbb0