准备工作

安装手机app

  1. 米家app
  2. 小米音箱或小爱同学app
  3. 点灯科技app,app下载链接:https://diandeng.tech/dev

开发环境搭建

  • Arduino IDE需安装好esp32扩展
  • Arduino IDE 1.8.7或更新版本
  • 务必使用 2.0.0 或以上release版本的 ESP32 Arduino package
    Arduino安装包:链接:https://pan.baidu.com/s/1EolgWnV7W-cQiDAbJ-MicA
    提取码:au2i
    esp32 Arduino库:链接:https://pan.baidu.com/s/1LoBYfSvkebxX8-bsUe4AGg
    提取码:4xks
    blinker Arduino库:https://diandeng.tech/dev

ESP-WROOM-32环境搭建

之前已经写了一篇关于ESP-WROOM-32环境搭建(Arduino)的博客,但是由于esp32 - library版本太低,添加blinker - library之后,blinker的例程编译不通过,所以在此重写一下。
1.安装Arduino
2.打开Arduino IDE菜单 > 文件 >首选项,在 附加开发板管理器网址 输入框中,填入以下网址:
https://www.arduino.cn/package_esp32_index.json
3.下载esp32安装包,直接运行,程序会自动解压到相应位置
4.下载并安装blinker Arduino库
5.通过Arduino IDE 菜单>项目>加载库>添加.ZIP库 导入blinker到库,如图:

下载并安装点灯科技app

1.添加一个设备

2.选择第一个点灯

3.选择网络接入

4.复制key(代码中将要使用这个key)

5.给新添加的设备添加组件

6.添加一个按键,实现简单开关。组件键名很关键,和key一样,都要在代码中使用。

编写简单开关程序测试

代码中有四处需要修改:

  • 组件键名
  • blinker appkey
  • wifi 名字
  • wifi 密码
#define BLINKER_WIFI#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";// 新建组件对象
BlinkerButton Button1("Light_Button");
BlinkerNumber Number1("num-abc");int counter = 0;// 按下按键即会执行该函数
void button1_callback(const String & state)
{BLINKER_LOG("get button state: ", state);digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);counter++;Number1.print(counter);
}void setup()
{// 初始化串口Serial.begin(115200);BLINKER_DEBUG.stream(Serial);BLINKER_DEBUG.debugAll();// 初始化有LED的IOpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);// 初始化blinkerBlinker.begin(auth, ssid, pswd);Blinker.attachData(dataRead);Button1.attach(button1_callback);
}void loop() {Blinker.run();
}

在APP中点击按钮就可以控制Arduino上的LED灯了。

实现小爱同学语音控制

1.打开米家app–>>我的–>>其他平台设备,添加设备

2.添加点灯科技


3.同步设备

编写程序

代码中有四处需要修改:

  • 组件键名
  • blinker appkey
  • wifi 名字
  • wifi 密码
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT//支持小爱同学
#define BLINKER_WITHOUT_SSL      //非SSL加密通信接入,省堆栈
#include <Blinker.h>#define LED   2  // 板子上的灯
#define GPIO   2  // 板子上的灯// // 新建组件对象
BlinkerButton Button1("************");//注意:要和APP组件’数据键名’一致
char auth[] = "************"; // blinker app提供的秘钥
char ssid[] = "************";// wifi 名字
char pswd[] = " ************";// wifi 密码bool wsState;
uint8_t wsMode = BLINKER_CMD_MIOT_DAY;// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String & state) {BLINKER_LOG("get button state: ", state);digitalWrite(LED, !digitalRead(GPIO)); Blinker.vibrate();
}//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
void miotPowerState(const String & state)
{BLINKER_LOG("need set power state: ", state);if (state == BLINKER_CMD_ON) {digitalWrite(LED, HIGH);  //高电平点灯BlinkerMIOT.powerState("on");BlinkerMIOT.print();wsState=true;}else if (state == BLINKER_CMD_OFF) {digitalWrite(LED, LOW); //低电平关灯BlinkerMIOT.powerState("off");BlinkerMIOT.print();wsState=false;}
}//小爱同学 的回调查询函数,照抄即可。主要是查询 当前灯的状态
void miotQuery(int32_t queryCode)
{BLINKER_LOG("MIOT Query codes: ", queryCode);switch (queryCode){case BLINKER_CMD_QUERY_ALL_NUMBER :BLINKER_LOG("MIOT Query All");BlinkerMIOT.powerState(wsState ? "on" : "off");BlinkerMIOT.color(0);BlinkerMIOT.mode(0);BlinkerMIOT.colorTemp(1000);BlinkerMIOT.brightness(1);BlinkerMIOT.print();break;case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :BLINKER_LOG("MIOT Query Power State");BlinkerMIOT.powerState(wsState ? "on" : "off");BlinkerMIOT.print();break;   default :BlinkerMIOT.powerState(wsState ? "on" : "off");BlinkerMIOT.color(0);BlinkerMIOT.mode(0);BlinkerMIOT.colorTemp(1000);BlinkerMIOT.brightness(1);BlinkerMIOT.print();break;}
}void setup() {// 初始化串口,并开启调试信息,调试用可以删除Serial.begin(115200); BLINKER_DEBUG.stream(Serial);// 初始化IOpinMode(LED, OUTPUT); digitalWrite(LED, LOW); // 初始化 led 低电平 ,则灯熄灭状态// 初始化blinkerBlinker.begin(auth, ssid, pswd);Button1.attach(button1_callback);//小爱同学务必在回调函数中反馈该控制状态 BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数BlinkerMIOT.attachQuery(miotQuery);
}void loop() {Blinker.run();
}

参考网址

Arduino安装esp32SDK
点灯科技教程
点灯科技接入小爱同学
https://blog.csdn.net/xddwg521125/article/details/105391169

ESP32接入小爱同学,实现语音控制相关推荐

  1. 月球计划—ESP8266接入小爱同学控制彩灯

    之前的文章「小爱同学控制EP8266点灯」介绍了如何借助Blinker平台接入小爱同学,通过ESP8266控制点灯.Blinker官方例程中使用的是RGB灯,可以调节颜色的,手头刚好找到块RGB彩灯板 ...

  2. ESP8266用点灯app接入小爱同学

    ESP8266接入小爱同学-智能LED台灯或风扇 首先用的是arduino IDE对esp8266进行的编译,arduino对8266编译环境的具体配置可参考 1.利用WiFiManager库实现自动 ...

  3. 利用esp8266接入小爱同学,实现智能台灯的改造物联网初识

    硬件准备 1.继电器WIFI智能插座模块 2.USB转ESP8266WIFI模块 3.ESP8266模块 软件环境搭建 1.小爱同学app,或者米家app,点灯 Blinker app 2.Ardun ...

  4. 物联网系列⑤——基于ESP8266与点灯科技平台的氛围灯设计(接入小爱同学)

    物联网系列⑤--基于ESP8266与点灯科技平台的氛围灯设计(接入小爱同学) 一.设计目标 二.电路设计 三.思路介绍 四.ESP8266代码 一.设计目标 使用点灯科技平台接入物联网,可通过手机点灯 ...

  5. ESP8266接入小爱同学—智能LED台灯或风扇(利用继电器)

    ESP8266接入小爱同学-智能LED台灯或风扇 上周用esp8266做了一个语音智能台灯,也参考了很多网上的教程,也不难,挺简单的,在这里分享一下. 首先我用的是arduino IDE对esp826 ...

  6. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅③简单入门安信可TB-02开发开发板轻松接入天猫精灵,语音控制冷暖灯so easy!

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小白也痴迷,如 ...

  7. 用小爱,小度语音控制家里的灯,无网络时,不影响物理开关

    贝壳物联和小度,小爱的完美结合 亮点 材料 接线 注册贝壳物联 ArduinoIDE 安装 程序编写烧录 巴法云微信推送 巴法云控制设置 微信小程序控制设备 小度音箱,小爱绑定和语音控制 关于内网穿透 ...

  8. 小爱同学100个奇葩回复_杰理新一代蓝牙芯片将内置小爱同学,语音唤醒、降噪、连续对话加持蓝牙音箱...

    在 11 月 20 日召开的小米 AI 生态峰会暨小爱同学 3.0 发布会上,珠海杰理科技作为小爱同学在芯片端赋能的代表企业,带来了 3 款内置小爱同学标准 SDK 的第二代降噪.语音唤醒蓝牙芯片.据 ...

  9. 小爱同学、Blinker 控制esp32自带灯熄灭---Micropython版本

    操作官方案例修改增加小爱同学控制支持,具体代码上传到github可以参考,有帮助的话麻烦请star支持下,有细节问题也麻烦指出和交流 github地址: https://github.com/lonn ...

最新文章

  1. java日期比较大小_java日期大小比较
  2. 2018最具就业前景的7大编程语言,Java、Python和JavaScript?
  3. python 列表list 合并的方法
  4. 2.1.1 正则化基本介绍
  5. 假如我是面试官,我会这样虐你
  6. node mysql登录注册_图解NodeJS实现登录注册功能
  7. mysql 数据库引擎常识全集
  8. 互联网大事件:《江南style》如何蹿红?(转)
  9. 遇到:ORA-27121: UNABLE TO DETERMINE SIZE OF SHAR...
  10. mysql能存储的编码范围_mysql存储乱码之编码问题
  11. aspx 修改了样式但是在点击按钮后被刷新_135编辑器使用教程|动画按钮到底在哪里啊?...
  12. swagger2.2.2报错:relProviderPluginRegistry,linkDiscovererRegistry,entityLinksPluginRegistry
  13. 导入train_test_split时,ModuleNotFoundError: No module named 'sklearn.cross_validation'
  14. 综述: 通信雷达一体化中的信号处理
  15. Word文件标尺工具被隐藏,怎么恢复
  16. Ext cookies设置、获取和清除
  17. 怎样在拼打日语汉字时,在字上同时显示假名
  18. DNF 单机游戏 手机游戏 网络游戏 推荐游戏 TXT 小说 外挂 辅助
  19. asp.net 中,什么是div?
  20. QQ机器人 微信机器人最新可用框架汇总

热门文章

  1. QQ聊天记录备份BAK文件的修复方法
  2. 使用ContentResolver操作手机系统联系人
  3. U盘制作Ubuntu启动盘后容量突然变得只有几M
  4. GitBook 使用
  5. 划线高亮和插入笔记的技术实现
  6. 双网卡共享上网详细设置图解教程(
  7. pandas学习笔记四:运算方法和运算工具
  8. 金蝶BOS,服务端执行SQL语句参考
  9. linux 设备驱动 probe,Linux驱动模型Probe解惑
  10. 9.png 自带工具 ps 两种修改方式