Vorstellung HB-UNI-Sen-CO2-STM32

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

Moderator: Co-Administratoren

Michel2017
Beiträge: 56
Registriert: 30.03.2017, 07:58
Hat sich bedankt: 48 Mal
Danksagung erhalten: 4 Mal

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

Beitrag von Michel2017 » 17.01.2023, 07:43

Beim SCD30 und SparkFun library ist der Temperaturoffset immer positiv. Die Annahme ist, daß durch den Einbau des Sensors die Temperatur im Gehäuse immer leicht erhöht ist. SparkFun_SCD30_Arduino_Library.h:

Code: Alles auswählen

// Set the temperature offset to remove module heating from temp reading
bool SCD30::setTemperatureOffset(float tempOffset)
{
  // Temp offset is only positive. See: https://github.com/sparkfun/SparkFun_SCD30_Arduino_Library/issues/27#issuecomment-971986826
  //"The SCD30 offset temperature is obtained by subtracting the reference temperature from the SCD30 output temperature"
  // https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/9.5_CO2/Sensirion_CO2_Sensors_SCD30_Low_Power_Mode.pdf

  if (tempOffset < 0.0)
    return (false);

  uint16_t value = tempOffset * 100;

  return sendCommand(COMMAND_SET_TEMPERATURE_OFFSET, value);
}

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 » 17.01.2023, 11:37

Hallo zusammen,

der Fehler lag an mir: Ich habe nun gelernt, dass die Dateien welche Arduino automatisch mit dem Sketch ins Fenster lädt, nicht unbedingt die sind, welche dann auch beim Kompilieren verwendet werden :(

Die Temperaturgeschichte ist für mich eigentlich auch gar nicht so entscheidend, da in den Räumen ohnehin noch HmIP-WTH2 hängen die für den HmIP-FALMOT auch benötigt werden.

Nun hoffe ich, dass der Reichelt bald mal wieder weiße/graue Gehäuse reinbekommt, die anderen Bezugsquellen sind mir mit 5-6€ für ein Stück Plastik zu teuer...

ivo-int
Beiträge: 300
Registriert: 13.04.2020, 08:55
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 37 Mal
Danksagung erhalten: 16 Mal

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

Beitrag von ivo-int » 04.03.2023, 14:09

Hallo zusammen

Ich habe diesen Sensor ebenfalls nachgebaut.

Den SCD30 habe ich noch nicht erhalten, aber das sollte nicht das Problem sein.

Ich verwende die Platine von bestfan mit dem BluePill STM32.
Zuerst habe ich den Bootloader "generic_boot20_pc13.bin" geladen damit ich danach den Sketch über USB laden kann.

Im Sketch habe ich folgende Device Serial definiert.

Code: Alles auswählen

// define all device properties
const struct DeviceInfo PROGMEM devinfo = {
  {0xf8, 0x22, 0x02},     // Device ID
  "CO20000002",           // Device Serial
  {0xf8, 0x22},           // Device Model Indoor //orig 0xf1d1
  0x10,                   // Firmware Version
  as::DeviceType::THSensor, // Device Type
  {0x00, 0x01}            // Info Bytes
};
Nach dem Anlernen an mein Testsystem wird aber die Serial CO20805010 Angezeigt. :shock: Die Serial kann ich ändern wie ich will aber die letzten 6 Ziffern ändern sich nicht. Kann mir jemand einen Tipp geben wie das zu Stande kommt?

Gruss Ivo
_______________________________________________________________________________________________________
Raspberrymatic auf einem Raspi 4 4GB (HB-RF-USB-2) mit 2 LAN Gateways,
42 RF Geräte, 4 IP Geräte und 21 Cuxd Geräte, 24 RF Eigenbau Geräte
hm_pdetect, E-Mail, XML-API, JB HB Devices, HB-TM-Devices-AddOn, CUx-Daemon, CCU-Historian auf einem separaten Raspi

Benutzeravatar
stan23
Beiträge: 2030
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 576 Mal
Danksagung erhalten: 335 Mal
Kontaktdaten:

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

Beitrag von stan23 » 04.03.2023, 14:46

Du hast oben im Sketch das USE_HW_SERIAL aktiviert, das überschreibt die letzten 6 Stellen. Und die ID!
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

ivo-int
Beiträge: 300
Registriert: 13.04.2020, 08:55
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 37 Mal
Danksagung erhalten: 16 Mal

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

Beitrag von ivo-int » 04.03.2023, 14:59

Hallo Marco
stan23 hat geschrieben:
04.03.2023, 14:46
Du hast oben im Sketch das USE_HW_SERIAL aktiviert, das überschreibt die letzten 6 Stellen. Und die ID!
Oh man, das wars. :roll: Danke für deinen Tipp.

Gruss Ivo
_______________________________________________________________________________________________________
Raspberrymatic auf einem Raspi 4 4GB (HB-RF-USB-2) mit 2 LAN Gateways,
42 RF Geräte, 4 IP Geräte und 21 Cuxd Geräte, 24 RF Eigenbau Geräte
hm_pdetect, E-Mail, XML-API, JB HB Devices, HB-TM-Devices-AddOn, CUx-Daemon, CCU-Historian auf einem separaten Raspi

EdgarWollust
Beiträge: 4
Registriert: 30.01.2019, 18:17
Wohnort: Dresden

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

Beitrag von EdgarWollust » 05.08.2023, 14:04

Hi bestfan,

Erstmal vielen Dank für dein tolles Projekt, hab eins schon mit einem scd30 am laufen und wollte jetzt die 3 Stück Mhz19b, Welche ich aus einem anderen Projekt noch übrig habe auch mit diesem stm32 auf Linie bringen. Hab deine Platine über jlpcb bestellt und mit einem Bluepill bestückt.

Nun zu meinem Problem. Ich habe diese Stelle des freds gefunden, in welcher du auf die MHz19.h hinweist, in welcher du dir stellen wir genannt abgeändert hast, nur versteh ich nicht so recht wie es gemeint ist.

107c107,110 // steht für die Zeile im Script?
< /* disables calibration or sets ABCPeriod */ //taucht 2x auf?
--- //sind die Bindestriche Teil des Programms?
> /* ensure communication is working (included in begin())*/
> bool available();
>
> /* disables calibration or sets ABCPeriod */

Danke im Voraus für die Hilfe (bin absolut unfähig was programming angeht 🤪
rot ist blau und plus ist minus

Benutzeravatar
stan23
Beiträge: 2030
Registriert: 13.12.2016, 21:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Altmühltal
Hat sich bedankt: 576 Mal
Danksagung erhalten: 335 Mal
Kontaktdaten:

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

Beitrag von stan23 » 05.08.2023, 15:16

EdgarWollust hat geschrieben:
05.08.2023, 14:04
Nun zu meinem Problem. Ich habe diese Stelle des freds gefunden, in welcher du auf die MHz19.h hinweist, in welcher du dir stellen wir genannt abgeändert hast, nur versteh ich nicht so recht wie es gemeint ist.

107c107,110 // steht für die Zeile im Script?
< /* disables calibration or sets ABCPeriod */ //taucht 2x auf?
--- //sind die Bindestriche Teil des Programms?
> /* ensure communication is working (included in begin())*/
> bool available();
>
> /* disables calibration or sets ABCPeriod */
Die Zeichen < und > zeigen an was geändert werden soll, die 3 Bindestriche trennen was entfernt und was hinzugefügt wird.
Die Zahlen "107c107,110" geben nur an wo in der Datei das überhaupt zu finden ist.

Diese Zeile wird entfernt:

Code: Alles auswählen

/* disables calibration or sets ABCPeriod */
Diese Zeilen werden stattdessen eingesetzt:

Code: Alles auswählen

/* ensure communication is working (included in begin())*/
bool available();

/* disables calibration or sets ABCPeriod */

Insgesamt solltest du die einfach folgendes machen:
1. Diese Zeile suchen:

Code: Alles auswählen

/* disables calibration or sets ABCPeriod */
2. Diese beiden Zeilen direkt davor einfügen:
/* ensure communication is working (included in begin())*/
bool available();[/code]


Ich hab das selber nicht getestet oder nachgebaut, sondern versuche nur das "komische" Format zu erklären :)
Viele Grüße
Marco

RaspberryMatic als VM auf einem NUC mit Proxmox und USB-Funkmodul
~80 Geräte (HM, HmIP, HMW, HBW, AskSin)

EdgarWollust
Beiträge: 4
Registriert: 30.01.2019, 18:17
Wohnort: Dresden

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

Beitrag von EdgarWollust » 05.08.2023, 20:41

Hi und erstmal danke für die schnelle hilfe!

Habs auch gleich mal ausprobiert, bekomme aber beim compilen immer noch zu einem Fehler.

Code: Alles auswählen

In file included from C:\Users\xxxx\Desktop\HB-UNI-Sen-CO2-STM32-main\HB-UNI-Sen-CO2-STM32\HB-UNI-Sen-CO2-STM32.ino:61:0:
C:\Users\xxxx\Desktop\HB-UNI-Sen-CO2-STM32-main\HB-UNI-Sen-CO2-STM32\sensors\Sens_MHZ19.h: In member function 'void as::Sens_MHZ19::init(bool)':
C:\Users\xxxx\Desktop\HB-UNI-Sen-CO2-STM32-main\HB-UNI-Sen-CO2-STM32\sensors\Sens_MHZ19.h:79:17: error: 'class MHZ19' has no member named 'autoCalibration'
          _mhz19.autoCalibration(auto_self_calib);                    // enable/disable auto self calibration, sensor needs to see fresh air regularly!
                 ^
exit status 1
Fehler beim Kompilieren für das Board Generic STM32F103C series.
Ich habe wie du beschrieben hast in der Referenzdatei der LIB (mhz19.h) den punkt 107,107c,110 wie folgt abgeändert.

Code: Alles auswählen

    /* ensure communication is working (included in begin())*/
	bool available();

	/* disables calibration or sets ABCPeriod */

	/* Calibrates "Zero" (Note: Zero refers to 400ppm for this sensor)*/
	void calibrate();
VIelleicht kannst du mir auch hierbei helfen. Danke im Voraus! :D
rot ist blau und plus ist minus

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.08.2023, 20:57

Sieht bei mir so aus

Code: Alles auswählen

/* ensure communication is working (included in begin())*/
	bool available();

/* disables calibration or sets ABCPeriod */
	void autoCalibration(bool isON = true, byte ABCPeriod = 24);

/* Calibrates "Zero" (Note: Zero refers to 400ppm for this sensor)*/
	void calibrate();
Ich hoffe, dass es damit jetzt klappt. Viel Spaß!

Gruß
bestfan

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 » 24.10.2023, 22:07

Auch wenn der Thread dadurch nicht mehr ganz 100%ig passt ...
Nach den vielen Anmerkungen und Problemen zu dem MH-Z19 und dem ePaper-Display habe ich den Sktech so angepasst, dass man zukünftig ohne irgendwelche Änderungen der verwendeten Libraries auskommt. Neben Anpassungen in der Datei sens_MHZ19.h habe ich den Sketch jetzt auf die GxEPD2 Library anstelle der GxEPD umgestellt.
Letzte Anpassung war auch für die neue Variante für die Verwendung des RP2040 Pico statt des STM32 notwendig. Die neue Variante bietet folgende Vorteile:
  • einfache Verfügbarkeit des RP2040
  • bessere Qualität
  • niedriger Preis
  • intergrierter EEPROM
  • einfache Datenübertragung (Sketch)
Der durch den wegfallenden EEPROM gesparte Platz wurde für einen optionalen DS18B20 Temperatursensor verwendet.
Auch für die RP2040 Variante gibt es ein entsprechendes PCB-Design.

Viel Spaß beim Update oder Nachbau!

bestfan

Antworten

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