diff --git a/Tests/Mieming/host_esp32Wroom/client/lib/SentecSensors/SentecSensors.h b/Tests/Mieming/host_esp32Wroom/client/lib/SentecSensors/SentecSensors.h index 4000525ae0bf9ee052574a4eb3f08034473c834f..97d54a36d71df4cde00a8714f19b16d75d8ba350 100644 --- a/Tests/Mieming/host_esp32Wroom/client/lib/SentecSensors/SentecSensors.h +++ b/Tests/Mieming/host_esp32Wroom/client/lib/SentecSensors/SentecSensors.h @@ -73,4 +73,4 @@ public: }; -#endif \ No newline at end of file +#endif diff --git a/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.cpp b/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.cpp index 7778d02e7cfedb81e1e2c816e90899ac5afe8db3..1a0f5d282b3b57d5a5bab03a3b394492f5da955f 100644 --- a/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.cpp +++ b/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.cpp @@ -35,33 +35,43 @@ out_data_rs485 Forte_RS485::readData() // Wait for sensors to power up // TODO minimize delay delay(500); - - data.solarRadiation = solarSensor.getSolarRadiation(); - data.moisture = soilSensor4.getMoisture(); - data.moisture_temperature = soilSensor3.getMoistureTemp(); - data.moisture_temperature = soilSensor4.getMoistureTemp(); - data.moisture_temperature = soilSensor5.getMoistureTemp(); - data.precipitation = rainGauge.getInstantaneousPrecipitation(); + out_data_rs485 readData; + readData.solarRadiation = solarSensor.getSolarRadiation(); + readData.soilTemperature3 = soilSensor3.getMoistureTemp(); + readData.soilTemperature4 = soilSensor4.getMoistureTemp(); + readData.soilTemperature5 = soilSensor5.getMoistureTemp(); + readData.soilMoisture3 = soilSensor3.getMoisture(); + readData.soilMoisture4 = soilSensor4.getMoisture(); + readData.soilMoisture5 = soilSensor5.getMoisture(); + readData.precipitation = rainGauge.getInstantaneousPrecipitation(); digitalWrite(POWER_SWITCH_PIN_12V, LOW); digitalWrite(POWER_SWITCH_PIN_5V, LOW); gpio_hold_en((gpio_num_t)POWER_SWITCH_PIN_12V); gpio_hold_en((gpio_num_t)POWER_SWITCH_PIN_5V); - return data; + return readData; } std::list<Message> Forte_RS485::buildMessages() { std::list<Message> messages; - MeasurementData moisture {data.moisture,0,{},measurementTypeToString.at(MeasurementType::MOISTURE)}; - MeasurementData moisture_temperature {data.moisture_temperature,0,{},measurementTypeToString.at(MeasurementType::MOISTURE_TEMPERATURE)}; - MeasurementData solarRadiation {data.solarRadiation,0,{},measurementTypeToString.at(MeasurementType::SOLARRADIATION)}; - MeasurementData precipation {data.precipitation,0,{},measurementTypeToString.at(MeasurementType::PRECIPITATION)}; - messages.emplace_back(Message{moisture ,sensorInformation, 0}); - messages.emplace_back(Message{moisture_temperature ,sensorInformation, 0}); - messages.emplace_back(Message{solarRadiation ,sensorInformation, 0}); - messages.emplace_back(Message{precipation,sensorInformation, 0}); - ESP_LOGE(sensorInformation.getSensorName().c_str(), "test"); + out_data_rs485 readData; + MeasurementData solarRadiation {readData.solarRadiation,0,{},measurementTypeToString.at(MeasurementType::SOLAR_RADIATION)}; + MeasurementData soilTemp3{readData.soilTemperature3,0,{},measurementTypeToString.at(MeasurementType::SOIL_TEMPERATURE_3)}; + MeasurementData soilTemp4 {readData.soilTemperature4,0,{},measurementTypeToString.at(MeasurementType::SOIL_TEMPERATURE_4)}; + MeasurementData soilTemp5 {readData.soilTemperature5,0,{},measurementTypeToString.at(MeasurementType::SOIL_TEMPERATURE_5)}; + MeasurementData soilMoisture3 {readData.soilMoisture3,0,{},measurementTypeToString.at(MeasurementType::SOIL_MOISTURE_3)}; + MeasurementData soilMoisture4 {readData.soilMoisture4,0,{},measurementTypeToString.at(MeasurementType::SOIL_MOISTURE_4)}; + MeasurementData soilMoisture5 {readData.soilMoisture5,0,{},measurementTypeToString.at(MeasurementType::SOIL_MOISTURE_5)}; + + messages.emplace_back(Message{solarRadiation,sensorInformation, 0}); + messages.emplace_back(Message{soilTemp3,sensorInformation, 0}); + messages.emplace_back(Message{soilTemp4,sensorInformation, 0}); + messages.emplace_back(Message{soilTemp5,sensorInformation, 0}); + messages.emplace_back(Message{soilMoisture3,sensorInformation, 0}); + messages.emplace_back(Message{soilMoisture4,sensorInformation, 0}); + messages.emplace_back(Message{soilMoisture5,sensorInformation, 0}); + return messages; } diff --git a/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.hpp b/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.hpp index 6950c41cafca0ae928bfbf21d89314e8b6fb5190..c0eddbcf4e8df822e830affdef44e7368c2b0965 100644 --- a/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.hpp +++ b/Tests/Mieming/host_esp32Wroom/client/lib/rs485/rs485.hpp @@ -5,29 +5,20 @@ // RTC (I2C) #include "RTClib.h" #include "Message.hpp" -#include "Protocol.hpp" -#include "SensorInformation.hpp" -#include "SentecSensors.h" #include "ForteSensor.hpp" +#include "SentecSensors.h" struct out_data_rs485{ word solarRadiation; - word moisture; - word moisture_temperature; + word soilMoisture3; + word soilTemperature3; + word soilMoisture4; + word soilTemperature4; + word soilMoisture5; + word soilTemperature5; word precipitation; }; -/* -class Forte_RS485 : public ForteSensor<out_data_rs485> { - - public: - void setup(); - out_data_rs485 read_data(); - - private: - out_data_rs485 data; -}; -*/ class Forte_RS485 : public ForteSensor <out_data_rs485> { public: void setup() override; @@ -37,15 +28,28 @@ class Forte_RS485 : public ForteSensor <out_data_rs485> { private: const SensorInformation sensorInformation{"RS485", Protocol::RS485}; - out_data_rs485 data; + out_data_rs485 data; + + enum class MeasurementType { + SOLAR_RADIATION, + SOIL_MOISTURE_3, + SOIL_TEMPERATURE_3, + SOIL_MOISTURE_4, + SOIL_TEMPERATURE_4, + SOIL_MOISTURE_5, + SOIL_TEMPERATURE_5, + PRECIPITATION + }; - enum class MeasurementType { MOISTURE,MOISTURE_TEMPERATURE,SOLARRADIATION,PRECIPITATION}; std::map<MeasurementType, const char *> measurementTypeToString = { - {MeasurementType::MOISTURE, "MOISTURE"}, - {MeasurementType::MOISTURE_TEMPERATURE, "MOISTURE_TEMPERATURE"}, - {MeasurementType::SOLARRADIATION, "SOLARRADIATION"}, - {MeasurementType::PRECIPITATION, "PRECIPATION"} + {MeasurementType::SOLAR_RADIATION, "SOLAR_RADIATION"}, + {MeasurementType::SOIL_MOISTURE_3, "SOIL_MOISTURE_3"}, + {MeasurementType::SOIL_TEMPERATURE_3, "SOIL_TEMPERATURE_3"}, + {MeasurementType::SOIL_MOISTURE_4, "SOIL_MOISTURE_4"}, + {MeasurementType::SOIL_TEMPERATURE_4, "SOIL_TEMPERATURE_4"}, + {MeasurementType::SOIL_MOISTURE_5, "SOIL_MOISTURE_5"}, + {MeasurementType::SOIL_TEMPERATURE_5, "SOIL_TEMPERATURE_5"}, + {MeasurementType::PRECIPITATION, "PRECIPATION"} }; }; - #endif \ No newline at end of file diff --git a/Tests/Mieming/host_esp32Wroom/client/src/main.cpp b/Tests/Mieming/host_esp32Wroom/client/src/main.cpp index 2397d19834c3fe16fb6726d163b5eaf084299337..22392e6335b86634baa4215c3e924413699bf52f 100644 --- a/Tests/Mieming/host_esp32Wroom/client/src/main.cpp +++ b/Tests/Mieming/host_esp32Wroom/client/src/main.cpp @@ -8,33 +8,18 @@ Forte_RS485 rs485; + void setup() { rs485.setup(); -espnow_setup(); - - out_data_rs485 data_rs485 = rs485.readData(); - - Serial.println("***********************************************************"); - Serial.print("Moisture: "); - Serial.println(data_rs485.moisture); - Serial.print("Moisture Temperature: "); - Serial.println(data_rs485.moisture_temperature); - Serial.print("Solar: "); - Serial.println(data_rs485.solarRadiation); - Serial.print("Rain mm: "); - Serial.println(data_rs485.precipitation); - - // send the data - // moistere 1 - // moisture_temperature 2 - // solarRadiation 3 - // precipitation 4 -try { + espnow_setup(); +} + +void loop() { + try { auto messages = rs485.buildMessages(); - for (const Message &message : messages) { if(message.send() != ESP_OK){ RtcMemory::store(message.getMessageAsMinifiedJsonString()); @@ -55,5 +40,3 @@ try { esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); esp_deep_sleep_start(); } - -void loop() {}