Funksensor mit Bosch sensortec BME680 / Luftgüte

Begonnen von juergs, 28 Oktober 2017, 18:05:43

Vorheriges Thema - Nächstes Thema

hdgucken

Hallo Jürgen,

auf die Drehung der Signale hatte ich gar nicht geachtet, hab nur D1 und D2 gesehen und dachte paßt  :o
Hab jetzt für den BME680 automatische Erkennung auf 0x76 oder 0x77 beim Universalsensor eingebaut,
endlich ist das Problem auch gelöst  ;)
Siehe hier:https://forum.fhem.de/index.php?topic=78128.msg745634#msg745634

Gruß Thomas

juergs

Zitathatte ich gar nicht geachtet, hab nur D1 und D2 gesehen und dachte paßt

ja, so ging's mir auch. Man wundert sich nur dass der Sketch für OLED nicht geht. Klar wenn die Signale gedreht sind...
Im Moment suche ich noch Pins für den RFM. Irgendwie wollen die, die ich verwende, nicht ...
Da Board benutzt 2 LEDS D4 + D0, dann noch I2C mit D1 + D2

Eigentlich sollten:
SCK   = D5
MISO = D6
MOSI = D7
SS     = D8
des ESPs funktionieren....



hdgucken

#272
Ja, D5-D8 wäre optimal, Hardware SPI. Das klappt nicht ?
Versuch mal, wenn Du Soft-SPI benutzt, die GPIO Nummern zu verwenden, also für D5: 14, D6: 12, D7: 13 und D8: 15.
Vielleicht will es deswegen nicht.

PeMue

#273
Hallo zusammen,

welche Einstellungen nehmt Ihr zum Kompilieren?
Generic ESP module
Flash mode: DIO
Flash size: 4 MB/1MB SPIFFS

Ist das so ok? Zumindest habe ich mal die IDE eingerichtet, dass Thomas' Projekt compiliert wird  ;D ;D ;D

BTW: Ohne Jürgen's verlinkte Dokumentation wäre ich nicht in der Lage gewesen, die Bibliothek einzubinden  >:( >:( >:(

Danke + Gruß

Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

hdgucken

#274
Hallo Peter,

Zitatwelche Einstellungen nehmt Ihr zum Kompilieren?
Board: "NodeMCU 1.0 (ESP-12E Module)" oder "WEMOS D1 R2 & mini", je nach Board.
Flash Size: "4M (3M SPIFFS), CPU Freq.: 80MHz, Upload Speed: 921600

ZitatBTW: Ohne Jürgen's verlinkte Dokumentation wäre ich nicht in der Lage gewesen, die Bibliothek einzubinden  >:( >:( >:(
Das ist natürlich etwas fummelig, hatte ich in meiner Doku nur zur Hälfte aufgeschrieben, hab auch wieder etwas gesucht,
als ich die esp8266 V2.4.0 aufgespielt hab, wußte aber zum Glück noch, wo es geschrieben steht  ;D

Boards einfügen:
unter "Datei" -> "Voreinstellungen" -> "Zusätzliche Boardverwalter-URL's" folgendes eintragen: "http://arduino.esp8266.com/stable/package_esp8266com_index.json"
Danach kannst Du unter "Werkzeuge" -> "Board" das passende auswählen  ;)

Edit: Für Peter zum kompilieren mal die V2.0 alpha anbei, viel Erfolg  ;)

Gruß Thomas






juergs

#275
Hallo Thomas,

ich kämpfe wieder mit den Tücken des Wroom2-Boards:

Wir benutzen:
RFMxx  rfm(RFM_MOSI, RFM_MISO, RFM_SCK, RFM_SS);
zur Initialisierung der RFM-Lib.

Als Konstruktor in der Lib steht:
RFMxx::RFMxx(byte mosi, byte miso, byte sck, byte ss, byte irq, TPinCallback pinFunction)

Dann als CodeBeispiel der Lib:

bool RFMxx::Begin(bool isPrimary) {
  // No radio found until now
  m_radioType = RFMxx::None;

  if (m_pinCallback) {
    m_pinCallback(1, m_ss, OUTPUT);
    m_pinCallback(2, m_ss, HIGH);

...
  }


und
void RFMxx::SetPin(byte pin, bool value) {
  if (m_pinCallback) {
    m_pinCallback(2, pin, value);
  }
  else {
    digitalWrite(pin, value);
  }
}


Wenn "m_pinCallback" nicht true ist wird der SS-Pin nicht korrekt initialisiert.
Die Funktionalität ist mir nicht ganz klar ... Grübel. (und die Pins machen im Wroom mit der RFM-Lib kein Muckser  :'(,   
obwohl ein Blink auf jeden einzelnen Pin geht ... ) .
Mal schauen wie die Implementierung hier eigentlich gedacht ist..
Für den ESP habe ich auch nicht wirklich gute (passende) Ersatz-RFM-Libs gefunden ....

Mich wundert nur, dass es im NodeMCU einfach "so" geht....  (Initialisierung ohne IRQ und den Callback.) ???

EDIT, Deswegen im Header:
ZitatRFMxx(byte mosi=255, byte miso=255, byte sck=255, byte ss=255, byte irq=255, TPinCallback pinFunction = NULL);


Grüße,
Jürgen

PeMue

Hallo Thomas,

Zitat von: hdgucken am 11 Januar 2018, 20:39:10
Boards einfügen:
unter "Datei" -> "Voreinstellungen" -> "Zusätzliche Boardverwalter-URL's" folgendes eintragen: "http://arduino.esp8266.com/stable/package_esp8266com_index.json"
Danach kannst Du unter "Werkzeuge" -> "Board" das passende auswählen  ;)
das war nicht das Problem, das hatte ich schon drin. Bei mir war das Thema die BSEC Library. Das was Bosch da gerade noch in der Dokumentation hat, reicht m.E. nicht aus, um die IDE einzurichten  :o

Zitat von: hdgucken am 11 Januar 2018, 20:39:10
Board: "NodeMCU 1.0 (ESP-12E Module)" oder "WEMOS D1 R2 & mini", je nach Board.
Flash Size: "4M (3M SPIFFS), CPU Freq.: 80MHz, Upload Speed: 921600
Ich hätte das Ganze unter Generic ESP Module (so wie ich damals ESPEasy compiliert habe) compiliert. Die Unterschiede ja quasi nicht vorhanden ...
Ist der Flash mode egal? Oder muss der nachher nur zum Flasher passen?

Danke + Gruß

PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

#277
Hallo Peter,

die Unterschiede sind in der Boards.txt Datei der Plattform ersichtlich.

Bei mir liegt die dort:
C:\Users\<user>\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.0-rc1\boards.txt

"d1_mini.name=WeMos D1 R2 & mini" gegen "Generic ESP8266 Module"  vergleichen.

Da gibt es schon Unterschiede: siehe unten ...

SimGa

Hallo zusammen,

hat eigentlich jemand den Ansatz weiter verfolgt, aus den aufgezeichneten Sensordaten Rückschlüsse auf den Algorithmus zu schließen?

Im internet habe ich bisher nur einen eher schlechten(zumindest hier in Colorado funktioniert er schlecht) alternativen Algorithmus gefunden, der sich aus dem Widerstand und der Luftfeuchte nährt.

Ich bin bezüglich des FHEM-Projects vollkommen fremd, aber viele von euch scheinen sich da schon echt den Kopf über den Sensor zerbrochen haben...

viele Grüße
SimGa

HCS

Zitat von: SimGa am 11 Januar 2018, 22:43:08
hat eigentlich jemand den Ansatz weiter verfolgt, aus den aufgezeichneten Sensordaten Rückschlüsse auf den Algorithmus zu schließen?
Ich denke, dass das Grundprinzip so aussieht: Die BSEC-Software rechnet sich über einen Zeitraum von einigen Tagen eine basline, wobei die niedrigste gesehene Schadstoffkonzentration als IAQ25 betrachtet wird und bei einem sinkenden Widerstand dreht sie die IAQ hoch und umgekehrt, unabhängig vom jeweiligen Absolutwert.
Und irgendwie rechnet sie die Luftfeuchtigkeit noch mit rein.

Ich finde es aber ein Unding, einen Sensor auf den Markt zu bringen und nicht zu verraten, was er (und die erforderliche Lib) eigentlich wirklich macht.
Zumindest den Einfluss von Heizdauer und Zieltemperatur und die Bedeutung des resultierenden Widerstands sollte man erfahren, um den Sensor vernünftig verwenden zu können.

Zitat von: SimGa am 11 Januar 2018, 22:43:08
..., aber viele von euch scheinen sich da schon echt den Kopf über den Sensor zerbrochen haben...
Bisher der Kopf zerbrochen, jetzt bin ich aber kurz davor, den Sensor zu zerbrechen ...  ;D ;D ;D

PeMue

Zitat von: hdgucken am 11 Januar 2018, 20:39:10
Für Peter zum kompilieren mal die V2.0 alpha anbei, viel Erfolg  ;)
Grrr, mit Lichtsensor geht es nicht
ZitatAS_BH1750.h nicht gefunden
aber ohne dann doch (wegen Compiler direktive). Ich dachte immer, es reicht auch, wenn man die Bibliotheken in ein Verzeichnis libraries im Projektverzeichnis legt, aber dem ist scheinbar nicht so  >:( >:( >:(
Ich denke, die die Arduino IDE und ich werden keine Freunde mehr  :P

Zitat von: HCS am 12 Januar 2018, 11:30:09
Bisher der Kopf zerbrochen, jetzt bin ich aber kurz davor, den Sensor zu zerbrechen ...  ;D ;D ;D
Hm, dafür war der aber zu teuer  ;D ;D ;D

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

juergs

Zitat von: PeMue am 12 Januar 2018, 16:54:28
Grrr, mit Lichtsensor geht es nicht  aber ohne dann doch (wegen Compiler direktive). Ich dachte immer, es reicht auch, wenn man die Bibliotheken in ein Verzeichnis libraries im Projektverzeichnis legt, aber dem ist scheinbar nicht so  >:( >:( >:(
Ich denke, die die Arduino IDE und ich werden keine Freunde mehr  :P

#if HAS_LIGHTSENSOR
  #include <AS_BH1750.h>
#endif


Dann ist die Lib im Library-Verzeichnis gemeint. Im Selben Verzeichnis mit #include "AS_BH1750.h" liegt der Lib-Code im selben Verzeichnis..
Komischerweise findet die Arduinino-Ide den Code auch im Lib-Verzeichnis, wenn  Anführungstriche verwendet werden ...

PS: Wo gibt's den Lichtsensor ?

Jürgen

juergs

Hallo Thomas,

hier gäbe es noch "Inspirationen" zum Thema OLED:

http://www.technoblogy.com/show?WNM

Z.B. "schneller Display-Puffer"

... und noch einige andere Interessantheiten  ;D

Grüße,

Jürgen

juergs

#283
Neuigkeiten zum Wroom2-Board:

Die RFMxx-Lib lässt sich zwar auf Soft-SPI konfigurieren, aber die zugrunde liegende SPI.h aus
der ESP-Plattform Lib leider nicht!

Aus der SPI.cpp:
Zitatbool SPIClass::pins(int8_t sck, int8_t miso, int8_t mosi, int8_t ss)
{
    if (sck == 6 &&
        miso == 7 &&
        mosi == 8 &&
        ss == 0) {
        pinSet = SPI_PINS_HSPI_OVERLAP;
    } else if (sck == 14 &&
              miso == 12 &&
               mosi == 13) {
        pinSet = SPI_PINS_HSPI;
    } else {
        return false;
    }

    return true;
}

Nach Korrektur der Verdrahtung des RFM69 auf:
MOSI  = D7  (GPIO_13)
MISO  = D6  (GPIO_12)
SCK   = D5  (GPIO_14)
SS    = D8  (GPIO_15)


... also ESP-Standard-Belegung! Kein Soft-SPI!
In dieser Konstellation funktioniert das Board endlich.  :D
Leider bietet das Board die SPI-Pins nicht nach aussen an ...  :(

juergs

@HCS, hdgucken:
Zitat2018-01-12 19:54:12 LaCrosseGateway LGW UpTime: 0Tg. 7Std. 50Min. 49Sek.
2018-01-12 19:54:12 LaCrosseGateway LGW UpTimeSeconds: 28249
2018-01-12 19:54:12 LaCrosseGateway LGW RSSI: -63
2018-01-12 19:54:14 CustomSensor bme680_cc iaq: 222
2018-01-12 19:54:14 CustomSensor bme680_cc gas: 227150
2018-01-12 19:54:14 CustomSensor bme680_cc gas-kohm: 227.2

Fehlt da noch die ID des Sensors im output?