Крайний код 35 версия
parent
cb0938fa50
commit
46a1131229
128
M5Atom_airqa.ino
128
M5Atom_airqa.ino
|
@ -17,6 +17,14 @@
|
|||
24A160474D14
|
||||
24A160542B80
|
||||
|
||||
|
||||
Белая 2B80
|
||||
Шумная 38CC
|
||||
У вас 23AC
|
||||
Офис 5450
|
||||
Кухня 4D41
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
#include "esp_sleep.h"
|
||||
|
||||
|
@ -47,7 +55,7 @@
|
|||
#define CCS811_ADDR 0x5B //Default I2C Address
|
||||
//#define CCS811_ADDR 0x5A //Alternate I2C Address
|
||||
|
||||
unsigned int VersionSW = 30; //65536 Версия прошивки
|
||||
unsigned int VersionSW = 35; //65536 Версия прошивки
|
||||
|
||||
//15 - добавлено то, се, забыл вообще дописать что добавленоSerial
|
||||
//19 - вывод в консоль всех действий, ошибки с обновлнеием - починил, прияногое мигание светодиодом, тест для поиска metrics.
|
||||
|
@ -61,6 +69,11 @@ unsigned int VersionSW = 30; //65536 Версия прошивки
|
|||
//28 - калибровка вернулась
|
||||
//29 - baseline выведен и отключен
|
||||
//30 - новое освещение оранжевый цвет
|
||||
//31 - фиксим время
|
||||
//32 - рестарт без wifi
|
||||
//33 - бейслайн и куча изменений по переподключению mqtt
|
||||
//34 - правка с опросом, бесконечный цикл
|
||||
//35 - закоменчен вывод ошибок available
|
||||
|
||||
gpio_num_t pinWak = GPIO_NUM_23;
|
||||
|
||||
|
@ -78,12 +91,11 @@ PubSubClient MqttClient(espClient);
|
|||
IPAddress IpMqtt;
|
||||
|
||||
WiFiUDP ntpUDP;
|
||||
NTPClient timeClient(ntpUDP, "0.ua.pool.ntp.org", 7200, 60000); //Собственно сервер времени смещение и частоат запроса, но он вручную
|
||||
NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 60000); //Собственно сервер времени смещение и частоат запроса, но он вручную
|
||||
const PROGMEM char *willmess = "{\"conn\":\"err\"}";
|
||||
const char *mqttHostName = "metrics"; //Хостнейм брокера metrics.local cctv.automation.art //192.168.89.210
|
||||
unsigned int mqttPort = 1883; //Порт брокера 1883 8889
|
||||
|
||||
|
||||
String getMacAddress();
|
||||
String macc = getMacAddress();
|
||||
String topicTemp = "aastudio/sens/" + macc + "/data/0";
|
||||
|
@ -102,7 +114,7 @@ int PROGMEM nextReqSensor = 10000; //опрос датчиков раз в 10 с
|
|||
int PROGMEM nextMqttSend = 60000; //Отправка
|
||||
|
||||
float TempAv, HumAv, Eco2Av, TvocAv;
|
||||
unsigned int BaselineTvoc=0;
|
||||
unsigned int BaselineTvoc = 0;
|
||||
byte errorID = 0;
|
||||
long rssi = 0;
|
||||
byte idxT = 0, idxH = 0, idxECO = 0, idxTVOC = 0;
|
||||
|
@ -139,7 +151,7 @@ void setup()
|
|||
{
|
||||
|
||||
Serial.begin(115200);
|
||||
// Serial.setDebugOutput(true);
|
||||
Serial.setDebugOutput(true);
|
||||
|
||||
btStop();
|
||||
// esp_bt_controller_disable();
|
||||
|
@ -162,7 +174,7 @@ void setup()
|
|||
}
|
||||
|
||||
//ccs.setTempOffset(8.6);
|
||||
// ccs.setBaseline(21634);
|
||||
ccs.setBaseline(25725);
|
||||
//Установка коеффициентов каллибровки по MAC адресу
|
||||
// SetCallibrationCoeff();
|
||||
|
||||
|
@ -247,16 +259,16 @@ int reqNtpTime()
|
|||
if (timeClient.update())
|
||||
{
|
||||
uint32_t timeEpoch = timeClient.getEpochTime();
|
||||
setTime(timeEpoch);
|
||||
|
||||
Serial.print(timeEpoch);
|
||||
Serial.print(" <=ntp== ==device=> ");
|
||||
Serial.println(now());
|
||||
|
||||
if (timeEpoch < 100000)
|
||||
if (timeEpoch < 1000000)
|
||||
{
|
||||
Serial.println("Error Time");
|
||||
}
|
||||
|
||||
setTime(timeEpoch);
|
||||
// Serial.print(timeEpoch);
|
||||
// Serial.print(" <=ntp== ==device=> ");
|
||||
// Serial.println(now());
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -287,7 +299,7 @@ int checkButton()
|
|||
|
||||
void OTAUpdate()
|
||||
{
|
||||
Serial.println("!!!!!!!!!!!!!!!!!!!!!!!!!OTAUpdate() START!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
Serial.println("!!!OTAUpdate() START!!!!");
|
||||
bool flagOTA = false;
|
||||
String keyOTA;
|
||||
String payload;
|
||||
|
@ -351,7 +363,6 @@ void OTAUpdate()
|
|||
if (flagOTA == true)
|
||||
{
|
||||
// flagOTA = false;
|
||||
|
||||
disconnectMQTT();
|
||||
|
||||
ESPhttpUpdate.rebootOnUpdate(true);
|
||||
|
@ -461,33 +472,38 @@ void reqSensorData()
|
|||
dtostrf(hdc1080Hum, 5, 2, outstr);
|
||||
HumAv = atof(outstr);
|
||||
|
||||
for (int g = 0; g <= 7; g++)
|
||||
{
|
||||
while (!ccs.available())
|
||||
{
|
||||
// Serial.println("ccs.NONE available()");
|
||||
}
|
||||
|
||||
for (int g = 0; g <= 5; g++)
|
||||
{
|
||||
delay(1000);
|
||||
if (ccs.available())
|
||||
{
|
||||
if (!ccs.readData())
|
||||
{
|
||||
ccs.setEnvironmentalData(hdc1080Hum-55,hdc1080Temp-25);
|
||||
ccs.setEnvironmentalData(hdc1080Hum - 55, hdc1080Temp - 25);
|
||||
eco2 = ccs.geteCO2();
|
||||
tvoc = ccs.getTVOC();
|
||||
BaselineTvoc=ccs.getBaseline();
|
||||
Serial.println(eco2);
|
||||
Serial.println(tvoc);
|
||||
BaselineTvoc = ccs.getBaseline();
|
||||
Serial.print(eco2);
|
||||
Serial.print(" ");
|
||||
Serial.print(tvoc);
|
||||
Serial.print(" ");
|
||||
Serial.println(BaselineTvoc);
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("==========ECO TVOC NONE READ");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
eco2 = 0;
|
||||
tvoc = 0;
|
||||
Serial.println("==========ECO TVOC NONE AVAILABLE");
|
||||
errorID = 5;
|
||||
}
|
||||
|
||||
// else
|
||||
// {
|
||||
// eco2 = 0;
|
||||
// tvoc = 0;
|
||||
// Serial.println("==========ECO TVOC NONE AVAILABLE");
|
||||
// errorID = 5;
|
||||
// delay(1000);
|
||||
// }
|
||||
}
|
||||
|
||||
Eco2Av = eco2;
|
||||
|
@ -500,6 +516,8 @@ int SendMqttReq(bool sendVal = true, bool sendStatus = true, byte statusConn = 1
|
|||
{
|
||||
if (mqttSendFlag == true)
|
||||
{
|
||||
ledset(2, true);
|
||||
|
||||
char resultString[200];
|
||||
String JsonData = "";
|
||||
rssi = WiFi.RSSI();
|
||||
|
@ -511,7 +529,7 @@ int SendMqttReq(bool sendVal = true, bool sendStatus = true, byte statusConn = 1
|
|||
doc["h"] = HumAv;
|
||||
doc["eco"] = (int)Eco2Av;
|
||||
doc["tvoc"] = (int)TvocAv;
|
||||
doc["blt"]= BaselineTvoc;
|
||||
doc["blt"] = BaselineTvoc;
|
||||
if (macc == "24A1605423AC")
|
||||
{
|
||||
doc["ligh"] = (int)map(analogRead(33), 0, 4095, 0, 100);
|
||||
|
@ -557,6 +575,10 @@ int SendMqttReq(bool sendVal = true, bool sendStatus = true, byte statusConn = 1
|
|||
conn = "slp";
|
||||
break;
|
||||
|
||||
case 4:
|
||||
conn = "upd";
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -589,7 +611,7 @@ void reconnectMqtt()
|
|||
Serial.print("MQTT reconnect...");
|
||||
|
||||
circle++;
|
||||
if (circle == 2)
|
||||
if (circle == 7)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
@ -607,8 +629,8 @@ void reconnectMqtt()
|
|||
}
|
||||
else
|
||||
{
|
||||
////Serial.print("MqttClient.state() = ");
|
||||
////Serial.println(MqttClient.state());
|
||||
Serial.print("MqttClient.state() = ");
|
||||
Serial.println(MqttClient.state());
|
||||
/*
|
||||
-4 : MQTT_CONNECTION_TIMEOUT - the server didn't respond within the keepalive time
|
||||
-3 : MQTT_CONNECTION_LOST - the network connection was broken
|
||||
|
@ -622,7 +644,7 @@ void reconnectMqtt()
|
|||
5 : MQTT_CONNECT_UNAUTHORIZED - the client was not authorized to connect
|
||||
*/
|
||||
mqttSendFlag = false;
|
||||
delay(1000);
|
||||
delay(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -635,32 +657,31 @@ void loop()
|
|||
if (!MqttClient.connected())
|
||||
{
|
||||
reconnectMqtt();
|
||||
ledset(1, true);
|
||||
}
|
||||
|
||||
if (countOta >= 10)
|
||||
{
|
||||
// reqNtpTime();
|
||||
OTAUpdate();
|
||||
countOta = 0;
|
||||
}
|
||||
countOta++;
|
||||
MqttClient.loop();
|
||||
|
||||
reqSensorData();
|
||||
SetCallibrationCoeff(macc);
|
||||
|
||||
SendMqttReq(true, true, 3);
|
||||
|
||||
MqttClient.loop();
|
||||
disconnectMQTT();
|
||||
delay(500);
|
||||
|
||||
if (M5.Btn.pressedFor(1000))
|
||||
{
|
||||
ledset(4, true);
|
||||
checkButton();
|
||||
}
|
||||
|
||||
if (countOta >= 10)
|
||||
{
|
||||
// reqNtpTime();
|
||||
countOta = 0;
|
||||
|
||||
SendMqttReq(false, true, 4);
|
||||
OTAUpdate();
|
||||
SendMqttReq(false, true, 1);
|
||||
}
|
||||
countOta++;
|
||||
|
||||
goToSleep();
|
||||
}
|
||||
|
||||
|
@ -673,12 +694,15 @@ int disconnectMQTT()
|
|||
int goToSleep()
|
||||
{
|
||||
ledset(3, true);
|
||||
disconnectMQTT();
|
||||
delay(500);
|
||||
WiFi.disconnect(true);
|
||||
delay(50);
|
||||
WiFi.mode(WIFI_OFF);
|
||||
|
||||
delay(50);
|
||||
esp_wifi_stop();
|
||||
|
||||
delay(100);
|
||||
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
|
||||
|
||||
delay(100);
|
||||
esp_deep_sleep_start();
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue