readme

## 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"
```

Links

Maintainer

  • xuwh <xuwhdev@gmail.com>

License: MIT

Tags

To add this component to your project, run:

idf.py add-dependency "imaxu/yuniot^0.0.8"

or download archive

Stats

  • Archive size
    Archive size: 21.38 KB
  • Downloaded in total
    Downloaded in total 10 times
  • Downloaded this version
    This version: 0 times

Badge

imaxu/yuniot version: 0.0.8
|