Füllstandsensor mit Druck- statt US-Sensor

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

Moderator: Co-Administratoren

DocMarten
Beiträge: 152
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 01.03.2019, 18:43

Hi Jerome,
jp112sdl hat geschrieben:
21.01.2019, 18:35
Ich würde dann eher ein neues Gerät draus machen.

EDIT: Es muss mir nur mitgeteilt werden, ob/welche Parameter über die WebUI konfigurierbar sein sollen.
Ich habe jetzt alles beisammen und würde das am Wochenende mal zusammendengeln. Würdest Du das neue Gerät machen? Testen kann ich es dann erst einmal nur an der Konsole bzw wenn Papa das ins fhem Modul übernimmt, da ich hier nur eine alte CCU1 rumliegen habe und dein Addon sich auf dieser seinerzeit nicht installieren ließ.
Grüße
Martin
Standort 1: FS20 + Homematic mit CUL und FHEM (immer aktuelle Ver.) auf Raspberry Pi
Standort 2: Homematic (Wired + einige Funkmodule) über CCU2 und PocketHome HD, VCCU auf Raspberry
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods)

jp112sdl
Beiträge: 12083
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 01.03.2019, 19:26

DocMarten hat geschrieben:
01.03.2019, 18:43
Würdest Du das neue Gerät machen? Testen kann ich es dann erst einmal nur an der Konsole bzw wenn Papa das ins fhem Modul übernimmt, da ich hier nur eine alte CCU1 rumliegen habe und dein Addon sich auf dieser seinerzeit nicht installieren ließ.
Das neue Gerät für die Homematic-CCU wäre wohl erst sinnvoll, wenn Sketch und FHEM funktionieren.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

DocMarten
Beiträge: 152
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 01.03.2019, 19:56

Ja, klar. Erster Schritt müsste der Sketch sein, und wer, wenn nicht Du ...?
Standort 1: FS20 + Homematic mit CUL und FHEM (immer aktuelle Ver.) auf Raspberry Pi
Standort 2: Homematic (Wired + einige Funkmodule) über CCU2 und PocketHome HD, VCCU auf Raspberry
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods)

jp112sdl
Beiträge: 12083
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 01.03.2019, 20:00

Meine Aussage mit dem "neuen Gerät" bezog sich auf die XML und der Integration in Homematic.

Der Sketch sprengt grad meinen zeitlichen Rahmen, da ich derzeit noch intensiv an anderen Projekten entwickle.
DocMarten hat geschrieben:
01.03.2019, 19:56
Die nächste Frage ist dann natürlich, ob ich Jeromes ino entsprechend modifiziert bekommen. Ich würde versuchen, den Drucksensor als dritte Sensoroption einzubauen und dann mit analogRead den Wert auslesen. Aber da werde ich ganz bestimmt noch einige Fragen haben.
... ich dachte, du wolltest es erstmal selbst versuchen...

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

DocMarten
Beiträge: 152
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 01.03.2019, 20:10

jp112sdl hat geschrieben:
01.03.2019, 20:00
... ich dachte, du wolltest es erstmal selbst versuchen...
Ok, Du hast es nicht anders gewollt ;) Ich werde mich dranmachen, als Nicht-Programmierer mit ein bissl Perl-Erfahrung. Wenn meine Zisterne brennt, weißt Du warum...
Standort 1: FS20 + Homematic mit CUL und FHEM (immer aktuelle Ver.) auf Raspberry Pi
Standort 2: Homematic (Wired + einige Funkmodule) über CCU2 und PocketHome HD, VCCU auf Raspberry
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods)

DocMarten
Beiträge: 152
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 04.03.2019, 12:41

Hallo zusammen,
ich habe alles zusammengelötet und mal in einer hohen Blumenvase getestet.
Dazu habe ich mir einen Sketch (meinen ersten, nicht lachen!) gemacht, der an die serielle Konsole reported:

Code: Alles auswählen

/*
    Reads voltage across 250 Ohm Resistor which is in series with 4-20mAmp Sensor
    www.circuits4you.com
*/
const int sensorPin=A0;
 
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}
 
// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  float sensorValue = analogRead(sensorPin);
  float SensorLength = 500; // maximale Eintauch- bzw. Messtiefe in cm meines konkreten Sensors, muesste als definierbare Variable umgesetzt werden
  float ResultCase; // Gemessener Inhalt in % bezogen auf maximae Fuellhoehe
  float FillHeight = 130; // maximaler Füllstand in cm in meinem konkreten Fall, muesste als definierbare Variable umgesetzt werden
  float CaseWidth = 157;
  float Result; // Gemessener Inhalt in % bezogen auf maximale Messtiefe
  float CaseLength = 412;
  float ContentLiters;
  float Offset = 214; // 
  
  Result = ((sensorValue-Offset)*100.0)/(1024.0-Offset);  //214 is offset, 4mAmp is 0
  ResultCase = Result*SensorLength/FillHeight;
  ContentLiters = CaseWidth * CaseLength * FillHeight / 1000 /100 * ResultCase;
  // print out the value you read:
  if(Result>0)
  {
    Serial.print("Pin Voltage: ");
    Serial.println(sensorValue); 
    Serial.print("Sensor Output: ");
    Serial.print(Result); 
    Serial.println(" %");
    Serial.print("bei konkreter Hoehe: ");
    Serial.print(ResultCase); 
    Serial.println(" %");
    Serial.print("In Litern: ");
    Serial.print(ContentLiters); 
    Serial.println(" l");
  }
  else
  {
    Serial.println("Sensor Error");    //Show error if value is less than 4mAmp
  }
    delay(2000);        // delay in between reads for stability    
}
Das läuft prima und ziemlich präzise. Offset musste ich etwas höher einstellen, vielleicht liegt das daran, dass ich nur vier Batteiren dahatte (6 V) und keine Akkus (5,2 V).

Ich habe allerdings am WE viele Stunden erfolglos damit verbracht, auf dieser Basis Jeromes HB-UNI-Sen-LEV-US.ino anzupassen, aber das übersteigt meine Fähigkeiten doch um ein Vielfaches, und Tutorials oder eine Doku der AskSam-Spezifika konnte ich nicht finden. Vielleicht gibt es ja irgendwo einen ähnlichen, aber exzessiv kommentierten Sketch, an dem ich mich abarbeiten könnte? Ansonsten muss ich wohl auf eine helping hand warten

Ich denke aber, dass ich auch an der Verdrahtung etwas ändern muss.
Wenn ich es richtig verstehe, versorgt Jeromes ursprünglicher Sketch den US-Sensor über digitalWrite(SENSOR_EN_PIN, HIGH) und digitalWrite(SENSOR_EN_PIN, LOW) nur in Intervallen mit Spannung – um Batterie zu sparen?

Code: Alles auswählen

      switch (this->getList1().sensorType()) {
        case JSN_SR04T:
          digitalWrite(SENSOR_EN_PIN, HIGH);
          _delay_ms(250);
          digitalWrite(SENSOR_TRIG_PIN, LOW);
          delayMicroseconds(2);
          digitalWrite(SENSOR_TRIG_PIN, HIGH);
          delayMicroseconds(10);
          digitalWrite(SENSOR_TRIG_PIN, LOW);
          m_value = pulseIn(SENSOR_ECHO_PIN, HIGH, 26000);
          m_value = (m_value * 1000L / 57874L);
          digitalWrite(SENSOR_EN_PIN, LOW);
          break;
Wenn dem so ist, sollte ich auch den Stepup (→ 24 V) nicht direkt am Batteriekasterl anschließen, sondern auch an einem 5-V-Pin des Arduino?
Standort 1: FS20 + Homematic mit CUL und FHEM (immer aktuelle Ver.) auf Raspberry Pi
Standort 2: Homematic (Wired + einige Funkmodule) über CCU2 und PocketHome HD, VCCU auf Raspberry
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods)

DocMarten
Beiträge: 152
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 09.03.2019, 23:17

Oooch, ihr seid aber gemein ... Lasst mich Blut und Wasser schwitzen mit dem Sketch, dabei gibt es das quasi gebrauchsfertig (Serviervorschlag, Abbildung ähnlich): https://github.com/jp112sdl/HB-UNI-Sen-PRESS
Habe da meine Beckenparameter und die Berechnungslogik eingebaut und brauche jetzt nur noch eine CCU2, um das auszuprobieren - an der seriellen Konsole klappt das jedenfalls schon. Oder halt Papa, der das in sein fhem-Modul integriert.
Zuletzt geändert von DocMarten am 10.03.2019, 11:22, insgesamt 1-mal geändert.
Standort 1: FS20 + Homematic mit CUL und FHEM (immer aktuelle Ver.) auf Raspberry Pi
Standort 2: Homematic (Wired + einige Funkmodule) über CCU2 und PocketHome HD, VCCU auf Raspberry
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods)

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von papa » 10.03.2019, 11:12

DocMarten hat geschrieben:
09.03.2019, 23:17
Oder halt Papa, der das in sein fhem-Modul integriert.
Da brauche ich mal die XML-Beschreibung
Anfragen zur AskSin++ werden nur im Forum beantwortet

jp112sdl
Beiträge: 12083
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 10.03.2019, 11:32

papa hat geschrieben:
10.03.2019, 11:12
DocMarten hat geschrieben:
09.03.2019, 23:17
Oder halt Papa, der das in sein fhem-Modul integriert.
Da brauche ich mal die XML-Beschreibung
https://github.com/jp112sdl/JP-HB-Devic ... -press.xml

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

DocMarten
Beiträge: 152
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 10.03.2019, 13:15

Falls es sachdienlich ist:

Code: Alles auswählen

Internals:
   CFGFN      
   DEF        E90101
   FUUID      5c84f9fa-f33f-e02c-c1fb-3ad9cf9c1e2a7e12
   IODev      hmusb
   LASTInputDev hmusb
   MSGCNT     38
   NAME       HM_E90101
   NOTIFYDEV  global
   NR         1575
   STATE      ???
   TYPE       CUL_HM
   chanNo     01
   hmusb_MSGCNT 38
   hmusb_RAWMSG EE90101,0000,0290AAF9,FF,FFC6,018453E9010142424200C1010000
   hmusb_RSSI -58
   hmusb_TIME 2019-03-10 13:12:12
   lastMsg    No:01 - t:53 s:E90101 d:424242 00C1010000
   protLastRcv 2019-03-10 13:06:39
   protRcv    24 last_at:2019-03-10 13:06:39
   protSnd    4 last_at:2019-03-10 12:50:23
   protState  CMDs_done
   rssi_at_hmusb cnt:38 min:-65 max:-56 avg:-59.65 lst:-58 
   READINGS:
     2019-03-10 12:50:20   CommandAccepted yes
     2019-03-10 12:50:19   D-firmware      1.0
     2019-03-10 12:50:19   D-serialNr      JPPRESS001
     2019-03-10 12:50:23   PairedTo        0x424242
     2019-03-10 12:50:23   R-pairCentral   0x424242
     2019-03-10 12:50:23   RegL_00.         00:00 01:00 0A:42 0B:42 0C:42 21:00 22:3C
   helper:
     HM_CMDNR   1
     PONtest    1
     cSnd       01424242E901010006,01424242E9010100040000000000
     mId        
     peerFriend -
     peerOpt    -
     regLst     
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +E90101,00,01,00
       nextSend   1552219932.44188
       prefIO     
       rxt        0
       vccu       
       p:
         E90101
         00
         01
         00
     mRssi:
       mNo        01
       io:
         hmusb:
           -52
           -52
     prt:
       bErr       0
       sProc      0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     regCollect:
     role:
       chn        1
       dev        1
     rssi:
       at_hmusb:
         avg        -59.6578947368421
         cnt        38
         lst        -58
         max        -56
         min        -65
     shadowReg:
     tmpl:
Attributes:
   IODev      hmusb
   alias      drucksensor
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.0
   model      unknown
   room       CUL_HM,Terrassen
   serialNr   JPPRESS001
   subType
Vielen Dank für Eure Hilfe &
viele Grüße
Martin
Standort 1: FS20 + Homematic mit CUL und FHEM (immer aktuelle Ver.) auf Raspberry Pi
Standort 2: Homematic (Wired + einige Funkmodule) über CCU2 und PocketHome HD, VCCU auf Raspberry
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods)

Antworten

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