Habe Problem - suche Lösung

Begonnen von betateilchen, 27 Februar 2017, 18:27:42

Vorheriges Thema - Nächstes Thema

betateilchen

Da ich mich mit dem Mikroprozessorkram und allem Drumrum einfach nicht auskenne und auch nicht anfreunden kann, hoffe ich, dass hier irgendjemand eine Idee hat und mir helfen kann/möchte, eine Aufgabe zu lösen, die schon lange auf meiner ToDo Liste steht.

Es geht um die Steuerung der Beleuchtung meiner Bibliothekswand im Wohnzimmer.

Ist-Situation:

Direkt am Regal ist eine kleine Sensorfläche angebracht, wenn ich diese berühre, geht das Licht an. Meine Vermutung: ein kapazitiver Sensor, da von diesem Teil nur ein einzelner Draht zu einer kleiner Blackbox geht, die direkt an 230V angeschlossen ist und mit der die Beleuchtung (230V Ausgang) eingeschaltet wird.

Soll:

Ich möchte die Sensorfläche nutzen, um irgendwie einen Event in FHEM zu bekommen, bei dessen Auftreten ich die Beleuchtung schalten kann.

Die Beleuchtung des Regals erfolgt mit 12V Gleichspannung (LED Leuchten) aus einem Steckernetzteil. Wenn man diese 12V anzapfen könnte, um eine benötigte Hardware zu versorgen UND die Beleuchtung zu schalten, bräuchte ich kein zusätzliches Netzteil.


Was habe ich bisher gefunden?

Beim Suchen im Internet habe ich eine Seite gefunden, die schonmal danach klingt, dass man da ansetzen könnte:
http://shelvin.de/simpler-kapazitiver-schalter-auf-einem-beliebigen-arduino-pin/

Wenn man das irgendwie mit der 1-Kanal-Schaltplatine von Homematic und einem Relais verknüpfen könnte, wäre mein Problem vermutlich schon gelöst.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

Keine fertige Lösung, aber folgende Gedanken:

Mikroprozessormäßig würde sich m.E: ein MPR121 als Touch-Auswerter (I2C-Device, bis zu 12 Eingänge) und einen MOSFET zum Schalten der 12 V anbieten.

In meinem Setup würde ich das über ein Arduino als MySensors-Node lösen, Du bräuchtest dann aber noch ein GW, Anregungen von der MySensors-Seite: https://www.mysensors.org/build/bed_occupancy, https://www.mysensors.org/build/dimmer. Die beiden Sketche sollten sich recht einfach kombinieren lassen, ob allerdings der Dimmer gleich mit den richtigen Readings angelegt wird, weiß ich nicht (RGBW geht nicht, daher der Vorbehalt).

Mit ESP müsstest Du Dich noch um eine geeignete Einbindung kümmern, ginge ggf. mit MQTT, sofern vorhanden.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Dietmar63

#2
Mit asksin oder Asksinpp kannst du selbst homematic Geräte mit dem arduino mini pro  nachbauen.
Entweder das Signal direkt zur Ansteuerung eines Relais verwenden oder als Meldung an fhem, um dann von dort zu schalten..

Mit asksinpp bin ich am besten klar gekommen. Die Hilfe dort ist auch gut
Habe schon den HM-ES-TX-WM und den HB-UW-Sen-THPL und den  HM-Sec-Wds nachgebaut.
Beispiele sind auf git vorhanden

Wenn man das nicht selber machen will, gibt es ein fertiges Homematic Modul, dass hier in einem Wassermelder verbaut wurde.


Die Beleuchtung des Regals erfolgt mit 12V Gleichspannung (LED Leuchten) aus einem Steckernetzteil. Wenn man diese 12V anzapfen könnte, um eine benötigte Hardware zu versorgen UND die Beleuchtung zu schalten, bräuchte ich kein zusätzliches Netzteil.


Einen solchen Sensor kann man für Überwachungszwecke batteriebetrieben fahren.

Je nachdem wie man den Arduino betreibt(powerdown+wdt), verbraucht er praktisch keinen Strom.  Der Verbrauch kann einfach auf 0,005 mA mit weiterem Aufwand sogar auf 0,0005 mA gedrückt werden. Je nach Batterie läuft das dann bis zu zehn Jahre. Es reichen sogar Knopfzellen für den Betrieb.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

Zitat von: Dietmar63 am 27 Februar 2017, 19:27:55
Mit asksin oder Asksinpp kannst du selbst homematic Geräte mit dem arduino mini pro  nachbauen.

da fällt mir ein... in meinen Bastelkisten muss irgendwo noch ein Arduino Uno mit Homematic Modul liegen, die Kombi stammt noch aus der Frühzeit der ersten AskSin Ideen hier im Forum. Mal schauen, ob ich damit was anfangen kann.

AskSinPP sieht schonmal gut aus, das mitgeliefert Beispiel für die RC4 wäre eigentlich eine gute Basis.

Muss mal schauen, ob ich die PIN Zuordnung von Arduino mini pro irgendwie auf Arduino Uno umsetzen kann.

Den genannten Vorschlag mit dem kapazitiven Sensor am Arduino Pin habe ich mir durchgelesen und getestet. Das funktioniert erstaunlich gut, ich darf nur die Länge des Drahtes zwischen Sensor und Arduino nicht zu lang machen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Danke schonmal für die ersten Antworten hier. Mal schauen ob noch andere Denkansätze kommen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dietmar63

#5
Uno oder Nano benötigen wg. der seriellen Schnittstelle zuviel Strom  um per Batterie betrieben zu werden.

Auf dem Pro Mini muss man die PowerLED entfernen, dann 0,05 mA - geht einfach.
Um auf 0,005 mA zu kommen muss man die Stormversorgung auf VCC umstelllen, darf dann nur zwischen 1,8 und 3,6V anschließen und muss den LOD auslöten - mit ein wenig Gewalt ist auch der schnell weg.

http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/

hat regelrecht Spass gemacht den Stromverbrauch soweit zu drücken.

PINOUTs der verschiedenen UNOs und Nanos gibt es wie Sand am Meer.

Um AskSinPP zum Laufen zu bringen benötigt man erst einmal ein cc1101 - ohne läuft nix.

12V muss man immer irgendwie herunter transformieren.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

#6
Zitat von: Dietmar63 am 27 Februar 2017, 20:41:39
Um AskSinPP zum Laufen zu bringen benötigt man erst einmal ein cc1101 - ohne läuft nix.

guckst Du ...

Zitat von: betateilchen am 27 Februar 2017, 20:26:36
da fällt mir ein... in meinen Bastelkisten muss irgendwo noch ein Arduino Uno mit Homematic Modul liegen, die Kombi stammt noch aus der Frühzeit der ersten AskSin Ideen hier im Forum.

das scheint auch grundsätzlich schon zu Laufen:


AskSin++ V1.0.0
CC init1 debounce
2...................3 - ready
Bat: 50
released
<- 1A 01 80 00 78 90 12 00 00 00 11 00 08 70 61 70 61 33 33 33 33 33 33 40 04 00 00



Zitat von: Dietmar63 am 27 Februar 2017, 20:41:39
Uno oder Nano benötigen wg. der seriellen Schnittstelle zuviel Strom  um per Batterie betrieben zu werden.

Da die 12 Volt für die Beleuchtung ohnehin vorhanden sind, ist das kein Problem. Momentan will ich einfach mal den Kram verwenden, der hier schon rumliegt, umziehen kann ich das später immer noch.

Zitat von: Dietmar63 am 27 Februar 2017, 20:41:39
PINOUTs der verschiedenen UNOs gibt es wie Sand am Meer.

mag sein, aber wenn man so gar keine Ahnung von dem Thema hat, ist alles schwierig. Fängt schon damit an, dass ich nicht kapiere, wie und wo ich den config-Button anschließen muss, um das Ding zu pairen.

Wenn ich den Quellcode richtig verstehe, muss ich Pin 8 verwenden. Aber wogegen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dietmar63


mag sein, aber wenn man so gar keine Ahnung von dem Thema hat, ist alles schwierig. Fängt schon damit an, dass ich nicht kapiere, wie und wo ich den config-Button anschließen muss, um das Ding zu pairen.

Wenn ich den Quellcode richtig verstehe, muss ich Pin 8 verwenden. Aber wogegen?

Ich konnte vor einem halben Jahr noch nicht einmal löten.

Eigentlich ist das immer ganz einfach. Es gibt zwei (und noch einige mehr) Möglicheiten.
Der Arduino reagiert auf Interrupts an einem PIN. Im Ruhezustand liegt HIGH an. Wenn dann der Configbutton gedrückt wird, wird ein Kurzschluss gegen LOW erzeugt und der Interrupt ausgelöst. Interrupts sind immer dann gut, wenn der A. eigentlich fast nie etwas zu tun hat, aber eben manchmal etwas gemacht werden muss(Button).

Für alle Ideen, die man umsetzen will muss man immer versuchen von HIGH auf LOW zu kommen  - dann macht der Arduino den Rest.

Die Andere Möglichkeit ist, dass man regelmäßig PINs abfragt, ob sie HIGH oder LOW sind.
Oder man fragt über i2c kleine Hilfsmicrocontroller(GPS,RTC,sonst. Sensoren) ab, die selbst "intelligent" sind.

Bevor ich gelötet habe, habe ich mir immer auf einem Breadboard alles aufgebaut, dann mit Eagle die Platine erstellt, und dann gelötet - dann läuft es fast immer, weil man nur noch auf dem Eagleplan schauen muss.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

Löten kann ich seit 40 Jahren, aber ich weiß immer noch nicht, wo ich den Config-Taster anklemmen muss. Pin 8 gegen GND hab ich natürlich als erstes probiert, aber da hat sich gar nix getan.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Hallo Udo,

was ich noch nicht ganz verstehe: die 230 V werden am Regal geschaltet und das 12 V Netzteil steckt eben in dieser Dose. D.h. die 12 V sind nur an, wenn das Licht geschaltet wird?

Zitat von: betateilchen am 27 Februar 2017, 20:46:01
Fängt schon damit an, dass ich nicht kapiere, wie und wo ich den config-Button anschließen muss, um das Ding zu pairen.
Wenn ich den Quellcode richtig verstehe, muss ich Pin 8 verwenden. Aber wogegen?
Bei Dirk's Sensor geht der gegen Masse und verwendet (vermutlich) den internen Pull-Up. Ggf. müsstest Du das in der Software anpassen. Ohne den Pull-Up zu aktivieren, wird nicht viel gehen  ;)

Ansonsten würde ich im ersten Ansatz die kapazitive Sensorfläche an einen Pin des Arduino anzuschließen und einfach mal schauen, was sich ändert, wenn Du diese berührst. Ein MRP121 breakout wäre die Alternative, allerdings etwas "overdesigned".

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

betateilchen

#10
Zitat von: PeMue am 27 Februar 2017, 21:16:40
was ich noch nicht ganz verstehe: die 230 V werden am Regal geschaltet und das 12 V Netzteil steckt eben in dieser Dose. D.h. die 12 V sind nur an, wenn das Licht geschaltet wird?

Bis jetzt ist das so, ja. Der Sensor schaltet die Blackbox, die 230V schaltet und am Ausgang der Blackbox steckt das Netzteil für die LED Lampen.
Die Blackbox soll entfallen und dafür alles direkt mit dann dauerhaft anliegenden 12V versorgt werden.

Ach egal. Ich hab schon jetzt die Lust verloren, das Projekt weiterzuverfolgen :(

Es gibt hier im Forum tolle Hardwareentwicklungen. Aber wenn man da nicht am ersten Tag einsteigt und jeden Entwicklungsschritt aktiv mitmacht, hat man eigentlich keine Chance, da später einzusteigen. Das habe ich schon in ganz vielen Projekten hier erlebt und ich finde das sehr schade. Niemand hat die Konzentration, einen Entwicklungs-Thread, der 15, 50 oder gar 100 Seiten hat, von Anfang bis zum Ende durchzulesen und auf Seite 100 noch zu wissen, was die ursprüngliche Idee auf Seite 1 war.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Doch noch funktionierend umgesetzt :P

Mit einem MPR121 am I2C Bus des raspberrypi und einem simplen python-Skript im Hintergrund, das die Kommunikation zwischen MPR121 und FHEM per telnet übernimmt. Dabei wird einem FHEM-dummy gemeldet, welche der 12 Sensorflächen gerade berührt wurde.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: PeMue am 27 Februar 2017, 21:16:40
Ein MRP121 breakout wäre die Alternative, allerdings etwas "overdesigned".

Gruß PeMue

Das MPR121 breakout ist echt cool.
Da müsste mal jemand ein FHEM I2C-Modul für schreiben.
Mal schauen, ob ich Klaus überzeugen kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!