2025-12-1205
This commit is contained in:
69
include/mess_bme280.h
Normal file
69
include/mess_bme280.h
Normal file
@@ -0,0 +1,69 @@
|
||||
#include <Adafruit_Sensor.h>
|
||||
#include <Adafruit_BME280.h>
|
||||
|
||||
|
||||
#define SEALEVELPRESSURE_HPA (1013.25)
|
||||
|
||||
Adafruit_BME280 bme; // I2C
|
||||
|
||||
struct {
|
||||
char temperature[15] = {0};
|
||||
char pressure[15] = {0};
|
||||
char approx_altitud[15] = {0};
|
||||
char humity[15] = {0};
|
||||
} BME280Data;
|
||||
|
||||
|
||||
|
||||
void Init_BME280(){
|
||||
bool status = bme.begin();
|
||||
if (!status) {
|
||||
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
||||
while (1);
|
||||
}
|
||||
}
|
||||
|
||||
void read_BME_280() {
|
||||
|
||||
|
||||
Serial.print("Temperature:\t\t");
|
||||
float t = bme.readTemperature();
|
||||
dtostrf(t,10,4,BME280Data.temperature);
|
||||
Serial.print(BME280Data.temperature);
|
||||
Serial.println(" °C");
|
||||
//Serial.print("Diff zu DS1820 \t\t");Serial.print(t-valTemp,4); Serial.println(" °C");
|
||||
|
||||
Serial.print("Humidity:\t\t");
|
||||
float h = bme.readHumidity();
|
||||
dtostrf(h,8,2,BME280Data.humity);
|
||||
Serial.print(BME280Data.humity);
|
||||
Serial.println(" %");
|
||||
|
||||
Serial.print("Pressure:\t\t");
|
||||
float p = bme.readPressure() / 100.0F;
|
||||
p = p + 22;
|
||||
dtostrf(p,5,0,BME280Data.pressure);
|
||||
Serial.print(BME280Data.pressure);
|
||||
Serial.println(" hPa");
|
||||
|
||||
Serial.print("Approx. Altitude:\t");
|
||||
float a = bme.readAltitude(SEALEVELPRESSURE_HPA);
|
||||
dtostrf(a,5,0,BME280Data.approx_altitud);
|
||||
Serial.print(BME280Data.approx_altitud);
|
||||
Serial.println(" m über NN");
|
||||
|
||||
Serial.println();
|
||||
}
|
||||
void M2M_BME280(long deviceId = 4711) {
|
||||
char topic[100];
|
||||
sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/temperature_BME_280" );
|
||||
client.publish(topic, BME280Data.temperature, true);
|
||||
sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/pressure" );
|
||||
client.publish(topic, BME280Data.pressure, true);
|
||||
sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/humity" );
|
||||
client.publish(topic, BME280Data.humity, true);
|
||||
sprintf(topic, "%s%ld%s", "hjk/devices/", deviceId, "/telemetry/approx_altitude" );
|
||||
client.publish(topic, BME280Data.approx_altitud);
|
||||
//
|
||||
//delay(500);
|
||||
}
|
||||
Reference in New Issue
Block a user