Funksensor mit Bosch sensortec BME680 / Luftgüte

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

Vorheriges Thema - Nächstes Thema

MC_Arthur

Beitrag #472 war gemeint . Sorry .
Der mit der ZIP.
Diese habe ich runtergeladen und in Arduino ide über Bibliotheken verwalten ... zip hinzugefügt ....

Hatte bisher immer so funktioniert ....

Werde aber noch mal genauer nachschauen ob's auch noch anders geht .


MC_Arthur

also ich habe eben nochmal aus der lib das JS_BME680 gelöscht.
habe dann die Zip nochmal runter geladen. und über Bibliothek zip hinzufügen die Datei gewählt. leider kein erfolg.... mach ich noch was falsch? andere Vorgehensweise?

juergs

Bei mir liegt die Lib dort (Arduino): C:\Users\js\Documents\Arduino\libraries\js_BME680
Einfach das zip entpacken und die cpp und .h datei mit dem ExamplesVerzeichnis dor hin kopieren .
Arduino neu starten dann bei Examples /Beispiele "js_BME680" suchen und das Testprogramm aufrufen und Compilieren ...

MC_Arthur

So schaut's bei mir aus .... komisch ....

Mit Test Programm aufrufen meinst du dann das esp easy mit dem integrierten p120 bme ino ?!

juergs

Nein! Einfach eine neue Arduino-IDE aufmachen.
Da ich eine Englische Version habe:

Über Datei  -> Beispiele  "JS_BME680" suchen dann werden zwei Verzeichnisse angezeigt:
Dann "js_bme680_sample"  aussuchen und mal compilieren -> wenn OK ist die LIB richtig installiert.

juergs

#485
Es hat sich ein kleiner Fehler eingeschlichen:


/*******************************************************************************
* Copyright 2017
* Written by Rossen Tchobanski (rosko@rosko.net)
* BSD license, all text above must be included in any redistribution
*
* Release notes:
   Adafruit_BME680 Library v1.0.5 required (https://github.com/adafruit/Adafruit_BME680/tree/1.0.5)
*****************************************************************************/


Letzte Zeile war am Anfang auch ein /*, das führte dazu, dass platformio das Ganze möglicherweise ignoriert hat und die Arduino-IDE nur Fehler wirft ... 

Anmerkung: war im Plugin 119 BME680 I2C Temp/Hum/Barometric/Pressure/Gas Resistence Sensor, also im Playground original so drin ...

Compiliere ich mit _P119_BME680.ino (Adafruit BME680) oder mit _P120_BME680.ino (js_BME680) geht der Compile jeweils ohne Fehler durch, allerdings erzeugt das Binary mit _P120_BME680.ino nur Exceptions
und das _P119_BME680.ino funktioniert.

Auch mit einem platformio-Lauf mit -v Option nichts Ersichtliches oder Aufschlussreiches .....

Ein Vergleich mit beiden Souce-Files lieferte auch nichts Bedeutendes...


Hier das Tesprogramm mit der Lib ist auch I.O. :
> Executing task in folder 190902-215322-arduino-blink: C:\Users\js\AppData\Roaming\SPB_Data\.platformio\penv\Scripts\platformio.exe device monitor <

--- Miniterm on COM6  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
[80.38]   Temperature = 25.11 *C  Pressure = 1011.34 hPa  Humidity = 35.85 %  Gas = 22.66 KOhms  Approx. Altitude = 16.08 m 
[90.38]   Temperature = 25.14 *C  Pressure = 1011.34 hPa  Humidity = 36.28 %  Gas = 25.28 KOhms  Approx. Altitude = 16.08 m 
[100.38]   Temperature = 25.17 *C  Pressure = 1011.30 hPa  Humidity = 35.75 %  Gas = 27.94 KOhms  Approx. Altitude = 15.75 m 
[110.38]   Temperature = 25.17 *C  Pressure = 1011.36 hPa  Humidity = 35.64 %  Gas = 30.44 KOhms  Approx. Altitude = 15.91 m 



Vielleicht weiß jemand Rat?

PeMue

jupp, auch mit der Arduino IDE findet er Deine Library nicht. _P119_BME680.ino kompiliert (muss ich noch testen), aber _P120_BME680.ino kompiliert nicht (js_BME680.h not found). Die Beispielprogramme gehen aber beide zu kompilieren. Sehr strange ...

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

juergs

#487
Hallo Peter, danke fürs Probieren
hier ist ein Fingerzeig:
https://www.letscontrolit.com/wiki/index.php/Tutorial_Arduino_Firmware_Upload
und hier:
https://waschto.eu/espeasy-eigene-oder-zusaetzliche-plugins-einbinden/

https://www.bastelgarage.ch/index.php?route=extension/d_blog_module/post&post_id=15

https://diyprojects.io/esp-easy-develop-plugins/#.WUFqgZDyuUm

Selecting the plugin sets

In version ESPEasy v2 or higher its possible to select different plugin sets. Since we're using Arduino IDE instead of Platformio, its neccesary to select them in ESPEasy.ino.

In the top of the .ino file you find the defines you can uncomment to enable a plugin set:

//build all the normal stable plugins
//#define PLUGIN_BUILD_NORMAL

//build all plugins that are in test stadium
//#define PLUGIN_BUILD_TESTING

//build all plugins that still are being developed and are broken or incomplete
//#define PLUGIN_BUILD_DEV


Habe bei mir die Zeile  #include JS_BME680 einfach gelöscht und die Lib durch die IDE setzen lassen ..
dann gings ... strange (:-((

juergs

Stellt sich natürlich die Frage: warum geht das Plugin _P119... ohne Änderung?

sash.sc

Bei espeasy gibt es eine Datei, wo die plugins mit Nummer bzw Bezeichnung eingetragen werden müssen, glaube ich.

Gruß Sascha

Gesendet von meinem MI 9 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

juergs

#490
hallo Sascha,
dann müsste ein Umbenennen der Datei auf _119P.... funktionieren.
Da ich noch Deubgausgaben in der Lib habe könnte das noch Probleme geben.
Wichtig wäre erst mal ein funtionierender Compile auf dem Esp.

//#define USES_P117   // Neopixels
//#define USES_P117   // Nextion
#define USES_P118   // CCS811
   #define USES_P119   // BME680
#define USES_P120   // Thermocouple
#define USES_P121   // Candle
   #define USES_P122   // NeoPixel       (MERGED?)
#define USES_P123   // NeoPixel_Clock  (MERGED?)
#define USES_P124   // NeoPixelBusFX
...

in define_plugin_sets.h

Aha, deshalb!

juergs

#491
Ok, ein Schritt weiter.
Es reicht natürlich nicht, nur das File umzubenennen, sondern die 120_ids mussten auch wieder zurück auf 119.

Mit der produtiv-platformio-Konfiguration stehe ich noch auf Kriegsfuß, aber wenigstens ein Compile
der abgespeckten platformio.ini-Version war erfolgreich (sonst dauert die Erstellung aller Varianten doch etwas länger...):

Environment        Status    Duration
-----------------  --------  ------------
custom_ESP8266_4M  FAILED    00:00:10.711
normal_ESP8266_4M  SUCCESS   00:00:27.040
d1_mini                        FAILED    00:00:00.849

Nach einem Clean:
Environment        Status    Duration
-----------------  --------  ------------
custom_ESP8266_4M  SUCCESS   00:00:24.235
normal_ESP8266_4M  SUCCESS   00:00:26.106
d1_mini            FAILED    00:00:00.854

Es kommen zwar noch Exceptions, aber die Lib wird angesprochen ... 
Dann kommt es noch zum Konflikt, möglicherweise mit der seriellen Debugausgabe.

oid JS_BME680Class::do_begin()
{
    DEBUG_BEGIN;    //Serial.begin(115200); 
   
    delay(3000);   // wait debug console to settle

    DEBUG_PRINT("");

    DEBUG_PRINT(F("*** Started!"));


Aber immerhin wird die Lib gestartet, dann kann ich morgen weitermachen und darauf aufbauen ... ;D :)

Anbei die auf 119 umfunktionierte 120er...

juergs

#492
    Ok, manchmal muss man wirklich einen oder zwei Schritte zurück gehen oder ein paar Nächte d'rüber schlafen ... ::)
    ... und dann den langen Text  nochmal neu eingeben, wenn der  FHEM-Upload schief geht ...


    • neues ESPEasy-Zip entpackt
    • Adafruit_BME680_Library +Adafruit_Unified_Sensor + js_BME680 - Libraries in das \lib-Verzeichnis zu den anderen ESPEasy-Libs kopiert
    • neue Version von Arduino portable benutzt
    • \src kopiert in \ESPEasy-Verzeichnis
    • _P119_BME680.ino ins \ESPEasy-Verzeichnis kopiert
    • in Arduino mit "add file: _P119_BME680.ino" hinzugefügt
    • #include <js_BME680.h> als ersten in ESPEasy.ino eingefügt, sonst beschwert sich die IDE ...
    • Den default Arduino libraries-Ordner in C:\Users\js\Documents\Arduino\ umgebogen: von  C:\Users\js\Documents\Arduino\libraries nach D:\Temp\ESPEasy-mega.org\lib
    • dafür habe ich ein Symlink erstellt ind nachdem ich den Orginal-Arduino-Lib-Ordner umbenannt habe...
    • Symlink  als Admin erstellen: C:\Users\js\Documents\Arduino>mklink /D libraries D:\Temp\ESPEasy-mega.org\lib
    • Arduino-Compile läuft mit Warnungen durch: erste Debug-Ausgabe nach Upload SPIFFS fehlt -> von "none" auf 1M konfiguriert.
    • Zwei mal den ESP resetten.

ZitatHauptproblem: Im Laufe der Zeit sammeln sich so einige Libs im \libraries-Ordner von Arduino an.
Das gibt bei Arduino nur Ärger mit gleichen Lib-Header-Namen, wie in meinem Fall ...

Eine bestehende Konfiguration von einer vorigen ESPEasy-Installation wurde einfach übernommen ....auch gut ...
Ggf. muss ich die Lib noch prüfen und ggf. Timings noch klären, aber fürs erste gehts es schon mal ... der TVOC-Wert wird noch nicht übergeben, liefert "nan" im Moment.
Mal schauen woran das liegt ... Also etwas Kleinarbeit ist von Nöten ... immerhin mal ein Anfang!  ;) :D
[/list]

juergs

#493
.. und die erzeugte ESP8266-Binary (0x76 I2C-Adresse!)

PeMue

Hallo Jürgen,

Zitat von: juergs am 04 September 2019, 21:02:37

  • in Arduino mit "add file: _P119_BME680.ino" hinzugefügt
und ich dachte, die IDE nimmt automatisch alle Dateien mit der Endung .cpp/.h und .ino automatisch mit rein?
Auf jeden Fall: Gratulation zum (Teil-)Erfolg!

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