Vorstellung HB-UNI-Sen-CO2-STM32

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

Lokverführer
Beiträge: 39
Registriert: 30.01.2019, 11:33
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von Lokverführer » 05.12.2022, 16:47

Hallo bestfan,

besten Dank! Damit funktioniert es!

Mein ePaper ist allerdings auch etwas unscharf. Wenn es sich aktualisiert, ist es erst für eine Sekunde knackscharf und schön schwarz, danach wird es blasser/unscharf.

bestfan
Beiträge: 21
Registriert: 16.05.2022, 22:30
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 11 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von bestfan » 05.12.2022, 21:01

Hallo Lokverführer,
schön, dass es funktioniert!
Das mit dem Display hatten wir weiter oben schon einmal diskutiert. Dein beschriebenes Verhalten bei den ePaper-Displays hatte ich auch.
Dank HMSteve's Patch der GxEDP-Library ist das Problem bei meinen Displays aber zum Glück Geschichte.
Viele Grüße
bestfan

Lokverführer
Beiträge: 39
Registriert: 30.01.2019, 11:33
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von Lokverführer » 06.12.2022, 10:31

Hallo bestfan,

die Lösung hatte ich tatsächlich übersehen, ist nun auch gefixed. :)

Hast du es eigentlich geschafft, den Sketch für Blue Pill 64k zu kompilieren? Bei mir bemängelt Arduino nicht ausreichenden Speicher.
Mit 128k funktioniert es, lässt sich auch flashen, aber ab und an treten dann doch Ungereimtheiten auf (grüne LED am Blue Pill flackert), User Button reagiert nicht mehr etc. Die aktuellen China-Pillen dürften auch wirklich nur 64k haben.

Viele Grüße
Lokverführer

bestfan
Beiträge: 21
Registriert: 16.05.2022, 22:30
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 11 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von bestfan » 06.12.2022, 21:43

Hallo Lokverführer,

der Sketch mit allen Features hat ca. 71kB. Ich hatte auch einmal Sorge, dass die bestellten BluePills
nur 64 kB haben würden. Mit einem ePaper Display, der Kommunikation und vielleicht noch einer
Sensor-Bibliothek kam ich am Ende nie unter die 64 kB Zum Glück hatten alle meine bisherigen BluePills 128kB.
Wenn die Teile nicht genügend Speicher hätten, gäbe es beim Flashen auch eine entsprechende
Fehlermeldung. Ich habe mit meinen BluePills kein unterschiedlichens Verhalten zu den MapleMinis
feststellen können, die auf jeden Fall ausreichend Speicher haben sollten. Ich weiß nicht, wie du den
Aufbau testest, aber ich fand den Aufbau auf einem Breadboard immer ziemlich sensibel.
Auf jeden Fall empfehle ich, die "NDEBUG" Option im Code auszukommentieren und den
Output im Serial Monitor einmal anzuschauen.
Bitte unbedingt auch noch auf die Kommentare User_Button.h achten:
// Redifinition of ConfigButton to comply with TTP223 touch pad. (HIGH at no touch)
// Can be avoided by using tiny soldering bridge on the TTP223 (then LOW at no touch)
// short press -> pairing, long press -> toogle traffic light
Wenn Du einen normalen Taster benutzen möchtest, bitte entsprechend umprogrammieren,
bzw. im Code des Original-Projektes schauen.

Viele Grüße
bestfan

Lokverführer
Beiträge: 39
Registriert: 30.01.2019, 11:33
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von Lokverführer » 10.12.2022, 15:12

Hallo bestfan,

das ganze ist fertig auf Platine verlötet. Bislang ist es immer noch so, dass er ab und ab abstürzt. Ich konnte bislang nicht erkennen, was dieses Verhalten triggert. Manchmal läuft er eine Stunde, manchmal auch 24 h. Vielleicht passiert es auch mal, wenn er am Rechner hängt, so dass die Ausgabe mitgelogt wird.

Im Log fallen mir immer wieder "Packet too big" auf, das dürfte aber doch kein Problem sein:

15:02:46.970 -> Packet too big: 37
15:02:53.323 -> ignore 13 12 00 83 23A164 F00001 08 D9 C4 DA 51 94 7B FD 07 D6 - 24201244
15:03:06.663 -> ignore 1B 10 08 8E 32F136 B9B9D1 12 33 12 05 27 01 13 7F A0 97 C8 2D B3 AC 42 03 EF E6 - 24214600
15:03:24.669 -> ignore 1A 6D 84 70 F1D002 000000 7F F5 29 27 4D 00 39 99 00 ED 00 1D 1E 00 2F 60 23 - 24232586
15:03:29.232 -> Packet too big: 33
15:03:31.369 -> Packet too big: 34

Noch eine Frage zur Kalibrierung: HMSteve schreibt auf Github, auf die Autocalibration wurde bewusst verzichtet. Bei mir funktioniert die forced calibration allerdings überhaupt nicht, egal wie oft ich es versuche:

15:06:41.619 -> debounce
15:06:41.666 -> pressed
15:06:44.654 -> longpressed
15:06:44.654 -> MHZ19: forced calibration FAILED
15:06:45.171 -> longreleased
15:06:45.218 ->

bestfan
Beiträge: 21
Registriert: 16.05.2022, 22:30
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 11 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von bestfan » 10.12.2022, 21:57

Hallo Lokverführer,
bzgl. der Fehlermeldungen habe ich keine Erklärung. Es sollte sicher einige in diesem Forum geben,
die sich damit besser auskennen als ich. Das Verhalten beobachte ich bei meinen Sensoren aber nicht.

Die Aussage von HMSteve bezog sich auf den SCD30 Sensor. Bei der Implementierung
des MH-Z19 habe ich die Autokalibrierung aktiviert, weil ich damit gute Erfahrung gemacht hatte.
Die Aktivierung passiert in dem Init-Aufruf. Eine manuelle Kalibrierung ist zur Zeit für den MH-Z19
nicht implementiert, ist aber prinzipiell möglich.
Wichtig bei der Autokalibrierung ist, dass der Sensor in den ersten Tagen regelmäßig "an der frischen Luft" ist.

Viele Grüße
bestfan

HMSteve
Beiträge: 537
Registriert: 20.08.2019, 06:23
Hat sich bedankt: 13 Mal
Danksagung erhalten: 95 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von HMSteve » 11.12.2022, 08:31

bestfan hat geschrieben:
10.12.2022, 21:57
Die Aussage von HMSteve bezog sich auf den SCD30 Sensor. Bei der Implementierung
des MH-Z19 habe ich die Autokalibrierung aktiviert, weil ich damit gute Erfahrung gemacht hatte.
Die Aktivierung passiert in dem Init-Aufruf. Eine manuelle Kalibrierung ist zur Zeit für den MH-Z19
nicht implementiert, ist aber prinzipiell möglich.
Wichtig bei der Autokalibrierung ist, dass der Sensor in den ersten Tagen regelmäßig "an der frischen Luft" ist.
Habe mich in der Tat ausschliesslich mit den Sensirion-Sensoren beschäftigt und mir die Kalibrierung des MH-Z nie angesehen. Grundsaetzlich sollte aber auch hier gelten, dass die Kalibrierung scheller als die normale Drift gem. Datenblatt weglaeuft, wenn man nicht sicherstellt, dass der Sensor dauerhauft regelmaessig fuer eine ausreichend lange Zeit seine 410ppm CO2 atmet, da er diesen Wert (oder 400ppm) bei der Autokalibrierung als beobachtetes Minimum annimmt. Man muss schon gruendlich und ausreichend lange lueften, um das in Innenraeumen annaehernd zu erreichen. Es reicht sicher nicht, das nur einmalig nach der Inbetriebnahme sicherzustellen.

Viele Gruesse,
Stephan

Lokverführer
Beiträge: 39
Registriert: 30.01.2019, 11:33
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von Lokverführer » 11.12.2022, 20:33

Hallo zusammen,

ich habe heute noch eine zweite Platine aufgebaut. Mal sehen wie sich hier die Stabilität entwickelt.
Bei beiden gibt es auch Probleme mit dem Trafficlight: Manchmal funktioniert es wie es soll, manchmal ist es beim Start blau und bleibt das auch. Teilweise kann man es auch nicht ein/ausschalten. Im seriellen Monitor kommen stets die korrekten Ausgaben zum Trafficlight, die LED reagiert aber nicht entsprechend.

Soweit ich das verstanden habe, muss der Sensor durchgehend 24 h in Betrieb sein. Ich habe ihn gestern Abend im Gartenhaus platziert, gewisse Belüftung ist vorhanden, es gibt dort keine CO2 Quellen und auch nahezu keinen Kfz-Verkehr. Die angezeigte CO2 Konzentration pendelte anfangs um 250 ppm mit Tendenz auf 150. Nach 12 h waren es nahe 0 ppm, danach pendelte es sich um 50 ppm ein. Nach insgesamt 20 h hängte sich der Sensor wieder einmal auf.

Ist vielleicht doch der STM32 Schrott? https://www.aliexpress.com/item/1005003169244854.html (STM32F103C8T6)

Noch ein Nachtrag mit Sensor 1 beim Start.
Merkwürdig ist der Error/Warnings, was auch immer mit die gelöschten Bytes sagen sollen. Die RGB-LED ist nach dem Einstecken blau, nach der ersten Messung grün und ließ sich wie beabsichtigt aus/einschalten.

Code: Alles auswählen

14:19:03.776 -> AskSin++ v5.0.2 (Dec 11 2022 19:01:32)
14:19:03.776 -> ID: 3432D1  Serial: CO2-3432D1
14:19:03.776 -> !Error: Timed out waiting for response
14:19:03.776 -> !Warning: Clearing Byte: 255
14:19:03.776 -> !Warning: Clearing Byte: 253
14:19:03.776 -> !Warning: Clearing Byte: 245
14:19:03.776 -> !Warning: Clearing Byte: 255
14:19:03.776 -> !Warning: Clearing Byte: 255
14:19:03.776 -> !Warning: Clearing Byte: 255
14:19:03.776 -> !ignore 12 44 84 70 B9BFF0 000000 00 C7 1D 27 74 01 AF 00 03  - 9464
14:19:05.547 -> ignore 18 10 00 8E 32F136 A338CE 12 33 13 A5 D9 5D 5F 7E C4 F9 1F 97 50 60 C5  - 11221
14:19:09.369 -> Packet too big: 33
14:19:09.462 -> ignore 14 10 00 8E B9B9D1 7DCBD1 CD 70 C8 BB 31 67 94 CA A6 FB C1  - 15167
14:19:09.695 -> Packet too big: 38
14:19:26.699 -> ignore 13 12 00 83 70D041 F00001 06 26 EA 2F 39 8B DC D3 4E 7D  - 32397
14:19:29.067 -> ignore 1A 13 00 83 B9B9D1 F00002 CD 70 C8 BD AD 17 09 94 50 FC B5 72 88 B8 25 85 09  - 34759
14:19:33.706 -> ignore 1A A8 84 70 F1D002 000000 7F E3 29 60 40 01 0F CC 00 F5 00 0C 1E 00 17 50 3D  - 39399
14:19:40.556 -> ignore 18 10 00 8E 38B1AD A338CE 12 33 0B A3 6F C6 B1 15 D5 5B AB E2 C3 5A 79  - 46227
14:19:41.197 -> ignore 13 12 00 83 26B3FA F00001 00 02 BE 14 64 2B F0 D8 08 42  - 46901
14:19:55.962 -> BME280   Temperature   : 188
14:19:55.962 -> BME280   Humidity      : 36
14:19:55.962 -> BME280   Pressure      : 9579
14:19:55.962 -> BME280   PressureNN    : 10094
14:19:55.962 -> 
14:19:56.054 -> 
14:19:57.082 -> MHZ19    Temperature   : 165
14:19:57.082 -> MHZ19    CO2           : 205
14:19:57.082 -> Temp x10 / Hum / PressureNN x10 / PressureAmb / Batt x10 / CO2 = 18 / 36 / 10094 / 957 / 3 / 205
14:19:57.129 -> <- 12 01 A2 70 3432D1 00FFFF 00 BC 24 27 6E 00 CD 00 03  - 62804
14:19:57.221 -> -> 0A 01 80 02 00FFFF 3432D1 00  - 62926
14:19:57.221 -> waitAck: 01
14:19:57.221 -> setTrafficLightTrafficLightGreen
14:19:57.732 -> ePaper refresh triggered
14:20:02.020 -> ignore 13 12 00 83 7DCBD1 F00001 08 D9 A0 7A 20 B8 36 B8 1C ED  - 67687
14:20:03.712 -> Packet too big: 33
14:20:03.759 -> ignore 12 45 84 70 B9BFF0 000000 00 C8 1E 27 73 01 E4 00 03  - 69460
14:20:14.248 ->  debounce
14:20:14.294 ->  pressed
14:20:17.269 ->  longpressed
14:20:17.269 -> setTrafficLightTrafficLightOff
14:20:19.369 ->  longreleased
14:20:19.416 -> 
14:20:26.068 ->  debounce
14:20:26.114 ->  pressed
14:20:29.044 ->  longpressed
14:20:29.044 -> setTrafficLightTrafficLightGreen
14:20:30.337 ->  longreleased
14:20:30.383 -> 
14:20:33.632 -> ignore 13 12 00 83 9E9304 F00001 09 00 5F A6 FA 7B 01 38 03 15  - 99305
14:20:33.865 -> ignore 1A A9 84 70 F1D002 000000 7F E4 29 60 40 01 06 CC 00 F5 00 0F 1E 00 1D 50 3D  - 99577
14:20:37.510 -> Packet too big: 33
14:20:40.680 -> ignore 15 C0 84 70 F60408 000000 00 68 01 9B 27 B5 FF E9 01 8A 09 5C  - 106353
14:20:43.993 ->  debounce
14:20:44.040 ->  pressed
14:20:44.182 ->  released
14:20:44.182 -> setTrafficLightTrafficLightOff
14:20:44.229 -> 
14:20:47.632 ->  debounce
14:20:47.678 ->  pressed
14:20:47.816 ->  released
14:20:47.816 -> setTrafficLightTrafficLightGreen
Sensor 2 läuft bislang an einem USB-Netzteil ohne Absturz, die LED ist aber immer blau und lässt sich nicht schalten. Sensor 1 wieder am USB-Netzteil ist auch blau und lässt sich nicht schalten... Wäre es denn denkbar, dass der STM32 Probleme hat, wenn das "Netzteil" versucht zu erkennen was das für ein Gerät ist? Die meisten Netzteile haben mittlerweile doch selbst Chips die erkennen, welches Handy geladen werden soll und die Spannung auf den Datenleitungen anpassen (Quickcharge, Apple, Samsung etc.). Wobei auch ein Samsung Netzteil das nur 5V kann die LED blau lässt und der Taster nichts bewirkt.

Viele Grüße
Martin

bestfan
Beiträge: 21
Registriert: 16.05.2022, 22:30
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 11 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von bestfan » 12.12.2022, 21:16

Hallo Lokverführer,
fangen wir mit dem CO2-Sensor an. Es gibt noch die Möglichkeit, den Sensor hardwareseitig zu
kalibirieren. Bei meinem Model MH-Z19B muss man dazu den HD-Pin für mindestens 7 s auf Gnd
legen. Bitte vorher aber noch einmal in den User Guide Deiner Sensorvariante schauen.

Das Problem mit der RGB-LED ist tricky. Das blaue Signal am Anfang ist erst einmal OK. Das bedeutet
immerhin, dass die Stromversorgung funktioniert. Um eine definierte Farbe zu bekommen, braucht
man ein einsprechendes Signal auf dem Din Pin. Wenn die LED trotz der Meldung im Serial Output
blau bleibt, ist daher m.E. etwas mit dem Signal nicht in Ordnung. Wenn das Verhalten je nach Netzteil
reproduzierbar unterschiedlich ist, dann liegt es vielleicht an der Signalstärke. In diesem Fall würde ich
den Vorwiderstand einfach einmal überbrücken. Der dient dazu die LED zu schützen, falls auf dem
VCC Pin keine Spannung anliegen sollte, was auf einem gelöteten Board ziemlich unwahrscheinlich ist.
In verschiedenen Foren gab es auch Meldungen zu falschen Pin-Belegungen der gekauften LEDs.
Da Deine LED aber gelegentlich funktioniert, halte ich das für eher unwahrscheinlich.

Vielleicht kannst Du ja auch einmal die Spannung am 5V Pin messen?
Ansonsten fällt mir echt nicht mehr viel ein ...

Ciao
bestfan

Lokverführer
Beiträge: 39
Registriert: 30.01.2019, 11:33
Hat sich bedankt: 9 Mal
Danksagung erhalten: 1 Mal

Re: Vorstellung HB-UNI-Sen-CO2-STM32

Beitrag von Lokverführer » 18.12.2022, 10:00

Hallo zusammen,

die Spannung an der LED habe ich einmal gemessen. Die USB Powerbank brachte ca. 4,9 V womit die LED wie beabsichtigt funktioniert. Das USB-Netzteil brachte 5,2 V womit die LED nicht richtig lief. Mit dem überbrückten 330-Ohm-Widerstand ist dieses Problem gelöst. :D

Die Kalibrierung des Sensors über den HD-Pin habe ich schon einmal gemacht, nach ein paar Tagen stimmen die Werte nicht mehr. Lustigerweise weichen die beiden Sensoren sogar teils deutlich voneinander ab, obwohl sie nebeneinander liegen. Hier muss ich wohl noch die ABC im Code deaktivieren. Das wäre eh nötig geworden, da meine Behausung aufgrund einer Lüftungsanlage (welche die Sensoren letztendlich steuern sollen) normalerweise nicht stoßgelüftet wird.

Hauptziel wird nun erst einmal sein, die Abstürze in den Griff zu bekommen. Ein Sensor lief nun mal sensationelle 40 Stunden durch um nach einem Reset bereits nach 2 h zu hängen. Ich habe mal beim Ali noch andere Blue Pills und auch EEPROM geordert - evtl. habe ich hier schlechte Ware erwischt.

Noch ein Nachtrag: Bei Temperaturen <0°C läuft wohl eine Variable übrig und das Display zeigt mindestens 4-stellige Werte an. Der Betrieb bei dieser Temperatur entspricht natürlich nicht die Spezifikationen vom MH-Z 19 (wohl aber dem SCD30!) - bei der manuellen Kalibrierung sind diese Temperaturen derzeit allerdings nicht zu vermeiden.


Besten Dank für die Unterstützung einstweilen und noch einen schönen Sonntag!

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“