ESP8266 ควบคุม i/o ผ่าน web (Access point)

16 Jul 2016

Share to:

ในบทความนี้ผมจะอธิบายถึงวิธีการทําให้ ESP8266 เป็น Access point ให้อุปกรณ์อุปกรณ์อื่นๆ ที่เชื่อมต่อ wifi ได้ เช่น computer, smart phone ฯลฯ มาเชื่อมต่อกับ SEP8266 แล้วควบคุม i/o ปิด/เปิด LED ผ่านเว็บ ด้วยวิธีส่งข้อมูลผ่าน HTTP_GET เช่น

อุปกรณ์ที่ต้องใช้คือ

Source Code ตัวอย่าง

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/*-- Set SSID, Password and IP --*/
const char *ssid = "test-esp8266"; //config ssid
const char *password = "12345678"; //config password
const byte wifi_ip[4] = {192, 168, 1, 2}; //config ipaddress of access point
const byte wifi_subnet[4] = {255, 255, 255, 0}; //config subnet mask of access point
const byte wifi_gateway[4] = {192, 168, 1, 1}; //config gateway of access point

/*-- Create server port 80 --*/
ESP8266WebServer server(80);

/*-- http://ip_address/ --*/
void root() {
  server.send(200, "text/html", "<h1>Hello World :)</h1><br/>");
}

/*-- http://ip_address/led --*/
void led(){
  if(server.arg("set")=="1"){
    digitalWrite(BUILTIN_LED, LOW); // LED ON
    server.send(200, "text/html", "<h1>LED: ON</h1><br/>");
  }else if(server.arg("set")=="0"){
    digitalWrite(BUILTIN_LED, HIGH); // LED OFF
    server.send(200, "text/html", "<h1>LED: OFF</h1><br/>");
  }
}

void setup() {
  /*-- Initial pin output --*/
  pinMode(BUILTIN_LED, OUTPUT);


  /*-- Config wifi ---*/
  WiFi.softAP(ssid, password);
  WiFi.softAPConfig(
    IPAddress(wifi_ip[0], wifi_ip[1], wifi_ip[2], wifi_ip[3]),
    IPAddress(wifi_gateway[0], wifi_gateway[1], wifi_gateway[2], wifi_gateway[3]),
    IPAddress(wifi_subnet[0], wifi_subnet[1], wifi_subnet[2], wifi_subnet[3])
  );

  /*-- Handle url request --*/
  server.on("/", root); // http://ip_address/
  server.on("/led", HTTP_GET, led); // http://ip_address/led

  /*-- Server start --*/
  server.begin();
}

void loop() {
  server.handleClient();
}

download source code จาก Source code ตัวอย่าง esp8266 จะทำงานเป็น Access point โดยมีรายละเอียดดังนี้

  • ssid : test-esp8266
  • password : 123456789
  • ip address : 192.168.1.2
  • subnet mask : 255.255.255.0
  • gateway : 192.168.1.1

สามารถเปลี่ยนได้ตรงบรรทัดที่ 6-10 ถ้าไม่ต้องการใส่ password สามารถแก้ตรงบรรทัดที่ 37 โดยลบพารามิเตอร์ password ออก function root จะทำงานเมื่อเรียก http://192.168.1.2/ โดยใน function นี้ผมเขียนให้แสดงคำว่า Hello World function led จะทำงานเมื่อเรียก http://192.168.1.2/led โดยใน function นี้ ผมเขียนให้รับค่าจาก HTTP_GET มาเพื่อควบคุมการ ปิด-เปิด LED  ตัวอย่างการเรียกคือ http://192.168.1.2/led?set=1 มีข้อสงสัยตรงไหน หรือผิดพลาดอะไรก็ comment ได้เลยนะครับ :) ดูวีดีโอตัวอย่าง

Suggestion blogs

วิธีใช้ nano Command Text Editer

nano เป็นคําสั่งที่ใช้แก้ไข Text File คล้ายๆกับ notepad ใน Windows รูปแบบการใช้งานก็มีดังนี้nano [FILE]...[FILE]... คือ ชื่อของ Text file ที่ต้องการจะ แก้ไข(ถ้าไฟล์นั้นมีอยู่แล้ว จะเปิดไฟล์นั้นขึ้นมาแก้ไข แต่ถ้าไม่พบไฟล์ จะสร้างไฟล์ขึ้นมาใหม่)Imageคําสั่ง nano พื้นฐานบันทึกไฟล์ Cltr + Oการ Copy ข้อความทั้งบรรทัด Alt + ^การ Cut ข้อความทั้งบรรทัด Cltr + Kการ Paste บรรทัดที่ Copy มา Cltr + Uการค้นหาคำ Cltr + Wการค้นหาคำ Alt + Wการเลือกข้อความ Cltr + Shift + 6 แล้ว เลื่อน Cursor ไปซ้ายขวาจนได้เนื้อหาที่ต้อการการ Copy ข้อความที่เลือก Alt + Shift + 6การ Cut ข้อความที่เลือก Cltr + Kออกจากโปรแกรม Cltr + x

PWM คืออะไร

PWM ย่อมจาก Pulse Width Modulation คือการนําสัญญาณสามเหลี่ยม และสัญญาณที่ต้องการปรับความกว้างของพัลซ์มาเปรียบเทียบกัน ตัวย่างเช่น ถ้านําสัญญาณสามเหลี่ยมมาเปรียบเทียบกับสัญญานไฟฟ้ากระแสตรง จะได้ความกว่างของพัลซ์คงที่ และความกว้างของพัลซ์นั้นจะขึ้นอยู่กับแอมพลิจูดของสัญญาณไฟฟ้ากระแสตรงดังรูป

Flutter EP.1 ทําความรู้จักกับ Flutter

สวัสดีครับ วันนี้เราจะมาเริ่มต้นทําความรู้จักกับ Flutter กันนะครับ สําหรับบทความนี้เป็น EP.1 จะมีเนื้อหาเกี่ยวกับ Flutter คืออะไร, การ Install Flutter และการเริ่มต้น Project แรก (Getting Start)


Copyright © 2019 - 2024 thiti.dev |  v1.19.0 |  Privacy policy |  status | 

            วงแหวนเว็บ