精华内容
下载资源
问答
  • 构建ESP8266网页控制

    2020-04-12 17:29:41
    本教程是一个循序渐进的指南,显示了如何构建一个独立的ESP8266 Web服务器来控制两个输出(两个LED)。 该ESP8266 NodeMCU Web Server具有移动响应能力,可以用您本地网络中的浏览器通过任何设备进行访问。 第1部分...

    本教程是一个循序渐进的指南,显示了如何构建一个独立的ESP8266 Web服务器来控制两个输出(两个LED)。 该ESP8266 NodeMCU Web Server具有移动响应能力,可以用您本地网络中的浏览器通过任何设备进行访问。

    第1部分:使用ARDUINO IDE创建Web服务器(视频)

    截图

    准备Arduino IDE
    源代码
    上传Sketch
    将sketch上传到ESP-12E
    将sketch上传到ESP-01
    原理图
    测试Web服务器
    查找ESP IP地址
    访问Web服务器
    测试Web服务器
    代码如何工作
    setup()
    loop()
    显示HTML网页

    详情参阅http://viadean.com

    展开全文
  • esp8266 http网页控制开关
  • arduino +ESP8266 网页WiFi控制

    万次阅读 热门讨论 2019-03-09 17:16:06
    1,关于连线,很简单,直接ESP8266与arduino连接,就五根线。如果没有弄好,就单独调试一下 VCC,CH_PD连5v的(貌似网上都是连3.3v,但是我连3.3没弄好),TXD-连板RXD,RXD连板TXD,GND连GND 还有我用的是mega...

    首先几个问题:

    1,关于连线,很简单,直接ESP8266与arduino连接,就五根线。如果没有弄好,就单独调试一下

    VCC,CH_PD连5v的(貌似网上都是连3.3v,但是我连3.3没弄好),TXD-连板RXD,RXD连板TXD,GND连GND

    还有我用的是mega2560,建议用,可能uno板子也会出问题

    2,下面的代码需要加载一些特定的库函数,arduino IDE才能编译运行。起码要wifi库,AJSON库,要的给我留言!!文件太大,不能分享~

    说明一下,我的IDE用的1.8.2才弄好,1.8.4报错

    3,代码上传以后,如果没什么反应,拔掉5v那个线,重新再插上去。

    4,网页代码需要的也可以找我~(自己做的话自己买个域名,买个服务器。。。。)

    首先需要自己做一个动态网页(php,能够与数据库连接,并修改),还需要一个页面呈现数据库中的内容。

    然后arduino通过wifi模块抓取页面内容,然后分析控制了。

    然后根据我的代码(有些地方不简洁,写的也不好),修改其中的内容就行。

    #include <aJSON.h>
    String inputString="";                  //存储数据库的数据
    String _comdata_wifi = "";              //存储wifi反馈的数据`  
    const char* host = "www.w97.top"; //需要访问的域名
    const String url = "/check.php";   // 需要访问的地址
    unsigned long lasttime=0;
    int state=0;  //检测sends函数有无发送成功,如果接收到数据,跳出循环
    String postRequest =(String)("GET ") + url + " HTTP/1.1\r\n" +       //GET请求的格式
        //"Content-Type: text/html;charset=utf-8\r\n" +  
        "Host: " + host + "\r\n" + 
       // "User-Agent: BuildFailureDetectorESP8266\r\n" +
        "Connection: close\r\n\r\n"; 
    void processMessage(aJsonObject *msg){        //网页上的ajson格式
      char* chufang;
      aJsonObject* chufang1 = aJson.getObjectItem(msg, "chufang");
      aJsonObject* keting1 = aJson.getObjectItem(msg, "keting");
      aJsonObject* bedroom1 = aJson.getObjectItem(msg, "bedroom");
      aJsonObject* door1 = aJson.getObjectItem(msg, "door");
      aJsonObject* chuanghu1 = aJson.getObjectItem(msg, "chuanghu");
      aJsonObject* jiashiqi1 = aJson.getObjectItem(msg, "jiashiqi");
      String chufang2=chufang1->valuestring;
      String keting2=keting1->valuestring;
      String bedroom2=bedroom1->valuestring;
      String door2=door1->valuestring;
      String chuanghu2=chuanghu1->valuestring;
      String jiashiqi2=jiashiqi1->valuestring;
      int chufang22=chufang2.toInt();
      int keting22=keting2.toInt();
      int bedroom22=bedroom2.toInt();
      int door22=door2.toInt();
      int jiashiqi22=jiashiqi2.toInt();
      int chuanghu22=chuanghu2.toInt();
      Serial.print("one:");Serial.print(chufang22);Serial.print(" ");
      Serial.print("tow:");Serial.print(keting22);Serial.print(" ");
      Serial.print("three:");Serial.print(bedroom22);Serial.print(" "); 
      Serial.print("four:");Serial.print(chuanghu22);Serial.print(" ");
      Serial.print("five:");Serial.print(jiashiqi22);Serial.print(" ");
      Serial.print("six:");Serial.print(door22);Serial.print(" ");
      if(bedroom22)digitalWrite(9,HIGH);
      else digitalWrite(9,LOW);
      if(keting22)digitalWrite(10,HIGH);
      else digitalWrite(10,LOW);
      if(chufang22)digitalWrite(11,HIGH);
      else digitalWrite(11,LOW);
      if(jiashiqi22)digitalWrite(12,HIGH);
      else digitalWrite(12,LOW);
      if(chuanghu22)digitalWrite(8,HIGH);
      else digitalWrite(8,LOW);
    }
    void setup()    
    {  
       //
       for(int i=8;i<=11;i++)pinMode(i,OUTPUT);
       Serial.begin(9600);     
       Serial1.begin(115200); 
       delay(3000);
       Serial1.println("AT+CWMODE=3");
       while(!getWifiSerialData("OK"));
       Serial1.println("AT+CWJAP=\"TYMS1\",\"wobuzhidao1601\"");//wifi名字和密码
       while(!getWifiSerialData("OK"));
       Serial1.println("AT+CIPMUX=0");
       while(!getWifiSerialData("OK"));
       Serial1.println("AT+CIPSTART=\"TCP\",\"www.w97.top\",80");
       while(!getWifiData("CONNECTED"));
       Serial1.println("AT+CIPMODE=1");
      while(!getWifiSerialData("OK"));
      Serial1.println("AT+CIPSEND");
      while(!getWifiSerialData("OK>")); 
    }
    void loop()   
    { 
      lasttime=millis();
      Serial1.println(postRequest);
      //delay(10);    
      while(millis()-lasttime<5000){      //  为sends()准备时间
        sends();                            //读取数据库数据并处理字符串修改灯的状态
        if(state==1) break;
      }
      Serial1.print("+++");//退出发送模式
      state=0;  
      delay(100);
       Serial1.println("AT+CIPSTART=\"TCP\",\"www.w97.top\",80");
       while(!getWifiData("CONNECTED"));
       Serial1.println("AT+CIPMODE=1");
      while(!getWifiSerialData("OK"));
      Serial1.println("AT+CIPSEND");
      while(!getWifiSerialData("OK>")); 
      Serial1.println(postRequest);
      delay(10);
    } 
    
    boolean getWifiSerialData(String val){       //读取wifi反馈的数据
      while (Serial1.available() > 0){
        _comdata_wifi += char(Serial1.read());   //get wifi data
        delay(4);
        _comdata_wifi.trim(); 
        //Serial.println(_comdata_wifi); 
      } 
      Serial.println(_comdata_wifi);
    
          if(_comdata_wifi.endsWith("OK")|| _comdata_wifi.endsWith(val)){
             Serial.println("+++++++++++++++");
             _comdata_wifi = String("");
             return 1;
          }else return 0;
    }
    boolean getWifiData(String val){       //读取wifi反馈的数据
      while (Serial1.available() > 0){
        _comdata_wifi += char(Serial1.read());   //get wifi data
        delay(4);
        _comdata_wifi.trim(); 
        //Serial.println(_comdata_wifi); 
      } 
      Serial.println(_comdata_wifi);
    
          if(_comdata_wifi.endsWith("OK")|| _comdata_wifi.endsWith(val)|| _comdata_wifi.endsWith("ERROR")|| _comdata_wifi.endsWith("CON")|| _comdata_wifi.endsWith("CLOSED")){
             Serial.println("+++++++++++++++");
             _comdata_wifi = String("");
             return 1;
          }else return 0;
          
    }
    void sends(){                  //读取数据库数据并处理字符串修改灯的状态
      while(Serial1.available()){
        String line = Serial1.readStringUntil('\r');
       // Serial.print(line);
        line.trim();
        inputString=line;
            int len = inputString.length()+1;    
            if(inputString.startsWith("{") && inputString.endsWith("}")){
               state=1;
               char jsonString[len];
               inputString.toCharArray(jsonString,len);
               aJsonObject *msg = aJson.parse(jsonString);
               processMessage(msg);
               aJson.deleteItem(msg);  
            }   
         }
    }
    

     

    展开全文
  • Esp8266 进阶之路32 当esp8266遇到 Html,该怎么内置网页控制设备,理清内置网页的实现过程,esp8266烧录html文件,实现无需路由器手机也可以控制esp8266。...
  • 说明:发出/gpio/1 就输出 "亮灯";...ESP8266WiFi.h> const char* ssid = "jia"; //这里输入wifi名称 const char* password = "lm654321"; //这里输入wifi密码 WiFiServer server(80);//...

    说明:发出/gpio/1   就输出 "亮灯";   /gpio/0  就输出 "灭灯" 

    #include <ESP8266WiFi.h>
    
    const char* ssid = "jia";  //这里输入wifi名称
    const char* password = "lm654321";  //这里输入wifi密码
    
    WiFiServer server(80);//开启板子的80端口
    int val=2;
    
    void setup() {
      Serial.begin(115200);
      delay(10);
    
       //接下来板子开始要连线到路由器了
      Serial.println();
      Serial.println();
      Serial.print("lianjie to ");
      Serial.println(ssid);
    
      WiFi.begin(ssid, password);//开始连线
    
      while (WiFi.status() != WL_CONNECTED) {  //如果没有连接成功,就输入"."
        delay(500);
        Serial.print(".");
      }
      Serial.println();
      Serial.println("WiFi lianxian cengong");//输入wifi连线成功
    
      server.begin();  //开启服务器
      Serial.println("Server started");//输出服务器开始启动
      Serial.println(WiFi.localIP());//输出IP
    }
    
    void loop() {
    
      WiFiClient client = server.available();//判断有无可以读取的信息
      if (client) {    //如果有
        String req = client.readStringUntil('\r');
        if (req != ""){
          Serial.println(req);}
        if (req.indexOf("/gpio/0") != -1){  //如果req中包含"/gpio/0"
          val=0;
          }
          else if (req.indexOf("/gpio/1") != -1) {  //如果req中包含"/gpio/1"
        val=1;}
        else {
          Serial.println("wuxiao qinqiu");}
            //下面执行相应的指令
        if (val == 0){
          val=2;//执行一次让val无效
          Serial.println("mie den");}
        if (val == 1){
          val=2;
          Serial.println("lian den");}
      }
    }

    连接成功返回的信息:

     

    网页发送指令:192.168.188.191/gpio/1   或    192.168.188.191/gpio/0

     

    网页每次发送指令,板子可以收到的指令如下图:

     

     注意:网页发送指令会发送两次,指令执行两次

     

    转载于:https://www.cnblogs.com/liming19680104/p/11004614.html

    展开全文
  • ESP8266+网页控制LED

    千次阅读 2020-06-07 18:40:29
    首先通过串口,当ESP8266连接WiFi成功之后会获取网页的IP地址,将该地址输入到浏览器中通过网页点击LED按键,开发板上的LED进行变化。此时LED灯是灭的,当点下网页中的LED按键,开发板上LED灯亮起来。再按一次LED...

    • 本次我们将利用NodeMCU建立网络服务。用户通过浏览器可以访问NodeMCU所建立的网页。通过该网页,用户可实现对NodeMCU的控制。

    效果演示

    首先通过串口,当ESP8266连接WiFi成功之后会获取网页的IP地址,将该地址输入到浏览器中。
    在这里插入图片描述
    通过网页点击LED按键,开发板上的LED进行变化。此时LED灯是灭的,当点下网页中的LED按键,开发板上LED灯亮起来。再按一次LED熄灭。
    在这里插入图片描述
    在这里插入图片描述

    程序

    #include <ESP8266WiFi.h>        // 本程序使用 ESP8266WiFi库
    #include <ESP8266WiFiMulti.h>   //  ESP8266WiFiMulti库
    #include <ESP8266WebServer.h>   //  ESP8266WebServer库
     
    ESP8266WiFiMulti wifiMulti;     // 建立ESP8266WiFiMulti对象,对象名称是 'wifiMulti'
     
    ESP8266WebServer esp8266_server(80);// 建立网络服务器对象,该对象用于响应HTTP请求。监听端口(80)
     
    void setup(void){
      Serial.begin(9600);   // 启动串口通讯
     
      pinMode(D4, OUTPUT); //设置内置LED引脚为输出模式以便控制LED
      
      //通过addAp函数存储  WiFi名称       WiFi密码
      wifiMulti.addAP("MEIZU", "11111111");  // 这三条语句通过调用函数addAP来记录3个不同的WiFi网络信息。
      wifiMulti.addAP("CMCC-yLaQ", "1123456"); // 这3个WiFi网络名称和密码
      wifiMulti.addAP("taichi-maker3", "13572468");
                                                    // 此处WiFi信息只是示例,请在使用时将需要连接的WiFi信息填入相应位置。
                                                    // 另外这里只存储了3个WiFi信息,您可以存储更多的WiFi信息在此处。
      Serial.println("正在连接Wifi,请稍等:");  
      int i = 0;                                 
      while (wifiMulti.run() != WL_CONNECTED) {  // 此处的wifiMulti.run()是重点。通过wifiMulti.run(),NodeMCU将会在当前
        delay(1000);                             // 环境中搜索addAP函数所存储的WiFi。如果搜到多个存储的WiFi那么NodeMCU
        Serial.print(i++); Serial.print(' ');    // 将会连接信号最强的那一个WiFi信号。
      }                                          // 一旦连接WiFI成功,wifiMulti.run()将会返回“WL_CONNECTED”。这也是
                                                 // 此处while循环判断是否跳出循环的条件。
      
      // WiFi连接成功后将通过串口监视器输出连接成功信息 
      Serial.println('\n');
      Serial.print("Connected to ");
      Serial.println(WiFi.SSID());              // 通过串口监视器输出连接的WiFi名称
      Serial.print("IP address:\t");
      Serial.println(WiFi.localIP());           // 通过串口监视器输出ESP8266-NodeMCU的IP
     
      esp8266_server.begin();                           // 启动网站服务
      esp8266_server.on("/", HTTP_GET, handleRoot);     // 设置服务器根目录即'/'的函数'handleRoot'
      esp8266_server.on("/LED", HTTP_POST, handleLED);  // 设置处理LED控制请求的函数'handleLED'
      esp8266_server.onNotFound(handleNotFound);        // 设置处理404情况的函数'handleNotFound'
     
      Serial.println("HTTP esp8266_server started");//  告知用户ESP8266网络服务功能已经启动
    }
     
    void loop(void){
      esp8266_server.handleClient();                     // 检查http服务器访问
    }
     
    /*设置服务器根目录即'/'的函数'handleRoot'
      该函数的作用是每当有客户端访问NodeMCU服务器根目录时,
      NodeMCU都会向访问设备发送 HTTP 状态 200 (Ok) 这是send函数的第一个参数。
      同时NodeMCU还会向浏览器发送HTML代码,以下示例中send函数中第三个参数,
      也就是双引号中的内容就是NodeMCU发送的HTML代码。该代码可在网页中产生LED控制按钮。 
      当用户按下按钮时,浏览器将会向NodeMCU的/LED页面发送HTTP请求,请求方式为POST。
      NodeMCU接收到此请求后将会执行handleLED函数内容*/
    void handleRoot() {       
      esp8266_server.send(200, "text/html", "<form action=\"/LED\" method=\"POST\"><input type=\"submit\" value=\"LED\"></form>");
    }
     
    //处理LED控制请求的函数'handleLED'
    void handleLED() {                          
      digitalWrite(D4,!digitalRead(D4));// 改变LED的点亮或者熄灭状态
      esp8266_server.sendHeader("Location","/");          // 跳转回页面根目录
      esp8266_server.send(303);                           // 发送Http相应代码303 跳转  
    }
     
    // 设置处理404情况的函数'handleNotFound'
    void handleNotFound(){
      esp8266_server.send(404, "text/plain", "404: Not found"); // 发送 HTTP 状态 404 (未找到页面) 并向浏览器发送文字 "404: Not found"
    }
    

    更多内容:
    ESP8266—学习进程目录索引.

    展开全文
  • [esp8266]网页控制GPIO

    2020-10-25 15:32:10
    网页控制GPIO是小黑固件最基础的一个应用,可以通过手机或者电脑的浏览器控制GPIO的状态(有电ON或者没电OFF)。 通过控制GPIO,就做了一个无线开关;可以控制LED灯,控制继电器,从而控制各种设备的开关,非常...
  • 使用Arduino和ESP8266模块通过网页控制伺服电机。 在本篇文章中,我们将实现通过网页控制伺服电机。网页将使用ESP8266模块创建,通过移动网页上的滑块,伺服电机将相应的进行移动。 将ESP8266连接到Arduino UNO...
  • esp8266实现http网页控制开关 arduino源码:https://download.csdn.net/download/ZhangDongHaibaby/15977570
  • esp8266气象站+HTML网页控制
  • ESP8266网页控制电灯(micropython)

    千次阅读 2020-01-17 17:37:35
    #此esp8266网页又链接到另一个esp8266 里边还有个温湿度传感器 --------------------------------------------------------------------------------------------------------------------------------------...
  • ESP8266局域网控制LED灯

    千次阅读 2019-12-15 14:25:09
    一、网页控制原理 Esp8266相当于作为一个web服务器,当我连接wifi后通过外部设备输入相应的IP,esp8266进行解析,将存储在8266,falsh中的网页读取并显示出来,当我点击网页上的按钮后,8266进行解析,控制灯亮。...
  • 这个月也快结束了,时间真快,我服务器知识自学依然在路途中,这几天听到热点网页配置`esp8266`连接路由器,那么我想这个不是很复杂,不过需要一些通讯协议的基础,以及对`esp8266`的`SDK`开发的熟悉,这几天撸了几...
  • 通过网页控制ESP8266开发板的引脚 首先安装ESP8266FS :通过Arduino IDE向闪存文件系统上传文件http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/spiffs/upload-files/ 然后烧录程序:...
  • 网页控制esp8266的8个GPIO引脚状态翻转
  • esp8266气象时钟+网页控制+OTA升级 可以通过电脑和手机浏览器访问:
  • esp8266气象站+HTML网页控制二 在上一版本上,新增网页界面对气象数据进行手动更新。 网页控制界面如下: 程序基于vscode platform编译 主程序代码: #include <Arduino.h> #include <ESP8266WiFi.h&...
  • esp8266气象站+HTML网页控制+OTA升级,采用platform编译
  • 完整工程文件,包含ESP8266代码,网页,图片等。ESP8266处于AP模式,是用本身闪存存储网页内容,用户通过其IP地址进入网页,实现对ESP8266引脚控制、引脚状态获取、PWM控制、点灯等功能。
  • ESP8266连接到 阿里云,实现简单的点灯测试,并创建网页控制
  • ESP8266 AP模式下的控制都是由server.on();来响应的 比如server.on("/", handleRoot);就是说当有客户端请求访问网站根目录,就调用handleRoot方法去响应请求 超链接 a标签实现的页面跳转,点击 Change LED 之后跳转...
  • 网页控制esp8266的8个GPIO引脚状态方法(三) 看了别人的控制一个引脚,不过瘾,来个一次性控制8个引脚的状态。 效果展示: 源代码: #include <ESP8266WiFi.h> #include <WiFiClient.h> #include &...
  • 本代码是基于esp8266实现通过网页控制led 的亮灭,本实验亲测可用,分享给大家
  • esp8266练手作品,通过网页控制io口的高起点。
  • esp8266 用arduino ide用网页控制led

    千次阅读 2019-05-18 22:32:31
    安装好Arduino IDE环境后,就得在它基础上配置Arduino Core For ESP8266。以window版本为例,读者可以安装以下顺序安装: 打开Arduino IDE->菜单项文件->首选项,然后会看到附加开发版管理器网址,填入...
  • // 设置处理LED控制请求的函数'handleLED' esp8266_server.onNotFound(handleNotFound); // 设置处理404情况的函数'handleNotFound' Serial.println("HTTP esp8266_server started");// 告知用户ESP8266网络服务...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 151
精华内容 60
关键字:

esp8266网页控制