Modul zur Nutzung der Raspberry Pi GPIO

Hallo Ralf,

bin immer dabei irgendetwas zu verbessern - manchmal dann auch mit solch einem Nebeneffekt - sollte jetzt aber korrigiert sein.:wink:

Joachim

Alles ok ;), geht wieder, danke.

Hallo Leute,

mal in kurzen Worten wie so der Sachstand ist:

  • Grundsätzlich: es gibt einen Sachverhalt (ob Bug oder Feature weiß ich nicht) von PIGPIO der nach längerer Nutzung zu dem Fehler 11 des Client Socket führt. Bis zur Klärung wie der Entwickler von PIGPIO sich dazu äußert, habe ich einen work-around dazu eingebaut, der PIGPIO neu startet wenn der Fehler auftritt. Im konkreten geht es darum: das IPS-Modul baut für fast jede Kommunikation einen neuen ClientSocket auf und schließt ihn wieder - nur PIGPIO macht das nicht, mit dem Resultat, dass PIGPIO irgendwann (so nach ca. 12000 Zugriffen) keine weiteren mehr annimmt. Die Struktur von PIGPIO und IPS lässt im Moment keine mir bekannte andere Verfahrensweise zu, ich muss daher um Geduld bitten…

  • GPS-Modul: Daten laufen schön herein (benötigt wird dazu jedoch eine neue PIGPIO-Version die noch nicht offiziell verfügbar ist). Was mir noch nicht gelungen ist, ist Befehle an das GPS-Modul zu senden. Wer da unterstützen kann ist aufgefordert mir das Procedere einmal zu erläutern.

  • DS2482: Testweise ist nun das Hinzufügen eines DS2482 möglich. Hinter diesen können dann DS18S20, DS18B20, DS2413 und DS2438 betrieben werden.

Joachim

Hallo Leute,

das Modul unterstützt neben der schon bekannten 1-Wire-Funktionalität über den GPIO 4 (1-Wire-Server, nur DS18x20), jetzt auch den I²C-zu-1-Wire DS2482. daran können eigentlich beliebige DS angeschlossen werden, derzeit unterstützt sind jedoch nur der DS18S20, DS18B20, DS2438 und DS2413 (weitere gerne dann auf Nachfrage).

Joachim

…noch mal ein Hinweis:

PIGPIO unterstützt auch die „externe“ Erstellung von kleinen Skripten (erinnert mich so ein bisschen an Assembler-Programmierung), die dann autark auf dem entfernten Raspberry Pi laufen könnten. Denkbar wären da z.B. eine Art „SPS-Funktionalität“. Der Vorteil liegt auf der Hand: Rasante Bearbeitung sofern die Prozesse auf dem entfernten Raspberry Pi ablaufen und eine gewisse Selbstständigkeit weil diese Prozesse auch weiterlaufen würden, wenn IPS aus irgendeinem Grund gerade „unabkömmlich“ ist.
Nur: ein Einstieg ist für mich sehr schwer, da es kaum Beispiele zu dem Thema gibt, leider auch kein richtiges Forum in dem man so etwas fragen könnte.
Wenn also hier jemand ist, der das Thema spannend findet, kann sich gerne mal melden.

Joachim

…mal etwas Neues:

Für die CeCoS Module von Gedad habe ich auch in diesem Modul eine Möglichkeit geschaffen sie direkt - ohne die Serverplatine - zu betreiben.
Zur Verfügung stehen aktuell die 4xfach RGBW Steuerung (GeCoS „I²C_RGBW16out“) sowie die 16-fach PWM Out (GeCoS „I²C_PWM16out“). Damit können diese dann parallel zu den anderen Möglichkeiten dieses Moduls betrieben werden.

Bei Interesse gerne noch weitere Module…

Wünsche Euch ein schönes XXL-Wochenende!

Joachim

Hallo Joachim,

bin gerade beim Surfen auf den neuen BME680 von Bosch gestossen. Der würde die Kombination von BME280 (Temperatur, Luftfeuchte und Luftdruck) und iAQ (Luftgüte, CO2, …) in einem Modul haben. Er soll auch über I2C/SPI auszulesen sein. Wetterott will Breakoutboards für ~16 € anbieten [LINK]. Wenn das stimmt (!?!), wäre das der Hammer. Für ein gutes BME280-Breakout aus China zahle ich mindestens ~10 €, für einen iAQ + Einfuhr/Versand ~70 €.

Könnte man dies in dein Modul einbauen? Ist schon klar, das macht wieder viel Arbeit. Damit hätte man fast alles was ein Raumsensor braucht.

Gruss
Bernd

BME680.jpg

Der BME680 wird seit vielen Monaten beworben, dass er wirklich geliefert werden kann habe ich noch nicht gesehen.

Hallo Bernd und Ralf,

in der Bucht ist der BME680 als Breakout verfügbar. Ich habe mal einen bestellt…:wink:

Joachim

Magst du die Stelle im Code mit „Device is not available.“ mal wieder richtig programmieren :eek:?

Aktuell kann ich den Namen bei der BT MAC korrigieren und einen Moment später gibt es wieder „Device is not available.“.

Der BME680 von ebay käme aus Slowenien und der hat nur noch einen, habe jetzt einen über A* bestellt, kostenmäßig nahezu vergleichbar.

…magst Du den Fehler mal näher beschreiben?:confused:

Joachim

Sorry, war wohl zu unklar.

Bei „MAC x Name“ sollte man doch einen „beliebigen“ String eintragen können, oder? Der wird halt immer überschrieben.

Ich könnte natürlich auch einfach die Variable „MACx“ umbenennen …, du arbeitest ja mit Idents.

Hallo Ralf und Joachim,

ich habe mir jetzt auch einen BME680 bei BlueDot über das große A* bestellt. Sollte am Samstag schon da sein, wollen wir mal sehen. Eine Python Library für den PI scheint es auch schon zu geben. Eventuell kann ich das Teil am Wochenende in Betrieb nehmen und berichten.

Ein Tutorial gibt es auch schon dafür: https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-bme680-breakout

Gruss
Bernd

Python-link: https://github.com/pimoroni/bme680
Bosch Info: https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME680-DS001-00.pdf

…ich habe zwar schon eine Instanz in Vorbereitung und mir das Datenblatt ausgedruckt, vermute aber das ich es nicht ganz so schnell schaffen werde, bitte etwas Geduld mit der PHP/Modul-Umsetzung…

Bei den BME steckt eine Menge Mathematik dahinter und evtl. läuft nicht mal mehr das schon vorhandene (Luftfeuchtigkeit, Temperatur und Druck). Da ich in Slowenien bestellt habe, kann das auch ein bisschen länger dauern als bei Euch.

Joachim

Hallo Joachim,

keinen Stress aufkommen lassen :wink: Ob ich zu ersten Tests am Wochenende kommen werde, hängt zum einen von der pünktlichen Lieferung, meiner Zeit und meiner Lust ab. So schnell bin ich also auch nicht.

Ich will erst mal versuchen dem Teil über die Pythonscripte Daten zu entlocken. Diese will ich dann parallel neben einem iAQ (einen habe ich gerade noch frei) laufen lassen und die Daten über längere Zeit vergleichen. Die iAQ brauchen ja so ein zwei Tage, bis sie sich richtig stabil eingeschwungen haben. Bin gespannt, wie der BME680 das macht. Wie auch immer, bis solche Daten vorliegen dauert es bei mir auch im besten Fall mindestens eine Woche.

Gruss
Bernd

Hallo Ralf,

bin gestern leider nicht mehr dazu gekommen…
Im Code ist bereits seit längerem eine entsprechende Behandlung implementiert:

If ($ResultArray[key($ResultArray)] <> trim("Device is not available.")) {
	SetValueString($this->GetIDForIdent("MAC".key($ResultArray)."Name"), $ResultArray[key($ResultArray)]);

In das Feld wird das eingetragen was vom Gerät als Name zurückgeliefert wird, ist also wenig sinnvoll das zu editieren…:wink:

  1. Ich muss schauen, warum die Meldung „Device is not available“ nicht „aussortiert“ wird.
  2. Ich kann im Konfigurationsformular neben der kryptischen MAC-Adresse noch ein Feld zur besseren namentlichen Zuordnung einbauen

Joachim

Moin Joachim,

da war es doch auch bei mir mal Error 40 :o.

Warum auch immer war die falsche übergeordnete Instanz beim BT eingetragen. Ein PI mit gpiod aber ohne BT. Erstaunlicherweise wurden beliebige BT MAC Adressen immer als anwesend eingetragen.

Beim korrekten PI kommen dann auch korrekte Namen und die Anwesenheit funktioniert korrekt.

Eventuell kannst du in deinem Modul prüfen, ob der PI wirklich etwas sinnvolles zurückliefert.

Hallo Joachim,

der BME680 ist heute Nachmittag von A* geliefert worden und hängt bereits am I2C-Bus eines PIs. Mit der Python-Lib bin ich aber nicht so richtig weiter gekommen. Ich teste gerade mit der C-lib von Bosch und dem C-Sample von twartzek. Die ersten Ergebnisse kannst du weiter unten sehen.

Im Vergleich zu nahe stehenden BME280 und iAQ scheinen Temperatur und Luftdruck ungefähr zu passen. Luftfeuchtigkeit ist gefühlt zu niedrig. Die Luftqualität gibt der BME680 im Ohm aus. Dies will ich jetzt über einen längeren Zeitraum mit schreiben und die Kurven dann mit dem iAQ korrelieren (man braucht ja ppm Werte), mal schauen was da raus kommt. Ich versuche mal das Morgen in Exceldiagramme zu packen und dann hier posten.

Gruss
Bernd

*** BME680 start measurements  ****
2017-11-03 18:32:00 T: 19.87 degC, P: 982.27 hPa, H: 45.39 %rH, G: 30251 Ohms
2017-11-03 18:33:00 T: 19.82 degC, P: 982.35 hPa, H: 45.48 %rH, G: 33676 Ohms
2017-11-03 18:34:00 T: 19.75 degC, P: 982.55 hPa, H: 45.65 %rH, G: 35075 Ohms
2017-11-03 18:35:00 T: 19.68 degC, P: 982.67 hPa, H: 45.78 %rH, G: 35607 Ohms
2017-11-03 18:36:00 T: 19.64 degC, P: 982.73 hPa, H: 46.14 %rH, G: 35758 Ohms
2017-11-03 18:37:00 T: 19.61 degC, P: 982.77 hPa, H: 46.11 %rH, G: 36156 Ohms
2017-11-03 18:38:00 T: 19.60 degC, P: 982.81 hPa, H: 46.04 %rH, G: 36125 Ohms
2017-11-03 18:39:00 T: 19.60 degC, P: 982.81 hPa, H: 46.04 %rH, G: 36187 Ohms
2017-11-03 18:40:00 T: 19.61 degC, P: 982.79 hPa, H: 46.00 %rH, G: 36032 Ohms
2017-11-03 18:41:00 T: 19.63 degC, P: 982.71 hPa, H: 45.86 %rH, G: 36094 Ohms
2017-11-03 18:42:00 T: 19.66 degC, P: 982.65 hPa, H: 45.69 %rH, G: 36187 Ohms
2017-11-03 18:43:00 T: 19.68 degC, P: 982.61 hPa, H: 45.94 %rH, G: 36032 Ohms
2017-11-03 18:44:00 T: 19.69 degC, P: 982.57 hPa, H: 45.80 %rH, G: 35910 Ohms
2017-11-03 18:45:00 T: 19.69 degC, P: 982.57 hPa, H: 45.87 %rH, G: 36218 Ohms
2017-11-03 18:46:00 T: 19.69 degC, P: 982.55 hPa, H: 45.81 %rH, G: 36280 Ohms
2017-11-03 18:47:00 T: 19.69 degC, P: 982.55 hPa, H: 45.98 %rH, G: 36218 Ohms
2017-11-03 18:48:00 T: 19.69 degC, P: 982.55 hPa, H: 45.96 %rH, G: 36405 Ohms
2017-11-03 18:49:00 T: 19.70 degC, P: 982.53 hPa, H: 45.97 %rH, G: 36032 Ohms
2017-11-03 18:50:00 T: 19.70 degC, P: 982.51 hPa, H: 45.96 %rH, G: 36249 Ohms
2017-11-03 18:51:00 T: 19.72 degC, P: 982.45 hPa, H: 45.86 %rH, G: 36249 Ohms
2017-11-03 18:52:00 T: 19.73 degC, P: 982.37 hPa, H: 45.78 %rH, G: 36156 Ohms
2017-11-03 18:53:00 T: 19.75 degC, P: 982.35 hPa, H: 45.80 %rH, G: 36156 Ohms
2017-11-03 18:54:00 T: 19.75 degC, P: 982.33 hPa, H: 45.83 %rH, G: 36094 Ohms
2017-11-03 18:55:00 T: 19.76 degC, P: 982.33 hPa, H: 45.68 %rH, G: 36374 Ohms
2017-11-03 18:56:00 T: 19.78 degC, P: 982.29 hPa, H: 45.66 %rH, G: 36436 Ohms
2017-11-03 18:57:00 T: 19.78 degC, P: 982.31 hPa, H: 45.69 %rH, G: 36594 Ohms
2017-11-03 18:58:00 T: 19.77 degC, P: 982.31 hPa, H: 45.76 %rH, G: 36658 Ohms
2017-11-03 18:59:00 T: 19.77 degC, P: 982.31 hPa, H: 45.82 %rH, G: 36658 Ohms
2017-11-03 19:00:00 T: 19.78 degC, P: 982.29 hPa, H: 45.82 %rH, G: 36658 Ohms
2017-11-03 19:01:00 T: 19.79 degC, P: 982.29 hPa, H: 45.60 %rH, G: 36979 Ohms
2017-11-03 19:02:00 T: 19.80 degC, P: 982.29 hPa, H: 45.68 %rH, G: 36850 Ohms
2017-11-03 19:03:00 T: 19.80 degC, P: 982.29 hPa, H: 45.62 %rH, G: 36914 Ohms
2017-11-03 19:04:00 T: 19.79 degC, P: 982.29 hPa, H: 45.78 %rH, G: 37504 Ohms
2017-11-03 19:05:00 T: 19.80 degC, P: 982.27 hPa, H: 45.45 %rH, G: 37174 Ohms
2017-11-03 19:06:00 T: 19.80 degC, P: 982.27 hPa, H: 45.35 %rH, G: 37571 Ohms
2017-11-03 19:07:00 T: 19.77 degC, P: 982.33 hPa, H: 45.58 %rH, G: 37538 Ohms
2017-11-03 19:08:00 T: 19.73 degC, P: 982.37 hPa, H: 45.56 %rH, G: 37773 Ohms
2017-11-03 19:09:00 T: 19.69 degC, P: 982.53 hPa, H: 45.71 %rH, G: 38079 Ohms
2017-11-03 19:10:00 T: 19.65 degC, P: 982.57 hPa, H: 45.91 %rH, G: 38286 Ohms
2017-11-03 19:11:00 T: 19.63 degC, P: 982.63 hPa, H: 46.01 %rH, G: 38391 Ohms
2017-11-03 19:12:00 T: 19.63 degC, P: 982.63 hPa, H: 45.89 %rH, G: 38496 Ohms
2017-11-03 19:13:00 T: 19.64 degC, P: 982.61 hPa, H: 45.74 %rH, G: 38461 Ohms

Ich habe jetzt den BME680 mehrere Stunden einlaufen lassen und eine Messreihe für einen kompletten Tag mitgeschrieben (Minutenintervalle). Das gleiche mit iAQ. Die Widerstandswerte des BME680 habe ich dann mit empirisch ermittelten Parametern zum iAQ auf CO2 in ppm um skaliert. Den Vergleich der beiden Kurven könnt ihr in der Grafik sehen. Ein gewisse Ähnlichkeit ist zwar zu erkennen, aber zufrieden bin ich damit nicht.

Folgende Ursachen könnten möglich sein:

  • [li]Die Einlaufzeit für den BME280 mit ~4 Stunden war zu kurz. Bei den iAQs habe ich festgestellt, dass es manchmal mehrere Tage dauert bis zwei zur selben Zeit am selben Ort übereinstimmende Werte liefern. Ich werde den BME680 jetzt auch mal mehrere Tage neben dem iAQ betreiben.
    [/li]

    [li]Da ich keine kalibrierte Messmöglichkeit für CO2 habe, kann ich nicht sagen ob der BME680 oder der iAQ daneben liegen oder vielleicht sogar beide.
    [/li]

Mal schauen was Joachim und Ralf zu Tage fördern.

Gruss
Bernd

Hallo Bernd,

vielen Dank für Deine Informationen.
Am Wochenende bin ich diesbezüglich kein Stück voran gekommen…:frowning:
Das BME680 Breakout ist noch auf dem Weg zu mir. Am Freitag hatte ich zumindest die Gelegenheit einmal kurz in das Datenblatt zu schauen. „Mathematisch“ ist das offenbar eine andere Herangehensweise als beim BME280, auch hat der BME680 keine Kalibrierungsdaten „mitgeliefert“ wie beim BME 280.
Im Datenblatt findest Du aber auch eine Zuordnung von Werten zu den Luftqualitäten, vielleicht hilft es Dir bei der Beurteilung der von Dir ermittelten Daten.

Wird schon werden!:wink:

Joachim