ข้ามไปที่เนื้อหาหลัก

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



NodeMCU V2  เป็นบอร์ดที่ใช้ ESP8266 เป็น CPU สำหรับประมวลผลโปรแกรมต่างๆ มีข้อดีกว่า Arduino ตรงที่ตัวมันมีขนาดเล็กกว่า มีพื้นที่เขียนโปรแกรมลงไปมากกว่า และสามารถเชื่อมต่อกับ WiFi ได้ บนบอร์ดรุ่นนี้ใช้ ESP8266 12e มีพื้นที่หน่วยความจำรอมสูงถึง 4MB เพียงพอสำหรับการเขียนโปรแกรมขนาดใหญ่ อีกทั้งภายในยังเป็น ARM ขนาดย่อมๆ ใช้ความถี่สูงถึง 40MHz ทำให้สามารถประมวลผลโค้ดโปรแกรมได้อย่างรวดเร็ว

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


ลิงค์ : ขั้นตอนการติดตั้ง แพลตฟอร์ม ESP8266


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




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



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


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


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

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


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



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

2. Micro USB Cable Wire 1m for NodeMCU

3. Breadboard 8.5CM x 5.5CM 400 holes

4. หลอดไฟ LED





ต่ออุปกรณ์ตามรูป



ให้ตรวจสอบการติดตั้งไดร์เวอร์ ของ NodeMCU V2 



โดย 
คลิกขวา Computet -> Properties






คลิกที่ Device Manager




ที่ Ports (COM & LPT) จะพบ ไดร์เวอร์ ของ NodeMCU V2 ในตัวอย่างเป็น "COM12"


(ถ้าไม่พบให้ทำการติดตั้ง
ไดร์เวอร์ก่อน)





ต่อ LED เข้าที่ขา D5 และ GND ตามรูป






การใช้งาน Digital/Input ซึ่งการใช้งาน Digital I/O ของ ESP8266 นั้น สามารถใช้งานคำสั่ง digitalWrite, digitalRead ได้เช่นเดียวกับการใช้งาน Digital I/O ของ Arduino โดยกำหนดหมายเลขของ Pin เช่นตัวอย่าง Pin ที่  14 หรือจะกำหนดชื่อ Pin โดยอ้างตามชื่อ Pin บนบอร์ด NodeMCU  V2 เป็น D5 ก็ได้เช่นกัน






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



#include <ESP8266WiFi.h>
const char* ssid = "xxxxx";
const char* password = "xxxxx";
int ledPin = 14; // D5
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("");
}



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


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

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




เลือก Port ในตัวอย่างเป็น "COM12"





เลือก Board : NodeMCU 1.0 (ESP-12E Module)





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



รอจนกระทั่ง Done uploading.




ไปที่ Serial Monitor



ตั้งค่า baud rate เป็น 115200 และปรับช่องในรูปให้เป็น ฺBoth NL & CR



 

ปิดลงไป Serial Monitor แล้วจึงเปิดขึ้นมาใหม่ จะแสดง ไอพี ของ  NodeMCU V2 ในตัวอย่างเป็น 192.168.1.38 (นำ ไอพี ที่ได้นี้ ไปใช้งานต่อไป)






ทดสอบโดย เว็บเบราเซอร์ (web browser)


เริ่มด้วย เปิด เว็บเบราเซอร์ (web browser) ขึ้นมา

พิมพ์ http://192.168.1.38
หรือ 192.168.1.38



ทดลองคลิกที่ปุ่ม Turn On 
ไฟ LED จะติด (ถ้าไฟไม่ติดให้ทดลองกลับขั้ว LED)



หรือ 
คลิกที่ปุ่ม Turn Off  ไฟ LED จะดับ


โพสต์ยอดนิยมจากบล็อกนี้

การใช้งาน IR Infrared Obstacle Avoidance Sensor Module

โมดูลเซ็นเซอร์แสงสำหรับตรวจจับวัตถุกีดขวาง   IR Infrared Obstacle Avoidance Sensor Module โมดูลเซ็นเซอร์แสงสำหรับตรวจจับวัตถุกีดขวาง    IR Infrared Obstacle Avoidance Sensor Module โดยโมดูลนี้ จะมีตัวรับและตัวส่ง infrared ในตัว ตัวสัญญาณ(สีขาว) infrared จะส่งสัญญาณออกมา และเมื่อมีวัตถุมาบัง คลื่นสัญญาณ infrared  ที่ถูกสั่งออกมาจะสะท้องกลับไปเข้าตัวรับสัญญาณ (สีดำ) สามารถนำมาใช้ตรวจจับวัตถุที่อยู่ตรงหน้าได้ และสามารถปรับความไว ระยะการตรวจจับ ใกล้หรือไกลได้ ภายตัวเซ็นเซอร์แบบนี้จะมีตัวส่ง Emitter และ ตัวรับ Receiver ติดตั้งภายในตัวเดียวกัน ทำให้ไม่จำเป็นต้องเดินสายไฟทั้งสองฝั่ง เหมือนแบบ Opposed Mode ทำให้การติดตั้งใช้งานได้ง่ายกว่า แต่อย่างไรก็ตามจำเป็นต้องติดตั้งตัวแผ่นสะท้อนหรือ Reflector ไว้ตรงข้ามกับตัวเซ็นเซอร์เอง โดยโฟโต้เซ็นเซอร์แบบที่ใช้แผ่นสะท้อนแบบนี้จะเหมาะสำหรับชิ้นงานที่มีลักษณะทึบแสงไม่เป็นมันวาว เนื่องจากอาจทำให้ตัวเซ็นเซอร์เข้าใจผิดว่าเป็นตัวแผ่นสะท้อน และ ทำให้ทำงานผิดพลาดได้ เซ็นเซอร์แบบนี้จะมีช่วงในการทำงาน หรือ ระยะในการตรวจจับจะได้ใกล้กว่าแบบ O

การติดตั้ง Library ของ DHT Sensor DHT11 , DHT21 , DHT22

การติดตั้ง Library ของ DHT Sensor ไลบรารี DHT ใช้สำหรับในการให้เซ็นเซอร์ DHT  อ่านอุณหภูมิและความชื้นด้วย  Arduino หรือ ESP8266 ได้ คลิกที่นี่เพื่อดาวน์โหลดไลบรารี ของเซ็นเซอร์ DHT https://github.com/adafruit/DHT-sensor-library เปิดโปรแกรม Arduino IDE  ไปที่ Skecth -> Include Library -> Add .ZIP Library... ไปที่ ไลบรารี DHT-sensor-library ที่เรา ดาวน์โหลด มา ตรวจสอบที่ Skecth -> Include Library  จะพบ ไลบรารี DHT sensor library เพิ่มเข้ามาใน Arduino IDE ของเรา ไปที่ Skecth -> Include Library -> Manage Libraries... ไปที่ช่องค้นหา พิมพ์ DHT -> Enter (เพื่อค้นหา DHT sensor library ) เมื่อพบ DHT sensor library แล้ว ให้คลิก More info คลิกที่ Select Vers.. ในตัวอย่าง เลือก Version 1.2.3 คลิก Install คลิก Close เพิ่ม #include <DHT.h> ไปที่ส่วนบนสุดของโค้ด #include <DHT.h> void setup() {   // put your setup code here, to run once: } void loop() {   // put your main

ESP32 #2: การติดตั้ง Arduino core for ESP32 WiFi chip

ในบทความนี้จะเป็นการแนะนำการติดตั้งโปรแกรม Arduino IDE ตั้งแต่ต้น ไปจนถึงการติดตั้งชุดพัฒนา Arduino core for ESP32 WiFi chip และ การตรวจสอบว่าติดตั้งสำเร็จหรือไม่ “Arduino” แต่เดิมเป็นแพลตฟอร์มที่ใช้ในการพัฒนาเฟิร์มแวร์ให้กับบอร์ด Arudino เท่านั้น แต่ภายหลังกลุ่มผู้พัฒนาโปรแกรม Arduino IDE ได้เริ่มรองรับการติดตั้งชุดพัฒนาเฟิร์มแวร์ให้กับบอร์ดอื่น ๆ ด้วย ทำให้บอร์ดอื่น ๆ ที่รองรับการเขียนโปรแกรมด้วยภาษา C/C++ สามารถเข้ามาใช้โปรแกรม Arduino IDE ในการพัฒนาได้ นอกจากข้อดีของโปรแกรม Arduino IDE แล้ว ชุดไลบารี่ต่าง ๆ ที่ทำมารองรับกับแพลตฟอร์ม Arduino ก็จะสามารถนำมาใช้งานกับบอร์ดอื่น ๆ ได้ด้วย การจะใช้ Arduino core for ESP32 กับ Arduino IDE ได้นั้น มีขั้นตอนดังนี้ คือ 1. ติดตั้งโปรแกรม Arduino (IDE) ลิงค์ดาวโหลด Arduino (IDE)  https://www.arduino.cc/en/Main/Software 2. ติดตั้ง แพลตฟอร์ม ESP32 ในการเริ่มต้นเราจะต้องอัปเดตผู้จัดการบอร์ดด้วย URL ที่กำหนดเอง เปิด Arduino IDE และไปที่ File > Preferences คัดลอก URL ด้านล่างลงใน Additional Board Manager URLs: แล้ว คลิก