|
|
|
|
@ -1,11 +1,11 @@
@@ -1,11 +1,11 @@
|
|
|
|
|
// Sensoren lesen
|
|
|
|
|
|
|
|
|
|
#include <arduino.h> |
|
|
|
|
#include <Arduino.h> |
|
|
|
|
#include "MessenSensoren.h" |
|
|
|
|
#include <Wire.h> |
|
|
|
|
#include "myi2c.h" |
|
|
|
|
#include "myI2C.h" |
|
|
|
|
#include "bme280.h" |
|
|
|
|
#include "bh1750.h" |
|
|
|
|
#include "BH1750.h" |
|
|
|
|
#include "hseSensorProtocol.h" |
|
|
|
|
|
|
|
|
|
#define I2C_POWER 5 // bei Feather M0
|
|
|
|
|
@ -15,8 +15,7 @@
@@ -15,8 +15,7 @@
|
|
|
|
|
HseSP hse(2, 60); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void init_Messen(void) |
|
|
|
|
{ |
|
|
|
|
void init_Messen() { |
|
|
|
|
int i; |
|
|
|
|
|
|
|
|
|
Serial.println("PowerOn I2C"); |
|
|
|
|
@ -30,8 +29,7 @@ Wire.begin();
@@ -30,8 +29,7 @@ Wire.begin();
|
|
|
|
|
// Hardware detection, liste was angeschlossen ist
|
|
|
|
|
Serial.println("I2C Hardware detection"); |
|
|
|
|
|
|
|
|
|
if ( I2C_Test(BME280_ADR) != 0xFF ) |
|
|
|
|
{ |
|
|
|
|
if (I2C_Test(BME280_ADR) != 0xFF) { |
|
|
|
|
Set_I2C_Adresse(BME280_ADR); |
|
|
|
|
i = I2C_read8(BME280_REGISTER_CHIPID); |
|
|
|
|
Serial1.print(F("BMx280 Chip ID = 0x")); |
|
|
|
|
@ -40,25 +38,21 @@ if ( I2C_Test(BME280_ADR) != 0xFF )
@@ -40,25 +38,21 @@ if ( I2C_Test(BME280_ADR) != 0xFF )
|
|
|
|
|
if (i == 0x60) Serial1.println(F(" = BME280")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ( I2C_Test(0x77) != 0xFF ) |
|
|
|
|
{ |
|
|
|
|
if (I2C_Test(0x77) != 0xFF) { |
|
|
|
|
Serial.println("BMP180 gefunden"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ( I2C_Test(0x38) != 0xFF ) |
|
|
|
|
{ |
|
|
|
|
if (I2C_Test(0x38) != 0xFF) { |
|
|
|
|
Serial.println(F("AHT10 gefunden")); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// such BH1730
|
|
|
|
|
if ( I2C_Test(0x29) != 0xFF ) |
|
|
|
|
{ |
|
|
|
|
if (I2C_Test(0x29) != 0xFF) { |
|
|
|
|
Serial.println("BH1730 gefunden"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// such BH1750
|
|
|
|
|
if ( I2C_Test(0x23) != 0xFF ) |
|
|
|
|
{ |
|
|
|
|
if (I2C_Test(0x23) != 0xFF) { |
|
|
|
|
Serial.println("BH1750 gefunden"); |
|
|
|
|
BH1750_Init(); |
|
|
|
|
} |
|
|
|
|
@ -66,11 +60,10 @@ Serial.println("ende");
@@ -66,11 +60,10 @@ Serial.println("ende");
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//--------------------------
|
|
|
|
|
void MessenSensoren(void) |
|
|
|
|
{ |
|
|
|
|
int i,status, error; |
|
|
|
|
void MessenSensoren() { |
|
|
|
|
int i; |
|
|
|
|
float t, p, h; |
|
|
|
|
long lVisLux; |
|
|
|
|
unsigned int lVisLux; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set_I2C_Adresse(BME280_ADR); |
|
|
|
|
@ -78,14 +71,12 @@ i = I2C_read8(BME280_REGISTER_CHIPID);
@@ -78,14 +71,12 @@ i = I2C_read8(BME280_REGISTER_CHIPID);
|
|
|
|
|
|
|
|
|
|
bme280_readCoefficients(); |
|
|
|
|
|
|
|
|
|
if ( i== 0x58) |
|
|
|
|
{ |
|
|
|
|
if (i == 0x58) { |
|
|
|
|
I2C_write8(BME280_REGISTER_CONTROL, 0x3F); |
|
|
|
|
delay(50); // gib ihm Zeit zum messen
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ( i== 0x60) |
|
|
|
|
{ |
|
|
|
|
if (i == 0x60) { |
|
|
|
|
//Set before CONTROL_meas (DS 5.4.3)
|
|
|
|
|
I2C_write8(BME280_REGISTER_CONTROLHUMID, 0x05); //16x oversampling
|
|
|
|
|
I2C_write8(BME280_REGISTER_CONTROL, 0xB7); // 16x ovesampling, normal mode
|
|
|
|
|
@ -96,14 +87,13 @@ if ( i== 0x60)
@@ -96,14 +87,13 @@ if ( i== 0x60)
|
|
|
|
|
|
|
|
|
|
//----------------
|
|
|
|
|
t = bme280_readTemperature(); |
|
|
|
|
p = bme280_readPressure()/100.0; |
|
|
|
|
p = bme280_readPressure() / 100.0f; |
|
|
|
|
h = bme280_readHumidity(); |
|
|
|
|
I2C_write8(BME280_REGISTER_CONTROL, 0x3C); // Sleep Mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// such BH1750
|
|
|
|
|
if ( I2C_Test(0x23) != 0xFF ) |
|
|
|
|
{ |
|
|
|
|
if (I2C_Test(0x23) != 0xFF) { |
|
|
|
|
// BH1750 = HY30 Licht Sensor
|
|
|
|
|
BH1750_Init(); |
|
|
|
|
lVisLux = BH1750_ReadLux(); |
|
|
|
|
@ -134,7 +124,4 @@ Serial.println(lVisLux);
@@ -134,7 +124,4 @@ Serial.println(lVisLux);
|
|
|
|
|
|
|
|
|
|
// hse.addVoltage(fUb/1000.0); // in Volt
|
|
|
|
|
// hse.addCounter(uiOnStd); // Zeit On
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|