mirror of
https://github.com/meshtastic/firmware.git
synced 2025-10-28 07:13:25 +00:00
Some checks are pending
CI / setup (all) (push) Waiting to run
CI / setup (check) (push) Waiting to run
CI / version (push) Waiting to run
CI / check (push) Blocked by required conditions
CI / build (push) Blocked by required conditions
CI / build-debian-src (push) Waiting to run
CI / package-pio-deps-native-tft (push) Waiting to run
CI / test-native (push) Waiting to run
CI / docker (alpine, native, linux/amd64) (push) Waiting to run
CI / docker (alpine, native, linux/arm64) (push) Waiting to run
CI / docker (alpine, native-tft, linux/amd64) (push) Waiting to run
CI / docker (debian, native, linux/amd64) (push) Waiting to run
CI / docker (debian, native, linux/arm/v7) (push) Waiting to run
CI / docker (debian, native, linux/arm64) (push) Waiting to run
CI / docker (debian, native-tft, linux/amd64) (push) Waiting to run
CI / gather-artifacts (esp32) (push) Blocked by required conditions
CI / gather-artifacts (esp32c3) (push) Blocked by required conditions
CI / gather-artifacts (esp32c6) (push) Blocked by required conditions
CI / gather-artifacts (esp32s3) (push) Blocked by required conditions
CI / gather-artifacts (nrf52840) (push) Blocked by required conditions
CI / gather-artifacts (rp2040) (push) Blocked by required conditions
CI / gather-artifacts (rp2350) (push) Blocked by required conditions
CI / gather-artifacts (stm32) (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
CI / release-firmware (esp32) (push) Blocked by required conditions
CI / release-firmware (esp32c3) (push) Blocked by required conditions
CI / release-firmware (esp32c6) (push) Blocked by required conditions
CI / release-firmware (esp32s3) (push) Blocked by required conditions
CI / release-firmware (nrf52840) (push) Blocked by required conditions
CI / release-firmware (rp2040) (push) Blocked by required conditions
CI / release-firmware (rp2350) (push) Blocked by required conditions
CI / release-firmware (stm32) (push) Blocked by required conditions
CI / publish-firmware (push) Blocked by required conditions
* rework I2C sensor init the goal is to only instantiate sensors that are pressend to save memory. side effacts: - easyer sensor integration (less C&P code) - nodeTelemetrySensorsMap can be removed when all devices are migrated * add missing ifdef * refactor a bunch of more sensors RAM -816 Flash -916 * fix build for t1000 * refactor more sensors RAM -192 Flash -60 * improve error handling Flash -112 * fix build * fix build * fix IndicatorSensor * fix tracker-t1000-e build not sure what magic is used but it works * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/modules/Telemetry/Sensor/DFRobotGravitySensor.h Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fix --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
54 lines
2.3 KiB
C++
54 lines
2.3 KiB
C++
#include "configuration.h"
|
|
|
|
#if !MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR && __has_include(<DFRobot_LarkWeatherStation.h>)
|
|
|
|
#include "../mesh/generated/meshtastic/telemetry.pb.h"
|
|
#include "DFRobotLarkSensor.h"
|
|
#include "TelemetrySensor.h"
|
|
#include "gps/GeoCoord.h"
|
|
#include <DFRobot_LarkWeatherStation.h>
|
|
#include <string>
|
|
|
|
DFRobotLarkSensor::DFRobotLarkSensor() : TelemetrySensor(meshtastic_TelemetrySensorType_DFROBOT_LARK, "DFROBOT_LARK") {}
|
|
|
|
bool DFRobotLarkSensor::initDevice(TwoWire *bus, ScanI2C::FoundDevice *dev)
|
|
{
|
|
LOG_INFO("Init sensor: %s", sensorName);
|
|
lark = DFRobot_LarkWeatherStation_I2C(dev->address.address, bus);
|
|
|
|
if (lark.begin() == 0) // DFRobotLarkSensor init
|
|
{
|
|
LOG_DEBUG("DFRobotLarkSensor Init Succeed");
|
|
status = true;
|
|
} else {
|
|
LOG_ERROR("DFRobotLarkSensor Init Failed");
|
|
status = false;
|
|
}
|
|
initI2CSensor();
|
|
return status;
|
|
}
|
|
|
|
bool DFRobotLarkSensor::getMetrics(meshtastic_Telemetry *measurement)
|
|
{
|
|
measurement->variant.environment_metrics.has_temperature = true;
|
|
measurement->variant.environment_metrics.has_relative_humidity = true;
|
|
measurement->variant.environment_metrics.has_wind_speed = true;
|
|
measurement->variant.environment_metrics.has_wind_direction = true;
|
|
measurement->variant.environment_metrics.has_barometric_pressure = true;
|
|
|
|
measurement->variant.environment_metrics.temperature = lark.getValue("Temp").toFloat();
|
|
measurement->variant.environment_metrics.relative_humidity = lark.getValue("Humi").toFloat();
|
|
measurement->variant.environment_metrics.wind_speed = lark.getValue("Speed").toFloat();
|
|
measurement->variant.environment_metrics.wind_direction = GeoCoord::bearingToDegrees(lark.getValue("Dir").c_str());
|
|
measurement->variant.environment_metrics.barometric_pressure = lark.getValue("Pressure").toFloat();
|
|
|
|
LOG_INFO("Temperature: %f", measurement->variant.environment_metrics.temperature);
|
|
LOG_INFO("Humidity: %f", measurement->variant.environment_metrics.relative_humidity);
|
|
LOG_INFO("Wind Speed: %f", measurement->variant.environment_metrics.wind_speed);
|
|
LOG_INFO("Wind Direction: %d", measurement->variant.environment_metrics.wind_direction);
|
|
LOG_INFO("Barometric Pressure: %f", measurement->variant.environment_metrics.barometric_pressure);
|
|
|
|
return true;
|
|
}
|
|
|
|
#endif |