有事可以联系扣扣:577665300
全部博文(11)
分类: C/C++
2017-03-31 22:52:38
微信硬件直连SDK
1. 概述
微信硬件直连SDK是微信硬件平台对外提供的,能够帮助设备自动登录微信硬件云的设备SDK库,目前仅支持Wi-Fi设备使用。
采用微信硬件直连SDK,能够降低智能设备接入微信硬件云的开发门槛。开发者只需要按照微信硬件云规范的格式生成数据并调用SDK接口上报数据,同时解析和处理服务器返回或推送下来的业务数据即可,设备应用层不需要处理登录、鉴权等网络逻辑。
2. 使用说明
目前设备直连SDK主要为硬件创建了上行和下行的数据通道。设备应用层不需要处理登录,鉴权等网络逻辑,只需要负责按微信硬件云平台的格式生成数据并调用SDK接口上报数据,同时解析和处理服务器返回或推送下来的业务数据即可。
3.该项目的功能是用微信实现远距离或者局域网控制三色灯。本教程使用的硬件方案是安信可得esp8266模块
硬件见图1:
图 1
废话了那么多赶紧开始看代码。
微信直连sdk主函数不是main,而是user_init(void),该sdk跑的是rtos系统。该函数在User_main.c中可以找到。
void user_init(void)
{
UART_SetPrintPort(0);
//初始化串口
uart_init(BIT_RATE_115200, BIT_RATE_115200);
//设置wifi模块为station模式
wifi_set_opmode(STATION_MODE);
//系统任务初始化
system_init_done_cb(init_done_cb);
}
station模式就是把wifi模块当做一个基站,去连接路由器。
主要看任务初始化函数:system_init_done_cb(init_done_cb);简单理解就是调用了这个函数,系统就会回调
init_done_cb;
void init_done_cb(void)
{
os_printf("\r\ncompile time:%s %s\r\n", __DATE__, __TIME__); //打印日期 忽略
os_printf("SDK Version %s\r\n", system_get_sdk_version()); //打印版本号 忽略
platform_init(); //重点关注
}
我们再定义到platform_init();
看一下这里:实际上就是创建了一个时间任务函数,10ms会检测一次airkiss_app_button_check函数
进入airkiss_app_button_check函数可以看到 长按3s按键可以进入 network_state_change(network_state_smart);即智能配置网络模式,在该模式下可以通过扫描型号唯一二维码给,wifi模块配置路由器的账号密码。从而让wifi模块能连接网络。
case 2:
if (KEY_TimeCount <= 3*1000/10) //3s
{
KEY_TimeCount++;
}
else
{
AIRKISS_APP_DEBUG("button long press!!!\r\n");
network_state_change(network_state_smart);
KEY_State ++;
}
后面的代码有点不知道怎么组织语言,先写到这里。