Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:tech:bedsensor

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:tech:bedsensor [2022/09/23 14:44] bullarde:tech:bedsensor [2026/08/12 13:54] (aktuell) claude
Zeile 6: Zeile 6:
 Es gibt Alarmmatten als Bettvorleger oder professionelle Bettsensoren aus dem Pflegebereich. Auch die Sitzsensoren aus der Automobilindustrie erfüllen eine ähnliche Aufgabe. Allen gemeinsam ist aber die fehlende Anbindung an ein offenes Protokoll wie z.B. MQTT oder Home Assistant und natürlich der meist sehr hohe Anschaffungspreis. Es gibt Alarmmatten als Bettvorleger oder professionelle Bettsensoren aus dem Pflegebereich. Auch die Sitzsensoren aus der Automobilindustrie erfüllen eine ähnliche Aufgabe. Allen gemeinsam ist aber die fehlende Anbindung an ein offenes Protokoll wie z.B. MQTT oder Home Assistant und natürlich der meist sehr hohe Anschaffungspreis.
  
-{{:tech:bettsensor_prof.png?direct&300|Professioneller Bettsensor}} +{{:media:tech:bedsensor:bettsensor_prof.png?direct&300|Professioneller Bettsensor}} 
-{{:tech:sitzbelegungsmatte.jpg?direct&200|Sitzbelegungsmatte Kfz}}+{{:media:tech:bedsensor:sitzbelegungsmatte.jpg?direct&200|Sitzbelegungsmatte Kfz}}
  
 Einige findige Entwickler sind diese Lücke angegangen und haben z.B. Schalter in das Bettgestell integriert [[https://homematic-forum.de/forum/viewtopic.php?t=16239|Selbstgebauter Bettsensor... Steuern und Regeln im Schlaf!]] Einige findige Entwickler sind diese Lücke angegangen und haben z.B. Schalter in das Bettgestell integriert [[https://homematic-forum.de/forum/viewtopic.php?t=16239|Selbstgebauter Bettsensor... Steuern und Regeln im Schlaf!]]
Zeile 13: Zeile 13:
 Mein Ansatz sieht etwas anders aus um möglichst minimalinvasiv für das Bettgestellt zu sein. Als Sensor verwende ich einen druckempfindlichen Widerstand (force-sensitive resistor FSR). Den gibt es auch in einer extra langen Version von 60cm [[https://cdn.sparkfun.com/datasheets/Sensors/Pressure/FSR408-Layout2.pdf|FSR 408]]. Unbelastet ist der Widerstand hochohmig (>10MOhm) und bei 10kg Belastung reduziert sich der Wert auf wenige 100 Ohm. Der Sensor ist selbstklebend und lässt sich einfach z.B. auf einem Lattenrost befestigen. Mein Ansatz sieht etwas anders aus um möglichst minimalinvasiv für das Bettgestellt zu sein. Als Sensor verwende ich einen druckempfindlichen Widerstand (force-sensitive resistor FSR). Den gibt es auch in einer extra langen Version von 60cm [[https://cdn.sparkfun.com/datasheets/Sensors/Pressure/FSR408-Layout2.pdf|FSR 408]]. Unbelastet ist der Widerstand hochohmig (>10MOhm) und bei 10kg Belastung reduziert sich der Wert auf wenige 100 Ohm. Der Sensor ist selbstklebend und lässt sich einfach z.B. auf einem Lattenrost befestigen.
  
-{{ :tech:fsr408.png?direct&300 |FSR 408}}  +{{ :media:tech:bedsensor:fsr408.png?direct&300 |FSR 408}}  
-{{ :tech:force_curve.png?direct&300 |Typical Force Curve}} +{{ :media:tech:solarvilla:force_curve.png?direct&300 |Typical Force Curve}} 
-{{ :tech:bedsensor_mounted.jpeg?direct&300 |Installierter Bettsensor}} +{{ :media:tech:bedsensor:bedsensor_mounted.jpeg?direct&300 |Installierter Bettsensor}} 
  
 Beim FSR 408 lässt sich der vorliegende Druck leicht mit einen einfachen Widerstandsnetzwerk und einem A/D Wandler oder Comparator auswerten. Beim FSR 408 lässt sich der vorliegende Druck leicht mit einen einfachen Widerstandsnetzwerk und einem A/D Wandler oder Comparator auswerten.
 Um die Auswertung dann auch ins Smart Home Netzwerk zu bekommen gibt es mehrere Möglichkeiten. Eine der einfachsten ist ein ESP8266 Modul (ESP-07) mit der Open-Source Firmware [[https://www.letscontrolit.com/wiki/index.php/ESPEasy|ESP Easy]]. Übrigens kann man einen ähnlichen Lösungsansatz mit einem Raspberry Pi {{https://community.home-assistant.io/t/bed-occupancy-sensor-force-sensing-resistor-fsr-raspberry-pi-zero-wh-analogzero-phat/91999|hier}} nachlesen. Um die Auswertung dann auch ins Smart Home Netzwerk zu bekommen gibt es mehrere Möglichkeiten. Eine der einfachsten ist ein ESP8266 Modul (ESP-07) mit der Open-Source Firmware [[https://www.letscontrolit.com/wiki/index.php/ESPEasy|ESP Easy]]. Übrigens kann man einen ähnlichen Lösungsansatz mit einem Raspberry Pi {{https://community.home-assistant.io/t/bed-occupancy-sensor-force-sensing-resistor-fsr-raspberry-pi-zero-wh-analogzero-phat/91999|hier}} nachlesen.
  
-{{ :tech:esp07.png?direct&200 |ESP-07}}+{{ :media:tech:powermeter:esp07.png?direct&200 |ESP-07}}
  
 ====Features==== ====Features====
Zeile 33: Zeile 33:
 Das Widerstandsnetzwerk zur Auswertung des Drucks sieht wie folgt aus: Das Widerstandsnetzwerk zur Auswertung des Drucks sieht wie folgt aus:
  
-{{ :tech:bedsensor_network.png?direct&200 | Widerstandsnetzwerk}}+{{ :media:tech:bedsensor:bedsensor_network.png?direct&200 | Widerstandsnetzwerk}}
  
 Die Ausgangsspannung zum ADC berechnet sich damit so: Die Ausgangsspannung zum ADC berechnet sich damit so:
Zeile 52: Zeile 52:
 Der Maximalwert sollte in unserer Anwendung 1V nicht überschreiten, da beim ESP-07 die interne analoge Referenzspannung 1V beträgt. Zusätzlich benötigen wir noch einen Multiplexer um zwei Sensoren auswerten zu können. Der vollständige Schaltplan ist trotzdem noch sehr übersichtlich. Der Maximalwert sollte in unserer Anwendung 1V nicht überschreiten, da beim ESP-07 die interne analoge Referenzspannung 1V beträgt. Zusätzlich benötigen wir noch einen Multiplexer um zwei Sensoren auswerten zu können. Der vollständige Schaltplan ist trotzdem noch sehr übersichtlich.
  
-{{ :tech:bedsensor_schematic.png?direct&400 | Schaltplan Bettsensor}}+{{ :media:tech:bedsensor:bedsensor_schematic.png?direct&400 | Schaltplan Bettsensor}}
  
 Natürlich kann man auch nur einen FSR408 mit R2 direkt an das Modul anschliessen und umgeht so eventuell sogar die Platine mit einer Freiverdrahtung. Natürlich kann man auch nur einen FSR408 mit R2 direkt an das Modul anschliessen und umgeht so eventuell sogar die Platine mit einer Freiverdrahtung.
Zeile 58: Zeile 58:
 Um das Modul möglichst klein zu halten ist die Schaltung in SMD ausgeführt. Geeignete Heim-Löttechniken sind ja schon an verschiedenen Stellen veröffentlich worden. Um das Modul möglichst klein zu halten ist die Schaltung in SMD ausgeführt. Geeignete Heim-Löttechniken sind ja schon an verschiedenen Stellen veröffentlich worden.
  
-{{ :tech:bedsensor_pcb.png?direct&400 | Platine Bettsensor}} +{{ :media:tech:bedsensor:bedsensor_pcb.png?direct&400 | Platine Bettsensor}} 
-{{ :tech:bedsensor_pcb.jpeg?direct&400 |Platine Bettsensor}}+{{ :media:tech:bedsensor:bedsensor_pcb.jpeg?direct&400 |Platine Bettsensor}}
  
 Der Anschluss der Sensoren erfolgt über Standard 2.5mm Klinkenbuchsen (JY029). Die Spannungsversorgung ist auch steckbar mit einer 5.5/2.1mm Hohlbuchse (HEBW21). Hierzu findet man sehr preiswerte [[https://www.ebay.de/itm/351218451793|Steckernetzteile]] mit stabilisiertem 3.3V Gleichspannungsausgang. Mehr drahtgebundene Konnektivität benötigt der Bettsensor nicht. \\ Der Anschluss der Sensoren erfolgt über Standard 2.5mm Klinkenbuchsen (JY029). Die Spannungsversorgung ist auch steckbar mit einer 5.5/2.1mm Hohlbuchse (HEBW21). Hierzu findet man sehr preiswerte [[https://www.ebay.de/itm/351218451793|Steckernetzteile]] mit stabilisiertem 3.3V Gleichspannungsausgang. Mehr drahtgebundene Konnektivität benötigt der Bettsensor nicht. \\
 Mit einem 3D Drucker lässt sich dann noch ein unauffälliges Gehäuse verwirklichen was man leicht mit doppelseitigen Klebeband unterhalb des Bettes befestigen kann. Mit einem 3D Drucker lässt sich dann noch ein unauffälliges Gehäuse verwirklichen was man leicht mit doppelseitigen Klebeband unterhalb des Bettes befestigen kann.
-{{ :tech:bedsensor_case.png?direct&400 |Gehäuse Bettsensor}} +{{ :media:tech:bedsensor:bedsensor_case.png?direct&400 |Gehäuse Bettsensor}} 
-{{ :tech:bedsensor_module.jpeg?direct&400 | Bedsensor offen}}+{{ :media:tech:bedsensor:bedsensor_module.jpeg?direct&400 | Bedsensor offen}}
  
 ====Programmierung (ESPEasy)==== ====Programmierung (ESPEasy)====
Zeile 78: Zeile 78:
 Der Bettsensor soll sich ja mit einem vorhandenen MQTT Server verbinden und die aktuelle Belegungsinformation bei Änderung dorthin übertragen. Dazu gehen wir auf den Reiter //Controller// und tragen die entsprechende Daten ein. Dazu gehören u.a. die IP Adresse des MQTT Servers sowie die Account Daten für die Anmeldung. Das Resultat sollte ähnlich dem folgenden Beispiel aussehen. Der Bettsensor soll sich ja mit einem vorhandenen MQTT Server verbinden und die aktuelle Belegungsinformation bei Änderung dorthin übertragen. Dazu gehen wir auf den Reiter //Controller// und tragen die entsprechende Daten ein. Dazu gehören u.a. die IP Adresse des MQTT Servers sowie die Account Daten für die Anmeldung. Das Resultat sollte ähnlich dem folgenden Beispiel aussehen.
  
-{{ :tech:easyesp_controller.png?direct&300 | MQTT Controller Setup}}+{{ :media:tech:bedsensor:easyesp_controller.png?direct&300 | MQTT Controller Setup}}
  
 ===Devices=== ===Devices===
 Als zweites brauchen wir ein Device was den analogen Wert misst und speichert. Das lässt sich über den Reiter //Devices// erreichen. Für jeden Sensor gibt es ein eigenes Device und zusätzlich benötigen wir noch ein Dummy Device um den vorherigen Messewert zwischen zu speichern. Als zweites brauchen wir ein Device was den analogen Wert misst und speichert. Das lässt sich über den Reiter //Devices// erreichen. Für jeden Sensor gibt es ein eigenes Device und zusätzlich benötigen wir noch ein Dummy Device um den vorherigen Messewert zwischen zu speichern.
  
-{{ :tech:easyesp_devices.png?direct&400 | Devices Setup}}+{{ :media:tech:bedsensor:easyesp_devices.png?direct&400 | Devices Setup}}
  
 Die grünen Zahlen rechts geben übrigens die aktuellen Messwerte wieder. In dem Beispiel liegt keiner im Bett.\\ Die grünen Zahlen rechts geben übrigens die aktuellen Messwerte wieder. In dem Beispiel liegt keiner im Bett.\\
 Hier die Einstellungen für die Devices: Hier die Einstellungen für die Devices:
  
-{{:tech:easyesp_analog.png?direct&300| Analog Device Setup}} +{{:media:tech:bedsensor:easyesp_analog.png?direct&300| Analog Device Setup}} 
-{{:tech:easyesp_dummy.png?direct&300| Dummy Device Setup}}+{{:media:tech:bedsensor:easyesp_dummy.png?direct&300| Dummy Device Setup}}
  
 ===Rules=== ===Rules===
Zeile 224: Zeile 224:
  
 ====Beispiel==== ====Beispiel====
-Hier die Aufzeichnung der konvertierten Werte [0..1023] einer Nacht. Die Drops sind nicht bedingt durch eine altersbedingte Inkontinenz sondern das kurzzeitige Wegkuscheln auf die Bettmitte :-)  +Hier die Aufzeichnung der konvertierten Werte [0..1023] einer Nacht. Die Drops sind nicht bedingt durch eine altersbedingte Inkontinenz sondern durch das kurzzeitige Wegkuscheln auf die Bettmitte :-)  
  
-{{ :tech:bed?diagram.jpeg?direct&500 | Aufzeichnung einer Nacht}}+{{ :media:tech:bedsensor:bed_diagram.jpeg?direct&500 | Aufzeichnung einer Nacht}}
  
  
Zeile 233: Zeile 233:
  
 ====Downloads==== ====Downloads====
-  * {{:tech:bedsensor_BOM.pdf|Bestückungsliste (BOM)}} +  * {{:media:tech:bedsensor:bedsensor_bom.pdf|Bestückungsliste (BOM)}} 
-  * {{:tech:bedsensor.brd.zip|PCB}} Eagle format (.brd) +  * {{:media:tech:bedsensor:bedsensor.brd.zip|PCB}} Eagle format (.brd) 
-  * {{:tech:bedsensor_v3.stl.zip|Gehäuse}} (STL Datei)+  * {{:media:tech:bedsensor:bedsensor_v3.stl.zip|Gehäuse}} (STL Datei)
  
 ====Links==== ====Links====
de/tech/bedsensor.1663944240.txt.gz · Zuletzt geändert: (Externe Bearbeitung)