ESP8266物联网初学者指南:用Arduino IDE点亮你的科技之旅

 
买来芯片背后有芯片的型号,和采用的驱动。我采用的是CH340驱动的ESP8266 NodeMcu

芯片上密密麻麻的引脚我们并不是都要用到,在能力和需求范围内先不要关心太多。

Serial是串口的意思,这里需要给大家普及一下硬串口和软串口,大家也可以去搜索《Arduino程序开发基础》。硬串口就是芯片上设定的串口,如上表中的Serial;软串口就是自己定义它为串口,如上表中我们可以定义D7 D8为软串口Serial1。(所以上表中有两个Serial1)

那么,其实esp8266只有一个一个半串口,因为其中还有一个串口只有TXD(发送端),没有RXD(接收端)

//第一步   安装Arduino开发环境

安装Arduno IDE,官网可能会比较慢,安装包已经放在我的夸克网盘里;新一点的版本功能比较好

然后是在Arduino里面需要下载esp8266开发板库和blinker 库:Arduino建议单独在D盘里新建按一个文件夹单独存放。

点击  工具 —-开发板—-开发板管理器—搜索esp

由于ESP8266代码托管在github上,访问慢的话,想要下载比较新的版本是要自己找资源的。

推荐3.0的,新一点,已经打包在我的资源(pdd 搜csdn 0.89rmb下载一次)里面,解压到C:\Users\wqh110954\AppData\Local\Arduino15  根目录packges里面

或者大家访问点灯科技-点灯物联网解决方案blinker是一套专业且快捷的、跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储。可用于多种领域,可以帮助用户更好更快地搭建物联网项目。https://diandeng.tech/dev   资源下载里面绿色的Arduino就是blinker库

 点击下面的esp8266链接去社区下开发版资源,下完以后打开Arduino确认一下是不是已经安装好了开发板。如果一键安装安不了,那就只能自己解压了。

最后是前面说的blinker库的安装,点击  项目—包含库—添加库zip,然后把下载的zip文件选出来。-

最后,在手机上下载blinker,点击新建一个独立设备,(名字可以改)获取一个密钥,复制到电脑上。

 会出现一个情况有时候有blinker库,有时候没有;有时候有esp8266开发板,有时候没有。估计是卡了。。。。。新建一个文件就行了。

/第二步

选择好开发板esp8266 nodemcu,在如下菜单中找到需要的实例—Hello Wifi

 ///第三步

安装完如上环境后,打开例程,我们就可以来看代码了跟例程有点不一样,自己修改就行了。

#include <Blinker.h>
#include <SoftwareSerial.h>

char auth[] = "********";   //在nlinker上得到的密钥
char ssid[] = "*****8";            //一个8266打算连接的wifi,联网用
char pswd[] = "8888888";    //  wifi密码,也可以是个人热点

// 新建组件对象
BlinkerButton Button1("btn-fan");   //对应设备里面新建的组件,括号里是组件的键名  这是个按键
BlinkerText Text1("txt-back");      //文本
BlinkerText  Number1("num-counter");    //数字

int counter = 1;

// 按下按键即会执行该函数
void button1_callback(const String & state)   //前面定义的Button1的触发事件
{
    BLINKER_LOG("get button state: ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    if(state=="tap"){     //免费版的blinker按键状态只有tap press pressup on,似乎没有off
       counter++;                   //所以这里我打算通过计数来确定是打开开关还是关闭开关。
      Number1.print(counter);}
    if(counter % 2==0)    {
      Text1.print("on");
       Serial1.print('a');}
    else
       {Text1.print("off");   //print函数的用法大家可以参考Arduino程序设计基础,意思也就是
      Serial1.print('b');                 //打印
      }                      //Seral1在引脚图里面有
     
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
   
    
}

void setup()       //setup里面的函数在硬件通电开始后,只执行一遍,负责初始化和定义。
{
    // 初始化串口
    Serial.begin(9600);
    BLINKER_DEBUG.stream(Serial);
   
    
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT); // LED_bUTTON是头文件里面就定义了,是板子上靠近usb口的一个 
                                         //led灯,将其设置为输出模式,也可以是输入模式。
    digitalWrite(LED_BUILTIN, HIGH);    //设置高电平
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);   
    Blinker.attachData(dataRead);

    Button1.attach(button1_callback);    //类似js,需要将组件绑定到对应的触发事件当中。
}

void loop() {     //硬件通电后,反复执行,负责硬件的常规运行
    Blinker.run();   
}

代码并不难,只是需要一点时间去理解,特别一些奇奇怪怪的函数和管脚名字,通过自己修改例程可以不断体会。

ESP8266开发 https://www.aliyundrive.com/s/cQtUbMS28Ur 提取码: r98a

阿里云盘比较快,如果要与其他板子通信,串口通信比较好

,比如这里设置了serial1。

/第四步

手机app上当然需要布置,

按照代码里面说明的组件,点击右上角进行编辑,主要是要改键名,使之能匹配上代码里面的。

最后,板子连接上电脑,选好端口,编译下载,下载完成后,打开端口监视器。

会看到一系列MQTT连接的过程,MQTT是目前很火的一个物联网协议。

 等待一会儿,你就可以看见ESP8266上的灯亮起。同时监视器上跳出当前获取的button的state

我这个调整了背景色是黑色,方便看。

tap就是触碰,大家可以调试开关成别的格式,看它是怎么样的状态。

点击开关,灯就可以亮灭了。

现在只要
wifi  一块esp8266  一个灯(也可以是别的)

我们就完成了最简单的物联网通信(wifi) 。

物联沃分享整理
物联沃-IOTWORD物联网 » ESP8266物联网初学者指南:用Arduino IDE点亮你的科技之旅

发表评论