1...8fach Temperatursensor DS18B20

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

Moderator: Co-Administratoren

controller2016
Beiträge: 71
Registriert: 30.07.2016, 18:47

Re: 1...8fach Temperatursensor DS18B20

Beitrag von controller2016 » 03.01.2020, 15:32

Ok sorry war blind :roll: habs gefunden Danke :D

controller2016
Beiträge: 71
Registriert: 30.07.2016, 18:47

Re: 1...8fach Temperatursensor DS18B20

Beitrag von controller2016 » 04.01.2020, 10:53

Morgen,
habe alles so weit verstanden und getestet,vielen Dank an die Macher!.

Ich hatte aber ein Problem mit dem LCD am Anfang,und zwar hier im Code:
Hier:

Code: Alles auswählen

#ifdef USE_LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(LCD_ADDRESS, 20, 4);
#endif
Und hier:

Code: Alles auswählen

#ifdef USE_LCD
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("UNI-Sen-TEMP-DS18B20");
  lcd.setCursor(5, 1);
  lcd.print((char*)serial);
  HMID temp;
  sdev.getDeviceID(temp);
  lcd.setCursor(7, 2);
  lcd.print(temp, HEX);
#endif
So funktionierte bei mir nicht,aber damit:

Code: Alles auswählen

#ifdef USE_LCD
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#endif
Und damit:

Code: Alles auswählen

#ifdef USE_LCD
  lcd.begin(20, 4);
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("UNI-Sen-TEMP-DS18B20");
  lcd.setCursor(5, 1);
  lcd.print((char*)serial);
  HMID temp;
  sdev.getDeviceID(temp);
  lcd.setCursor(7, 2);
  lcd.print(temp, HEX);
#endif
Liegt vermutlich an einer anderen I2C Lib von mir.
Vielleicht hilft es auch jemandem der die gleichen Probleme hat.

harvey
Beiträge: 113
Registriert: 01.12.2013, 13:19
Danksagung erhalten: 2 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von harvey » 05.01.2020, 12:49

Hi,
bei der festen Zuordnung der Sensoren kann man zwei Wege gehen:
- man liest die eingebrannten uniq serials des DS18X20 aus und schreibt sie manuell in den Sketch rein
- man beschreibt vorher in einem extra Schritt manuel die "userdata" Bits mit einem individuellen Wert (z.B. lfd Nummer) und liest den in erweitertem Sketch aus und sortiert den Sensor an seinem Index in das gesendete Ergebnis ein.

Das erste Verfahren geht gut, wenn man zum Austausch gut an das Modul kommt, da der neue, an das Ersatz-DS18x20 angepasste Sketch noch neu geflasht werden muss. Entsprechend schlecht, wenn Modul nicht/schlecht erreichbar (Dach, wasserdicht verklebt ...). Das könnte man auch noch durch OTA-Flash und geänderte Firmwareversion lösen.

Das zweite Verfahren bedeutet, dass man den neuen Sensor z.B. mit der lfd Nummer in der Senosorkette beschreiben muss: also wenn Sensor "3" ausfällt wird der Sensor vor Tausch ebenfalls mit "3" beschrieben (siehe Beispiele für userdata in den Dallas-Libs) und nur der Sensor wird getauscht. Der Sketch wird nicht angefasst, das Modul läuft einfach weiter.

Jeder wähle also das für den eigenen Zweck passende Verfahren.
cu
Harvey

PS: Verfahren zwei habe ich vor langer Zeit mal gemacht, ist aber viel Umbau, da die Ds18x20.h nicht mehr passt. Und man muss einen Aufbau haben zum Flashen der userdata Bits. Wäre vielleicht eine Überlegung wert, die serial und die userdata immer in ein array mit einzulesen ...
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte

jp112sdl
Beiträge: 4409
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 125 Mal
Danksagung erhalten: 270 Mal
Kontaktdaten:

Re: 1...8fach Temperatursensor DS18B20

Beitrag von jp112sdl » 05.01.2020, 13:22

Ich hätte es auch irgendwie lieber User-freundlicher.
Du beschreibst hier 2 Wege, dann gibt es noch den Ur-Sketch von mir ohne jegliche Zuordnung.
Allesamt sind untereinander mehr oder weniger inkompatibel. Zumindest ist es nicht mit ein paar #defines mal eben abgetan.

Es wäre wohl am sinnvollsten, dass ich meine Ur-Variante in meinem Repository so belasse und wolwin und du (harvey) ladet eure Varianten in euer eigenes Repo (die Sketche können wir dann auch auf asksinpp.de verlinken, bzw. wir können gegenseitig auf die anderen Varianten hinweisen)?

Ich weiß, ihr habt euch damit tief auseinandergesetzt und viel Zeit darin investiert.
Das Problem für mich ist, dass ich die komplexen Änderungen nicht supporten kann.

VG,
Jérôme

wolwin
Beiträge: 84
Registriert: 06.06.2018, 12:27
Danksagung erhalten: 4 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von wolwin » 14.01.2020, 18:23

Hi,
haben wir ja schon mal an anderer Stelle diskutiert …
jp112sdl hat geschrieben:
05.01.2020, 13:22
IEs wäre wohl am sinnvollsten, dass ich meine Ur-Variante in meinem Repository so belasse und wolwin und du (harvey) ladet eure Varianten in euer eigenes Repo (die Sketche können wir dann auch auf asksinpp.de verlinken, bzw. wir können gegenseitig auf die anderen Varianten hinweisen)?
@Jérôme
Finde ich eigentlich nicht so toll: drei Versionen an drei Stellen … außer uns drei versteht dann keiner den Unterschied …

@Alle
Eigentlich hatte ich die Arbeit in den Original-Code SO investiert, dass der ursprüngliche Code quasi 'gleich geblieben' ist - lediglich die Konfiguration ist in eine Definitionsdatei ausgelagert worden - wie harvey beschrieben hat, ist deshalb die Original-Version bzw. meine Erweiterung zum Original nur für einen lokalen Einsatzzweck gedacht (man kommt einfach an die Schaltung heran … ) - wenn ein Sensor ausfällt, steht ein 'Neuaufspielen' an …
Wollte man alles frei indizieren, bleibt in der Tat nur die vorgestellte zweite Lösung - wäre nett, aber dann würde ich persönlich den Code 'komplett' umstellen - ganz zu schweigen von dem Aufwand …

Daher wäre mein Vorschlag das Repo wie folgt umzugestalten:
1. Urversion umbenennen und so belassen (v1)
2. meine Github Änderungen in den Code übernehmen = v2 ... (der User controller2016 hat den Code ja schon erfolgreich benutzt)
3. Hinweis mit Erläuterung und Verlinkung auf den Code von harvey (oder ebenfalls im Repo als unsuporteter Code abgelegt und gekennzeichnet als v3)

VG
Wolfram

wolwin
Beiträge: 84
Registriert: 06.06.2018, 12:27
Danksagung erhalten: 4 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von wolwin » 03.02.2020, 20:28

jp112sdl hat geschrieben:
05.01.2020, 13:22
Es wäre wohl am sinnvollsten, dass ich meine Ur-Variante in meinem Repository so belasse und wolwin und du (harvey) ladet eure Varianten in euer eigenes Repo (die Sketche können wir dann auch auf asksinpp.de verlinken, bzw. wir können gegenseitig auf die anderen Varianten hinweisen)?
Hallo zusammen,
habe jetzt die Änderungen / Erweiterung der Ur-Variante bei mir abgelegt:

https://github.com/wolwin/WW-mySHP/blob ... /README.md

Gruss
Wolfram

Antworten

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