การใช้งาน NodeMCU ESP8266 ESP-12E Module

การจะใช้ NodeMCU ได้นั้น จำเป็นต้องติดตั้ง ESP8266 Platform เพื่อ ทำการติดต่อ ระหว่าง Arduino IDE กับ NodeMCU


ลิงค์ : ขั้นตอนการติดตั้ง ESP8266 Platform



https://robotsiam.blogspot.com/2017/06/esp8266-platform-nodemcu.html



จากนั้นทดสอบการทำงานของ NodeMCU ESP8266 ESP-12E Module


โดยใช้โปรเจค 
ควบคุม การ ปิด / เปิด LED จาก เว็บเบราเซอร์ โดยใช้ NodeMcu


โปรเจคนี้ จะควมคุมผ่าน ระบบ
อินทราเน็ต ที่ใช้ WIFI หรือ วง แลน หรือใช้ เราเตอร์ เดียวกัน เท่านั้น


เราจะเชื่อมต่อ ESP8266 ESP-12E กับเราเตอร์ WiFi โดยใช้ SSID หรือ ชื่อ WiFi ที่ต้องการเชื่อมต่อ และรหัสผ่าน ของเครือข่าย

ซึ่ง ESP8266 เมื่อเชื่อมต่อกับ WiFi ของเราแล้ว จะสร้างเว็บเซิร์ฟเวอร์ ซึ่งสามารถเข้าถึงได้โดยการมองผ่าน Serial Monitor ของ Arduino IDE และ ควบคุมผ่านทาง เว็บเบราเซอร์ ของคอมพิวเตอร์ ที่เชื่อมต่อ WiFi วงเดียวกัน


อุปกรณ์ที่ใช้  



1. 
NodeMCU V2 Lua WIFI  ESP8266 ESP-12E Module

2. Micro USB Cable Wire 1m for NodeMCU

3. Breadboard 8.5CM x 5.5CM 400 holes

4. หลอดไฟ LED





ต่อวงจรตามรูป




การเขียนโปรแกรม Arduino IDE กับ NodeMCU นั้น ต้องใช้การเทียบขาดังรูปด้านล่าง เช่นเมื่อต้องการให้ D7 ของ NodeMCU ทำงานต้องใช้ คำสั่งเป็น ขา 13







โค้ด 
ควบคุม การ ปิด / เปิด LED จาก เว็บเบราเซอร์ โดยใช้ NodeMcu


ก่อนการอัพโหลดต้องแก้ไขโค้ด ตรง = "xxxxx" ให้ถูกต้องโดย


ssid = "ชื่อwifiที่ต้องการเชื่อมต่อ"

password =  "รหัสผ่าน"




แล้วจึงอัพโหลดโค้ดที่แก้ไขแล้ว เข้าไปยัง NodeMCU 


#include <ESP8266WiFi.h>
const char* ssid = "xxxxx";
const char* password = "xxxxx";
int ledPin = 13; // GPIO13
WiFiServer server(80);
void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  // Start the server
  server.begin();
  Serial.println("Server started");
  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
  // Match the request
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
// Set ledPin according to the request
//digitalWrite(ledPin, value);
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.print("Led pin is now: ");
  if(value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />");  
  client.println("</html>");
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}


.....