There's no code in the loop function because this code is intended to be used with an on/off timer and data logging at intervals set by the timer board.
Any idea why these two sensors won't work together on the same board??
Code: Select all
// BME280_AM2315, Sept. 2022
#include <Wire.h>
#include <Adafruit_AM2315.h>
Adafruit_AM2315 am2315; float am2315_T,am2315_H;
#include <Adafruit_BME280.h>
Adafruit_BME280 bme; float T_BME,RH_BME,P_BME,P_inHg,elev=0.131;// km
void setup() {
Serial.begin(9600);
Serial.println(F("Reading AM2315..."));
if(am2315.begin()) Serial.println(F("AM2315 initiated")); delay(250);
if (! am2315.readTemperatureAndHumidity(&am2315_T, &am2315_H)) {
Serial.println(F("Failed to read data from AM2315"));
//return;
}
am2315_T=am2315.readTemperature();
am2315_H=am2315.readHumidity();
Serial.println(F("Reading BME280..."));
if(bme.begin()) Serial.println("BME280 initiated"); delay(250);
T_BME=bme.readTemperature();delay(10);
RH_BME=bme.readHumidity(); delay(10);
P_BME=bme.readPressure(); delay(10);
//The formula needs elevation in km, 131 m at my site.
P_inHg=(P_BME/100.)/exp(-0.119*elev-0.0013*elev*elev);// sea level
P_inHg*=29.921/1013.25; // to in Hg
Serial.print(F("Temp *C: ")); Serial.println(am2315_T);
Serial.print(F("Hum %: ")); Serial.println(am2315_H);
Serial.println(F("Values..."));
Serial.print(am2315_T,2); Serial.print(',');Serial.println(am2315_H,2);
Serial.print(T_BME,2);
Serial.print(',');Serial.print(RH_BME,2);Serial.print(',');
Serial.print(P_BME/100.,1);Serial.print(',');
Serial.println(P_inHg,2);
}
void loop() {}