鱼C论坛

 找回密码
 立即注册
查看: 2140|回复: 0

[其他分类] ESP8266:实现对NodeMCU的控制

[复制链接]
发表于 2021-8-12 13:23:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 划句顾 于 2021-8-13 12:37 编辑
  1. /***************************************
  2. * purpose :用户通过浏览器可以访问NodeMCU所建立的网页。
  3. *           通过该网页,用户可实现对NodeMCU的控制。
  4. *         
  5. * author  :LAOGU
  6. * time    :2021/8/12
  7. */
  8. #include<ESP8266WiFi.h>
  9. #include<ESP8266WiFiMulti.h>
  10. #include<ESP8266WebServer.h>  //ESP8266WebServer库

  11. ESP8266WiFiMulti wifiMulti;  //建立ESP8266WiFiMulti对象,对象名称是‘wifiMulti’

  12. ESP8266WebServer esp8266_server(80);//建立ESP8266WebServer对象,对象名称为esp8266_server
  13.                                     //括号中的数字是网络服务器相应http请求的端口号
  14.                                     //网络服务器标准http端口号为80
  15.                                     
  16. void setup()
  17. {
  18.   Serial.begin(9600);   //启动串口通讯

  19.   pinMode(LED_BUILTIN,OUTPUT); //设置内置LED引脚为输出模式以便控制LED
  20.   
  21. //通过addAP函数存储 WiFi名称   WiFi密码
  22.   wifiMulti.addAP("Xiaomi_9C18","A123456789a");
  23.   wifiMulti.addAP("nanjishit","guyiling5201314");

  24.   Serial.println("Connecting ...");
  25.   int i = 0;
  26.   while(wifiMulti.run()!=WL_CONNECTED)
  27.   {
  28.     delay(1000);
  29.     Serial.print(i++);
  30.     }
  31.    
  32. //wifi连接成功后将通过串口监视器输出连接成功信息
  33.   Serial.println('\n');
  34.   Serial.print("Connected to ");
  35.   Serial.println(WiFi.SSID());
  36.   Serial.print("IP address:\t");
  37.   Serial.println(WiFi.localIP());

  38. // ”启动网络服务功能“ 代码如下:
  39.   esp8266_server.begin();  //启动网络服务器
  40.   esp8266_server.on("/",HTTP_GET,handleRoot);    //handleRoot为网络服务函数,handle是处理的意思,root是根  
  41.   esp8266_server.on("/LED",HTTP_POST,handleLED); //设置处理LED控制请求的函数‘handleLED’                                
  42.   esp8266_server.onNotFound(handleNotFound);     //设置处理404情况的函数‘handleNotFound’

  43. // 告知用户  网络服务功能已经启动
  44.    Serial.println("HTTP esp8266_server started");
  45. }

  46. void loop() {
  47.   esp8266_server.handleClient(); // 检查http服务器访问,因为如果此时esp有其他的事情做,它是不会理会这些请求的
  48. }

  49. void handleRoot()
  50. {
  51.   esp8266_server.send(200,"text/html","<form action="/LED" method="POST"><input type="submit" value="Toggle LED"></form>");  
  52.   
  53. }

  54. void handleLED()
  55. {
  56.   digitalWrite(LED_BUILTIN,!digitalRead(LED_BUILTIN));  //改变LED的点亮或者熄灭的状态
  57.   esp8266_server.sendHeader("location","/");     //跳转会页面根目录
  58.   esp8266_server.send(303); //发送http相应代码303跳转
  59.   }

  60. void handleNotFound()
  61. {
  62.   esp8266_server.send(404,"text/plain","404:Not found");
  63.   }
复制代码


结果如下:
屏幕截图(232).png



                               
登录/注册后可看大图

屏幕截图(231).png
注:在双引号前加 \ 是为了表示这是html的代码。
<form action=\"/LED\" method=\"POST\">
    <input type=\"submit\" value=\"Toggle LED\">
</form>
1628829405(1).jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 19:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表