diff --git a/ExtSens/src/main.cpp b/ExtSens/src/main.cpp index 440e28a..70ff88f 100644 --- a/ExtSens/src/main.cpp +++ b/ExtSens/src/main.cpp @@ -18,6 +18,10 @@ MyMessage msgTemp(0, V_TEMP); MyMessage msgHum(1, V_HUM); MyMessage msgMillis(2, V_VAR1); MyMessage msgVolts(2, V_VAR2); +void sendData(MyMessage msg, int status); +void sendData(MyMessage msg, float status, uint8_t decm); +void sendData(MyMessage msg, bool status); +void sendData(MyMessage msg, uint32_t status); AHT10 myAHT10(AHT10_ADDRESS_0X38); @@ -32,10 +36,11 @@ void setup() { delay(5000); } Serial.println(F("AHT10 OK")); - Serial.print(F("Temperature: ")); Serial.print(myAHT10.readTemperature(AHT10_FORCE_READ_DATA)); Serial.println(F(" +-0.3C")); - Serial.print(F("Humidity...: ")); Serial.print(myAHT10.readHumidity(AHT10_USE_READ_DATA)); Serial.println(F(" +-2%")); + Serial.print(F("T: ")); Serial.print(myAHT10.readTemperature(AHT10_FORCE_READ_DATA));// Serial.println(F(" +-0.3C")); + Serial.print(F("H: ")); Serial.print(myAHT10.readHumidity(AHT10_USE_READ_DATA));// Serial.println(F(" +-2%")); cRun = 0; + sendData(msgMillis, cRun); //send(msgMillis.set(cRun)); } @@ -47,16 +52,20 @@ void loop() { Serial.print(F("T: ")); Serial.print(temp);// Serial.println(F(" +-0.3C")); Serial.print(F("H: ")); Serial.print(hum);// Serial.println(F(" +-2%")); if (temp < 200){ - send(msgTemp.set(temp, 1)); - send(msgHum.set(hum, 1)); + sendData(msgTemp, temp, 1); + sendData(msgHum, hum, 1); + // send(msgTemp.set(temp, 1)); + // send(msgHum.set(hum, 1)); } sensorValue = analogRead(BATTERY_SENSE_PIN); v = sensorValue * 0.004659498; batteryPcnt = ((v-3.0) * 100) / 1.2; sendBatteryLevel(batteryPcnt); - send(msgVolts.set(v, 2)); + sendData(msgVolts, v, 2); + //send(msgVolts.set(v, 2)); Serial.println(F("Tm run")); Serial.println(millis() - t); - send(msgMillis.set(cRun++)); + sendData(msgMillis, cRun++); + //send(msgMillis.set(cRun++)); sleep(60000 - (millis() - t)); } @@ -67,3 +76,61 @@ void presentation() present(1, S_HUM, "Humid"); present(2, S_CUSTOM, "ESMillis"); } + +void sendData(MyMessage msg, bool status) +{ + bool send_data = false; + uint8_t count = 0; + while(send_data == false){ + count++; + send_data = send(msg.set(status)); + wait(1000, C_SET, V_STATUS); + if ((count == 3 )&&(send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки + count = 0; // Обнуляем счётчик + send_data = 1; // Выходим из цикла + } + } +} +void sendData(MyMessage msg, float status, uint8_t decm) +{ + bool send_data = false; + uint8_t count = 0; + while(send_data == false){ + count++; + send_data = send(msg.set(status, decm)); + wait(1000, C_SET, V_STATUS); + if ((count == 3 )&&(send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки + count = 0; // Обнуляем счётчик + send_data = 1; // Выходим из цикла + } + } +} +void sendData(MyMessage msg, int status) +{ + bool send_data = false; + uint8_t count = 0; + while(send_data == false){ + count++; + send_data = send(msg.set(status)); + wait(1000, C_SET, V_STATUS); + if ((count == 3 )&&(send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки + count = 0; // Обнуляем счётчик + send_data = 1; // Выходим из цикла + } + } +} + +void sendData(MyMessage msg, uint32_t status) +{ + bool send_data = false; + uint8_t count = 0; + while(send_data == false){ + count++; + send_data = send(msg.set(status)); + wait(1000, C_SET, V_STATUS); + if ((count == 3 )&&(send_data == 0)){ // Если сделано 3 попытки и нет подтверждения отправки + count = 0; // Обнуляем счётчик + send_data = 1; // Выходим из цикла + } + } +}