2019-5-12 22:42:43 [显示全部楼层]
6429浏览
查看: 6429|回复: 1

[讨论交流] 天猫精灵与阿里云IoT入门套件-天猫精灵控制LED

[复制链接]
本帖最后由 跳梁者 于 2019-5-12 22:49 编辑

五一假期之前收到个快递,打开才惊喜的发现自己获得了一套阿里云IoT入门套件的试用.本人内心是极度不可置信&欣喜的,毕竟有着完美错过各种奖品/年会的体质.

下面我们说正事儿: 阿里云IoT入门套件
1. 关于开箱, 有很多朋友已经发过了,对比了一下图比我好看,文字比我优秀,我还是不发了 哈哈.
2. 关于起步上手,跟开箱的理由差不多 官方文档其实已经相当优秀了, 可能有些没有任何基础的玩家(比如我),刚开始会有些不知所措,但是其实跟着文档一步一步,做个阿里云APP控制一下LED灯什么的 是很简单的.
3. 关于本篇文章,我们要使用阿里云开源的AliOS-Things基于阿里云IoT入门套件中的萤火虫开发板,适配板,LED灯(或者继电器)和家里的天猫精灵,做一个天猫精灵控制的灯具.效果如下


### 分析需求
1. 天猫精灵怎么和我们的开发板产生关联.
2. 开发板怎么来控制灯的开关状态.

### 实现
1. 天猫精灵怎么和我们的开发板产生关联.
经过查找文档,发现阿里智能生活平台可以很简单的使用公版App使天猫精灵音箱控制设备.
阅读文档我们的目标就明确为:https://living.aliyun.com创建产品, 使用公网APP配网绑定.

    a. 创建项目
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图1

    b. 创建(关联)产品
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图2
产品这里我们写入名称,选择一个分类其他默认就可以了,我们选择灯这个分类, 点击后面的功能定义可以看到灯的常用功能定义.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图3
    c. 添加设备
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图4
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图5
上图红色箭头附近有个 查看json 这里查看的是设备的TSL, 后面我们会需要.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图6
保存之后会弹出设备的三元组数据(平台确定我们设备的标识,按照单词首字母我们叫做PK,DN,DS,PS,注意PS在下图右侧PK的下面一行),我们后面需要.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图7

    d. 设置允许天猫精灵接入.

天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图8
在人机交互这一步中我们打开 使用公版APP控制产品选项.(此处有两个二维码,一个是公版 APP 云智能的二维码,你也可以在手机市场自行下载注册, 还有一个叫 配网二维码 同样是我们之后需要用到的东东.)
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图9
开启天猫精灵选项.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图10
到这里我们在阿里智能生活平台的工作就做的差不多了,最后一步批量投产暂时用不到,我们使用现在设置的功能就可以玩起来了. 当然我们还需要重要的一步客户端(萤火虫板子)的支持.

现在我们有了一个可以使用的设备三元组数据,和一个配网二维码, 一个设备的TSL,我们怎么能使天猫精灵和我们的萤火虫板子绑定起来呢?
2. 开发板怎么来控制灯的开关状态.(1.配网 2.控制GPIO)

相关文档[AliOS-Things]发布于2017年杭州云栖大会, 是 AliOS 家族旗下的、面向IoT领域的、高可伸缩的物联网操作系统,于2017年10月20号宣布在github上开源.支持多种CPU架构,包括:ARM,C-Sky,MIPS,RISCV,rl78,rx600,xtensa等。AliOS Things认证的芯片和模组数量有200+,认证的传感器数量有100+。 当然了最重要的他支持我们的萤火虫 基于ESP32.


具体安装, 可以参考 github 或者 业余爱好者们 的建议, 简单点说就是 vscode+插件 github 拉代码就可以跑起来了.

此处我们使用示例代码里的 linkkit_example_solo 例子.

主要修改内容在
https://github.com/alibaba/AliOS-Things 代码的 app/example/linkkit_example_solo.c 文件
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图11




    a. 使用刚才在平台创建设备的三元组数据,修改三元组(四个元素至于我为啥叫三元组... 我也不知道哈哈)
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图12

天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图13

修改完毕我们依次执行 编译,上传,查看log.



编译之前我们需要选择一下我们要编译的程序和板子,点击编译图标之前的部分,在弹出窗口依次选择linkkitapp, esp32devkitc
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图17

编译:
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图14
上传:
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图15
查看log此处敲回车输入执行cli命令:active_awss 激活配网状态. (此步骤也可使用按键激活,我们demo使用cli来简单处理)
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图16
当萤火虫开发板进入配网状态之后 我们手机打开云智能APP,扫描平台上面的配网二维码.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图18
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图19
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图20

天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图21
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图22
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图23
当添加好设备之后我们可以去天猫精灵的APP查看到已绑定阿里智能上的设备.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图24
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图25
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图26
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图27
到这里我们完成了配网,现在喊天猫精灵开关灯,其实已经可以反馈到我们阿里智能生活平台创建的设备的mqtt频道去了, 可以在调试页面查看设备状态.
但是我们怎么完成控制LED呢?
我们 继续修改 app/example/linkkit_example_solo.c 文件 的代码,达到我们的目的:根据平台mqtt中获取到的属性LightSwitch来控制GPIO25也就是D2(我们led插接的IO口)
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图28
1. 加入头文件引 aso.h 用
2. 声明变量 trigger 用来控制 GPIO25 的状态.
3. 使用平台获取的TSL 修改 data/solo_tsl.data (此处注意数据的转移和压缩.)
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图29
4. 添加三行代码,在程序开始的时候 初始化GPIO25.
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图30
5. thing_prop_changed 方法中添加根据 LightSwitch 的值,控制GPIO状态的逻辑
天猫精灵与阿里云IoT入门套件-天猫精灵控制LED图31

大致流程就是这样

阿里智能生活平台创建设备(获取三元组/TSL/配网二维码)
修改 AliOS-Things编译烧录支持ESP32的微修改的example: linkkitapp, 执行云智能APP配网.
天猫精灵<=> 云智能 账号绑定,控制设备.

-----------------------分割线--------------------

如果同样拥有阿里IoT入门套装的朋友,玩起来有什么疑问,或者xx的地方欢迎留言讨论.
有官方组织交流群的话带我一个

=============================

下面的截图是什么? 怎么删除乜 >.<


截图201905122206197028.png
截图201905122237069264.png
截图201905122238385660.png
截图201905122241097227.png

KIKIYA  管理员

发表于 2019-5-13 00:32:26

全篇碎屏的手机是亮点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail