mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01:00 
			
		
		
		
	* bugfix, print not allowed in constructor * Update tpuart_data_link_layer.cpp - start confirm timout only after last byte was sent - increase BYTE_TIMEOUT * -bugfix, change debug Uart not possible * Update esp32_platform.cpp * Update esp_platform.cpp * Update knx-bme680.ino * Update knx-demo.ino * Update knx-hdc1008.ino * Update knx-sonoffS20.ino
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <HDC100X.h>
 | 
						|
#include <knx.h>
 | 
						|
#ifdef ARDUINO_ARCH_ESP8266
 | 
						|
#include <WiFiManager.h>
 | 
						|
#endif
 | 
						|
 | 
						|
HDC100X HDC1(0x43);
 | 
						|
 | 
						|
// create macros easy access to group objects
 | 
						|
#define goTemperature knx.getGroupObject(1)
 | 
						|
#define goHumidity knx.getGroupObject(2)
 | 
						|
 | 
						|
long lastsend = 0;
 | 
						|
 | 
						|
// Helper functions declarations
 | 
						|
void errLeds(void);
 | 
						|
 | 
						|
uint8_t sendCounter = 0;
 | 
						|
uint32_t cyclSend = 0;
 | 
						|
 | 
						|
// Entry point for the example
 | 
						|
void setup(void)
 | 
						|
{
 | 
						|
    Serial.begin(115200);
 | 
						|
    ArduinoPlatform::SerialDebug = &Serial;
 | 
						|
    delay(5000);
 | 
						|
    Serial.println("start");
 | 
						|
 | 
						|
#ifdef ARDUINO_ARCH_ESP8266
 | 
						|
	WiFiManager wifiManager;    
 | 
						|
    wifiManager.autoConnect("knx-hdc1008");
 | 
						|
#endif
 | 
						|
 | 
						|
    // Programming LED on digital pin D5
 | 
						|
    knx.ledPin(5);
 | 
						|
    // Programming button on digital pin D7
 | 
						|
    knx.buttonPin(7);    
 | 
						|
 | 
						|
    // read adress table, association table, groupobject table and parameters from eeprom
 | 
						|
    knx.readMemory();
 | 
						|
 | 
						|
    HDC1.begin(HDC100X_TEMP_HUMI,HDC100X_14BIT,HDC100X_14BIT,DISABLE);
 | 
						|
    
 | 
						|
    if (knx.configured())
 | 
						|
    {
 | 
						|
		
 | 
						|
        cyclSend = knx.paramInt(0);
 | 
						|
        Serial.print("Zykl. send:");
 | 
						|
        Serial.println(cyclSend);
 | 
						|
    }
 | 
						|
    
 | 
						|
    // start the framework.
 | 
						|
    knx.start();
 | 
						|
 | 
						|
    String output = "Timestamp [ms], temperature [°C], relative humidity [%]";
 | 
						|
    Serial.println(output);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
// Function that is looped forever
 | 
						|
void loop(void)
 | 
						|
{
 | 
						|
    // don't delay here to much. Otherwise you might lose packages or mess up the timing with ETS
 | 
						|
    knx.loop();
 | 
						|
 | 
						|
    // only run the application code if the device was configured with ETS
 | 
						|
    if(!knx.configured())
 | 
						|
        return;
 | 
						|
   
 | 
						|
    long now = millis();
 | 
						|
    if ((now - lastsend) < 3000)
 | 
						|
        return;
 | 
						|
 | 
						|
    lastsend = now;
 | 
						|
 | 
						|
    float temp = HDC1.getTemp();
 | 
						|
    float humi = HDC1.getHumi();
 | 
						|
    String output = String(millis());
 | 
						|
    output += ", " + String(temp);
 | 
						|
    output += ", " + String(humi);
 | 
						|
    Serial.println(output);
 | 
						|
        
 | 
						|
    if (sendCounter++ == cyclSend)
 | 
						|
    {
 | 
						|
        sendCounter = 0;
 | 
						|
    
 | 
						|
        goTemperature.value(temp);
 | 
						|
        goHumidity.value(humi);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
void errLeds(void)
 | 
						|
{
 | 
						|
    pinMode(LED_BUILTIN, OUTPUT);
 | 
						|
    digitalWrite(LED_BUILTIN, HIGH);
 | 
						|
    delay(100);
 | 
						|
    digitalWrite(LED_BUILTIN, LOW);
 | 
						|
    delay(100);
 | 
						|
}
 |