经过智能灯的设计,让同学们更深入的学习通过手机进行远程控制。即实现通过手机APP为智能灯配网,使其具有联网功能,然后以云平台为煤介,实现APP控制智能灯的开关。除实现这些基本功能外,我们还可以进行定时开关灯的控制,周期进行不同时间开/关灯、触发方式工作等。通过该实验,能够更清晰的进行智能家居的设备开发。从云平台到设备端进行联调,熟悉智能产品的设计过程及方法。为以后进行真实产品的设计开发做好准备。
void ICACHE_FLASH_ATTR
mqttDataCB(uint32_t *args, const char* topic, uint32_t topic_len, const char *data,
uint32_t data_len)
{
int i = 0, status=0, ret = 0;
// 申请空间来存储主题和数据
char *topicBuf = (char*)os_zalloc(topic_len 1),
*dataBuf = (char*)os_zalloc(data_len 1);
MQTT_Client* client = (MQTT_Client*)args;
// 拷贝主题到申请的空间内
os_memcpy(topicBuf, topic, topic_len);
topicBuf[topic_len] = 0;
// 拷贝数据到申请的空间内
os_memcpy(dataBuf, data, data_len);
dataBuf[data_len] = 0;
os_printf("Receive topic: %s, data: %s \r\n", topicBuf, dataBuf);
// 解析主题名
for(i=0; i<SUB_TOPIC_COUNT; i )
{
ret = strncmp(topicBuf, sub_topic_id[i], topic_len);
//os_printf("ret = %d\n", ret);
if(!ret)
{
//os_printf("dataBuf:%s\n",dataBuf);
status = atoi(dataBuf);
status = (int)(*dataBuf - 48);
os_printf("status:%d\n",status);
break;
}
}
评论