随着国内AI智能音响的崛起
“天猫精灵” 音响已随处可见
站立于AI时代的风口
如何让我们的用户把产品更快地接入天猫精灵
正是我们团队所思考的
于是乎
“安信可一体化IDE环境 1.5 版本”
横空出世!
1
前言
当我们日复一日的“搬砖”的时候,你是否曾想过提升一下开发效率?如果这时有一个成熟的 IoT智能家居项目模板摆在你的面前,你还会选择自己搭架构吗?
我们的开发者们在开发新项目时最大的痛点——架构工程,搭建出一个好的架构并非易事,很多人都经历过从入门到放弃的过程。这些痛点和需求,都被我们一一记录下来,我们现在也终于做出来了这样的工程模板,并推出新版安信可 IDE 1.5版本!
你不需要再麻木 Copy 原有旧项目的代码,只需改动少量代码就能得到想要的效果,你会发现开发新项目其实是一件很快乐的事。
该版本的更多模板,我们会在后续逐步更新!

提供上云模板
快速二次开发
|
1 |
支持 ESP8266的NONOS 2.0 和 3.0 版本二次开发; 支持 ESP32 的 IDF 框架开发,支持 ESP32-CAM; |
|
2 |
支持开发板二次开发;提供支持天猫精灵IoT平台/阿里物联网平台/阿里飞燕/百度天工/腾讯物联开发平台模板SDK接入; |
|
3 |
提供多种多样的demo项目,使开发者快速开发使用自己的业务; |
|
4 |
SDK资源开发包使用 Git 管理,用户可自行更新。 |
2
下载SDK
对于如何在windows上实现搭建 IDE 1.5 的教程,请点击阅读原文参考阅读搭建篇;
2.1 下载阿里飞燕SDK:
git clone --recursive https://gitee.com/xuhongv/aithinker-aliyun.git
2.2 导入阿里飞燕SDK:
点击C/C++分支,选择 Existing Code as MakeFile Project 工程;
复制刚刚下载的文件夹路径,import --> Cross Gcc , 并且去掉对应的 C++ 勾勾;
导进刚刚下载的文件夹,如图所示:
2.3 配置环境步骤:
项目属性设置,鼠标选中项目名称右键点击,在右侧菜单中选择Properties;
在 Properties --> C/C++ Build --> Build directory 选择编译的工程路径,找到阿里飞燕直连的工程demo,导入这个文件夹:aithinkeraliyun/espaliyun/examples/solutions/smart_light 工程。
添加IDF环境变量在 Properties --> C/C++ Build --> Environment 点击Add ,路径为刚刚的下载的文件夹路径,变量名字为 IDF_PATH;
然后点击 OK 保存退出!
然后,指定的依赖 IDF_PATH 路径
2.4 添加编译选项:
与其他版本不一样, RTOS 3.0或以上支持面板设置参数,即通过 make menuconfig 设置,同样地,我们可以利用快捷键去快速设置;
构建menuconfig菜单,选中项目名称,在右键菜单中选择 Make Targets --> Create;或者快捷键 Alt + F9 ;
在弹出的对话框中取消勾选Same as the target name 与 User builder settings 这2个选项,并且在Build command 中分别输入如下四条指令;
//配置默认模组为8266
mintty.exe -e make chip=esp8266 defconfig
//配置面板快捷方式
mintty.exe -e make menuconfig
//编译四元组
mintty.exe -e ../../../../components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py --input ../../../config/mass_mfg/single_Mfg_config.csv --output single_mfg.bin --size 0x4000
//烧录四元组
mintty.exe -e ../../../../components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py --port /dev/ttyUSB0 write_flash 0x100000 single_mfg.bin
3
阿里IoT生态
也许你会问,想要天猫精灵语音控制,为啥要搞这个阿里飞燕,这里我给大家粗略普及下阿里飞燕是怎么样的平台。
阿里云物联网平台和阿里物联网生活平台(又名阿里飞燕)都是阿里云旗下的产品;天猫精灵 IoT 平台归属天猫旗下,非阿里云旗下产品;但都可以天猫精灵语音控制,其数据已打通;
值得一提的是,我们的IDE都支持这三个平台的接入!!
3.1 阿里云物联网平台:
阿里云物联网平台提供了一站式的设备接入、设备管理、监控运维、数据流转、数据存储等服务,数据按照实例维度隔离,可根据业务规模灵活提升规格,具备高可用性、高并发、高性价比的特性,是企业设备上云的首选。
3.2 阿里物联网生活平台:
阿里云 IoT 提供了一款针对消费领域的物联网平台,即生活物联网平台,以解决家电设备快速智能化的问题。平台针对家电智能化的设备连接、移动端控制、设备管理、数据统计等问题,打包阿里云多款产品,提供了一整套配置化方案,大幅减低“设备-云端-App”的开发成本。
两者的区别:
生活物联网平台 和 物联网平台 均为阿里云 IoT 提供的云服务平台,两个平台各自优势和使用场景如下。
物联网平台提供原子化的设备接入能力,适用于云开发能力较强的用户,可以在各个行业领域使用。
生活物联网平台提供了设备接入能力、移动端的 SDK 以及免开发的公版 App 和界面,更适用于消费级的智能设备开发者,开发门槛较低,可以快速实现消费级设备的智能化,如智能家电、穿戴、家装领域等。
使用同一个阿里云账号登录的用户,在生活物联网平台创建的所有产品和设备,将自动同步到物联网平台中。而在物联网平台中创建的产品,也可以通过手动切换收费模式,将产品转移到生活物联网平台中。
3.3 天猫云IoT平台(原赤兔平台)
AliGenie 智能应用开发平台是阿里巴巴人工智能实验室(AI-Labs)面向软硬件厂商和开发者推出的,将人工智能中 ASR(语音识别)、NLP(自然语言处理)、TTS(语音合成)等自然语言处理技术整合、将 AI 能力和设备控制能力对外共享的开放式平台,帮助开发者以最高效率创建智能应用。
开发者可按直连接入(WiFi 模组、蓝牙模组)、云云接入(OAuth2.0)2 类方式,接入天猫精灵软硬件生态(天猫精灵音箱、天猫精灵 App、天猫精灵车机及 AliGenie Inside 智能设备)及阿里巴巴集团生态服务,实现语音、触屏、多模态交互,为用户提供控制、查询、播报、场景与主动服务。

4
创建产品
4.1 参考上述的资料进行硬件准备、环境搭建、SDK 准备
4.2 阿里云平台部署
在阿里云 生活物联网平台创建产品, 参考创建产品文档,配置较多, 如果不太懂, 也不用纠结, 后续都可以修改,部署自己的产品, 可参考如下:
新增 RGB 调色功能:
新增测试设备, 此处即可以获得三元组, 后续需要烧录到 NVS 分区:
选择面板, 手机 APP 上会显示同样界面; 配网二维码是贴在产品包装上, 终端客户给设备配网中需扫描此二维码.;
选择面板时, 主题面板在手机上仅能显示标准界面, 没有 RGB 调色功能. 可以自定义面板, 增加 RGB 调色;
配网方案选择:
5
编译步骤
5.1按照前面步骤搭建安信可一体化环境
5.2烧录四元组信息
mass_mfg 目录中有一参考配置:single_mfg_config.csv,请把里面的内容成自己的四元组配置文件:
使用自己的在后台申请的阿里云四元组对single_mfg_config.csv 进行修改:
key,type,encoding,value
aliyun-key,namespace,,
DeviceName,data,string,config
DeviceSecret,data,string,dsj3RuY74pgCBJ3zczKz1LaLK7RGApqh
ProductKey,data,string,a10BnLLzGv4
ProductSecret,data,string,pVfLpS1u3A9JM0go
5.3配置硬件
可以在安信可淘宝店阿里云专区购买 NodeMCU开发板,或保存下方图片在淘宝中打开即可。注意选择飞燕彩灯固件版(RGB),或选择AT固件版自行接线,分别接 NodeMCU开发板上 GPIO4, GPIO5, GPIO2 (可在 lightbulb.c 中修改);

5.4编译 smart light 并烧录运行
shift + F9 出现一个弹窗,依次点击之前创建的四个项目,或者命令格式一次敲:
//设置为ESP8266配置
make chip=esp8266 defconfig
//面板设置
make menuconfig
//编译三元组
mintty.exe -e ../../../../components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py --input ../../../config/mass_mfg/single_Mfg_config.csv --output single_mfg.bin --size 0x4000
//烧录三元组
mintty.exe -e ../../../../components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py --port /dev/ttyUSB0 write_flash 0x100000 single_mfg.bin
5.5设备第一次运行时, 会进入配网模式;
用安信可串口工具打开,有下面的打印,则说明进去配网模式;
6
安装APP
6.1手机打开阿里云官网 下载 云智能 公版APP 国内用户版
(链接地址:https://living.aliyun.com/doc#muti-app.html)
6.2注册好账号后,进入 APP, 右上角扫描, 扫描第二步的二维码配网.
设备端配网成功后会保存 ssid 和 password :
设备与手机绑定成功后, APP 上会弹出灯的配置页面. 返回主页显示灯 在线!
6.3控制智能灯
在 APP 上打开灯, 设备端收到消息:
在 APP 上设置 RGB 调色,设备端即解析 RGB 颜色, 并设置到具体的灯产品上,解析文件在. linkkit_solo.c:
static int user_property_set_event_handler(const int devid, const char *request, const int request_len)
{
int res = 0;
cJSON *root = NULL, *LightSwitch = NULL, *LightColorRed = NULL, *LightColorGreen = NULL, *LightColorBlue = NULL;
ESP_LOGI(TAG, "Property Set Received, Devid: %d, Request: %s", devid, request);
if (!request)
{
return NULL_VALUE_ERROR;
}
/* Parse Root */
root = cJSON_Parse(request);
if (!root){
ESP_LOGI(TAG, "JSON Parse Error");
return FAIL_RETURN;
}
/** Switch Lightbulb On/Off */
LightSwitch = cJSON_GetObjectItem(root, "LightSwitch");
if (LightSwitch) {
if (LightSwitch->valueint)
{
light_driver_set_rgb(0, 0, 0);
}
else
{
light_driver_set_rgb(0, 255, 0);
}
}
/** Switch Lightbulb Hue */
LightSwitch = cJSON_GetObjectItem(root, "RGBColor");
if (LightSwitch) {
LightColorRed = cJSON_GetObjectItem(LightSwitch, "Red");
LightColorGreen = cJSON_GetObjectItem(LightSwitch, "Green");
LightColorBlue = cJSON_GetObjectItem(LightSwitch, "Blue");
light_driver_set_rgb(LightColorRed->valueint, LightColorGreen->valueint, LightColorBlue->valueint);
}
cJSON_Delete(root);
res = IOT_Linkkit_Report(EXAMPLE_MASTER_DEVID, ITM_MSG_POST_PROPERTY, (unsigned char *)request, request_len);
ESP_LOGI(TAG, "Post Property Message ID: %d", res);
return SUCCESS_RETURN;
}
6.4重新配网
快速重启设备 5 次, 设备会擦除配置信息, 会出现呼吸闪烁, 重新进入配网状态.
6.5OTA 支持
可参考安信可开源团队徐工的文档:
https://blog.csdn.net/xh870189248/article/details/103779637
7
天猫精灵语音控制
7.1天猫精灵控制设备
针对使用公版 APP 的产品,用户可以一键开通天猫精灵,实现天猫精灵音箱对设备的控制. 使用步骤参照阿里云文档.
在阿里云 生活物联网平台上一键开通天猫精灵, 查看功能映射.
在 云智能 公版 APP上绑定天猫精灵账号(即淘宝账号).
注意最后步骤, 否则天猫精灵无法找到设备:
在天猫精灵 APP 找到 “阿里智能” 技能, 手动进行 “尝试” 或 “设备同步”(后期会进行自动同步),即可在 “我家” 的设备列表中看到您的设备
完成以上步骤后,您可以通过天猫精灵音箱控制您的设备了. 您可以对天猫精灵说 “天猫精灵,开灯”, “天猫精灵, 关灯”, “天猫精灵, 把灯调成红色” 或者其他您希望设置的颜色, 设备即响应相应的命令。
7.2天猫精灵配网并控制设备
阿里云设备支持 零配 的配网方式.;
使设备进入配网状态, 对天猫精灵说 “天猫精灵,发现设备”;
天猫精灵回复 “正在为您扫描, 发现了智能灯, 现在连接吗”;
对天猫精灵说 “连接” 或者 “是的”;
天猫精灵回复 “好的, 设备连接中, 稍等一下下哦”
设备收到天猫精灵发送的管理帧配网信息, 进行联网;
等待联网成功, 天猫精灵说 “智能设备联网成功, 现在用语音控制它试试”, 这时您可以通过天猫精灵音箱控制您的设备了。
如果您之前通过云智能 APP 配网, 天猫精灵配网成功后, 云智能 APP 将不再显示设备. 如果继续通过云智能 APP 配网, APP 会配网失败, 显示 “设备添加失败, 设备已被管理员绑定, 请联系管理员解绑或将设备分享给您”。
在天猫精灵 APP 删除设备, 云智能 APP 再进行配网可以配置成功并显示设备。
部分图片来源于网络,侵删
文案:Ai-Thinker-徐宏
审核:Ai-Thinker-徐宏
发文:Ai-Thinker-刘伟

