添加警报器功能

原理解释

当主机与微控制器连接到同一个WiFi时,可以通过网络进行双向通信。

这时微控制器可以获取主机中CFET2APP的数据,并存储到Host的channels中,称为目标数据。

对目标数据进行条件判断,如果满足某些条件则微控制器发出警报。

程序部分

WiFiConfigSensor

配置属性使微控制器连接到WiFi

const char *ssid = "WiFi_name";
const char *password = "WiFi_password";

注意ESP32微控制器不能连接频率为5G的WiFi

CFETclient (重要)

设定目标服务器URL(主机CFET2APP给出)

const char *serverName = "http://192.168.43.184:8003/PPHeat/CurrentStateNO";

在WiFi成功连接,且此时微控制器与主机处于同一网络时,

CFETclient会轮询目标服务器(HTTP GET请求)

如果正常:

会接收到目标服务器返回的JSON格式信息后进行解析,然后将目标数据存储到channels中

WarningSensor

由于CFETclient已经读取到主机中CFET2APP的目标数据并存储到channels中,

WarningSensor只需要读取channels中的数据进行条件判断,

然后发出警报即可。

错误展示

实际测试时,如果正常串口为输出"Warning"或"Normal"等信息

但测试时发现情况如下:

error

[E][WiFiClient: cpp:266] connect(): socket error on fd 54, errno: 113, "Software caused connection abort"
Error code: -1

推测程序错误原因和CFETclient.cpp下的

WiFiClient client;
HTTPClient http;

有关,但无法进一步查看WiFiClient的声明,也无法打开对应的"WiFi.h"和"HTTPClient.h"头文件,需要进一步查询相关资料


本文章使用limfx的vscode插件快速发布