NodeMCU开发板基本控制按键

        一、引言

        NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua 开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了可以运行在 esp8266 Wi-Fi SoC芯片之上的固件,以及基于ESP-12模组的硬件。云服务主要使用mcunode云服务连接,并在线开发,不同于本地下载,云服务下载主要依赖于用户的浏览器,不需要用户连接usb线就可以远程下载,并且没有本地距离的限制。NodeMCU作为物联网开发板,我们是需要通过网络对它实现控制的。在本教程里,我们将利用NodeMCU建立网络服务。用户通过浏览器可以访问NodeMCU所建立的网页。通过该网页,用户可实现对NodeMCU的控制。

        二、准备内容

        Arduino IDE是一款基于开放源代码的集成开发环境,专为Arduino用户设计,提供了丰富的功能和工具,使得电子项目的搭建和调试变得更加便捷和高效。它是Arduino开源电子原型平台的重要组成部分,包括硬件和软件两部分。Arduino IDE的程序结构主要分为三个部分:定义参数变量、程序初始化(void setup()函数)以及程序反复执行(void loop()函数)。这种结构使得Arduino程序的编写和学习变得更加直观和易于理解。此次项目我们要运用到的有 Arduino IDE 、ESP8266的Arduino IDE开发插件和NodeMCU开发板(如图1-1 开发板图片)。

                                                                 图1-1 开发板图片

        三、NodeMcu开发环境搭建

       1. 在Arduino IDE的开发板菜单中选中“NodeMCU开发板”

        2.设置Arduino IDE的NodeMCU开发板端口

        3.打开Blink示例程序

        将Blink示例程序编译上传给NodeMCU,确认NodeMCU开发板上LED开始闪烁,程序上传完毕。如果看到NodeMCU开发板上的LED开始闪烁就说明驱动程序已经成功安装了。恭喜,您现在可以开始用Arduino IDE为NodeMCU编写控制程序了。

        四、建立基本网络服务器

        下面这个示例程序可以让ESP8266-NodeMCU实现最基本的网页服务功能。请先将这段示例程序复制并且上传NodeMCU。

        1.通过示例导入源代码:

        2.修改代码:

当您把这段示例程序上传给NodeMCU以后,请启动NodeMCU并且确保它已经成功连接WiFi。接下来请打开浏览器,并且在地址栏中输入NodeMCU的IP地址并按下回车。假如将在浏览器中看到“Hello from ESP8266”,那么已经成功的让NodeMCU实现了网络服务功能,NodeMCU为您建立了一个超级迷你的小网站。这个网站只有一个网页。这个网页只有一行“Hello  ESP8266”。

        五、按钮控制程序

        1.按钮HTML代码:

        2.总体代码呈现:

#include <ESP8266WiFi.h>        // 本程序使用 ESP8266WiFi库

#include <ESP8266WiFiMulti.h>   //  ESP8266WiFiMulti库

#include <ESP8266WebServer.h>   //  ESP8266WebServer库

void setup(void){

  Serial.begin(9600);   // 启动串口通讯

  pinMode(LED_BUILTIN, OUTPUT); //设置内置LED引脚为输出模式以便控制LED

  

  Serial.println("Connecting ...");                            // 则尝试使用此处存储的密码进行连接。

  

  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

}

void loop(void){

}

/*设置服务器根目录即'/'的函数'handleRoot'

  该函数的作用是每当有客户端访问NodeMCU服务器根目录时,

  NodeMCU都会向访问设备发送 HTTP 状态 200 (Ok) 这是send函数的第一个参数。

  同时NodeMCU还会向浏览器发送HTML代码,以下示例中send函数中第三个参数,

  也就是双引号中的内容就是NodeMCU发送的HTML代码。该代码可在网页中产生LED控制按钮。

  当用户按下按钮时,浏览器将会向NodeMCU的/LED页面发送HTTP请求,请求方式为POST。

  NodeMCU接收到此请求后将会执行handleLED函数内容*/

void handleRoot() {      

}

  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值