大数跨境
0
0

玩转智能家居|TB-02二次开发接入天猫精灵,灯具、插座、单火线...

玩转智能家居|TB-02二次开发接入天猫精灵,灯具、插座、单火线... 安信可科技
2020-08-20
1
导读:蓝牙5.0的技术更新开启了物联网时代的大门,它能够在低功耗的模式下,实现更快更远的传输能力。蓝牙5.0的传输




蓝牙5.0的技术更新开启了物联网时代的大门,它能够在低功耗的模式下,实现更快更远的传输能力。
蓝牙5.0的传输速率是蓝牙4.2的4倍
蓝牙5.0的有效传输距离是蓝牙4.2的4倍
蓝牙5.0的数据包容量是蓝牙4.2的8倍
为了满足市场对智能家居的需求,我们决定设计一些基于蓝牙5.0技术以及安信可科技TB-02系列产品的智能家居方案,并开源给各位!



准备材料




  • TB-02开发板 *1
  • 天猫精灵(支持任意版本)*1
  • 阿里飞燕账号(可自助申请) * 1

1

天猫精灵RGB冷暖灯


1.1 开源地址

本示例实现了天猫精灵红绿蓝 + 冷暖的功能,编译烧录后烧录插座三元组与天猫精灵配对即可控制。
Github示例地址:RGBCW_Ali_Mesh点击跳转

1.2 操作说明

本示例使用了五路PWM分别控制红绿蓝冷暖灯,上电默认是冷光灯。
快速上电5次,每次上电时间在3S以内,在第6次上电时灯将会恢复出厂设置,恢复出厂设置时指示灯会闪烁数次。
与天猫精灵配对成功后,指示灯再次闪烁数次。

1.3 控制指令

与天猫精灵成功连接后可使用语音进行控制,常用指令如下:
 
“天猫精灵,开灯”

“天猫精灵,将灯的亮度调为80”

“天猫精灵,将灯的色温调为30”

“天猫精灵,将灯调为红色”

“天猫精灵,将灯调为紫色”

1.4 三元组

下面是我司提供的插座产品申请的三元组,可以用来测试,不保证全部可用。

* 强烈建议用户自行申请三元组。*

1.5 更改记录

本工程是在远程SDK上修改而来,主要修改内容如下:
配置文件中添加了PWM_C这个定义,及其延伸定义
(LIGHT_TYPE_SEL == LIGHT_TYPE_CT_HSL)状态下light_res_hw添加PWM_C,修改为5路。
/mesh/light.c文件中将
 
light_dim_set_hw(idx, 0, get_pwm_cmp(0xff,(100-ct_100)*lum_100/100));
light_dim_set_hw(idx, 1, get_pwm_cmp(0xff, ct_100*lum_100/100));
(向左滑动查看更多代码)
修改为:
 
light_dim_set_hw(idx, 4, get_pwm_cmp(0xff,(100-ct_100)*lum_100/100));
light_dim_set_hw(idx, 3, get_pwm_cmp(0xff, ct_100*lum_100/100));
(向左滑动查看更多代码)


/mesh/light.c文件中,
修改 proc_led 函数,将指示灯闪烁改为呼吸渐变效果;
修改 rf_link_light_event_callback 函数,注释掉了LGT_CMD_SET_SUBSCRIPTION 事件回调。

/mesh/light.h文件中,
添加了 LED_EVENT_PROVISION_SUCCESS LED_EVENT_UNBIND_SUCCESS
LED_EVENT_FACTORY_SUCCESS 宏定义
/mesh/mesh_config.h文件中,将宏定义LIGHT_TYPE_SEL设为LIGHT_TYPE_CT,灯的类型修改为冷暖灯。

1.6 其他可修改项

用户可根据自己的需求在下面这个Demo上修改,实现自己想要的功能:

1.6.1 修改PWM引脚

这些引脚可在app/app_config_8258.h文件中通过宏定义指定,客户可自行查看此文件修改之。
默认定义如下:
 
//--------------- LED / PWM
#define PWM_R GPIO_PB4 //
冷光
#define PWM_G GPIO_PB5 //暖光

#define PWM_B GPIO_PWM3B0 //blue
#define PWM_W GPIO_PWM4B1 //white
(向左滑动查看更多代码)


1.6.2 修改恢复出厂设置的上电次数及上电时长

通过修改mesh/factory_reset.c文件中的factory_reset_serials变量可修改上述参数。
默认数据如下,表示上电五次恢复出厂设置,每次上电时间在0-3S
 
const u8 factory_reset_serials[] = { 0, 3,
0, 3,
0, 3,
0, 3,
0, 3,};
(向左滑动查看更多代码)


若将数据改为如下,则表示上电六次恢复出厂设置,前四次上电时间在0-3S,后两次上电时间在5-20秒
 
const u8 factory_reset_serials[] = { 0, 3,
0, 3,
0, 3,
5, 20,
5, 20,};
(向左滑动查看更多代码)


用户可根据自己的爱好自行修改。

1.6.3 修改配网成功指示灯闪烁次数

mesh/light.h中,修改宏定义 LED_EVENT_PROVISION_SUCCESS 可修改配网成功指示灯灯闪次数及频率

1.6.4 修改出厂设置指示灯闪烁次数

mesh/light.h中,修改宏定义 LED_EVENT_FACTORY_SUCCESS 可修改恢复出厂设置后指示灯灯闪次数及频率。

2

天猫精灵AT通用固件



2.1 开源地址

本示例实现了天猫精灵AT传输功能,编译烧录后烧录任意三元组与天猫精灵配对即可实现AT交互。
Github示例地址:AT_Ali_Mesh点击跳转

2.2 操作说明

本示例基于TB-02_Kit开发板,使用PB1与PB7作为串口引脚,默认波特率为115200。

2.3 AT指令

更多AT指令可参考:TB-01/02 AT指令手册

2.4 语音控制指令

与天猫精灵成功连接后可使用语音进行控制,常用指令如下:
 
“天猫精灵,打开插座”

“天猫精灵,关闭插座”

“天猫精灵,两分钟后关闭插座”

2.5 三元组

下面是我司提供的一些产品申请的三元组,可以用来测试,不保证每个都能够正常使用。

* 强烈建议用户自行申请三元组。*

2.6 指令使用示例

正确烧录固件与三元组后,复位模组,使用天猫精灵音箱找队友,与模组配对成功后,模组将通过串口输出:
 
+STATE:1
配对成功后和通过天猫精灵控制模块,模块收到天猫精灵的控制指令后会通过串口将指令发出来,具体格式如下:
 
+DATA:<OpCode>,<长度>,<参数>
数据示例如下:
  • 关灯 +DATA:8202,4,00714100
  • 开灯+DATA:8202,4,01724100
  • 将灯的亮度调为80 +DATA:824C,5,CCCC734100
  • 将灯的色温调整为 +DATA:825E,9,CCCCA0190000744100
  • 将灯的颜色调整为红色 +DATA:D100,9,C2230100800000FFFF
  • 将灯调整为阅读模式 +DATA:8242,5,0300750000
  • 将风扇调整为三挡 +DATA:D100,4,220A0103
  • 将风扇调整静音模式 +DATA:D100,5,4504F01100
  • 打开风扇的摇头功能 +DATA:D100,4,A3000501
具体的数据值需要自己来解析!
用户手动操作了设备,可主动将当前设备状态上报给天猫精灵,具体数据格式如下:
 
AT+SEND2ALI=<OpCode>,<参数>
指令示例如下:
  • 关灯 AT+SEND2ALI=0482,010100


3

天猫精灵-插座、单火线开关

3.1 开源地址

本示例实现了天猫精灵插座的功能,编译烧录后烧录插座三元组与天猫精灵配对即可控制;
插座Github开源地址:Plug_Ali_Mesh点击跳转
单火线Github开源地址:SFS_Ali_Mesh点击跳转

3.2 操作说明

本示例使用了三个GPIO,分别用作继电器控制,指示灯,按钮。
短按按钮可改变继电器的状态(即开关插座),长按按键(直到指示灯快速闪烁),松开后将会恢复出厂设置,同时指示灯慢闪数次。

3.3 控制指令

与天猫精灵成功连接后可使用语音进行控制,常用指令如下:
 
“天猫精灵,打开插座”

“天猫精灵,关闭插座”

“天猫精灵,两分钟后关闭插座”

3.4 三元组


3.5 更改记录

本工程是在远程SDK上修改来的,主要修改如下:
/app/app.c中,添加了user_gpio_init函数,修改了process_ui函数,实现按键长短按功能。
在main_loop函数中,注释factory_reset_cnt_check();函数,关闭通过上电次数恢复出厂的功能。
/mesh/light.c文件中,修改set_on_power_up_onoff函数中的light_par_save(0)为light_par_save(1),立即保存开关状态。
修改 set_on_power_up_last 函数,实现断电记忆功能
修改 light_par_save_proc 函数,实现未配网也要保存开关状态数据
修改 light_dim_set_hw 函数,只保留开关功能
修改 light_g_level_set_idx_with_trans 函数,将渐变时间强制设为20ms
修改 proc_led 函数,改变指示灯GPIO
/mesh/mesh_config.h文件中,将宏定义LIGHT_TYPE_SEL设为LIGHT_TYPE_NONE,灯的类型修改为None
将宏定义ALI_MD_TIME_EN设为1,打开阿里天猫精灵定时功能。

3.6 用户其他可修改项

用户可根据自己的需求在这个Demo上修改,实现自己想要的功能:

3.6.1 修改按键,指示灯及继电器控制引脚

这些引脚可在app/app_config_8258.h文件中通过宏定义指定,客户可自行查看此文件修改之。
默认定义如下:
 
#define BTN_GPIO GPIO_PD2 //按键GPIO
#define FACTORY_RESTORE 3 //长按恢复出厂设置时间
#define SWITCH_ENABLE_1 0 //按键优先电平

#define PWM_R GPIO_PB4 //继电器GPIO

3.6.2 修改按键长按时间

修改上述宏定义即可。

3.6.3 修改配网成功指示灯闪烁次数

mesh/light.h中,修改宏定义 LED_EVENT_PROVISION_SUCCESS 可修改配网成功指示灯灯闪次数及频率

3.6.4 修改出厂设置指示灯闪烁次数

mesh/light.h中,修改宏定义 LED_EVENT_FACTORY_SUCCESS 可修改恢复出厂设置后指示灯灯闪次数及频率;






复制淘口令  $8FEGcczDq1a$  到淘宝打开

-推荐阅读-
点击文字即可阅读全文


☞ 【小程序配网】ESP-12K在微信小程序上进行soft AP热点配网的入网示例(附Demo)

☞  安信可ESP-12K模组直连Apple HomeKit平台,支持 Siri 控制!

☞ 【新品发布】安信可首款室内定位BU01开发板 , 晃动身体都能感知到的精度!

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

☞ 【蓝牙mesh专题】TB-02开发板到手如何用?一篇文章带你入门天猫精灵语音控制!

部分图片来源于网络,侵删

文案:Ai-Thinker-徐宏

审核:Ai-Thinker-刘伟

发文:Ai-Thinker-企鹅


~安信可科技论坛元气满满重生归来~
~让无线变得更简单~





点击“阅读原文”,查看焕然一新的安信可科技官方论坛!







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