Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Welchen Luftgütesensor

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Welchen Luftgütesensor

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MaikB85 last edited by

      @klassisch:

      Testo klingt schon mal gut. Aber welcher Fühler ist da dran? `
      Ein PT100 mit Genauigkeit 1/10 Klasse B. Also es wird nicht an dem geeichten Gerät liegen das ist sicher. Ich werde mir mal die von dir empfohlenen BME280 Bestellen.

      Zum Thema Luftgüte: Ich finde die Anwendung schon für sinnvoll. Es wird die Summe verschiedener organischer Verbindungen in der Luft gemessen. Was das genau ist interessiert mich nicht, ich muss nur wissen, dass sich die Luft im Verhältnis zu "frischer" Außenluft verändert hat. Dazu reicht es mir nicht nur den CO2 Wert oder andere einzelne Verbindungen zu messen. Deshalb ist für mich der CO2 Wert den der iAQ ermittelt auch nicht wirklich interessant. über den Wert der TVOCs entscheide ich, ob gelüftet werden sollte.

      @ Rainer

      Das 4 polige BME280 Modul ist kompatibel zu dem 6 poligen. Hier sind nur zusätzlich die Schnittstellen für SPI Kommunikation vorhanden. Diese sind auf der Raumsensor Platine von mir aber auch nicht verwendet. Du musst nur darauf achten, dass die Pinbelegung passt. 2 Pins auf der Platine bleiben dann halt frei.

      Was Bosch da mit ihrem BME680 treibt frage ich mich auch schon länger. Wäre schön alles in einem zu haben, aber irgendwie werden die damit scheinbar nicht fertig…

      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators last edited by

        @MaikB85:

        Das 4 polige BME280 Modul ist kompatibel zu dem 6 poligen. Hier sind nur zusätzlich die Schnittstellen für SPI Kommunikation vorhanden `
        Danke, aber bevor ich den tausche: mir ist gerade etwas anderes aufgefallen.

        klassisch hatte geschrieben, dass es auch an der lib liegen kann.
        @klassisch:

        Mit der populären Adafruit Lib zeigt der BM280 aber 0.5K mehr als als mit einer geeigneten Lib. `
        Auch hier habe ich wieder keine Ahnung, habe mir mal die Arduino IDE angesehen und festgestellt, dass anscheinend nicht die Adafruit Library sondern eine Library von Jan Wasserbauer verwendet wird.

        in dem von klassisch verlinkten Post beschreibt er, dass er die Lib MOD_1022 benutzt hat.
        @[url=https://homematic-forum.de/forum/viewtopic.php?f=31&t=29321&start=1370:

        ~~klassisch"]~~In der alternativ verwendeten Lib ("MOD_1022") sind die Parameter einstellbar `

        Jetzt kommt meine Anfängerfrage:

        im sketch steht

        #include <bme280boschwrapper.h></bme280boschwrapper.h>
        

        ist das die zu ladende/verwendende Bibliothek?

        Wenn ja, wo finde ich die Bezeichnung dieser libs.
        144_arduino_libs.jpg

        Gruß

        Rainer

        1 Reply Last reply Reply Quote 0
        • M
          MaikB85 last edited by

          Ich glaube nicht dass dadurch die 3-4K Unterschied zustande kommen. Ich habe übrigens in meinem ursprünglichen Code den ich wieder gefunden habe gar keine library verwendet sondern die benötigten Funktionen direkt im Hauptcode hinterlegt. Aber nach aufspielen hatte sich nichts verändert. Auch Anpassen der settings für den BME280 so wie es von Bosch für Innenräume empfohlen ist brachte keine entscheidende Änderung.

          Ich kann gerne heute Abend mit der library die klassisch verwendet nochmal probieren und ich wollte auch evtl.nochmal den original Treiber von Bosch verwenden aber im Endeffekt denke ich eher das was mit den Sensoren nicht stimmt.

          Ich habe mir jetzt einen bestellt der Baugleich ist zu dem empfohlen. Der ist zwar etwas teurer aber ich will jetzt nicht 4 Wochen warten bis der Mal eintrifft.

          Gruß Maik

          Gesendet von meinem SM-G925F mit Tapatalk

          1 Reply Last reply Reply Quote 0
          • K
            klassisch Most Active last edited by

            Ja, Rainer, hinter include steht der Name der lib.

            Es gibt 2 Methoden eine lib zu importieren. Die die Du oben zeigst und die ich erst mal gar nicht gefunden hatte, weil ich vorher auf die andere Methode aufgelaufen war: -> Sketch -> Bibliothek einbinden -> .ZIP Bibliothek einbinden

            Ich hatte die Bibliothek als ZIP bei Github runtergeladen https://github.com/embeddedadventures/BME280

            und das Zipfile wie oben beschrieben importiert.

            Dann

            #include <wire.h>// required by BME280 library
            #include</wire.h> 
            
            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Danke,

              habe das jetzt auch gemacht (die heisst jetzt bei mit BME280-master 😉 ), aber nach einbinden hieß sie <bme280_mod-1022.h>Beim upload kommt jetzt ein Fehler:

              'BmeBoschwrapper' does not name a type
              

              und markiert ist die zweite Zeile:

              // BME280 initialisieren
              Bme280BoschWrapper bme280(true);
              unsigned long syncTime;
              

              ändere ich den Bme280BoschWrapper in BME280_MOD-1022

              kommt der Error:

              'BME280_MOD' does not name a type
              

              das -1022 scheint er zu ignorieren.

              muss ich das noch irgendwie escapen?

              Gruß

              Rainer</bme280_mod-1022.h>

              1 Reply Last reply Reply Quote 0
              • K
                klassisch Most Active last edited by

                @MaikB85

                1/10 B ist +/-0,0425K und der Testo 950 bringt nochmals max +/-0,1K dazu. also grob +/- 0,125. Recht genau gegen die Spec des BME280.

                Mein PT1000 war 1/3 B aber halt ein Dünnfilmteil; klein und mit kleiner Masse, so daß er im "langsamen" Dewar dynamisch nicht allzuweit weit war vom BME280.

                Und die Adafruit-Lib hat bei mir auch nur ca. 0.5K verändert. Das aber wirklich reproduzierbar bei mehreren Sensoren.

                3K bis 4K sind deutlich zu viel. Und wenn Du den BME "manuell" angesteuert hast und die Bosch-Paramester für Wettler/Klima (forced) verwendet hast, dann wird eine andere Lib auch nichts bringen. Adafruit läßt frei laufen, wenn ich mich recht erinnere und das macht das Teil warm, ebenso wie exzessive Filterung, die man bei genauer Druckauswertung verwendet.

                Dort https://github.com/vodnik12/JWA_BME280 hat jemand die Original Bosch lib in einen Wrapper für Arduino gesteckt.

                Wie gesagt, habe auch keine Erklärung für Eure Abweichungen, bei meinem Messungen hat das besser gepaßt. Und 3 bis 4 K wären da nicht unentdeckt geblieben. Und auch jetzt im Langzeitbetrieb pendeln die BME280 und HM Aussenfühler immer umeianander herum. Da hängt zum Teil am anderen Anbringungsort und zum Teil an der Trägheit des HM-Sensors.

                Aber bei Zweifeln oder zweifelhaften Lieferanten steht noch der SHT31 zur Wahl. Der ist völlig unproblematisch anzusprechen und praktisch gleich teuer.

                1 Reply Last reply Reply Quote 0
                • K
                  klassisch Most Active last edited by

                  @Homoran:

                  (die heisst jetzt bei mit BME280-master 😉 ), aber nach einbinden hieß sie ` Das hat irgendwas mit git zu tun, die Dinger heißen erst mal alle Master. Habe irgendwo gelesen, daß man das Master entfernen solle, was ich auch immer mache. Sowohl beim zip als auch IM zip.

                  1 Reply Last reply Reply Quote 0
                  • M
                    MaikB85 last edited by

                    Nee so einfach ist das nicht. Der ganze Code muss dafür angepasst werden, da wo die Aufrufe sind

                    Gesendet von meinem SM-G925F mit Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • K
                      klassisch Most Active last edited by

                      @Homoran:

                      'BmeBoschwrapper' does not name a type
                      ```` `  
                      

                      Das kenne ich nicht. Wo steht bei Dir BmeBoschwrapper ? Im Sketch? Dann ist das ein anderes Sketch. Und wenn dort die Bosch-Lib schon eingebunden ist, dann sieht das gut aus. müssen nur noch die Parameter passen.

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        aber das ist die einzige Stelle.

                        • ich will ja Learnen beim Doing.

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • K
                          klassisch Most Active last edited by

                          @Homoran

                          Zu den Parametern:

                          Bei mir im Sketch steht:

                            /*********** BME280 setup ***********  */
                          
                            /* excerpt from Bosch datasheet chapter 3.5.1 Weather monitoring
                              Table 7: Settings and performance for weather monitoring
                              Suggested settings for weather monitoring
                              Sensor mode forced mode, 1 sample / minute
                              Oversampling settings pressure *1, temperature *1, humidity *1
                              IIR filter settings filter off
                              Performance for suggested settings
                              Current consumption 0.16 μA
                              RMS Noise 3.3 Pa / 30 cm, 0.07 %RH
                              Data output rate 1/60 Hz
                            * ** End excerpt from Bosch datasheet chapter 3.5.1 Weather monitoring **/
                          
                            byte chipID = 0; // for BME280 Cip IF
                            chipID = BME280.readChipId();
                          #ifdef FSDEBUG
                            DBG_OUTPUT_PORT.print (F("BME280 Chip Id (0x): "));
                            DBG_OUTPUT_PORT.println (chipID, HEX);
                          #endif // FSDEBUG
                            // need to read the NVM compensation parameters
                            BME280.readCompensationParams();
                          
                            // Need to turn on 1x oversampling, default is os_skipped, which means it doesn't measure anything
                            BME280.writeOversamplingPressure(os1x);     // 1x over sampling (ie, just one sample)
                            BME280.writeOversamplingTemperature(os1x);  // 1x over sampling (ie, just one sample)
                            BME280.writeOversamplingHumidity(os1x);     // 1x over sampling (ie, just one sample)
                            measuringTime = (int) (0.5 + (1.25 + (2.3 * 1) + (2.3 * 1 + 0.575) + (2.3 * 1 + 0.575))); // measuringTime is unsigned long
                            /* in forced mode with oversampling=1 in all 3 values the max measuring time should be < 22.8ms
                               in forced mode with all oversamplings to x16 (max value) the measring time should be <112,8
                               for other oversampling settings refer Bosch datasheet chapter 9.1 Measurement time
                               measuringTime = 1.25+(2.3*temp_os) + (2.3*humid_os + 0.575) + (2.3*press_os + 0.575)  */
                          
                            // init a forced sample.  After taking the measurement the chip goes back to sleep
                            BME280.writeMode(smForced);
                          
                          

                          Das mag bei Dir etwas anders heißen, wenn Du den BoschWrapper verwendest.

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators last edited by

                            Danke klassisch,

                            dann bin ich tatsächlich leider raus 😞

                            das ist (noch) zu hoch für mich.

                            Danke nochmals

                            Rainer

                            1 Reply Last reply Reply Quote 0
                            • K
                              klassisch Most Active last edited by

                              @Homoran:

                              aber das ist die einzige Stelle.

                              • ich will ja Learnen beim Doing. `
                                Wahrscheinlich ist Dein Sketch für diese Lib ausgelegt und an dieser Stelle wird diese Lib instanziert.

                              Du hast jetzt 2 Möglichkeiten: Die Lib (mit dem Boschwrapper) mit Stupf und Stiel aus Deinem Sketch reissen und durch die andere (die auch ich verwende) ersetzen oder sie drinlassen und die Stellen aufsuchen, wo die Parameter eingestellt werden.

                              Drinlassen könnte einfacher sein. Und wenn da wirklich die Original-Bosch-Lib drinsteckt, dann solte das auch möglich sein. Parameter stehen ja oben.

                              1 Reply Last reply Reply Quote 0
                              • K
                                klassisch Most Active last edited by

                                Könnte sein, daß wir der Sache näher kommen.

                                Verwendest Du diese Lib von Jan Wasserbauer:

                                https://github.com/vodnik12/JWA_BME280/ … /README.md

                                ?

                                1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators last edited by

                                  Na, mach mir nur Mut.

                                  @klassisch:

                                  Wahrscheinlich ist Dein Sketch `
                                  Der Sketch ist von Maik, und für mich ist das der erste Sketch überhaupt den ich mir mal ansehe 😉

                                  http://forum.iobroker.net/viewtopic.php … 100#p78500

                                  @klassisch:

                                  und die Stellen aufsuchen, wo die Parameter eingestellt werden. `
                                  Yeah :shock:

                                  Mache ich jetzt - erst mal im Notepad++

                                  Vielleicht wird ja doch noch mal was aus mir 😉

                                  Gruß

                                  Rainer

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators last edited by

                                    @klassisch:

                                    Verwendest Du diese Lib von Jan Wasserbauer:

                                    https://github.com/vodnik12/JWA_BME280/ … /README.md

                                    ? `

                                    Ja!

                                    Gruß

                                    Rainer

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      klassisch Most Active last edited by

                                      Dann schauen wir mal in seinem git, ob wir die Stelle sehen, wo die Parameter gesetzt werden. Er hat ja auch vom Temperaturunterschied gesprochen aber nicht in welche Richtung….

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        klassisch Most Active last edited by

                                        Steht bei Dir

                                        Bme280BoschWrapper bme280(true);
                                        

                                        ? Wenn ich das richtig verstanden habe, dann würde er im forced mode starten. Aber die anderen Parameter habe ich noch nicht gefunden. Und ich habe den Genauigkeitsgrad noch nicht gesehen. Der macht aber wahrscheinlich keine 3 bis 4 K aus. Bosch hat die Kompensationrechnung aus dem Sensor rausverlagert in den host-Rechner. Das macht es so kompliziert. Und weil Bosch gerne optimiert (manchmal bis zum Geiz) gibt es 3 Genauigkeitsklassen, wenn ich mich recht erinner. Je nach vorhandener Rechenleistung kann man eine passende Kompensationsrechnung verwenden. Für die WeMos habe ich immer die genaueste Rechnung verwendet. Die Dinger sind schnell genug. Aber wie gesagt, das sollte keine 3 bis 4 K ausmachen, denke ich.

                                        Die von mir referenzierte Lib ermöglicht diese Wahl. Ein klassischer Arduino könnte aber bei der genaueren Rechnung ins Schwitzen kommen.

                                        1 Reply Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators last edited by

                                          @klassisch:

                                          Steht bei Dir `
                                          Ja!

                                          // BME280 initialisieren
                                          Bme280BoschWrapper bme280(true);
                                          unsigned long syncTime;
                                          

                                          und da hatte ich gedacht es reicht den Namen auszutauschen gegen den der neuen Bibliothek.

                                          habe gerade versucht das in github zu verstehen und dabei gemerkt, dass mein Vorhaben eine Schnapsidee war 😞

                                          Gruß

                                          Rainer

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            klassisch Most Active last edited by

                                            Nochwas: In welchen Zeitabständen rufst Du

                                            bme280.measure()
                                            

                                            auf?

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            814
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            226
                                            45907
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo