Add environment sensor HTU21, BMP085 and BMP0180
This commit is contained in:
		
							parent
							
								
									22fe6d0102
								
							
						
					
					
						commit
						7903d520e1
					
				| 
						 | 
					@ -12,11 +12,13 @@
 | 
				
			||||||
    // Extension Port MCP23017
 | 
					    // Extension Port MCP23017
 | 
				
			||||||
    #define MCP23017_I2C_ADDR 0x20  // Addr. 0 is 0x20
 | 
					    #define MCP23017_I2C_ADDR 0x20  // Addr. 0 is 0x20
 | 
				
			||||||
    // BME280
 | 
					    // BME280
 | 
				
			||||||
    #define BME280_I2C_ADDR 0x76    // Addr. 0x76
 | 
					    #define BME280_I2C_ADDR 0x76    // Addr. 0x76 (0x77)
 | 
				
			||||||
    // BMP280
 | 
					    // BMP280
 | 
				
			||||||
    #define BMP280_I2C_ADDR 0x77    // Addr. 0x77
 | 
					    #define BMP280_I2C_ADDR 0x77    // Addr. 0x77
 | 
				
			||||||
    // SHT21
 | 
					    // BMP085 / BMP180
 | 
				
			||||||
    #define SHT21_I2C_ADDR 0x40     // Addr. 0x40
 | 
					    #define BMP280_I2C_ADDR 0x77    // Addr. 0x77 (fix)
 | 
				
			||||||
 | 
					    // SHT21 / HUT21
 | 
				
			||||||
 | 
					    #define SHT21_I2C_ADDR 0x40     // Addr. 0x40 (fix)
 | 
				
			||||||
    // SPI (E-Ink display, Extern Bus)
 | 
					    // SPI (E-Ink display, Extern Bus)
 | 
				
			||||||
    #define OBP_SPI_CS 5
 | 
					    #define OBP_SPI_CS 5
 | 
				
			||||||
    #define OBP_SPI_DC 17
 | 
					    #define OBP_SPI_DC 17
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -251,6 +251,9 @@
 | 
				
			||||||
            "off",
 | 
					            "off",
 | 
				
			||||||
            "BME280",
 | 
					            "BME280",
 | 
				
			||||||
            "BMP280",
 | 
					            "BMP280",
 | 
				
			||||||
 | 
					            "BMP180",
 | 
				
			||||||
 | 
					            "BMP085",
 | 
				
			||||||
 | 
					            "HTU21",
 | 
				
			||||||
            "SHT21"
 | 
					            "SHT21"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "category": "OBP60 Hardware",
 | 
					        "category": "OBP60 Hardware",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,6 +9,7 @@
 | 
				
			||||||
#include <Adafruit_Sensor.h>            // Adafruit Lib for sensors
 | 
					#include <Adafruit_Sensor.h>            // Adafruit Lib for sensors
 | 
				
			||||||
#include <Adafruit_BME280.h>            // Adafruit Lib for BME280
 | 
					#include <Adafruit_BME280.h>            // Adafruit Lib for BME280
 | 
				
			||||||
#include <Adafruit_BMP280.h>            // Adafruit Lib for BMP280
 | 
					#include <Adafruit_BMP280.h>            // Adafruit Lib for BMP280
 | 
				
			||||||
 | 
					#include <Adafruit_BMP085.h>            // Adafruit Lib for BMP085 and BMP180
 | 
				
			||||||
#include <HTU21D.h>                     // Lib for SHT21/HTU21
 | 
					#include <HTU21D.h>                     // Lib for SHT21/HTU21
 | 
				
			||||||
#include <N2kTypes.h>                   // NMEA2000
 | 
					#include <N2kTypes.h>                   // NMEA2000
 | 
				
			||||||
#include <N2kMessages.h>
 | 
					#include <N2kMessages.h>
 | 
				
			||||||
| 
						 | 
					@ -36,15 +37,17 @@ ObpNmea0183 NMEA0183;                   // Fixed Lib for NMEA0183
 | 
				
			||||||
// tNMEA0183 NMEA0183;                  // Old lib with problems for NMEA0183
 | 
					// tNMEA0183 NMEA0183;                  // Old lib with problems for NMEA0183
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Adafruit_BME280 bme280;                 // Evironment sensor BME280
 | 
					Adafruit_BME280 bme280;                 // Evironment sensor BME280
 | 
				
			||||||
Adafruit_BMP280 bmp280;                 // Evironment sensor BMEP280
 | 
					Adafruit_BMP280 bmp280;                 // Evironment sensor BMP280
 | 
				
			||||||
HTU21D  sht21(HTU21D_RES_RH12_TEMP14);  // Environment sensor SHT21 identical to HTU21
 | 
					Adafruit_BMP085 bmp085;                 //Evironment sensor BMP085 and BMP180
 | 
				
			||||||
 | 
					HTU21D  sht21(HTU21D_RES_RH12_TEMP14);  // Environment sensor SHT21 and HTU21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Global vars
 | 
					// Global vars
 | 
				
			||||||
bool initComplete = false;      // Initialization complete
 | 
					bool initComplete = false;      // Initialization complete
 | 
				
			||||||
int taskRunCounter = 0;         // Task couter for loop section
 | 
					int taskRunCounter = 0;         // Task couter for loop section
 | 
				
			||||||
bool gps_ready = false;         // GPS initialized and ready to use
 | 
					bool gps_ready = false;         // GPS initialized and ready to use
 | 
				
			||||||
bool BME280_ready = false;      // BME280 initialized and ready to use
 | 
					bool BME280_ready = false;      // BME280 initialized and ready to use
 | 
				
			||||||
bool BMP280_ready = false;      // BMP20 initialized and ready to use
 | 
					bool BMP280_ready = false;      // BMP280 initialized and ready to use
 | 
				
			||||||
 | 
					bool BMP180_ready = false;      // BMP180 initialized and ready to use
 | 
				
			||||||
bool SHT21_ready = false;       // SHT21 initialized and ready to use
 | 
					bool SHT21_ready = false;       // SHT21 initialized and ready to use
 | 
				
			||||||
double airhumidity = 0;         // Air Humitity value from environment sensor
 | 
					double airhumidity = 0;         // Air Humitity value from environment sensor
 | 
				
			||||||
double airtemperature = 0;      // Air Temperature value from environment sensor
 | 
					double airtemperature = 0;      // Air Temperature value from environment sensor
 | 
				
			||||||
| 
						 | 
					@ -218,12 +221,23 @@ void OBP60Init(GwApi *api){
 | 
				
			||||||
            BMP280_ready = true;
 | 
					            BMP280_ready = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    else if(String(envSensors) == "SHT21"){
 | 
					    else if(String(envSensors) == "BMP085" || String(envSensors) == "BMP180"){
 | 
				
			||||||
        if (!sht21.begin()) {
 | 
					        if (!bmp085.begin()) {
 | 
				
			||||||
            api->getLogger()->logDebug(GwLog::ERROR,"Modul SHT21 not found, check wiring");
 | 
					            api->getLogger()->logDebug(GwLog::ERROR,"Modul BMP085/BMP180 not found, check wiring");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else{
 | 
					        else{
 | 
				
			||||||
            api->getLogger()->logDebug(GwLog::DEBUG,"Modul SHT21 found");
 | 
					            api->getLogger()->logDebug(GwLog::DEBUG,"Modul BMP085/BMP180 found");
 | 
				
			||||||
 | 
					            airtemperature = bmp085.readTemperature();
 | 
				
			||||||
 | 
					            airpressure  =bmp085.readPressure()/100;
 | 
				
			||||||
 | 
					            BMP180_ready = true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    else if(String(envSensors) == "HTU21" || String(envSensors) == "SHT21"){
 | 
				
			||||||
 | 
					        if (!sht21.begin()) {
 | 
				
			||||||
 | 
					            api->getLogger()->logDebug(GwLog::ERROR,"Modul HTU21/SHT21 not found, check wiring");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else{
 | 
				
			||||||
 | 
					            api->getLogger()->logDebug(GwLog::DEBUG,"Modul HTU21/SHT21 found");
 | 
				
			||||||
            airhumidity = sht21.readCompensatedHumidity();
 | 
					            airhumidity = sht21.readCompensatedHumidity();
 | 
				
			||||||
            airtemperature = sht21.readTemperature();
 | 
					            airtemperature = sht21.readTemperature();
 | 
				
			||||||
            SHT21_ready = true;
 | 
					            SHT21_ready = true;
 | 
				
			||||||
| 
						 | 
					@ -681,7 +695,22 @@ void OBP60Task(GwApi *api){
 | 
				
			||||||
                        api->sendN2kMessage(N2kMsg);
 | 
					                        api->sendN2kMessage(N2kMsg);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else if(envsensor == "SHT21" && BME280_ready == true){
 | 
					                else if((envsensor == "BMP085" || envsensor == "BMP180") && BMP180_ready == true){
 | 
				
			||||||
 | 
					                    airtemperature = bmp085.readTemperature();
 | 
				
			||||||
 | 
					                    commonData.data.airTemperature = airtemperature;   // Data take over to page
 | 
				
			||||||
 | 
					                    airpressure  =bmp085.readPressure()/100;
 | 
				
			||||||
 | 
					                    commonData.data.airPressure = airpressure;         // Data take over to page
 | 
				
			||||||
 | 
					                    // Send to NMEA200 bus
 | 
				
			||||||
 | 
					                    if(!isnan(airtemperature)){
 | 
				
			||||||
 | 
					                        SetN2kPGN130312(N2kMsg, 0, 0,(tN2kTempSource) TempSource, CToKelvin(airtemperature), N2kDoubleNA);
 | 
				
			||||||
 | 
					                        api->sendN2kMessage(N2kMsg);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if(!isnan(airpressure)){
 | 
				
			||||||
 | 
					                        SetN2kPGN130314(N2kMsg, 0, 0, (tN2kPressureSource) mBarToPascal(PressureSource), airpressure);
 | 
				
			||||||
 | 
					                        api->sendN2kMessage(N2kMsg);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else if((envsensor == "SHT21" || envsensor == "HTU21") && SHT21_ready == true){
 | 
				
			||||||
                    airhumidity = sht21.readCompensatedHumidity();
 | 
					                    airhumidity = sht21.readCompensatedHumidity();
 | 
				
			||||||
                    commonData.data.airHumidity = airhumidity;         // Data take over to page
 | 
					                    commonData.data.airHumidity = airhumidity;         // Data take over to page
 | 
				
			||||||
                    airtemperature = sht21.readTemperature();
 | 
					                    airtemperature = sht21.readTemperature();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@ lib_deps =
 | 
				
			||||||
        sstaub/Ticker@4.4.0
 | 
					        sstaub/Ticker@4.4.0
 | 
				
			||||||
        adafruit/Adafruit BMP280 Library@2.6.2
 | 
					        adafruit/Adafruit BMP280 Library@2.6.2
 | 
				
			||||||
	    adafruit/Adafruit BME280 Library@2.2.2
 | 
						    adafruit/Adafruit BME280 Library@2.2.2
 | 
				
			||||||
 | 
					        adafruit/Adafruit BMP085 Library@1.2.1
 | 
				
			||||||
        enjoyneering/HTU21D@1.2.1
 | 
					        enjoyneering/HTU21D@1.2.1
 | 
				
			||||||
build_flags=
 | 
					build_flags=
 | 
				
			||||||
    -D BOARD_NODEMCU32S_OBP60
 | 
					    -D BOARD_NODEMCU32S_OBP60
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue