赞
踩
买来芯片背后有芯片的型号,和采用的驱动。我采用的是CH340驱动的ESP8266 NodeMcu。
芯片上密密麻麻的引脚我们并不是都要用到,在能力和需求范围内先不要关心太多。
Serial是串口的意思,这里需要给大家普及一下硬串口和软串口,大家也可以去搜索《Arduino程序开发基础》。硬串口就是芯片上设定的串口,如上表中的Serial;软串口就是自己定义它为串口,如上表中我们可以定义D7 D8为软串口Serial1。(所以上表中有两个Serial1)
那么,其实esp8266只有一个一个半串口,因为其中还有一个串口只有TXD(发送端),没有RXD(接收端)
安装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,点击新建一个独立设备,(名字可以改)获取一个密钥,复制到电脑上。
选择好开发板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) 。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。