Wifiduino 物联网连接实验
之前发了一个wifi8266做穿透模块的文章 但是相对来说步骤还是比较繁琐 对于很多不需要过于复杂的功能 单纯只需要几个传感器 略懂arduino 并且对管脚要求不高的人来说 Wifiduino是个非常好的选择 在物联网中文社区 的物联网模块 有块这非常完善的教程 但是要求 有arduino 的一定基础 但对于arduino和相应机制不太懂的同学就很不友好了 这无疑破灭了 一个有梦想的同学物联网的梦想 所以我准备写一个 新手友好的教程 让有梦想的同学都能非常简单的连上物联网😀
1.实验准备
1.1硬件准备
- wifiduino板子一块(某宝上直接搜即可就一家买)
- 烧录线(普通的安卓口下载线)
(没错!就是这吗简单)
1.2软件准备
- arduino IED
- blinker 头文件(粘到arduino IED 的libraries 文件夹下)
- 加载blinker SDK(注:就是一个应用程序运行之后,打开IED就提供WiFiduino的烧录选项 就是可以选板子了 )
- blinker app (下载之后捅咕捅咕选择arduinoWiFi链接 把API key 复制下来 具体步骤参见 arduino 中文社区 或者我的8266内篇文章)
- 下面是头文件 和所谓的SDK的地址链接😀
https://pan.baidu.com/s/1iIMgWuyEoUBQ1nlKJ1Xrzw .
SDK加载的应用程序在wifiduino文件夹里
第一个文件是binker头文件
提取码:6uvw
选一个运行运行之后重新打开Arduino IED就行了
2.实验步骤
2.1选择烧录串口和烧录板
加载完SDK之后在开发板选项里一直向下拉就能找到
选择端口 我这里用的是COM7
2.2选择程序
好的我们再次请出的hello blinker
这次我会把每一行代码都写上注释
让你明白每一句的意思
#define BLINKER_WIFI //MQTT协议所需要的宏定义 写上就对了不用关注
#include <Blinker.h> //blinker的头文件调用
char auth[] = "*********"; //在双引号里把*们换 成你在app上选择WiFi链接出来的内一串key
char ssid[] = "*****"; //在双引号换成写你家WiFi名称/手机热点名称
char pswd[] = "********"; //双引号换成写你要连接的wifi密码
// 新建组件对象
BlinkerButton Button1("btn-abc"); //button是按键的意思 这句是新建一个按键型组件名叫btn-abc
BlinkerNumber Number1("num-abc"); //这句是新建一个数字组件名字交num-abc
int counter = 0;
// 按下按键即会执行该函数
void button1_callback(const String & state) //理解成这是一个中断调用函数 state 是调用中断后手机app发来的值
{
BLINKER_LOG("get button state: ", state); //在blinker和Monitor(监视器的意思)上显示这一坨
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); //按一次小灯状态取反一次 亮就变成灭 灭就变成亮
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data) //如果没定义过的组件没触发了话 就是我们之前不是定义了俩组件 其余的组件被触发了比如按钮被按了
{
BLINKER_LOG("Blinker readString: ", data); //同上面内个
counter++; //emmmm这句就算了不解释了
Number1.print(counter); //counter的数值打印在(就是显示在)blinker的我们定义过的数字组件上
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial); //打开blinker调试函数 debug(调试)就是你发送的信息啥啥的正不正常 否则你打开串口 会显示error
// 初始化有LED的IO
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH);
// 初始化blinker
Blinker.begin(auth, ssid, pswd); //链接wifi 到对应的API key上 就是联网然后到你手机界面用的
Blinker.attachData(dataRead); //初始化中断 如果被触发 调用dataRead函数 触发条件:没有定义过的按键被按了先这吗理解
Button1.attach(button1_callback);//初始化button1按键的中断 如果button1被按了话 就调用括号里的函数
}
void loop() {
Blinker.run(); //blinkr驱动开始不断的接受值和发送值
}
2.3程序上传调试
链接成功了打开串口会有以下显示MQTT connected(服务器已连接)
打开手机界面载入示例进去的界面
然后你按就可以了串口上就会有类似的显示
3.官方网址
链接: Arduino中文社区blinker教程.
里面有进阶一点的操作,温湿度模块,以及链接小爱同学等教程
4.后言
我尽我所能解释的看起来很"愚蠢"给希望从0开始的同学减轻一些负担,因为作为一个普普通通的电子专业本科生,觉得如果每一个想学的东西还在想学的劲头的时候,不会因为一开始就太难而被劝退,那就一定能有收获,因为很多有人解释有人教一分钟就能掌握的事情,自己从头上网找一句一句扣可能需要很长时间,可能以后毕业用不上这些知识,那就留在这,自己以后看一看可能还觉得挺好玩的.