Compare commits
No commits in common. 'f6289fb7f35c1857caee05a8ac3f54fb25a56e12' and 'dbffce8dc210f015c8cd11a61130dbdb84192db1' have entirely different histories.
f6289fb7f3
...
dbffce8dc2
9 changed files with 24 additions and 545 deletions
@ -1,18 +0,0 @@ |
|||||||
#ifndef h_messenSensoren |
|
||||||
#define h_messenSensoren |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void init_Messen(void); |
|
||||||
void MessenSensoren(void); |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// nicht schoen aber funktioniert
|
|
||||||
#include "hseSensorProtocol.h" |
|
||||||
extern HseSP hse; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif |
|
||||||
@ -1,29 +0,0 @@ |
|||||||
|
|
||||||
#include <Arduino.h> |
|
||||||
|
|
||||||
#include "myi2c.h" |
|
||||||
#include "bh1750.h" |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// Power Up and start Messung
|
|
||||||
void BH1750_Init(void) |
|
||||||
{ |
|
||||||
// BH1750 = HY30 Licht Sensor
|
|
||||||
Set_I2C_Adresse(BH1750_ADR); // GY-30 = 0x23
|
|
||||||
I2C_write8A( 1); // Power On
|
|
||||||
I2C_write8A( 0x20); // Start 1 lux Wandlung 120ms
|
|
||||||
delay(180); |
|
||||||
} |
|
||||||
//-------------------------------------------------
|
|
||||||
// Raed an Power Down
|
|
||||||
unsigned int BH1750_ReadLux( void ) |
|
||||||
{ |
|
||||||
unsigned int uiLux; |
|
||||||
|
|
||||||
uiLux = I2C_read16A()*10L/12; |
|
||||||
I2C_write8A( 0); // Power Down
|
|
||||||
return( uiLux); |
|
||||||
} |
|
||||||
//------------------------------------------------
|
|
||||||
@ -1,14 +0,0 @@ |
|||||||
#ifndef _BH1750_H_ |
|
||||||
#define _BH1750_H_ |
|
||||||
|
|
||||||
|
|
||||||
#include <Arduino.h> |
|
||||||
|
|
||||||
#define BH1750_ADR 0x23 |
|
||||||
|
|
||||||
void BH1750_Init(void); |
|
||||||
unsigned int BH1750_ReadLux( void ); |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif |
|
||||||
@ -1,115 +0,0 @@ |
|||||||
#include "Arduino.h" |
|
||||||
#include <Wire.h> |
|
||||||
|
|
||||||
#include "myI2c.h" |
|
||||||
#include "BME280.h" |
|
||||||
|
|
||||||
|
|
||||||
bme280_calib_data _bme280_calib; |
|
||||||
int32_t t_fine; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
void bme280_readCoefficients(void) |
|
||||||
{ |
|
||||||
_bme280_calib.dig_T1 = I2C_read16_LE(BME280_REGISTER_DIG_T1); |
|
||||||
_bme280_calib.dig_T2 = I2C_readS16_LE(BME280_REGISTER_DIG_T2); |
|
||||||
_bme280_calib.dig_T3 = I2C_readS16_LE(BME280_REGISTER_DIG_T3); |
|
||||||
|
|
||||||
_bme280_calib.dig_P1 = I2C_read16_LE(BME280_REGISTER_DIG_P1); |
|
||||||
_bme280_calib.dig_P2 = I2C_readS16_LE(BME280_REGISTER_DIG_P2); |
|
||||||
_bme280_calib.dig_P3 = I2C_readS16_LE(BME280_REGISTER_DIG_P3); |
|
||||||
_bme280_calib.dig_P4 = I2C_readS16_LE(BME280_REGISTER_DIG_P4); |
|
||||||
_bme280_calib.dig_P5 = I2C_readS16_LE(BME280_REGISTER_DIG_P5); |
|
||||||
_bme280_calib.dig_P6 = I2C_readS16_LE(BME280_REGISTER_DIG_P6); |
|
||||||
_bme280_calib.dig_P7 = I2C_readS16_LE(BME280_REGISTER_DIG_P7); |
|
||||||
_bme280_calib.dig_P8 = I2C_readS16_LE(BME280_REGISTER_DIG_P8); |
|
||||||
_bme280_calib.dig_P9 = I2C_readS16_LE(BME280_REGISTER_DIG_P9); |
|
||||||
|
|
||||||
_bme280_calib.dig_H1 = I2C_read8(BME280_REGISTER_DIG_H1); |
|
||||||
_bme280_calib.dig_H2 = I2C_readS16_LE(BME280_REGISTER_DIG_H2); |
|
||||||
_bme280_calib.dig_H3 = I2C_read8(BME280_REGISTER_DIG_H3); |
|
||||||
_bme280_calib.dig_H4 = (I2C_read8(BME280_REGISTER_DIG_H4) << 4) | (I2C_read8(BME280_REGISTER_DIG_H4+1) & 0xF); |
|
||||||
_bme280_calib.dig_H5 = (I2C_read8(BME280_REGISTER_DIG_H5+1) << 4) | (I2C_read8(BME280_REGISTER_DIG_H5) >> 4); |
|
||||||
_bme280_calib.dig_H6 = (int8_t)I2C_read8(BME280_REGISTER_DIG_H6); |
|
||||||
|
|
||||||
} |
|
||||||
//-------------------------------------------------------------
|
|
||||||
float bme280_readTemperature(void) |
|
||||||
{ |
|
||||||
int32_t var1, var2; |
|
||||||
|
|
||||||
int32_t adc_T = I2C_Read24(BME280_REGISTER_TEMPDATA); |
|
||||||
adc_T >>= 4; |
|
||||||
|
|
||||||
var1 = ((((adc_T>>3) - ((int32_t)_bme280_calib.dig_T1 <<1))) * |
|
||||||
((int32_t)_bme280_calib.dig_T2)) >> 11; |
|
||||||
|
|
||||||
var2 = (((((adc_T>>4) - ((int32_t)_bme280_calib.dig_T1)) * |
|
||||||
((adc_T>>4) - ((int32_t)_bme280_calib.dig_T1))) >> 12) * |
|
||||||
((int32_t)_bme280_calib.dig_T3)) >> 14; |
|
||||||
|
|
||||||
t_fine = var1 + var2; |
|
||||||
|
|
||||||
float T = (t_fine * 5 + 128) >> 8; |
|
||||||
return T/100; |
|
||||||
} |
|
||||||
//---------------------------------------------------
|
|
||||||
float bme280_readPressure(void) |
|
||||||
{ |
|
||||||
int64_t var1, var2, p; |
|
||||||
|
|
||||||
|
|
||||||
// Must be done first to get the t_fine variable set up
|
|
||||||
bme280_readTemperature(); |
|
||||||
|
|
||||||
int32_t adc_P = I2C_Read24(BME280_REGISTER_PRESSUREDATA); |
|
||||||
adc_P >>= 4; |
|
||||||
|
|
||||||
var1 = ((int64_t)t_fine) - 128000; |
|
||||||
var2 = var1 * var1 * (int64_t)_bme280_calib.dig_P6; |
|
||||||
var2 = var2 + ((var1*(int64_t)_bme280_calib.dig_P5)<<17); |
|
||||||
var2 = var2 + (((int64_t)_bme280_calib.dig_P4)<<35); |
|
||||||
var1 = ((var1 * var1 * (int64_t)_bme280_calib.dig_P3)>>8) + |
|
||||||
((var1 * (int64_t)_bme280_calib.dig_P2)<<12); |
|
||||||
var1 = (((((int64_t)1)<<47)+var1))*((int64_t)_bme280_calib.dig_P1)>>33; |
|
||||||
|
|
||||||
if (var1 == 0) { |
|
||||||
return 0; // avoid exception caused by division by zero
|
|
||||||
} |
|
||||||
p = 1048576 - adc_P; |
|
||||||
p = (((p<<31) - var2)*3125) / var1; |
|
||||||
var1 = (((int64_t)_bme280_calib.dig_P9) * (p>>13) * (p>>13)) >> 25; |
|
||||||
var2 = (((int64_t)_bme280_calib.dig_P8) * p) >> 19; |
|
||||||
|
|
||||||
p = ((p + var1 + var2) >> 8) + (((int64_t)_bme280_calib.dig_P7)<<4); |
|
||||||
return (float)p/256; |
|
||||||
} |
|
||||||
//----------------------------------------------------------
|
|
||||||
float bme280_readHumidity(void) |
|
||||||
{ |
|
||||||
bme280_readTemperature(); // must be done first to get t_fine
|
|
||||||
|
|
||||||
int32_t adc_H = I2C_read16(BME280_REGISTER_HUMIDDATA); |
|
||||||
|
|
||||||
int32_t v_x1_u32r; |
|
||||||
|
|
||||||
v_x1_u32r = (t_fine - ((int32_t)76800)); |
|
||||||
|
|
||||||
v_x1_u32r = (((((adc_H << 14) - (((int32_t)_bme280_calib.dig_H4) << 20) - |
|
||||||
(((int32_t)_bme280_calib.dig_H5) * v_x1_u32r)) + ((int32_t)16384)) >> 15) * |
|
||||||
(((((((v_x1_u32r * ((int32_t)_bme280_calib.dig_H6)) >> 10) * |
|
||||||
(((v_x1_u32r * ((int32_t)_bme280_calib.dig_H3)) >> 11) + ((int32_t)32768))) >> 10) + |
|
||||||
((int32_t)2097152)) * ((int32_t)_bme280_calib.dig_H2) + 8192) >> 14)); |
|
||||||
|
|
||||||
v_x1_u32r = (v_x1_u32r - (((((v_x1_u32r >> 15) * (v_x1_u32r >> 15)) >> 7) * |
|
||||||
((int32_t)_bme280_calib.dig_H1)) >> 4)); |
|
||||||
|
|
||||||
v_x1_u32r = (v_x1_u32r < 0) ? 0 : v_x1_u32r; |
|
||||||
v_x1_u32r = (v_x1_u32r > 419430400) ? 419430400 : v_x1_u32r; |
|
||||||
float h = (v_x1_u32r>>12); |
|
||||||
return h / 1024.0; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
@ -1,74 +0,0 @@ |
|||||||
#define BME280_ADR 0x76 |
|
||||||
|
|
||||||
enum |
|
||||||
{ |
|
||||||
BME280_REGISTER_DIG_T1 = 0x88, |
|
||||||
BME280_REGISTER_DIG_T2 = 0x8A, |
|
||||||
BME280_REGISTER_DIG_T3 = 0x8C, |
|
||||||
|
|
||||||
BME280_REGISTER_DIG_P1 = 0x8E, |
|
||||||
BME280_REGISTER_DIG_P2 = 0x90, |
|
||||||
BME280_REGISTER_DIG_P3 = 0x92, |
|
||||||
BME280_REGISTER_DIG_P4 = 0x94, |
|
||||||
BME280_REGISTER_DIG_P5 = 0x96, |
|
||||||
BME280_REGISTER_DIG_P6 = 0x98, |
|
||||||
BME280_REGISTER_DIG_P7 = 0x9A, |
|
||||||
BME280_REGISTER_DIG_P8 = 0x9C, |
|
||||||
BME280_REGISTER_DIG_P9 = 0x9E, |
|
||||||
|
|
||||||
BME280_REGISTER_DIG_H1 = 0xA1, |
|
||||||
BME280_REGISTER_DIG_H2 = 0xE1, |
|
||||||
BME280_REGISTER_DIG_H3 = 0xE3, |
|
||||||
BME280_REGISTER_DIG_H4 = 0xE4, |
|
||||||
BME280_REGISTER_DIG_H5 = 0xE5, |
|
||||||
BME280_REGISTER_DIG_H6 = 0xE7, |
|
||||||
|
|
||||||
BME280_REGISTER_CHIPID = 0xD0, |
|
||||||
BME280_REGISTER_VERSION = 0xD1, |
|
||||||
BME280_REGISTER_SOFTRESET = 0xE0, |
|
||||||
|
|
||||||
BME280_REGISTER_CAL26 = 0xE1, // R calibration stored in 0xE1-0xF0
|
|
||||||
|
|
||||||
BME280_REGISTER_CONTROLHUMID = 0xF2, |
|
||||||
BME280_REGISTER_CONTROL = 0xF4, |
|
||||||
BME280_REGISTER_CONFIG = 0xF5, |
|
||||||
BME280_REGISTER_PRESSUREDATA = 0xF7, |
|
||||||
BME280_REGISTER_TEMPDATA = 0xFA, |
|
||||||
BME280_REGISTER_HUMIDDATA = 0xFD, |
|
||||||
}; |
|
||||||
|
|
||||||
// CALIBRATION DATA
|
|
||||||
|
|
||||||
typedef struct |
|
||||||
{ |
|
||||||
uint16_t dig_T1; |
|
||||||
int16_t dig_T2; |
|
||||||
int16_t dig_T3; |
|
||||||
|
|
||||||
uint16_t dig_P1; |
|
||||||
int16_t dig_P2; |
|
||||||
int16_t dig_P3; |
|
||||||
int16_t dig_P4; |
|
||||||
int16_t dig_P5; |
|
||||||
int16_t dig_P6; |
|
||||||
int16_t dig_P7; |
|
||||||
int16_t dig_P8; |
|
||||||
int16_t dig_P9; |
|
||||||
|
|
||||||
uint8_t dig_H1; |
|
||||||
int16_t dig_H2; |
|
||||||
uint8_t dig_H3; |
|
||||||
int16_t dig_H4; |
|
||||||
int16_t dig_H5; |
|
||||||
int8_t dig_H6; |
|
||||||
} bme280_calib_data; |
|
||||||
|
|
||||||
|
|
||||||
void bme280_readCoefficients(void); |
|
||||||
float bme280_readTemperature(void); |
|
||||||
float bme280_readPressure(void); |
|
||||||
float bme280_readHumidity(void); |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,119 +0,0 @@ |
|||||||
#include "Arduino.h" |
|
||||||
#include <Wire.h> |
|
||||||
|
|
||||||
uint8_t _i2caddr; |
|
||||||
|
|
||||||
//-----------------------------------
|
|
||||||
void Set_I2C_Adresse(uint8_t I2C_Adr) |
|
||||||
{ |
|
||||||
_i2caddr = I2C_Adr; |
|
||||||
//Wire.setClock(10000);
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
|
||||||
uint8_t I2C_read8(byte reg) |
|
||||||
{ |
|
||||||
uint8_t value; |
|
||||||
|
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr); |
|
||||||
Wire.write((uint8_t)reg); |
|
||||||
Wire.endTransmission(); |
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)1); |
|
||||||
value = Wire.read(); |
|
||||||
|
|
||||||
return value; |
|
||||||
} |
|
||||||
//----------------------------------------------
|
|
||||||
void I2C_write8(byte reg, byte value) |
|
||||||
{ |
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr); |
|
||||||
Wire.write((uint8_t)reg); |
|
||||||
Wire.write((uint8_t)value); |
|
||||||
Wire.endTransmission(); |
|
||||||
} |
|
||||||
//---------------------------------------------
|
|
||||||
|
|
||||||
// 8bit ohne Register schreiben
|
|
||||||
void I2C_write8A(byte value) |
|
||||||
{ |
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr); |
|
||||||
Wire.write((uint8_t)value); |
|
||||||
Wire.endTransmission(); |
|
||||||
} |
|
||||||
//---------------------------------------------
|
|
||||||
uint16_t I2C_read16(byte reg) |
|
||||||
{ |
|
||||||
uint16_t value; |
|
||||||
|
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr); |
|
||||||
Wire.write((uint8_t)reg); |
|
||||||
Wire.endTransmission(); |
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)2); |
|
||||||
value = (Wire.read() << 8) | Wire.read(); |
|
||||||
|
|
||||||
return value; |
|
||||||
} |
|
||||||
//------------------------------------------
|
|
||||||
// 16 bit lesen ohne Register
|
|
||||||
uint16_t I2C_read16A(void) |
|
||||||
{ |
|
||||||
uint16_t value; |
|
||||||
|
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr); |
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)2); |
|
||||||
value = (Wire.read() << 8) | Wire.read(); |
|
||||||
|
|
||||||
return value; |
|
||||||
} |
|
||||||
//------------------------------------------
|
|
||||||
|
|
||||||
int16_t I2C_readS16(byte reg) |
|
||||||
{ |
|
||||||
return (int16_t)I2C_read16(reg); |
|
||||||
} |
|
||||||
//---------------------------------------------
|
|
||||||
uint16_t I2C_read16_LE(byte reg) |
|
||||||
{ |
|
||||||
uint16_t temp = I2C_read16(reg); |
|
||||||
return (temp >> 8) | (temp << 8); |
|
||||||
|
|
||||||
} |
|
||||||
//------------------------------------------
|
|
||||||
int16_t I2C_readS16_LE(byte reg) |
|
||||||
{ |
|
||||||
return (int16_t)I2C_read16_LE(reg); |
|
||||||
|
|
||||||
} |
|
||||||
//----------------------------------------------
|
|
||||||
uint32_t I2C_Read24(byte reg) |
|
||||||
{ |
|
||||||
uint32_t value; |
|
||||||
|
|
||||||
Wire.beginTransmission((uint8_t)_i2caddr); |
|
||||||
Wire.write((uint8_t)reg); |
|
||||||
Wire.endTransmission(); |
|
||||||
Wire.requestFrom((uint8_t)_i2caddr, (byte)3); |
|
||||||
|
|
||||||
value = Wire.read(); |
|
||||||
value <<= 8; |
|
||||||
value |= Wire.read(); |
|
||||||
value <<= 8; |
|
||||||
value |= Wire.read(); |
|
||||||
|
|
||||||
return value; |
|
||||||
} |
|
||||||
//--------------------------
|
|
||||||
uint8_t I2C_Test(byte adr) |
|
||||||
{ |
|
||||||
uint8_t value; |
|
||||||
|
|
||||||
Wire.beginTransmission((uint8_t)adr); |
|
||||||
Wire.write((uint8_t)0); |
|
||||||
Wire.endTransmission(); |
|
||||||
Wire.requestFrom((uint8_t)adr, (byte)1); |
|
||||||
value = Wire.read(); |
|
||||||
|
|
||||||
return value; |
|
||||||
} |
|
||||||
//----------------------------------------------
|
|
||||||
@ -1,20 +0,0 @@ |
|||||||
|
|
||||||
void Set_I2C_Adresse(uint8_t I2C_Adr); |
|
||||||
|
|
||||||
uint8_t I2C_read8(byte reg); |
|
||||||
void I2C_write8(byte reg, byte value); |
|
||||||
|
|
||||||
uint16_t I2C_read16(byte reg); |
|
||||||
int16_t I2C_readS16(byte reg); |
|
||||||
int16_t I2C_readS16_LE(byte reg); |
|
||||||
int16_t I2C_readS16_LE(byte reg); |
|
||||||
uint16_t I2C_read16_LE(byte reg) ; |
|
||||||
uint32_t I2C_Read24(byte reg); |
|
||||||
|
|
||||||
void I2C_write8A(byte value); |
|
||||||
uint16_t I2C_read16A(void); |
|
||||||
uint8_t I2C_Test(byte adr); |
|
||||||
|
|
||||||
extern uint8_t _i2caddr; |
|
||||||
|
|
||||||
|
|
||||||
@ -1,140 +0,0 @@ |
|||||||
// Sensoren lesen
|
|
||||||
|
|
||||||
#include <arduino.h> |
|
||||||
#include "MessenSensoren.h" |
|
||||||
#include <Wire.h> |
|
||||||
#include "myi2c.h" |
|
||||||
#include "bme280.h" |
|
||||||
#include "bh1750.h" |
|
||||||
#include "hseSensorProtocol.h" |
|
||||||
|
|
||||||
#define I2C_POWER 5 // bei Feather M0
|
|
||||||
|
|
||||||
|
|
||||||
// hse-Protokoll Datensatz
|
|
||||||
HseSP hse(2, 60); |
|
||||||
|
|
||||||
|
|
||||||
void init_Messen(void) |
|
||||||
{ |
|
||||||
int i; |
|
||||||
|
|
||||||
Serial.println("PowerOn I2C"); |
|
||||||
// I2C Power einschalten LoRa Transponder
|
|
||||||
pinMode(I2C_POWER,OUTPUT); |
|
||||||
digitalWrite(I2C_POWER, HIGH); |
|
||||||
delay(20); |
|
||||||
|
|
||||||
Wire.begin(); |
|
||||||
|
|
||||||
// Hardware detection, liste was angeschlossen ist
|
|
||||||
Serial.println("I2C Hardware detection"); |
|
||||||
|
|
||||||
if ( I2C_Test(BME280_ADR) != 0xFF ) |
|
||||||
{ |
|
||||||
Set_I2C_Adresse(BME280_ADR); |
|
||||||
i = I2C_read8(BME280_REGISTER_CHIPID); |
|
||||||
Serial1.print(F("BMx280 Chip ID = 0x")); |
|
||||||
Serial1.print(i,HEX); |
|
||||||
if ( i== 0x58) Serial1.println(F(" = BMP280")); |
|
||||||
if ( i== 0x60) Serial1.println(F(" = BME280")); |
|
||||||
} |
|
||||||
|
|
||||||
if ( I2C_Test(0x77) != 0xFF ) |
|
||||||
{ |
|
||||||
Serial.println("BMP180 gefunden"); |
|
||||||
} |
|
||||||
|
|
||||||
if ( I2C_Test(0x38) != 0xFF ) |
|
||||||
{ |
|
||||||
Serial.println(F("AHT10 gefunden")); |
|
||||||
} |
|
||||||
|
|
||||||
// such BH1730
|
|
||||||
if ( I2C_Test(0x29) != 0xFF ) |
|
||||||
{ |
|
||||||
Serial.println("BH1730 gefunden"); |
|
||||||
} |
|
||||||
|
|
||||||
// such BH1750
|
|
||||||
if ( I2C_Test(0x23) != 0xFF ) |
|
||||||
{ |
|
||||||
Serial.println("BH1750 gefunden"); |
|
||||||
BH1750_Init(); |
|
||||||
} |
|
||||||
Serial.println("ende"); |
|
||||||
} |
|
||||||
|
|
||||||
//--------------------------
|
|
||||||
void MessenSensoren(void) |
|
||||||
{ |
|
||||||
int i,status, error; |
|
||||||
float t,p,h; |
|
||||||
long lVisLux; |
|
||||||
|
|
||||||
|
|
||||||
Set_I2C_Adresse(BME280_ADR); |
|
||||||
i = I2C_read8(BME280_REGISTER_CHIPID); |
|
||||||
|
|
||||||
bme280_readCoefficients(); |
|
||||||
|
|
||||||
if ( i== 0x58) |
|
||||||
{ |
|
||||||
I2C_write8(BME280_REGISTER_CONTROL, 0x3F); |
|
||||||
delay(50); // gib ihm Zeit zum messen
|
|
||||||
} |
|
||||||
|
|
||||||
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
|
|
||||||
delay(100); // gib ihm Zeit zum messen
|
|
||||||
} |
|
||||||
// 35ms reicht beim BMP280
|
|
||||||
// 75ms warten bis BME280 den Druck gemessen hat
|
|
||||||
|
|
||||||
//----------------
|
|
||||||
t = bme280_readTemperature(); |
|
||||||
p = bme280_readPressure()/100.0; |
|
||||||
h = bme280_readHumidity(); |
|
||||||
I2C_write8(BME280_REGISTER_CONTROL, 0x3C); // Sleep Mode
|
|
||||||
|
|
||||||
|
|
||||||
// such BH1750
|
|
||||||
if ( I2C_Test(0x23) != 0xFF ) |
|
||||||
{ |
|
||||||
// BH1750 = HY30 Licht Sensor
|
|
||||||
BH1750_Init(); |
|
||||||
lVisLux = BH1750_ReadLux(); |
|
||||||
} |
|
||||||
|
|
||||||
if ( lVisLux > 65535) lVisLux = 654321; |
|
||||||
|
|
||||||
|
|
||||||
Serial.print(F("Temp = ")); |
|
||||||
Serial.println(t); |
|
||||||
Serial.print(F("Druck = ")); |
|
||||||
Serial.println(p); |
|
||||||
Serial.print(F("Feuchte = ")); |
|
||||||
Serial.println(h); |
|
||||||
|
|
||||||
Serial.print(F("Vis = ")); |
|
||||||
Serial.println(lVisLux); |
|
||||||
|
|
||||||
|
|
||||||
hse.reset(); |
|
||||||
//Ein Klimasensor hinzufügen
|
|
||||||
HseSP::ClimateSensor_t cs; |
|
||||||
cs.Temperature = t; //°C
|
|
||||||
cs.Humidity = h; //%
|
|
||||||
cs.Pressure = p; //hPa
|
|
||||||
cs.Illuminance = lVisLux; //lux
|
|
||||||
hse.addClimateSensor(&cs); |
|
||||||
|
|
||||||
// hse.addVoltage(fUb/1000.0); // in Volt
|
|
||||||
// hse.addCounter(uiOnStd); // Zeit On
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} |
|
||||||
Loading…
Reference in new issue