Methan messen mit dem Raspberry Pi

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    zurzeit versuche ich für die Schule (10. Klasse Abschlussprüfung Realschule) ein funktionierendes Biogasanlagen Modell zu bauen. Dafür währe es interessant die Zusammensetzung des Gases im Fermenter zu wissen/dokumentieren. Nach ein bisschen googeln fand ich den Methansensor MQ-4. Und diese Anleitung, die ich aber nicht lesen kann weil ich dafür ein komisches Abo abschließen muss...
    Ich weiß auch das Gas/Methanmessung nicht so einfach ist, aber trotzdem die Frage:

    1. Kann ich mit dem Raspberry Pi Methan messen?
    2. Muss ich den Sensor kalibrieren?
    3. Gibt es noch andere Anleitungen?

    MfG c3ntry

    Einmal editiert, zuletzt von c3ntry (24. Oktober 2013 um 22:36)

  • Tach auch,

    messen kannst Du, wie das mit dem Kalibrieren aussieht, vermag ich nicht zu sagen - ich gehe aber mal davon aus, dass eine Kalibrierung nicht notwendig ist - zumindest wenn man den analogen Ausgang verwendet.
    Anleitungen hab' ich direkt weder gesucht noch gefunden. Aber das Datenblatt resp. die Beschreibung sollte ausreichen.

    Statt des von Dir geposteten Sensors würde ich dieses Modul verwenden (mal ein bisschen suchen, gibts sicherlich auch bei deutschen Anbietern).
    Zudem wirst Du einen A/D-Wandler benötigen ( z.B. so was ).

    Das geht in die Richtung dieses Threads ...

    Es kommt sowieso in absehbarer Zeit was im Rahmen meiner China-Gimmicks (sind hier dabei) zu solchen Sensoren (mit einem MQ-2 und einem MQ-3).

    cheers,
    -ds-

    • Offizieller Beitrag

    Hiho -ds-,
    na, hast du heut Verlinkungstag :D? Ich freu mich schon auf deine weitere Beschreibung fernöstlicher Kleinstteile.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hi dbv :) ,

    yepp .... mal rauf, mal runter, mal rechts und heute halt links ;)

    Ah da gibts noch mehr von, von diesen MQ-Teilen - so fünf Stück glaube ich mich zu erinnern, aber wenn man weiss wie einer funktioniert, dann weiss man es bei allen ...
    Ich hab' dann nur noch ein paar Teile, dir mich im Moment etwas ärgern (weil sie nicht so tun, wie ich es gerne hätte :) ).
    Leider ist scheinbar eine Lieferung Piraten zum Opfer gefallen oder aus dem Container gepurzelt - die habe ich aber mittlerweile nachbestellt und muss da wohl noch ein bisschen warten.
    Aber da kommt schon noch einiges ;) ...

    cu,
    -ds-

  • Tach auch ...

    ich hab das jetzt mal auf die Schnelle mit einem MQ-2 am PCF8591-Modul probiert ... das klappt so weit ganz gut. Der Sensor ändert den Wert, wenn ich ihn mit Zigarretten-Rauch anpuste.
    Ich denke schon, dass man so einen Sensor direkt in den Fermenter hängen kann ... notfalls musst Du den in eine Plastiktüte/Plastikschachtel packen so dass nur die Kabel durchgehen und dieses Gitter rausschaut.

    Aber mal was anderes, was mir gerade so einfiel: das Ganze funktioniert wegen des PCF8591 über IIC ... ist das für Dein Vorhaben ok?
    Ich meine nur wegen der Kabel-/Bus-Länge ...

    cu,
    -ds-

  • Hi,

    naja ... 3 m - ich denke mal, das ist grenzwertig.
    Musst Du ausprobieren - vielleicht mit verdrilltem Kabel.
    Alternativ zum PCF8591 mit IIC-Schnittstelle kenne ich nur noch den MCP3008. Der hat allerdings eine SPI-Schnittstelle und dürfte noch geringere Kabellängen vertragen.
    Wenn alle Stricke reißen kannst Du immer noch einen Bustreiber mit verschalten (siehe hier).

    cheers,
    -ds-

  • Mhh dann muss ich wohl schauen das das Kabel so kurz wie möglich wird, 3m waren auch recht großzügig kalkuliert.

    Erstmal danke, ich werde jetzt mal versuchen das Modul und den A/D-Wandler von irgendwo zu bestellen und dann meld ich mich wieder.

  • Update zum Thema MQ-X Sensoren:

    Ich habe mir jetzt mal einen MQ-2 und einen MQ-3 besorgt und getestet.

    Der Anschluss der Sensoren stellt kein grösseres Problem dar.
    Zur Umwandlung der analogen in digitale Werte habe ich das PCF8591 Modul verwendet. Das Modul ist sehr preiswert und funktioniert "out of the box" ohne dass man sich grossartig Gedanken zum Thema A/D-Wandler machen muss.
    Zum Betrieb ist lediglich ein Spannungswandler nötig, weil der Sensor mit genau 5V (+/- 0,1 V) arbeitet und das A/D-Modul zudem 10 kOhm Pullups auf Vcc hat.
    Nach dem Anschluss - ich sitze gerade an einem Tutorial zu diesem Thema, das ich demnächst hochlade - war es problemlos möglich die umgewandelten Werte über I2C auszulesen. Die Werte änderten sich auch brav, als ich Brennspiritus auf einem Küchenpapier oder Zigarretten-Rauch mit in den Test einbezog.

    Leider gibt es auch eine schlechte Nachricht: die Sensoren müssen kalibriert werden

    Ich war anfangs davon ausgegangen, dass dies nicht notwendig ist, da andere Sensoren (wie z.B. der BMP085) bereits kalibriert ausgeliefert werden.
    Das ist jetzt erstmal ein Problem, mit dem ich mich derzeit beschäftige.
    Solch eine Kalibrierung, wie sie in diversen Foren vorgeschagen werden, kann ich nicht durchführen, da ich keine definierten Konzentrationen erzeugen kann.
    Blöderweise ist die Kennlinie der Sensoren lt. Datenblatt nicht linear.

    Falls einer von Euch eine Idee hat: her damit :fies:

    Ansonsten informiere ich Euch über meine (hoffentlichen) Fortschritte und spätestens wenn das Tutorial online ist, ist das Thema erledigt.


    Viele Grüsse aus dem Alpenvorland,
    -ds-

  • Hallo Freunde,
    ich habe auch vor mit dem MQ2 Methan-Konzentrationen zu messen, daher hänge ich meinen Beitrag einfach mal hier dran, da es ganz gut passt:

    Zunächst frage ich mich, ob dieser Sensor (genauso wie die übrigen Sensoren der MQ-X Reihe) überhaupt dazu geeignet sind, Methankonzentrationen im höheren zweistelligen Bereich zu messen.
    Der MQ-2 hat laut Datenblatt einen Messbereich von 5000ppm-20000ppm bei Methan. Umgerechnet wären das nur 0,5-2 Vol.-%. Sehe ich das richtig?! Für einen Einsatz im Fermenter oder allgemein zur Methankonzentrationsbestimmung wäre das sicher nicht ausreichend.


    [font="Verdana"]@[/font][font="Verdana"]dreamshader:
    Ist bei deinen Kalibrierungsversuchen etwas herausgekommen?[/font]

    [font="Verdana"]Ich habe hier auch mal eine Versuchsschaltung aufgebaut und nutze die analogen Ausgänge des MQ-2 Sensor-Moduls. Jedoch bekomme ich trotz stabiler Betriebs- und Referenzspannung (je 5V) und einer gesättigten Gas-Umgebung des Sensors (Sensor in ein geschlossenes Gefäß mit Butan eingetaucht) keine Messspannung über 3V angezeigt. Die ADC-Umrechnung ist korrekt, ein Justieren des Potentiometers bringt keinen nennenswerten Unterschied.[/font]
    [font="Verdana"]Hat jemand eine Ahnung, woran das liegen könnte?[/font]

    [font="Verdana"]Vielen Dank und beste Grüße,[/font]
    [font="Verdana"]Schnellmerker[/font]

  • Hallo zusammen,

    ich bin im Moment mit einigem anderen Kram beschäftigt, und habe das mit den Sensoren mal erst auf Eis gelegt.

    Ich stelle Euch aber gerne folgendes, angefangenes Tutorial zur Verfügung.
    Allerdings unter Vorbehalt und ohne jegliche Garantie!
    Das ist eine Arbeitskopie - mehr nicht.

    Servus Community ...

    ich hab mal wieder ein paar nette Sachen aus Fernost erhalten und möchte Euch die Ergebnisse meiner Versuche natürlich nicht vorenthalten.
    Das erste Gimmick sind diverse Gas-Sensoren mit der Bezeichnung MQ-X. Ihr könnt sie sehr preiswert beim Asiaten Eures Vertrauens erwerben, sie aber auch bei deutschen Anbietern erhältlich..

    Allgemeines zu diesen Sensoren:

    Ich habe einen MQ-2 (Datenblatt) und einen MQ-3 (Datenblatt) Sensor am RPi ausgetestet. Zum Einsatz kamen allerdings nicht die "nackten" Sensoren, sondern diese Module mit einem MQ-2 und einen MQ-3 Sensor. Andere Sensoren mit der Bezeichnung MQ-X sollte analog zu diesen funktionieren.
    Einige interessante Infos zu den Sensoren sind zudem hier zu finden.

    Der Einsatz der Sensoren klingt zunächst simpel, die Teile haben es aber in sich, was u.a. die ausgelesenen Daten betrifft.


    Zudem habe ich diverse Hinweise auf einen "burn in" der Sensoren gefunden, die weder im - doch eher dürftigen - Datenblatt zum MQ-2 noch im Datenblatt zum MQ-3 erwähnt werden.
    Gemeint ist damit wohl, dass die Sensoren erst nach einer Betriebsdauer von 24 bis 48 Stunden verlässliche Werte liefern.

    Die Bedeutung der ausgelesenen Werte muss man sich anhand des Messbereichs des Sensors und der Auflösung des A/D-Wandlers selbst ausrechnen.
    Zudem müssen die Sensoren kalibriert werden. Wie dies vonstatten geht, habe ich mal als Anhang beigefügt (Quelle: hier).
    Ich gehe mal davon aus, dass die dort beschriebene Methode funktioniert. Ich habe nämlich keinen Plan, wie das Kalibrieren ohne teures Equipment sonst funktionieren sollte.
    Beachten muss man dabei, welchen Auflösung der A/D-Wandler hat ( 1023 bei 10 Bit bzw. 255 bei 8 Bit ).
    Die Kalibrierung reicht evtl. dazu aus, um mit den Sensoren zu demonstrieren, wie man Gas-Sensoren verwenden kann und was im Prinzip damit möglich ist.
    Wer genaue Daten benötigt, dem würde ich raten, eine andere Art der Kalibrierung zu verwenden oder gleich auf andere Sensoren auszuweichen.
    Das gilt vor allem für den MQ-3. Ich rate dringend davon ab, diesen Sensor zur Ermittlung der eigenen Fahrtüchtigkeit zu verwenden. Das wird vermutlich ganz böse ins Auge gehen.

    Die Module funktionieren auch ohne permanentes Auslesen. Mit dem Potentiometer kann ein Grenzwert eingestellt werden. Wird dieser überschritten, leuchtet die rote LED und der digitale Ausgang des Moduls wechselt von HIGH auf LOW.

    Den Stromverbrauch eines Sensor-Moduls liegt nach meiner Messung zwischen 130 und 140 mA. Für den relativ hohen Stromverbrauch ist vermutlich die eingebaute Heizung verantwortlich. Das ist für einen Betrieb direkt an einem der GPIOs eher grenzwertig. Solange der RPi über ssh - also ohne Tastatur und Maus - verwendet wird, mag das gehen. Ansonsten empfehle ich dringend eine zusätzliche Stromversorgung für den/die Sensoren zu verwenden, um einen Spannungseinbruch des RPi zu verhindern.

    Die verwendeten Module haben gegenüber der nackten Sensoren einige Vorteile:
    Die Sensoren selbst benötigen zum Anschluss so schräg angeordnete Bohrungen, dass sie wohl niemals direkt auf ein Breadboard aufgesteckt werden können.
    Ausserdem verfügen die Module über einen zusätzlichen digitalen Ausgang, dessen Auslösemoment mittels Potentiometer eingestellt werden kann. Das finde ich dahingehend praktisch, weil es dadurch möglich wird, erst ab einem bestimmten Pegel zyklische Meßvorgänge einzuleiten und ansonsten den Sensor erst gar nicht abzufagen (spart CPU-Leistung).


    Benötigte Hardware:

    Ein MQ-X Sensor-Modul ( z.B. MQ-2, MQ-3, ... )
    Ein Raspberry Pi mit aktueller Version Raspbian wheezy
    Ein PCF8591 A/D-Wandler Modul
    Ein Pegelwandler
    Evtl. eine zusätzliche Stromversorgung 5V
    und, logisch, ein Breadboard und diverse Kabel zum Verdrahten der Komponenten


    Anschluss:


    Die Module habe ich mittels eines A/D-D/A Wandler-Moduls (PCF8591) und einem Pegelwandler am RPi mit 5V betrieben.
    Ich finde diese Pegelwandler einfach super, weil sie out of the box fuktionieren und einfach und unkompliziert einsetzbar sind.

    Das PCF-Modul hat 10k Pullups vom IIC-Bus zu Vcc und kann deshalb nicht ohne Pegelwandler am RPi mit 5V betrieben werden.
    Ein Betrieb des PCF-Moduls mit 3,3 V ist in diesem Fall nicht möglich, weil die Sensoren genau 5V benötigen. Sie liefern zwar auch bei einem Betrieb an 3,3 V Daten, aber ich kann nicht sagen, ob diese stimmen. Im Internet findet man Hinweise, dass sie Sensoren, wenn die Spannung weniger als 4,9 V beträgt, bereits falsche Daten liefern.

    Der Anschluss ist relativ simpel. Bei einer zusätzlichen Stromversorgung gehen Vcc und GND des Sensors gehen auf 5V und Masse des externen Netzteils. A0 und D0 sind der analoge und der digitale Ausgang des Sensors.
    Achtung: D0 kann mit einer Datenleitung des Pegelwandler auf der 5V-Seite verbunden werden, falls der Alarm ausgewertet werden soll. Diese Verbindung habe ich in der Zeichnung nicht verwendet.
    A0 geht auf den freien Eingang des A/D-Wandlers (ohne Jumper, Pin der weiter innen ist). Sollen mehrere Sensoren angeschlossen werden, kann man die anderen Jumper einfach entfernen und die innen liegenden Pins mit den entsprechenden A0-Leitungen verbinden.
    Wird eine eigene Stromversorgung für den/die Sensoren verwendet werden Vcc und GND des A/D-Wandlers mit den externen 5V und der dazugehörigen Masse verbunden.
    SCL und SDA des PCF8591 werden mit zwei freien Datenanschlüssen auf der 5V-Seite des Pegelwandlers angeschlossen.
    Achtung: Falls ein externes Netzteil zur Versorgung des/der Sensoren zum Einsatz kommt unbedingt daran denken, die Masse des externen Netzteils mit der Masse des RPi zu verbinden, da sonst die Pegel nicht stimmen und die Daten fehlerhaft sind.

    Nun fehlen nur noch die Anschlüsse am RPi.
    Also RPi runterfahren, Netzteil abstecken.
    3,3 V und GND des RPi mit Vcc und GND auf der 3,3V-Seite des Pegelwandlers verbinden.
    Soll die Stromversorgung von Sensor und A/D-Wandler über den RPi erfolgen, 5V und GND des RPi mit Vcc des Sensors und Vcc des A/D-Wandlers verbinden. GND des RPi ebenfalls mit jeweils GND des A/D-Wandlers und des Sensors zusammenschalten.
    Bei einem zusätzlichen, externen Netzteil die Masse des Netzteils mit der Masse des RPi verbinden.
    SDA und SCL (GPIO2 und GPIO3) mit den entsprechenden Leitungen des A/D-Wandlers auf der 3,3V - Seite des Pegelwandlers verbinden.
    Bei Anschluss von D0 den entsprechenden Anschluss des Pegelwandlers auf der 3,3V Seite mit einem freien GPIO-Pin verbinden.

    So, ich hoffe, ich habe jetzt nichts vergessen, notfalls gibts ja noch die Fritzing-Zeichnung im Anhang.
    Leider gibt es in Fritzing kein Symbol für das A/D-Wandler-Modul. da musste ich ein bisschen tricksen, aber ich denke, es ist klar ersichtlich wie es gemeint ist.

    Software:

    Ich habe das Testprogramm für den PCF8591 erweitert, dass am freien Eingang ein MQ-2 Sensor genutzt werden kann und auch die Kalibrierung darauf ausgelegt.
    Der Source kann einfach mit

    Code
    $ gcc -o pcf8591-mqx pcf8591-mqx.c -lrt -lm

    sofern gcc installiert ist, übersetzt werden.


    Ja, dann bleibt mir nur, Euch viel Spass beim experimentieren zu wünschen.
    Wenn ich weitere/neue Erkenntnisse habe, dann reiche ich sie hier nach. Es lohnt sich also, hin und wieder mal hier rein zu schauen.

    Viele Grüsse aus dem Bayernland,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!