阿里云网址:https://www.aliyun.com/
阿里厂测包:https://open.aliplus.com/download
阿里云智能开放平台:https://open.aliplus.com/docs/open/
esp8266-alink-v1.0:https://github.com/espressif/esp8266-alink-v1.0
代码分析:
- 初始化led
- 初始化设备demo(如果出错 打印原因)(显示sdk版本 Alink版本 正在运行的user bin位置 剩余可用heap区的大小
)回调Alink start函数 - Alink star(初始化主要设备信息,按键触发 esp信息准备
espAlink准备(回调alink_event_handler打印事件 Alink cloud连接情况)
回调read_task_test()阅读任务测试) - read_task_test(读cmd 执行Json解析 读取后将设备状态发送到云 Alink json释放空间)
void read_task_test(void *pvParameters)
{
while (1)
{
ALINK_LOGI("read down cmd param");
char *down_cmd = alink_malloc(ALINK_DATA_LEN);
if (alink_read(down_cmd, ALINK_DATA_LEN, portMAX_DELAY) < 0) {
ALINK_LOGW("alink_read is error");
continue;
}
ALINK_LOGE("down_cmd param(json):%s", down_cmd);
json_value *jptr = json_parse(down_cmd, strlen(down_cmd));
if (jptr) {
device_data_parse(jptr, "Switch", &(virtual_device.Switch));
device_data_parse(jptr, "ErrorCode", &(virtual_device.ErrorCode));
if (virtual_device.Switch == 1) {
led_on();
switchOpenOff = 1;
} else {
led_off();
switchOpenOff = 0;
}
ALINK_LOGE(
"read: OnOff_Power:%d, TimeDelay_PowerOff: %d, WorkMode_MasterLight: %d, free heap: %d\n",
virtual_device.Switch, virtual_device.ErrorCode,
system_get_free_heap_size());
}
/* post device status to cloud after read */
proactive_report_data();
alink_free(down_cmd);
json_value_free(jptr);
}
}
产品开发初始化
从阿里服务器后台导出设备 TRD 表格,并在 user_config.h 文件中修改宏定义。此时,系统会调用 alink_init() 传入产品注册信息,并注册事件回调函数。
- 设备配网过程中的所有动作,都会传入事件回调函数中。您可以根据实际需求,在事件回调函数中设置相应的处理。比如,在当设备进入配置配网模式灯慢闪,等待激活时灯快闪等。