新增Arduino固件-待完善

This commit is contained in:
kerwincui
2022-08-01 01:31:37 +08:00
parent 90badd1eaf
commit 5171094988
12 changed files with 1180 additions and 7 deletions

View File

@@ -0,0 +1,93 @@
/***********************************************************
* function 程序入口
* board: esp8266 core for arduino v3.0.2
* library PubSubClient2.8.0 & ArduinoJson6.19.1
* source: https://github.com/kerwincui/wumei-smart
***********************************************************/
#include "Common.h"
#include "Auth.h"
#include "Mqtt.h"
long lastMqttConn; // 上次mqtt连接时间
long lastPublishMonitor; // 上次发布监测数据时间
long lastPublishSimulateData; // 上次发布测试数据时间
/**
* 启动
*/
void setup()
{
//打开串行端口:
Serial.begin(115200);
printMsg("wumei smart device starting...");
// 连接Wifi
connectWifi();
// 连接Mqtt
connectMqtt();
}
/**
* 循环执行
*/
void loop()
{
// Wifi重连
wifiReconnectionClient();
// 发布实时监测数据
publicMonitorClient();
// 发布模拟数据,测试用
publishSimulateDataClient();
}
/*
* Wifi掉线重连
*/
void wifiReconnectionClient()
{
if (WiFi.status() != WL_CONNECTED)
{
connectWifi();
}
}
/*
* 发布实时监测数据非阻塞、间隔默认1秒
*/
void publicMonitorClient()
{
if (WiFi.status() == WL_CONNECTED && monitorCount > 0)
{
long now = millis();
if (now - lastPublishMonitor > monitorInterval)
{
lastPublishMonitor = now;
monitorCount--;
publishMonitor();
}
}
}
/*
* 发布模拟数据非阻塞、仅用于测试间隔60秒
*/
void publishSimulateDataClient()
{
if (WiFi.status() == WL_CONNECTED)
{
long now = millis();
if (now - lastPublishSimulateData > 60000)
{
lastPublishSimulateData = now;
printMsg("执行定时上报");
// 发布事件
publishEvent();
// 发布时钟同步
publishNtp();
// 发布属性(监测值)
String msg = randomPropertyData();
publishProperty(msg);
}
}
}