ผู้เขียน หัวข้อ: งานครั้งที่ 24 [On Line] การใช้งานไลบารี่ช่วยเชื่อมต่อไวไฟ WiFiManager  (อ่าน 16287 ครั้ง)

admin

  • Administrator
  • Hero Member
  • *****
  • กระทู้: 706
    • ดูรายละเอียด
    • อีเมล์
การติดตั้งไลบารี่ช่วยเชื่อมต่อไวไฟ WiFiManager

WiFiManager  เป็นไลบรารี่ช่วยเชื่อมต่อไวไฟที่มีความสามารถสูงกว่าปกติตัวหนึ่งที่นิยมใช้กันอย่างแพร่หลาย ซึ่งมีคุณสมบัติที่ทำให้โมดูล NodeMCU ที่เคยเชื่อมต่อไวไฟตัวใดอยู่แล้วเปลี่ยนสถานที่ไปเชื่อมต่อตัวใหม่โดยปกติต้องเข้าไปแก้โค้ดโปรแกรม (ไวไฟเดิมไม่ได้เปิดแล้วป้อนไฟให้ NodeMCU ก็เช่นกัน) ไลบรารี่ WiFiManager จะจัดการเองโดยไม่ต้องเข้าไปแก้โปรแกรม โดยจะเปลี่ยนโหมดของโมดูล NodeMCU ให้เป็นเป็นแอคเซสพอยต์และเมื่อผู้ใช้งานใช้เครื่องคอมพิวเตอร์ใด ๆ เชื่อมต่อไวไฟตัวที่ NodeMCU เป็นแอคเซสพอยต์นั้นแล้ว บราวเซอร์จะเปิดหน้าต่างให้มาตั้งค่า SSID ที่ต้องการเชื่อมต่อ เมื่อผู้ใช้งานตั้งค่าเสร็จทำการบันทึกค่าแล้ว NodeMCU จะรีเซตตัวเองแล้วสตาร์ตขึ้นมาพร้อมกับทำการเชื่อมต่อกับ SSID ตัวใหม่ที่ทำการตั้งค่าไว้
 เนื่องจากโปรแกรม Arduino IDE ไม่ได้มีการติดตั้งไลบรารี่ WiFiManager มาให้ตั้งแต่เริ่มต้นจึงจำเป็นต้องมีการติดตั้งเพิ่มเติ่มเข้าไปในโปรแกรม โดยมีขั้นตอนดังนี้

1. เข้าไปที่เมนู Manage Libraries...


2. พิมพ์คำว่า wifimanager (1) ในช่องค้นหา คลิกที่รายการที่ค้นเจอ (2) ทำการเลือกเวอร์ชั่นล่าสุด (3) แล้วคลิกติดตั้ง (4)


3. ทดสอบโดยเรียกใช้โปรแกรมตัวอย่าง


วงจรที่ใช้ในการทดลอง


ตัวอย่างโปรแกรม
โค๊ด: [Select]
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
void setup()
{
    Serial.begin(115200);
    WiFiManager wifiManager;
    wifiManager.setTimeout(180);   
    if(!wifiManager.autoConnect("AutoConnectAP"))
    {
      Serial.println("Failed to connect and hit timeout");
      delay(3000);
      ESP.reset();
      delay(5000);
    }
    WiFi.printDiag(Serial);
    Serial.println();
    Serial.println("connected...OK"); 
}
void loop()
{
}
ฟังก์ชั่นเพิ่มเติม
wifiManager.resetSettings();              //ล้างค่า SSID และ Password ที่เคยบันทึกไว้
wifiManager.autoConnect();               //ใช้สร้างชื่อแอคเซสพอยต์อัตโนมัติจาก ESP + ChipID


ในการณีเชื่อมต่อได้ (ค่า SSID เป็นค่าเดิมที่เคยบันทึกไว้) ผลจะได้ดังนี้


เมื่อเปลี่ยนสถานที่หรือไวไฟตัวเดิมไม่ได้เปิด NodeMCU ที่ใช้ไลบรารี่ WiFiManager จะเข้าโหมดตั้งค่า SSID โดยเปลี่ยนโหมดตัวโมดูลเป็นแอคเซสพอยต์ (จะเข้าโหมดตอนบอร์ดเริ่มทำงานเท่านั้น) ตัวอย่างเช่น เปลี่ยนสถานที่มาที่ใหม่มีไวไฟดังนี้


เมื่อทำการป้อนไฟเลี่ยงให้กับ NodeMCU จะเป็นดังรูป จะเห็นได้ว่ามีชื่อไวไฟตัวใหม่เกิดขึ้นซื้อเป็นชื่อที่เราตั้งค่าไว้


ทำการเชื่อมต่อกับไวไฟดังกล่าว หากปกติบราวเซอร์จะถูกเปิดหน้าต่างขึ้นมาเองอัตโนมัติเพื่อให้ตั้งค่า แต่ถ้าหากนิ่งไม่มีอะไรเกิดขึ้นทั้ง ๆ ที่เชื่อมต่อได้แล้ว ให้พิมพ์ 192.168.4.1 ในบราวเซอร์ซึ่งจะปรากฏหน้าต่างดังนี้


ในกรณีที่ต้องการให้สแกนหาไวไฟให้คลิกปุ่มบน (Configulation WiFi) ผลจะได้ดังรูป


ทำการคลิกตรงชื่อไวไฟที่ต้องการให้ NodeMCU ทำการเชื่อมต่อ แล้วคลิก Save


NodeMCU จะบันทึกไวไฟ (SSID) ตัวใหม่แล้วทำการเชื่อมต่อทันที

« แก้ไขครั้งสุดท้าย: ธันวาคม 06, 2019, 11:18:39 AM โดย admin »