mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-03-28 16:52:33 +01:00
first beta test
This commit is contained in:
113
src/bme_utils.cpp
Normal file
113
src/bme_utils.cpp
Normal file
@@ -0,0 +1,113 @@
|
||||
#include "bme_utils.h"
|
||||
#include "configuration.h"
|
||||
#include "gps_utils.h"
|
||||
#include "display.h"
|
||||
|
||||
extern Configuration Config;
|
||||
|
||||
namespace BME_Utils {
|
||||
|
||||
Adafruit_BME280 bme;
|
||||
|
||||
void setup() {
|
||||
if (Config.bme.active) {
|
||||
bool status;
|
||||
status = bme.begin(0x76); // Don't forget to join pins for righ direction on BME280!
|
||||
if (!status) {
|
||||
Serial.println("Could not find a valid BME280 sensor, check wiring!");
|
||||
show_display("ERROR", "", "BME sensor active", "but no sensor found...");
|
||||
while (1); // sacar esto para que quede pegado si no encuentra BME280
|
||||
} else {
|
||||
Serial.println("init : BME280 Module ... done!");
|
||||
}
|
||||
} else {
|
||||
Serial.println("(BME not 'active' in 'igate_config.json')");
|
||||
}
|
||||
}
|
||||
|
||||
String generateTempString(float bmeTemp) {
|
||||
String strTemp;
|
||||
strTemp = String((int)bmeTemp);
|
||||
switch (strTemp.length()) {
|
||||
case 1:
|
||||
return "00" + strTemp;
|
||||
break;
|
||||
case 2:
|
||||
return "0" + strTemp;
|
||||
break;
|
||||
case 3:
|
||||
return strTemp;
|
||||
break;
|
||||
default:
|
||||
return "-999";
|
||||
}
|
||||
}
|
||||
|
||||
String generateHumString(float bmeHum) {
|
||||
String strHum;
|
||||
strHum = String((int)bmeHum);
|
||||
switch (strHum.length()) {
|
||||
case 1:
|
||||
return "0" + strHum;
|
||||
break;
|
||||
case 2:
|
||||
return strHum;
|
||||
break;
|
||||
case 3:
|
||||
if ((int)bmeHum == 100) {
|
||||
return "00";
|
||||
} else {
|
||||
return "-99";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return "-99";
|
||||
}
|
||||
}
|
||||
|
||||
String generatePresString(float bmePress) {
|
||||
String strPress;
|
||||
strPress = String((int)bmePress);
|
||||
switch (strPress.length()) {
|
||||
case 1:
|
||||
return "000" + strPress + "0";
|
||||
break;
|
||||
case 2:
|
||||
return "00" + strPress + "0";
|
||||
break;
|
||||
case 3:
|
||||
return "0" + strPress + "0";
|
||||
break;
|
||||
case 4:
|
||||
return strPress + "0";
|
||||
break;
|
||||
case 5:
|
||||
return strPress;
|
||||
break;
|
||||
default:
|
||||
return "-99999";
|
||||
}
|
||||
}
|
||||
|
||||
String readDataSensor() {
|
||||
String wx, tempStr, humStr, presStr;
|
||||
float newTemp = bme.readTemperature();
|
||||
float newHum = bme.readHumidity();
|
||||
float newPress = (bme.readPressure() / 100.0F);
|
||||
//float bat = analogRead(battery);
|
||||
//bme.readAltitude(SEALEVELPRESSURE_HPA)
|
||||
|
||||
if (isnan(newTemp) || isnan(newHum) || isnan(newPress)) {
|
||||
Serial.println("BME280 Module data failed");
|
||||
wx = ".../...g...t...r...p...P...h..b.....";
|
||||
return wx;
|
||||
} else {
|
||||
tempStr = generateTempString((newTemp * 1.8) + 32);
|
||||
humStr = generateHumString(newHum);
|
||||
presStr = generatePresString(newPress);
|
||||
wx = ".../...g...t" + tempStr + "r...p...P...h" + humStr + "b" + presStr;
|
||||
return wx;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user