这十五没过就还是年,看众朋友们,我可想死你们了! ——聪明的瓦肯人
2020年 注定是一个不平凡的年 新年伊始 疫情肆虐! 武汉告急! 华中告急! 全国告急! 为了躲避疫情 我们不约而同的无聊起来 但无论怎样 学习不能耽搁 想当年 牛顿就因为躲避疫情 发现了万有引力 发明了微积分 2020年 我小瓦也要干一番大事业! 这不 想起了那块吃灰的WiFiduino 1
看标题 这小爱同学谁都知道 但 什么是WiFiduino? 该板其实是基于esp8266的 仿Arduino开发板 长这样
其作用与esp8266开发板没区别 那blinker又是什么? 官方解释
blinker是一套跨硬件、跨平台的物联网解决方案,提供APP端、设备端、服务器端支持,使用公有云服务进行数据传输存储。可用于智能家居、数据监测等领域,可以帮助用户更好更快地搭建物联网项目。
而上面的WiFiduino就可以接入blinker 又由于点灯科技 将blinker接入了米家 所以自然可以通过小爱同学控制 blinker提供MQTT服务器 这使得不在局域网下的控制成为可能 当要从户外控制户内blinker设备时 大致会经过以下过程:
小爱同学>MQTT服务器>blinker硬件>家居设备 |
---|
这样一顿操作下
blinker设备就可以无缝的接入米家
2
为了给大家演示一下
就搭一个LED小电路作为控制设备
我的目的就是
通过小爱同学控制红色LED的亮灭
我选择的数字输出端是D7
WiFiduino的开发可以直接使用Arduino IDE
为了使用blinker的解决方案
还需要安装blinker支持库与esp8266支持库
有了这两大类库加持
这种实验就是无脑开发
有的时候
封装太严重,都有点莫名其妙
至于blinker库的学习
这里就不多说了
送上官方链接
https://doc.blinker.app/?file=home-首页
先来看看效果
还可以
此时手机使用流量
属于互联网下的通信
视频的前半部分使用的是blinkerAPP
其可以自定义控制界面
甚至其自带语音控制
具体情况看上述开发文档
目前
小爱同学 blinker个人版
能做的有电源的开闭
传感器信息的查询(温度、湿度)
调节灯的亮度、颜色等
小爱同学的接入教程
也可看上述官方开发文档
其实不止是小爱同学
天猫精灵、百度小度也可免费接入
而微软小娜、谷歌Home等则需付费
讲到这里
想必大伙儿已经灵感乍现了吧?
我们完全可以通过这玩意儿
将非联网设备加入米家
实现智能家居
对于红外控制设备
可以先对其解码再控制
不过这样一来
与万能遥控器的差别不打了
这让我想起了一篇文章:
《基于Arduino与Raspberry Pi的简单家庭物联网系统构想》
该文详情可以点击左下角
阅读原文
3
代码很easy
还不快来观赏
代码语言:javascript复制#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
//wifi小爱同学模式
#include <Blinker.h>
char auth[] = "ad3c****9d79";
char ssid[] = "ChinaNet-ZXhF";
char pswd[] = "x7q5ckk2";
//设备秘钥与wifi
int counter = 0;
BlinkerButton Button1("btn-abc");
BlinkerNumber Number1("num-abc");
//新建组件对象与APP配合
void button1_callback(const String & state)
{
BLINKER_LOG("get button state:",state);
//串口日志输出
digitalWrite(D7,!digitalRead(D7));
}
//Button1组件回调函数
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString:",data);
counter ;
Number1.print(counter);
}
//未注册组件回调函数
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state:",state);
if(state == BLINKER_CMD_ON)
{
//BLINKER_CMD_ON是设备查询状态码
digitalWrite(D7,HIGH);
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
//向小爱同学反馈设备状态信息
}
else if(state == BLINKER_CMD_OFF)
{
digitalWrite(D7,LOW);
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
}
//小爱同学语言控制LED亮灭回调函数
void setup() {
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
//初始化串口
pinMode(D7,OUTPUT);
digitalWrite(D7,HIGH);
//初始化数字输出接口
Blinker.begin(auth,ssid,pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
//注册Button1回调函数
BlinkerMIOT.attachPowerState(miotPowerState);
//注册小爱同学电源类接口回调函数
}
void loop() {
Blinker.run();
//blinker启动,保持网络连接和数据解析
}
over
我已经想到下一篇糊弄文章了:怎样以创客的逼格将非联网设备连入物联网?武汉加油! ——聪明的瓦肯人