前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当小爱同学遇到Blinker与WiFiduino能碰出怎样的火花?

当小爱同学遇到Blinker与WiFiduino能碰出怎样的火花?

作者头像
聪明的瓦肯人
修改2020-02-22 21:46:45
2K0
修改2020-02-22 21:46:45
举报
文章被收录于专栏:工科生日常工科生日常

这十五没过就还是年,看众朋友们,我可想死你们了! ——聪明的瓦肯人


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-%E9%A6%96%E9%A1%B5

先来看看效果

视频内容

还可以

此时手机使用流量

属于互联网下的通信

视频的前半部分使用的是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


我已经想到下一篇糊弄文章了:怎样以创客的逼格将非联网设备连入物联网?武汉加油! ——聪明的瓦肯人

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 工科生日常 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《基于Arduino与Raspberry Pi的简单家庭物联网系统构想》
相关产品与服务
物联网
腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档