当前位置:首页 > 公众号精选 > 嵌入式大杂烩
[导读]关注、 星标公众号,不错过精彩内容 编辑:Tony 来源:公众号TonyCode 小爱同学吃灰很久了,一直想接入小爱来控制些智能硬件,无奈小米的IOT开放平台只对企业用户开放。最近研究了点灯科技的物联网平台,软件硬件支持非常丰富,关键对于爱好者有免费的版本可


关注、 星标公众,不错过精彩内容

编辑:Tony
来源:公众号TonyCode

小爱同学吃灰很久了,一直想接入小爱来控制些智能硬件,无奈小米的IOT开放平台只对企业用户开放。最近研究了点灯科技的物联网平台,软件硬件支持非常丰富,关键对于爱好者有免费的版本可以使用,爱了爱了有木有?本篇分享下如何通过Blinker平台接入小爱同学,进而控制联网的ESP8266点灯。

1
硬件部分


我使用了如下图所示ESP8266开发板,其实就是板载了8266最小系统和USB转串口部分。淘宝上很多,大的区别可能就是串口芯片有CH340和CP2102之分吧。

ESP8266开发板

ESP8266模块板载了LED灯,连接在GPIO2上,GPIO2输出高电平灯熄灭,输出低电平灯点亮,就拿它做控制吧。

2
平台部分

在小爱同学APP中智能家居设备需要从米家APP中添加。所以,这两个APP提前下载注册好。这里重点说下Blinker APP。

  • 从官网下载Blinker,支持安卓和苹果版本,选择你喜欢的对应下载,并进行注册(https://www.diandeng.tech/doc/app-download)。

  • 点击添加设备,选择Diy设备中的Arduino,选择WiFi接入。会得到唯一的密钥,这个很重要,后面需要在代码中添加。

添加设备

  • 返回设备列表页,点击添加的设备图标进入设备控制面板。可点击右上角进行编辑,这里的设备名最好用中文,后面用小爱进行控制的时候,你对它说英文,它可能听不懂哈。


3
软件部分


  1. 安装ESP8266开发板扩展

  • 启动Arduino IDE,单击「文件」—「首选项」,在附加开发板管理网址中输入如下网址:

http://arduino.esp8266.com/stable/package_esp8266com_index.json


添加开发板网址

  • 单击「工具」—「开发板」—「开发板管理器」,在搜索栏输入"esp8266",找到开发板进行安装,如下图安装完成。

安装8266开发板扩展

这个过程如果你网络不够科学的话,可能无法完成,官方提供了离线安装方式可参照安装(https://www.arduino.cn/thread-76029-1-1.html)。

  1. 安装blinker Arduino库

下载库(https://github.com/blinker-iot/blinker-library/archive/master.zip),将下载好的blinker库解压到 我的电脑>文档>Arduino>libraries 文件夹中。

  1. 程序下载

Blinker官方提供了小爱同学的接入流程,以RGB灯的控制为例,介绍了小爱同学的各操作接口,具体可参照官方介绍(https://www.diandeng.tech/doc/xiaoai)。

我在这里做了简化,只用来控制灯的亮灭,只用了电源类操作接口和设备查询接口。其实就是实现两个回调函数,当接收到小爱同学的命令,会对应进入回调函数去操作硬件。

代码如下,代码中的auth、ssid、pswd要填入实际的值。

#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT

#include <Blinker.h>

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";

bool ledState;

void dataRead(const String & data)
{
  BLINKER_LOG("Blinker readString: ", data);

  uint32_t BlinkerTime = millis();

  Blinker.print("millis", BlinkerTime);
}

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();
    ledState = true;
  }
  else if (state == BLINKER_CMD_OFF) {
    digitalWrite(LED_BUILTIN, HIGH);
    BlinkerMIOT.powerState("off");
    BlinkerMIOT.print();
    ledState = false;
  }
}

void miotQuery(int32_t queryCode)
{
  BLINKER_LOG("MIOT Query codes: ", queryCode);

  switch (queryCode)
  {
    case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
      BLINKER_LOG("MIOT Query Power State");
      BlinkerMIOT.powerState(ledState ? "on" : "off");
      BlinkerMIOT.print();
      break;

    default :
      BlinkerMIOT.powerState(ledState ? "on" : "off");
      BlinkerMIOT.print();
      break;
  }
}
void setup()
{
  Serial.begin(115200);
  BLINKER_DEBUG.stream(Serial);
  BLINKER_DEBUG.debugAll();

  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);

  Blinker.begin(auth, ssid, pswd);

  Blinker.attachData(dataRead);
  BlinkerMIOT.attachPowerState(miotPowerState);
  BlinkerMIOT.attachQuery(miotQuery);
}

void loop()
{
  Blinker.run();
}

选择开发板类型和实际端口号,进行程序下载。

选择8266开发板

4
绑定小爱

  • 下载好程序后,复位开发板,然后在Blinker APP中会看到添加的设备已经现在在线了。

在线设备

  • 进入米家APP,点击「我的」—「其他平台设备」,添加点灯科技,进入后,点击同步设备,就会看到在Blinker中创建的设备。


添加同步设备

  • 前面绑定成功后,小爱同学中就会出现绑定的设备了。

绑定成功

试着对小爱说:“打开灯”、“关闭灯”、“灯的状态”,可能网络不好会有些延迟,不过想要的控制已经实现了,放一下测试时拍的视频,你也可以尝试去控制些别的设备了。




推荐阅读:

Arduino基础入门篇汇总


Arduino红外测温仪


若觉得文章对你有帮助,在看、转发、留言也是对我的支持。

关注公众号「TonyCode」,后台回复小爱,获取文中代码资源。


长按识别图中二维码关注

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭