// // Created by zoe on 11/4/22. // #include "Sht85.hpp" void Sht85::setup() { this->sht = SHTSensor(SHTSensor::SHT85); readData(); } void Sht85::readSHT() { // Read data from the initialized SHT85 // TODO send via esp now instead of printing if (sht.readSample()) { Serial.print("T: "); Serial.println(sht.getTemperature(), 2); Serial.print("RH: "); Serial.println(sht.getHumidity(), 2); } else { Serial.print("Error in readSample()\n"); } } out_data_sht85 Sht85::readData() { // Start the I2C bus Wire.begin(SDA, SCL); delay(100); // let serial console settle // initiate the SHT85 sensor Serial.println(""); if (sht.init(Wire)) { Serial.println("SHT initialization successful"); } else { Serial.println("SHT initialization failed"); } // T + RH reading readSHT(); delay(100); // end I2C to free the pins to be used by the SD card Wire.end(); out_data_sht85 sht85Data; sht85Data.temperature = sht.getTemperature(); sht85Data.humidity = sht.getHumidity(); return sht85Data; } std::list<Message> Sht85::buildMessages() { std::list<Message> messages; auto data = readData(); MeasurementData temperatureMeasurementData{ data.temperature, {}, 0x44, measurementTypeToString.at(MeasurementType::TEMPERATURE)}; MeasurementData humidityMeasurementData{ data.humidity, {}, 0x44, measurementTypeToString.at(MeasurementType::HUMIDITY)}; messages.emplace_back( Message{temperatureMeasurementData, sensorInformation, Time::getInstance().getEpochSeconds()}); messages.emplace_back(Message{humidityMeasurementData, sensorInformation, Time::getInstance().getEpochSeconds()}); return messages; } SensorInformation Sht85::getSensorInformation() const { return sensorInformation; }