mirror of
https://github.com/meshcore-dev/MeshCore.git
synced 2026-03-29 08:39:56 +00:00
wio_e5 : bme280 support
This commit is contained in:
@@ -10,6 +10,8 @@ build_flags = ${stm32_base.build_flags}
|
|||||||
-I variants/wio-e5-mini
|
-I variants/wio-e5-mini
|
||||||
build_src_filter = ${stm32_base.build_src_filter}
|
build_src_filter = ${stm32_base.build_src_filter}
|
||||||
+<../variants/wio-e5-mini>
|
+<../variants/wio-e5-mini>
|
||||||
|
lib_deps = ${stm32_base.lib_deps}
|
||||||
|
finitespace/BME280 @ ^3.0.0
|
||||||
|
|
||||||
[env:wio-e5-mini-repeater]
|
[env:wio-e5-mini-repeater]
|
||||||
extends = lora_e5_mini
|
extends = lora_e5_mini
|
||||||
|
|||||||
@@ -18,20 +18,15 @@ static const Module::RfSwitchMode_t rfswitch_table[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
VolatileRTCClock rtc_clock;
|
VolatileRTCClock rtc_clock;
|
||||||
SensorManager sensors;
|
BME280I2C bme;
|
||||||
|
WIOE5SensorManager sensors(bme);
|
||||||
|
|
||||||
#ifndef LORA_CR
|
#ifndef LORA_CR
|
||||||
#define LORA_CR 5
|
#define LORA_CR 5
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool radio_init() {
|
bool radio_init() {
|
||||||
// rtc_clock.begin(Wire);
|
Wire.begin();
|
||||||
|
|
||||||
// #ifdef SX126X_DIO3_TCXO_VOLTAGE
|
|
||||||
// float tcxo = SX126X_DIO3_TCXO_VOLTAGE;
|
|
||||||
// #else
|
|
||||||
// float tcxo = 1.6f;
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
|
radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);
|
||||||
|
|
||||||
@@ -71,3 +66,26 @@ mesh::LocalIdentity radio_new_identity() {
|
|||||||
RadioNoiseListener rng(radio);
|
RadioNoiseListener rng(radio);
|
||||||
return mesh::LocalIdentity(&rng); // create new random identity
|
return mesh::LocalIdentity(&rng); // create new random identity
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WIOE5SensorManager::querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) {
|
||||||
|
if (!has_bme) return false;
|
||||||
|
|
||||||
|
float temp(NAN), hum(NAN), pres(NAN);
|
||||||
|
|
||||||
|
BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
|
||||||
|
BME280::PresUnit presUnit(BME280::PresUnit_bar);
|
||||||
|
|
||||||
|
_bme->read(pres, temp, hum, tempUnit, presUnit);
|
||||||
|
|
||||||
|
telemetry.addTemperature(TELEM_CHANNEL_SELF, temp);
|
||||||
|
telemetry.addRelativeHumidity(TELEM_CHANNEL_SELF, hum);
|
||||||
|
telemetry.addBarometricPressure(TELEM_CHANNEL_SELF, pres);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WIOE5SensorManager::begin() {
|
||||||
|
has_bme = _bme->begin();
|
||||||
|
|
||||||
|
return has_bme;
|
||||||
|
}
|
||||||
@@ -8,6 +8,9 @@
|
|||||||
#include <helpers/ArduinoHelpers.h>
|
#include <helpers/ArduinoHelpers.h>
|
||||||
#include <helpers/SensorManager.h>
|
#include <helpers/SensorManager.h>
|
||||||
|
|
||||||
|
#include <BME280I2C.h>
|
||||||
|
#include <Wire.h>
|
||||||
|
|
||||||
class WIOE5Board : public STM32Board {
|
class WIOE5Board : public STM32Board {
|
||||||
public:
|
public:
|
||||||
const char* getManufacturerName() const override {
|
const char* getManufacturerName() const override {
|
||||||
@@ -21,10 +24,20 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class WIOE5SensorManager : public SensorManager {
|
||||||
|
BME280I2C* _bme;
|
||||||
|
bool has_bme = false;
|
||||||
|
|
||||||
|
public:
|
||||||
|
WIOE5SensorManager(BME280I2C& bme) : _bme(&bme) {}
|
||||||
|
bool begin() override;
|
||||||
|
bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override;
|
||||||
|
};
|
||||||
|
|
||||||
extern WIOE5Board board;
|
extern WIOE5Board board;
|
||||||
extern WRAPPER_CLASS radio_driver;
|
extern WRAPPER_CLASS radio_driver;
|
||||||
extern VolatileRTCClock rtc_clock;
|
extern VolatileRTCClock rtc_clock;
|
||||||
extern SensorManager sensors;
|
extern WIOE5SensorManager sensors;
|
||||||
|
|
||||||
bool radio_init();
|
bool radio_init();
|
||||||
uint32_t radio_get_rng_seed();
|
uint32_t radio_get_rng_seed();
|
||||||
|
|||||||
Reference in New Issue
Block a user