专栏首页工科生日常当小爱同学遇到Blinker与WiFiduino能碰出怎样的火花?

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

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


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

还不快来观赏

#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


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

本文分享自微信公众号 - 工科生日常(ES-Daily),作者:聪明的瓦肯人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何用python写一个安卓APP?(下)

    1 正如上篇结尾所述 我手动添加了Aild文件 怎么做的呢 对于我这个安卓盲 不得不白嫖于stack overflow (ps:幸好小哥我懂点英语)

    聪明的瓦肯人
  • 编写HoneyTalk遇到的那些坑

    除此之外 一定要注意 tkinter GUI程序与线程的关系 你可能觉得这有什么好注意的 这是由于如果你将GUI现在了非主线程中 会出现错误 RuntimeE...

    聪明的瓦肯人
  • 我大胆把玩了"Stanford Doggo"四足机器人!

    说大胆把玩 当然是要强迫她 按照我的意思 摆出我喜欢的体位 走出我侧目的步调 扭出我满意的身姿

    聪明的瓦肯人
  • Node.js起步 -- (1)

      我们知道JavaScript是运行在浏览器中的,浏览器为它提供了一个上下文(context),从而让JavaScript得以解析执行。

    书童小二
  • Objective-C三方库: ZXEasyCoding

    添加ZXEasyCoder整个文件夹到项目中, #import "NSObject+ZXEasyCoder.h"即可

    周希
  • 作为社群工具,小密圈与微信群哪个更好

    已有超过百万注册用户、近十万圈子的小密圈,看看都有谁在里面入住了(资料来源:小密圈官方公众号):

    宇相
  • 用 selenium 和 scrapy 模拟知乎登录

    这个是看一个视频学来的,视频给出的教程部分失效,因为知乎的登录页面改了。我进行一点修改就可以登录了,本文主要是记录

    伪君子
  • 罗永浩的野望

    镁客网
  • 论道数据仓库维度建模和关系建模

    为什么要数据仓库建模呢? 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作...

    企鹅号小编
  • 【独家编译】基于人工智能的医疗器械公司Neural Analytics获1500万美元B轮融资

    【数据猿导读】 日前, 基于人工智能的医疗器械公司Neural Analytics宣布完成了1500万美元B轮融资,本轮融资由Alpha Edison领投。 记...

    数据猿

扫码关注云+社区

领取腾讯云代金券