大数跨境
0
0

【安信可 IDE1.5】安信可Windows一体化 IDE V1.5全面升级!支持SDK二次开发,直连阿里云物联网生活平台。

【安信可 IDE1.5】安信可Windows一体化 IDE V1.5全面升级!支持SDK二次开发,直连阿里云物联网生活平台。 安信可科技
2020-09-04
0
导读:随着国内AI智能音响的崛起 “天猫精灵” 音响已随处可见站立于AI时代的风口如何让我们的用户把产品更快地接入


随着国内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:

  1. 点击C/C++分支,选择 Existing Code as MakeFile Project 工程;

  2. 复制刚刚下载的文件夹路径,import --> Cross Gcc , 并且去掉对应的 C++ 勾勾;

  3. 导进刚刚下载的文件夹,如图所示:


2.3 配置环境步骤:


  1. 项目属性设置,鼠标选中项目名称右键点击,在右侧菜单中选择Properties;

  2. 在 Properties --> C/C++ Build --> Build directory 选择编译的工程路径,找到阿里飞燕直连的工程demo,导入这个文件夹:aithinkeraliyun/espaliyun/examples/solutions/smart_light 工程。

  3. 添加IDF环境变量在 Properties --> C/C++ Build --> Environment 点击Add ,路径为刚刚的下载的文件夹路径,变量名字为 IDF_PATH;

  4. 然后点击 OK 保存退出!



然后,指定的依赖 IDF_PATH 路径

2.4  添加编译选项:


与其他版本不一样, RTOS 3.0或以上支持面板设置参数,即通过 make menuconfig 设置,同样地,我们可以利用快捷键去快速设置;


  1. 构建menuconfig菜单,选中项目名称,在右键菜单中选择 Make Targets --> Create;或者快捷键 Alt + F9 ;

  2. 在弹出的对话框中取消勾选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设备第一次运行时, 会进入配网模式

用安信可串口工具打开,有下面的打印,则说明进去配网模式;



安装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-刘伟




【声明】内容源于网络
0
0
安信可科技
全球领先的联网模组、智能家居等物联网硬件方案提供商。
内容 393
粉丝 0
安信可科技 全球领先的联网模组、智能家居等物联网硬件方案提供商。
总阅读420
粉丝0
内容393