数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 17776|回复: 10

[家电] 天猫精灵控制家里的灯

[复制链接]
发表于 2019-11-1 14:32:01 | 显示全部楼层 |阅读模式
本帖最后由 A快克电子131359 于 2019-11-1 14:35 编辑

前言:说到智能灯,大家都想自己DIY一个,上一篇讲到如何用微信小程序控制,随着天猫精灵及小米同学的语音控制日益盛行,接入天猫精灵来玩一把语音控制是个不错的选择,天猫精灵掌握了数据的入口,各厂家基本都打通了自家的云服务,抛弃了众多的APP,从繁到简,并且本DEMO是利用天猫精灵的找队友的功能实现语音配网,高大尚,当然了得准备一个天猫精灵方糖智能音箱了。接下来我们搭建简的电路,仍然使用乐鑫的esp8266模块

# 本文目的
本文档介绍`Linux`环境下, `ESP8266`设备快速接入`智能灯`具体流程, 供读者参考.

# 天猫精灵IoT开放平台准备
基于[天猫精灵IoT开放平台文档](https://doc-bot.tmall.com/docs/d ... Id=109489&docType=1),[创建智能灯产品](https://iot.aligenie.com/home): `添加新产品` ->`选择产品品类` ->`家庭灯饰光源` ->`灯`

>**说明:**
>`品牌`, `产品名称`, `产品型号`可任意填, 后续可修改
>通信协议选`Wi-Fi`
>产品标准功能`全选`

**下载设备三元组 excel 表**: `设备调试` ->`调试中心` ->`生成三元组` ->`点击查看` ->`下载三元组`
该`excel`表将在后续用到.
>注意安装工具: `sudo apt-get install gccgitwget makelibncurses-dev flex bison gperf python python-serial`

#### step 2: 安装量产工具必需 python 组件
```
sudo apt-get install python-futurepython-xlrd
```
#### step 3[optional]: 安装测试智能灯
用户可接入`LED`小灯, 用于测试本`SDK`功能, `LED`小灯接入方法:
- `GPIO16`串联适值电阻, 防止电流过载
- 适值电阻接`LED`灯长脚
- `LED`灯短脚接`GPIO0`
**目录结构说明:**
```
├── aiot       // 对接天猫精灵IoT平台
│   ├── core   // aiot库和头文件
│   └── port   // aiot适配层
├── component.mk        // IDF 平台 component Makefile
├── configs    // 配置
│   ├── esp8266_config  // 配置分区表和默认 SDK 配置
│   └── tmall_param     // 三元组配置
├── examples   // 应用 examples 和解决方案
│   └── simple_light    // 智能灯解决方案
├── Kconfig    // 用于配置组件
├── Makefile.projbuild  // 添加额外目标
├── README.md  // 本说明文档
├── rtos       // ESP8266_RTOS_SDK
└── tools      // 工具
   ├── MassiveProduction  // 量产工具
   └── OTAGeneration      // OTA 工具

```
# 配置 SDK
#### step 1: 配置三元组
将前述三元组`excel`表拷贝到`esp8266-tmall/configs/tmall_param/`目录下, 若有多个`excel`, 将自动取第一个.

#### step 2: 生成默认 SDK 配置
```
cd esp8266-tmall/examples/simple_light

makedefconfig
```
>**说明:**
>默认生成`2MB``flash`配置, 若用户`flash`是`1MB`, `4MB`, `8MB`, 请分别使用如下命令生成默认配置:
>`make defconfigfsize=1MB`

>`make defconfigfsize=4MB`
>`make defconfigfsize=8MB`
然后进行'make'操作

#### step 3[optional]: 用户自定义配置
```
makemenuconfig
```
用户通过`make menuconfig`可自定义配置.  

>例如:
>`Serial flasher config`中, 配置烧写串口, 烧写波特率等
>`Example Configuration`中, 配置恢复出厂设置`GPIO` (默认`GPIO0`, 即开发板上`Boot`按键), 按键时间(默认`3s` ), 智能灯`GPIO` (默认`GPIO16` )等
>`Component Config` ->`AIOT`中, 配置配网时间, 设备上报间隔, `Task stack`, `SNTP server`等
# 编译和烧写
#### step 1[optional]: 擦除 flash
```
makeerase_flash
```
>只需执行一次, 用于清空`flash`上所有内容

#### step 2: 编译
```
make
```
>说明: `make`应在`make defconfig`之后, 编译结果在`build`目录下, 用户无需关心

#### step 3: 烧写通用固件
```
make flash
```

#### step 4: 生成量产三元组 bin
```
makemp
```
>**说明:**
>`make mp`将自动解析前述三元组`excel`表, 自动生成多个三元组`bin`, 可用于批量烧录到多个设备上
>`make mp`结果位于`build/aiot_mp`目录

**build/aiot_mp目录说明:**
```
├── aiot_values.csv    // excel 生成的 csv 文件, 用于生成 bin
├── bin    // 三元组 bin, 用于量产时分别烧录到多个模组
├── csv    // 每个三元组 bin 对应的 csv 文件
├── 历史订单productID_4582的数据.xlsx  // 用户原始三元组 excel 表格
├── mp_bins     // 量产测试固件, 包含target.bin和三元组 bin
└── target.bin  // 合成的通用固件 bin, 用于量产时统一烧录到所有模组
```

#### step 5: 烧写三元组 bin
```
makefaiot
```
>批量烧录三元组`bin`

>只需执行一次, 仅在擦除整个`flash`后需重新烧录
#### step 6[optional]: 清除所有配置和编译产物
```
makeclean_all
```
>将清除所有用户配置, 和编译产物
>修改`flash size`后, 用户必须执行该命令

# 运行 example, 测试功能
```
make monitor
```
>`make monitor`将打开串口, 运行`example bin`

#### step 1: 配网测试
设备第一次运行, 自动进入配网模式, `log`打印`channel round up to 1`
- 配网超时将退出配网模式
- 配网信息错误, 将重启重新进入配网模式

**配网对话语料库如下:**
`A`: `天猫精灵, 发现设备`
`B`: `正在扫描智能设备..., 发现了智能灯, 现在连接吗`
`A`: `连接`
`B`: `好的, 设备连接中, 稍等一下下喔...智能设备联网成功, 现在语言控制它试试`

**`LED`小灯将从常亮状态(设备待配网), 依次经历慢闪状态(设备正配网), 快闪状态(设备连接), 熄灭状态(设备联网成功).**

#### step 2: 控制测试
**控制对话语料库如下:**
`A`: `天猫精灵, 开灯`
`B`: `没问题`
// `LED`小灯将打开..
`A`: `天猫精灵, 关灯`
`B`: `好的, 亲爱的主人~`
// `LED`小灯将关闭..

>重启设备, 设备将自动连接`AP`, 仍可被控制
>`天猫精灵 APP`上设置设备位置或设备别名, 即可通过位置控制和别名控制

#### step 3: 恢复出厂设置测试
用户长按`Boot`按键`3s`(本文:配置`SDK` ->`step 3`可修改), 或在`天猫精灵 APP`上, 在该设备页面, `删除设备`即可恢复出厂设置.

`log`打印`Restore the Factory Settings..`后重启进入配网模式.
通过以上操作,就可以控制了,是不是很神奇呢
想了解更多请联系作者交流


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +30 收起 理由
家睦 + 30

查看全部打赏

发表于 2019-11-7 07:41:47 来自手机浏览器 | 显示全部楼层
有没有用蓝牙mesh模块连接天猫精灵的详细资料?
回复 支持 反对

使用道具 举报

发表于 2019-11-5 12:16:45 | 显示全部楼层

这个可以有,我必支持。
回复 支持 反对

使用道具 举报

发表于 2019-11-4 16:21:06 | 显示全部楼层
有没有通用一些的方案可以自己玩的啊。。。。例如芯片淘X链接,软件工具下载啊
回复 支持 反对

使用道具 举报

发表于 2019-11-4 10:43:12 | 显示全部楼层
厉害了,能力不足,只能路过欣赏了。
回复 支持 反对

使用道具 举报

发表于 2019-11-3 10:02:46 | 显示全部楼层
方便给个更详细的文档吗?
回复 支持 反对

使用道具 举报

发表于 2019-11-3 09:38:03 | 显示全部楼层
高手,厉害了。
我都是买现在的智能开关插座,现在家里所有的灯和大部分插座都可以用天猫精灵控制了
回复 支持 反对

使用道具 举报

发表于 2019-11-2 14:08:54 | 显示全部楼层
:smile:知识不够用
回复 支持 反对

使用道具 举报

发表于 2019-11-2 08:55:21 | 显示全部楼层
这个可以有,支持一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-1 18:58:13 来自手机浏览器 | 显示全部楼层
zxy882266 发表于 2019-11-1 17:16
Linux不熟悉啊,很想玩,有一块和你一样的板子

装个虚拟机然后用Ubuntu
回复 支持 反对

使用道具 举报

发表于 2019-11-1 17:16:43 | 显示全部楼层
Linux不熟悉啊,很想玩,有一块和你一样的板子
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-7-22 13:39 , Processed in 0.265201 second(s), 15 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表