TomMajor / SmartHome

Various SmartHome projects, devices, information and examples including AskSinPP usage
86 stars 28 forks source link

HB-UNI-Sensor - add TEMP6000 support [solved as patch] #15

Closed harvey637 closed 5 years ago

harvey637 commented 5 years ago

Hallo Major Tom, ich habe zum HB-Uni-Sensor den Lichtsensor TEMT6000 hinzugefügt. Dazu:

48d47
< //#define SENSOR_TEMT6000   // Lichtmessung
51c50

115,119d113
< #ifdef SENSOR_TEMT6000
< #define TEMT6000_SENSPIN A1   //Ambient light sensor reading
< #define TEMT6000_ACTPIN   7   //Ambient light sensor reading
< #endif
< 

355c349
<         temperature10 = -290;   // -29.0C
---
>         temperature10 = 188;    // 18.8C

358c352
<         humidity = 0;    // 0%
---
>         humidity = 88;    // 88%

361c355
<         airPressure10 = 10130;    // 1013 hPa
---
>         airPressure10 = 10880;    // 1088 hPa

363,364c357,358
< #if !defined(SENSOR_TSL2561) && !defined(SENSOR_MAX44009) && !defined TEMT6000
<         brightness = 0;    // 0 Lux
---
> #if !defined(SENSOR_TSL2561) && !defined(SENSOR_MAX44009)
>         brightness = 88000;    // 88000 Lux

< // Entweder TSL2561 oder MAX44009 oder TEMT6000 für Helligkeit, ggf. für anderen Bedarf anpassen
---
> // Entweder TSL2561 oder MAX44009 für Helligkeit, ggf. für anderen Bedarf anpassen

403,411d396
< 
< #elif defined SENSOR_TEMT6000
<         pinMode(TEMT6000_ACTPIN, OUTPUT);
<         digitalWrite(TEMT6000_ACTPIN, HIGH);
<         delay(1);                  // waits for a millisecond
<         float reading = analogRead(TEMT6000_SENSPIN);   //Read light level
<         brightness = int((reading / 1023.0) * 100);    //Get percent of maximum value (1023)
<         DPRINT(F("Bright: ")); DDECLN(brightness); 
<         pinMode(TEMT6000_ACTPIN, INPUT);

447,450d431
< #ifdef SENSOR_TEMT6000
<         pinMode(TEMT6000_SENSPIN, INPUT);
<         pinMode(TEMT6000_ACTPIN, INPUT);
< #endif

452,453c433,434
< //        DPRINT(F("Serial: "));
< //        DPRINTLN(cDEVICE_SERIAL);
---
>         DPRINT(F("Serial: "));
>         DPRINTLN(cDEVICE_SERIAL);

525d505
<     DDEVINFO(sdev);
TomMajor commented 5 years ago

Was ist der Vorteil des TEMT6000 gegenüber den beiden anderen unterstützten Helligkeitssensoren? Die Helligkeit wird aktuell im AddOn als LUX übertragen, % ist schlecht (und was wäre 100% ?)

harvey637 commented 5 years ago

Hi, der Preis :-) Und nicht jeder Sensor braucht eine Auflösung auf drei Nachkommastellen, etwa Bewegungssensor. Darüber hinaus ist die Behandlung simpel. Da mir eine nicht lux-genaue Info reichte und der Einbau in den Sketch minimal ist habe ich es einfach mal gemacht. Und der UNI-SENSOR ist halt einfach erweiterbar. Ausserdem einfach ein weiterer einbindbarer Sensor. Part2: die geänderten Dummywerte zeigen besser, wenn Sensor wirklich nicht da ist. Part3: DDEVINFO(sdev) ... ist halt schon vorhanden Wie gesagt, alles nur Vorschlag, kann jederzeit gerne weg, und es steht ja drin "... kann selbst angepasst werden ..." PS: Infos zu Fuses und Bootloader finde ich gut, ich hatte auch mal für mich die Verwendung des OTA-Bootloader vereinfacht, das ist auch noch etwas intransparent, aber lernbar. Danke und ciao Harvey

TomMajor commented 5 years ago

ok, alles klar. Wenn jemand den Sensor braucht kann er das ja entsprechend modifizieren. Ich nehme die Änderung mal nicht mit aktiv in den Sketch auf weil der physikalische Wert nicht zum AddOn xml passt. Danke für den Beitrag.