zoukankan      html  css  js  c++  java
  • Arduino 基于 ESP8266 配置WIFI模块

    Arduino 基于 ESP8266 配置WIFI模块

    使用ESP8266作为服务器,使用浏览器访问该服务器,从而控制LED灯

    • 选择 【文件】->【示例】->【ESP8266WIFI】->【WiFiWebServer】
    • 用Arduino新建一个文件,将刚打开的的WIFIWebServer的内容复制过去
    • 修改 ssid 和 password 为自家路由器的名称以及密码
    • 将程序上传到 ESP8266 开发板中
    • 最后就可以通过网站 [ip]/gpio/1 或 [ip]/gpio/0 控制灯开关
    # http://192.168.0.57/gpio/1
    # ip 地址在序列库中可以看到
    
    • 附上代码
    /*
     *  This sketch demonstrates how to set up a simple HTTP-like server.
     *  The server will set a GPIO pin depending on the request
     *    http://server_ip/gpio/0 will set the GPIO2 low,
     *    http://server_ip/gpio/1 will set the GPIO2 high
     *  server_ip is the IP address of the ESP8266 module, will be 
     *  printed to Serial when the module is connected.
     */
    
    #include <ESP8266WiFi.h>
    
    const char* ssid = "YUCHANJIUYE";
    const char* password = "19283746";
    
    // Create an instance of the server
    // specify the port to listen on as an argument
    WiFiServer server(80);
    
    void setup() {
      Serial.begin(115200);
      delay(10);
    
      // prepare GPIO2
      pinMode(LED_BUILTIN, OUTPUT);
      digitalWrite(LED_BUILTIN, 0);
      
      // 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.println(WiFi.localIP());
    }
    
    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 req = client.readStringUntil('
    ');
      Serial.println(req);
      client.flush();
      
      // Match the request
      int val;
      if (req.indexOf("/gpio/0") != -1)
        val = 0;
      else if (req.indexOf("/gpio/1") != -1)
        val = 1;
      else {
        Serial.println("invalid request");
        client.stop();
        return;
      }
    
      // Set GPIO2 according to the request
      digitalWrite(LED_BUILTIN, val);
      
      client.flush();
    
      // Prepare the response
      String s = "HTTP/1.1 200 OK
    Content-Type: text/html
    
    <!DOCTYPE HTML>
    <html>
    GPIO is now ";
      s += (val)?"high":"low";
      s += "</html>
    ";
    
      // Send the response to the client
      client.print(s);
      delay(1);
      Serial.println("Client disonnected");
    
      // The client will actually be disconnected 
      // when the function returns and 'client' object is detroyed
    }
    
  • 相关阅读:
    蚂蚁和木杆问题
    计算二进制中1的个数(转)
    strlen源码剖析(转)
    bashrc
    smb.conf配置文件(Centos)
    配置VNC+PuTTY+SSH Tunnel访问Linux
    标题: BASH最常见的激活模式
    KMP算法
    字符串中单词逆序
    Java中堆内存和栈内存详解
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/11584582.html
Copyright © 2011-2022 走看看