## Yuniot ESP开发框架 [![Component Registry](https://components.espressif.com/components/imaxu/yuniot/badge.svg)](https://components.espressif.com/components/imaxu/yuniot) [![Supported Versions](https://img.shields.io/badge/esp_idf-5.3-red)](https://pypi.org/project/tinymoss/) [![Supported Versions](https://img.shields.io/badge/MIT-green)](https://#) ### 说明 为了方便开发乐鑫系列芯片,基于esp-idf官方版本,封装了简化版本的组件库。该组件库对常见需求进行了二次封装,可以使开发过程更专注于硬件应用。 ### 安装组件 ```shell idf.py add-dependency "imaxu/yuniot" ``` ### 使用组件 #### 基本调用 ```c #include "yuniot.h" #include "yuniot_events.h" yuniot_event_loop_create(); yuniot_event_handle_register_with(YUNIOT_EVENT_ANY, yuniot_event_handler, NULL); yuniot_init(); yuniot_main_loop(); ``` #### 全局配置 ```c #include "yuniot_macro.h" ``` 在头文件中,包含了一系列有用的宏定义,通过修改这些宏定义来实现改变框架的行为。 #### 循环事件库 ```c #include "yuniot_events.h" ``` ##### 创建默认事件循环库 ```c esp_err_t yuniot_event_loop_create(void); ``` ##### 注册事件处理程序 ```c esp_err_t yuniot_event_handle_register_with(yuniot_event_id_t event_id, esp_event_handler_t event_handle, void *event_args); ``` *event_id* 事件ID, 参考后表《事件定义》 *event_handle* 事件处理函数,类型为esp_event_handler_t *event_args* 事件处理函数的用户参数 ##### 手动触发事件 ```c esp_err_t yuniot_event_post(yuniot_event_id_t event_id, const void *event_data, size_t event_data_size); ``` *event_id* 事件ID, 参考后表《事件定义》 *event_data* 事件触发时携带的数据 *event_data_size* 事件数据的长度 ##### 事件定义 | 事件名称 | 宏定义 | 说明 | |---------------------------|--------------------------------------|----------------------------------------------| | 主循环tick | YUNIOT_EVENT_TICK | 主循环函数在执行时,每一个循环周期都会触发该事件 | | GPIO高电平输入 | YUNIOT_EVENT_GPIO_INPUT_HIGH | 当指定监听的引脚输入高电平时,触发该事件 | | GPIO低电平输入 | YUNIOT_EVENT_GPIO_INPUT_LOW | 当指定监听的引脚输入低电平时,触发该事件 | | 硬件重置事件 | YUNIOT_EVENT_RESET | 仅在 ```YUNIOT_RESET_ENABLE```启用时有效 | | 硬件重置按钮按下事件 | YUNIOT_EVENT_RESET_BUTTON_PRESSDOWN | 仅在 ```YUNIOT_RESET_ENABLE```启用时有效 | | 硬件重置按钮抬起事件 | YUNIOT_EVENT_RESET_BUTTON_PRESSUP | 仅在 ```YUNIOT_RESET_ENABLE```启用时有效 | | Wi-Fi等待配网事件 | YUNIOT_EVENT_WIFI_WAIT_CONFIG | Wi-Fi信息不存在时,触发配网事件 | | Wi-Fi正在连接事件 | YUNIOT_EVENT_WIFI_WAIT_CONNECT | | | Wi-Fi连接成功事件 | YUNIOT_EVENT_WIFI_CONNECTED | 无线网络被正确连接,并且已获取到IP时,触发该事件 | | Wi-Fi连接断开事件 | YUNIOT_EVENT_WIFI_DISCONNECTED | 无线网络被断开时,触发该事件 | | Wi-Fi连接发生错误事件 | YUNIOT_EVENT_WIFI_ERROR | 无线网络连接发生错误时触发该事件 | | 收到内部消息队列的消息 | YUNIOT_EVENT_QUEUE_DATA_RECEIVED | 从内部队列收到数据时触发 | | MQTT连接成功 | YUNIOT_EVENT_MQTT_CONNECTED | MQTT成功连接到网关时触发 | | MQTT断开连接 | YUNIOT_EVENT_MQTT_DISCONNECTED | MQTT连接断开或被复位时触发 | | 收到OTA指令 | YUNIOT_EVENT_OTA | 收到云端推送的OTA指令时触发,仅在 ```YUNIOT_OTA_ENABLE``` 启用时有效 | #### 物理引脚控制 ```c #include "yuniot_gpio.h" ``` #### MQTT ```c #include "yuniot_mqtt.h" ``` #### 空中升级支持 ```c #include "yuniot_ota.h" ``` #### 重置设置支持 ```c #include "yuniot_reset.h" ``` #### Smart Config快速配网 ```c #include "yuniot_smart.h" ``` #### 消息队列 ```c #include "yuniot_queue.h" ```
idf.py add-dependency "imaxu/yuniot^0.0.7"