Change QOS and Time polling sensors

This commit is contained in:
2020-08-07 14:57:44 +03:00
parent 7dcd044fb5
commit 2785c78704
7 changed files with 59 additions and 105 deletions

View File

@@ -103,32 +103,8 @@ void setup() {
}
Serial1.println();
mhz19.begin(Serial);
//char myVersion[4];
//mhz19.getVersion(myVersion);
// //Serial1.print("\nFirmware Version: ");
// for(byte i = 0; i < 4; i++)
// {
// //Serial1.print(myVersion[i]);
// if(i == 1)
// //Serial1.print(".");
// }
// //Serial1.println("");
// //Serial1.print("Range: ");
// //Serial1.println(mhz19.getRange());
// //Serial1.print("Background CO2: ");
// //Serial1.println(mhz19.getBackgroundCO2());
// //Serial1.print("Temperature Cal: ");
// //Serial1.println(mhz19.getTempAdjustment());
// //Serial1.print("ABC Status: "); mhz19.getABC() ? //Serial1.println("ON") : //Serial1.println("OFF");
//Serial1.println(F("End Begin MH-Z19"));
Wire.begin();
//Serial1.println(F("Begin BME"));
bool status = bme.begin(BME280_ADDRESS_ALTERNATE);
if (!status) {
//Serial1.println(F("Could not find a valid BME280 sensor, check wiring, address, sensor ID!"));
}
@@ -162,56 +138,34 @@ void loop() {
if (digitalRead(MOV_SENS) != old_mov){
old_mov = digitalRead(MOV_SENS);
//Serial1.println(F("Change mov detected"));
mqttClient.publish("/home/midroom/move", 1, false, old_mov ? "1" : "0");
mqttClient.publish("/home/midroom/move", 0, false, old_mov ? "1" : "0");
}
if(cRun + 999 < millis()){
cRun = millis();
//if(mqttClient.connected()) digitalWrite(R_LED, LOW); else digitalWrite(R_LED, HIGH);
adc = analogRead(A0);
// Serial1.print(F("ADC: "));Serial1.println(adc);
// Serial1.print(F("MQTT: "));Serial1.println(mqttClient.connected());
if(abs(adc - lastADC) > 50){
lastADC = adc;
itoa(adc, v, 10);
mqttClient.publish("/home/midroom/light", 1, false, v);
mqttClient.publish("/home/midroom/light", 0, false, v);
}
if(meas){
//Serial1.println(adc);
// Serial1.println("Measure");
if(minCnt % 20 == 0){
co2 = mhz19.getCO2();
/* Serial1.print("CO2: ");
Serial1.println(co2); */
digitalWrite(P_SENS, HIGH);
bme.begin(BME280_ADDRESS_ALTERNATE);
delay(10);
pt = bme.readPressure();
tt = bme.readTemperature();
ht = bme.readHumidity();
/* Serial1.print(F("T: "));
Serial1.print(tt);
Serial1.print(F("\tH: "));
Serial1.print(ht);
Serial1.print(F("\tP: "));
Serial1.println(pt); */
if(!isnan(pt))
p += (pt - p) / 60.0f ;
/* else
{
Serial1.println(F("Error BME"));
} */
p = pt;//+= (pt - p) / 60.0f ;
if(!isnan(tt))
t += (tt - t) / 30.0f ;
t = tt;//+= (tt - t) / 30.0f ;
if(!isnan(ht))
h += (ht - h) / 30.0f ;
h = ht;//+= (ht - h) / 30.0f ;
digitalWrite(P_SENS, LOW);
meas = false;
}
else{
if(minCnt % 5 == 0){
co2 = mhz19.getCO2();
/* Serial1.print("CO2: ");
Serial1.println(co2); */
digitalWrite(P_SENS, HIGH);
bme.begin(BME280_ADDRESS_ALTERNATE);
meas = true;
}
}
if(++minCnt == 60){
minCnt = 0;
@@ -240,11 +194,11 @@ void loop() {
itoa(millis(), v, 10);
if(mqttClient.connected()){
mqttClient.publish("/home/midroom/millis", 0, false, v);
dtostrf(t, 5, 1,v);
mqttClient.publish("/home/midroom/temp", 0, false, v);
//Serial1.println("Publish1");
dtostrf(h, 5, 1,v);
mqttClient.publish("/home/midroom/humid", 0, false, v);
// dtostrf(t, 5, 1,v);
// mqttClient.publish("/home/midroom/temp", 0, false, v);
// //Serial1.println("Publish1");
// dtostrf(h, 5, 1,v);
// mqttClient.publish("/home/midroom/humid", 0, false, v);
g_led.start();
}
}