IOT踩坑路(一)基于Blinker和ESP8266的小爱同学控制灯

IOT踩坑路(一)基于Blinker和ESP8266的小爱同学控制灯

在家呆的实在无聊,捣鼓小爱同学打发时间,想试试智能家居的功能,苦于没有智能设备,正好手头有一个WiFi模块,灵感乍现,何不自己DIY一个智能设备呢,一番痛彻心扉的踩坑路由此开始
在这里插入图片描述

一、准备材料

  • Esp8266WiFi模块
  • 带小爱同学的智能设备
  • USB转TTL串口模块
  • 手机一部(下载米家APP、BlinkerAPP)

二、小爱同学官方开发文档

在这里插入图片描述
小爱同学暂不开放个人开发者接口,但是可以基于第三方云服务连接小米云
在这里插入图片描述
经过一番人肉对比,最终锁定Blinker物联网平台,最简单,最易入门(官方如是说

三、Blinker开放平台

1.Blinker官网

在这里插入图片描述
是很简洁,但有一种速成鸡的味道,不管了,好用就行

2.开发环境搭建一波

  1. 下载安装arduino IDE开发环境
    下载地址:https://share.weiyun.com/5aNlfTg
    这里有大坑(坑了我足足3天,成功把官方介绍的3分钟搭建智能设备拖成了3天):arduino2/bin/avr-g++: no such file or directory这个BUG,更改环境变量(劳动人民的血和泪啊~)
    在这里插入图片描述
  2. 下载打包的esp8266安装包,直接运行并解压即可
    下载地址:https://pan.baidu.com/s/19yEQ4UDF-bQCzt3BsdV6Yw
    https://share.weiyun.com/5CGEKJO
  3. 下载Blinker库
    下载地址:https://github.com/blinker-iot/blinker-library/archive/master.zip
    把zip解压到E:\XXOO\XXOO\arduino-1.8.8-windows\arduino-1.8.8\libraries中
    在这里插入图片描述
  4. 下载安装Blinker APP
    Android:http://cdn.diandeng.tech/blinker-2.3.1-release.apk
    IOS:https://apps.apple.com/cn/app/id1498805902

3.使用esp8266 & WiFi接入

  1. 在blinker中获取设备Secret Key
    在这里插入图片描述

  2. 选择ESP8266
    在这里插入图片描述

  3. 给ATK-ESP8266烧录固件程序,通过blinker控制板载led
    用杜邦线连接USB转TTL串口模块和ATK-ESP8266模块:在这里插入图片描述
    线接好后就可以接上PC,回到IDE,打开【文件】–>【示例】–>【Blinker】–>【Blinker_Hello】–>【Hello_WiFi】在这里插入图片描述找到,改成自己的

char auth[] = “abcdefghijkl”; //在前面步骤中在blinker app中获取到的Secret Key
char ssid[] = “abcdefg”; //你的WiFi热点名称
char pswd[] = “123456789”; //你的WiFi密码

待程序上传完成后,拔掉wifi模块IO_0上的线,让其悬空,并重启WiFi模块

  1. 打开app控制下试试在这里插入图片描述

四、小爱同学接入

1.米家绑定Blinker

打开米家,我的 里面找到第三方设备,找到点灯科技,绑定账号

2.服务接口烧入固件

打开Hello_wifi文件

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT		//添加这一行,就能支持小爱控制

#include <Blinker.h>

//setup()函数中
...
Blinker.begin(auth, ssid, pswd);
    Blinker.attachData(dataRead);
    BlinkerMIOT.attachPowerState(miotPowerState);		//添加这一行,作用是注册下面的回调函数

    Button1.attach(button1_callback);
...

//setup()函数前添加如下代码
void miotPowerState(const String & state)
{
    BLINKER_LOG("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(LED_BUILTIN, LOW);

        BlinkerMIOT.powerState("on");
        BlinkerMIOT.print();
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(LED_BUILTIN, HIGH);

        BlinkerMIOT.powerState("off");
        BlinkerMIOT.print();
    }
}

修改完成后,重新烧录程序,重启WiFi模块后,再在小爱音箱或者米家中添加设备,就能在小爱音箱的智能家居列表中看到我们diy的设备

五、秀儿

在这里插入图片描述

发布了4 篇原创文章 · 获赞 4 · 访问量 170

猜你喜欢

转载自blog.csdn.net/qq_43907537/article/details/105018110