Wasserdruck auslesen - welcher Sketch?

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

Moderator: Co-Administratoren

Benutzeravatar
DiJe
Beiträge: 518
Registriert: 04.03.2015, 05:51

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von DiJe » 15.01.2019, 10:17

Da es im Prinzip keinen wirklichen Beitrag zum Aufbau/Inbetriebnahme gibt (ist ja auch ziemlich überschaubar), kann ich gerne zu meinem Projekt einen kleinen Beitrag erstellen und dann dort veröffentlichen.
wäre schön, danke.
Gruß Dieter
Gruß Dieter

jp112sdl
Beiträge: 3035
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von jp112sdl » 15.01.2019, 11:06

Aber leider ist der Wert kaum lesbar. Wäre es möglich, den Wert im "blauen Bereich" des Displays größer anzeigen zu lassen?
Das ist abhängig vom Display. Ich habe das damals nur für jemanden blind implementiert, weil er nicht wusste, wo im Code was hin muss und vergessen, den Branch zu löschen.
Habe auch selbst kein Display zum Testen.
#define ISR_PIN 9
Das ist zum manuellen Triggern einer Übertragung, um zum Testen nicht jedes Mal warten zu müssen, bis der Timer wieder zuschlägt.
byte SENSOR_EN_PINS[] {5}; //VCC Pin des Sensors
Ja, das war garantiert aus Faulheit von woanders übernommen.
Aber generell ist es möglich, mehrere Sensoren anzuschließen, wenn man das Array mit weiteren Pins befüllt.
byte SENSOR_PINS[] {14}; //AOut Pin des Sensors

Muss/kann man irgendwo einstellen, welchen der beiden Sensoren man verwendet?
Ja, in der Webui, siehe Readme ganz unten (Sensortyp):
https://github.com/jp112sdl/HB-UNI-Sen-PRESS

VG,
Jérôme

Benutzeravatar
Gelegenheitsbastler
Beiträge: 492
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 1 Mal

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von Gelegenheitsbastler » 15.01.2019, 21:46

Vielen Dank für die Infos.
Das mit dem Display ist schade. Dann lasse ich das erst einmal. Ich habe das neue Gerät inzwischen angelernt. Dort steht nun "Icon folgt". Gibt es schon ein Update, in den das Icon implementiert ist?
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

RaspberryMatic 3.45.7.20190511 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC
FritzBox 7490 FW 7.01 mit Mesh
FritzRepeater 1750E FW 7.01 mit Mesh
FRITZ!DECT 200 (als CUxD Gerät eingebunden)
Etliche selbst gebaute Aktoren und Sender

jp112sdl
Beiträge: 3035
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von jp112sdl » 15.01.2019, 22:03

Gelegenheitsbastler hat geschrieben:
15.01.2019, 21:46
Dort steht nun "Icon folgt".
Das ist eigentlich schon lange drin... Versuchs mal mit Browser Cache löschen oder "Inkognito-Tab".
Bildschirmfoto 2019-01-15 um 22.02.32.png

VG,
Jérôme

jp112sdl
Beiträge: 3035
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von jp112sdl » 15.01.2019, 22:07

Gelegenheitsbastler hat geschrieben:
15.01.2019, 21:46
Das mit dem Display ist schade. Dann lasse ich das erst einmal.
Was passiert denn, wenn du einfach aus

Code: Alles auswählen

display.setTextSize(1);
ein

Code: Alles auswählen

display.setTextSize(2);
machst?

VG,
Jérôme

Benutzeravatar
Gelegenheitsbastler
Beiträge: 492
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 1 Mal

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von Gelegenheitsbastler » 16.01.2019, 12:09

Cache löschen war die Lösung. Danke für den Tipp!

Da das einzige I²C Display dieser Bauart, dass ich im Bestand hatte, ohne ersichtlichen Grund (alles lief auf 3V3) das Zeitliche gesegnet hat und mir die Anzeige eh zu klein war, habe ich die Hardware nun provisorisch auf ein 1602 LCD umgebaut. Die rudimentären Änderungen in Deinem Sketch habe ich vorgenommen. Das läuft soweit. Aber als bekennender Softwareanalphabet komme ich an diesem Punkt nicht wirklich weiter:

Code: Alles auswählen

.
.
.
    void measure() {
      digitalWrite(SENSOR_EN_PINS[(number() - 1)], HIGH);
      _delay_ms(500);
      uint16_t sens_val = 0;
      for (uint8_t i = 0; i < 10; i++) {
        sens_val += analogRead(SENSOR_PINS[(number() - 1)]);
        _delay_ms(5);
      }
      sens_val = sens_val / 10;
      digitalWrite(SENSOR_EN_PINS[(number() - 1)], LOW);

      float sensor_factor = 0.75;
      switch (this->getList1().PressureSensorType()) {
        case MPA_1_2:
          sensor_factor = 0.75;
          break;
        case MPA_0_5:
          sensor_factor = 1.6;
          break;
        default:
          break;
      }

      float _p = (((sens_val / 1024.0) - (ANALOG_SOCKET_VALUE / 1000.0)) / sensor_factor) * 1000;
      pressure = _p > 0 ? _p : 0;
      DPRINT(F("+Pressure  (#")); DDEC(number()); DPRINT(F(") Analogwert: ")); DDECLN(sens_val);
      DPRINT(F("+Pressure  (#")); DDEC(number()); DPRINT(F(")       mBar: ")); DDECLN(pressure * 10);
      lcd.setCursor(0,0);
      lcd.print("Druck: ");
      lcd.setCursor(8,0);
      lcd.print(sens_val);
      
    }
.
.
.
Was muss in die letzte Klammer, in der aktuell "sens_val" steht, um den Druck im mBar anzeigen zu lassen?
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

RaspberryMatic 3.45.7.20190511 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC
FritzBox 7490 FW 7.01 mit Mesh
FritzRepeater 1750E FW 7.01 mit Mesh
FRITZ!DECT 200 (als CUxD Gerät eingebunden)
Etliche selbst gebaute Aktoren und Sender

stan23
Beiträge: 590
Registriert: 13.12.2016, 21:14
Wohnort: Altmühltal
Hat sich bedankt: 13 Mal
Danksagung erhalten: 13 Mal
Kontaktdaten:

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von stan23 » 16.01.2019, 13:37

Gelegenheitsbastler hat geschrieben:
16.01.2019, 12:09
Was muss in die letzte Klammer, in der aktuell "sens_val" steht, um den Druck im mBar anzeigen zu lassen?
Hi,
ganz grob geraten:

Code: Alles auswählen

      lcd.setCursor(0,0);
      lcd.print("Druck: ");
      lcd.setCursor(8,0);
      lcd.print(pressure * 10);
Denn weiter oben gibt es Debug-Ausgaben:
DPRINT(F("+Pressure (#")); DDEC(number()); DPRINT(F(") Analogwert: ")); DDECLN(sens_val);
DPRINT(F("+Pressure (#")); DDEC(number()); DPRINT(F(") mBar: ")); DDECLN(pressure * 10);
Viele Grüße
Marco

RaspberryMatic
~60 Geräte (HM, HmIP, HMW, HBW, AskSin)

Benutzeravatar
Gelegenheitsbastler
Beiträge: 492
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 1 Mal

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von Gelegenheitsbastler » 16.01.2019, 20:41

Danke für die Info. Das klappt nun soweit alles.
Nun noch eine dumme Frage: In welchem Intervall wird der Druck ermittelt - und damit Änderungen auf dem Display sichtbar?
Die Geschichte mit dem ISR_Pin funktioniert bei mir nicht. Egal, ob ich den auf GND oder 3V3 lege, der Wert ändert sich nicht.
(CC1101 ist noch nicht installiert und der Drucksensor wird durch eine angelegte Spannung von 800mV - 900mV vom LaborNT simuliert)
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

RaspberryMatic 3.45.7.20190511 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC
FritzBox 7490 FW 7.01 mit Mesh
FritzRepeater 1750E FW 7.01 mit Mesh
FRITZ!DECT 200 (als CUxD Gerät eingebunden)
Etliche selbst gebaute Aktoren und Sender

jp112sdl
Beiträge: 3035
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von jp112sdl » 16.01.2019, 20:46

Gelegenheitsbastler hat geschrieben:
16.01.2019, 20:41
Danke für die Info. Das klappt nun soweit alles.
Nun noch eine dumme Frage: In welchem Intervall wird der Druck ermittelt - und damit Änderungen auf dem Display sichtbar?
In demselben Intervall, in dem auch gesendet wird (einstellbar über WebUI).
Gelegenheitsbastler hat geschrieben:
16.01.2019, 20:41
Die Geschichte mit dem ISR_Pin funktioniert bei mir nicht. Egal, ob ich den auf GND oder 3V3 lege, der Wert ändert sich nicht.
(CC1101 ist noch nicht installiert und der Drucksensor wird durch eine angelegte Spannung von 800mV - 900mV vom LaborNT simuliert)
Wenn der CC1101 nicht initialisiert werden kann, wird der ganze trigger-Konstrukt nicht (so richtig) funktionieren.

So halbe Aufbauten sind immer nicht wirklich gut... :/

VG,
Jérôme

Benutzeravatar
Gelegenheitsbastler
Beiträge: 492
Registriert: 15.10.2017, 07:29
Hat sich bedankt: 1 Mal

Re: Wasserdruck auslesen - welcher Sketch?

Beitrag von Gelegenheitsbastler » 16.01.2019, 21:58

Danke. So etwas habe ich mir schon gedacht und daher den Testaufbau beschrieben.
20190116_205146.jpg
Testaufbau
Da nun alles soweit funktioniert, habe ich den Testaufbau um die CC1101 Platine ergänzt und das Gerät erneut angelernt, da ich es vorher wieder gelöscht hatte. Alles funktioniert wie es soll. Nun fehlt nur noch der Einbau ins Heizungssystem.
Das Komplizierteste an der Hausautomatisation ist der WAF.™ ​

RaspberryMatic 3.45.7.20190511 auf Raspberry Pi 3B mit HomeMatic Funkmodul von ELV und RTC
FritzBox 7490 FW 7.01 mit Mesh
FritzRepeater 1750E FW 7.01 mit Mesh
FRITZ!DECT 200 (als CUxD Gerät eingebunden)
Etliche selbst gebaute Aktoren und Sender

Antworten

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