Forum: Haus & Smart Home Fensterüberwachung Haus mit Arduino Nano V3 Atmega168 und HUB75 P2 RGB LED-Display 64x32


von Dennis S. (whiterussian)


Angehängte Dateien:

Lesenswert?

Hi zusammen,

ich habe mir eine Ansteuerung für ein HUB75 Display 32x64 (1:16 Scan) 
auf Arduino (Nano) Basis geschrieben. Es war etwas tricky, da es den 
Controller, was Timing und Speicher angeht, schon sehr an seine Grenzen 
bringt. Meine Lösung benötigt 80% RAM, und eigentlich die volle 
Rechenleistung um ein recht ruhiges Bild (Pixelbestandteile nur an/aus) 
zu bekommen. Damit sind immerhin die Grundfarben und die ersten 
Mischfarben möglich.

Belegung:

Arduino D0-D5 (PORTD0-5)    - R1,R2,G1,G2,B1,B2
Arduino D6 (PORTD6)         - Clock
Arduino D7 (PORTD7)         - Latch
Arduino D8 - D11 (PORTB0-3) - A-D
Arduino D12  (PORTB4)       - OE (Display Enable)

Frei
A0-A7
D13

Dazu habe ich eine kleine rudimentäre Grafikdatei genutzt um den 
Grundriss und die Fensterstellungen darzustellen.
Es gibt 5 Stati pro Fenster:

0, blau, unbenutzt
1, weiß, abgeschlossen
2, grün, geschlossen
3, gelb, gekippt
4, rot,  geöffnet

In einigen Fenstern habe ich bei renovierungs- und Umbaumaßnahmen schon 
mal zwei Magnetkontakte pro Fenster, versteckt im Rahmen, eingebracht 
und Kabel gelegt. (Zu, Kipp, Auf erfassen - wobei zwei Kontakte geöffnet 
sind, wenn auf - Softwarelösbar)

1, 1 = Fenster geschlossen
0, 1 = Fenster gekippt
0, 0 = Fenster geöffnet

0= Kontakt offen
1= Kontakt zu

Status "unbenutzt" ist für die, die noch nicht angeschlossen werden 
können, da noch keine Sensoren verbaut.

Das Display bekommt noch eine Platine mit Dipschaltern (für die 
grundsätzliche Konfiguration ob Sensoren verbaut sind oder nicht) und 
Schnittsellensteckern und ggf. ein paar Registern um DIP-Schalter und 
externe Sensoren zu erfassen.

Die Aufgabe des Panels ist nur den Status aller Fenster darzustellen und 
es wird noch einen Darstellung der Summe aller Stati auf einen Blick 
geben (Sobald alle Fenster zu -> grün, sobald ein oder mehrere auf Kipp 
-> gelb, sobald nur eines oder mehrere ganz geöffnnet -> rot).

Was momentan noch offen ist, ist die Erfassung der Schaltkontakte, die 
Drähte sind so verteilt dass es als Beispiel ein 15 Meter 8-Ader CAT 
Kabel gibt und am Ende befinden sich zehn Schaltkontakte von fünf 
Fenstern.
Hier überlege ich gerade wie ich diese abfragen werde und was sich am 
besten eignet. Ob eine Matrixanordnung da noch schlau ist usw...
Ich möchte nicht mit Funk und mit anderen größeren Systemen arbeiten, 
mir ist klar dass das Thema Hausautomatisierung ein sehr weitläufiges 
Thema ist, mit vielen Bussystemen (CAN, RS485, EIB, KNX, usw...) aber 
ich habe gerade Spaß an dieser komplett selbst angefangenen Bastelei...

Vielleicht hat ja noch der eine oder andere Tips oder Anregungen für die 
Sensorabfrage über Kabel. Klar könnte ich auch I²C und I-O Expander 
nutzen, oder oder oder... ich weiß es noch nicht und freue mich über 
Ideen.

Danke.

VG

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

gefällt, aber ich würde die Helligkeit dimmen damit die LEDs länger 
halten, ggffs. mit Umgebunghelligkeit abgleichen, wenn dunkel LED auch 
dunkler und ggffs die LEDs auch per Timer abschalten und per Taste 
aufwecken. Niemand muß und will das 24/7/325 sehen die LEDs danken. Wenn 
die LEDs verbraucht oder kaputt sind in Jahren findet man keinen Ersatz, 
alle benutzten LIBs sind anders und das Windows hat auch x-mal 
gewechselt und man kann nicht mehr daran arbeiten so wie ich an meiner 
Wordclock von 2015, alles neu zu erfinden und LIBs anpassen viel zu 
umständlich, schaffe ich nicht mehr.

von Dennis S. (whiterussian)


Lesenswert?

Joachim B. schrieb:
> aber ich würde die Helligkeit dimmen damit die LEDs länger
> halten, ggffs.

Geht mir 3.3V sehr gut auch ohne Levelshifter... muss man aber dann mal 
genau gucken. Die sind schon echt hell bei 5V...

Joachim B. schrieb:
> und per Taste

TTP223 mit hinterm Glas als Idee...vergessen zu erwähnen...und ein 
Ausgang für eine gesonderte externe bicolor-LED im das Summensignal noch 
mal an der Haustür sehen zu können...

Joachim B. schrieb:
> Niemand muß und will

Anmaßend...

Joachim B. schrieb:
> keinen Ersatz

Dagegen kann man vorbeugen, ich lege immer was auf Halde von allem - ob 
das schlau oder "richtig" oder "besser" ist, ist aber keine Diskussion 
hier wert finde ich, denn das ist ebenfalls individuell...
Aber es stimmt natürlich, es gibt Anhängigkeiten... leider... :-)
Und ich vernetze nichts, jedes Teil funktioniert für sich größtenteils 
unabhängig - kein Netz, keine Updates, keine Zusatzfunktionen - damit 
laufen die Sachen 15-25 Jahre, wenn sie zuende entwickelt sind... ohne 
weitere Pflege, ohne Gefrickel und ohne Änderungen, vielleicht mal einen 
Kondensator wechseln, wenns hoch kommt - das sind meine Erfahrungen...

Das Teil überwacht Fenster und stellt das dar. Lässt sich per DIP 
konfigurieren und benötigt keine Softwareanpassungen mehr, wenn es durch 
ist. Auch wenn in den Jahren noch Sensoren an den restlichen Fenstern 
dazu kommen... erfahrungsgemäß geht das so ganz gut...
Ein weiteres Panel und ein weiteree programmierter Controller werden ins 
Gehäuse gelegt, wenn was ist, muss man nur austauschen und weiter 
gehts...

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Dennis S. schrieb:
> Es war etwas tricky, da es den
> Controller, was Timing und Speicher angeht, schon sehr an seine Grenzen
> bringt. Meine Lösung benötigt 80% RAM,

Du weißt, dass es den Nano auch mit einem Atmega328 gibt, doppelte Menge 
Speicher drin?

Der Grundriss im Display als Anzeige gefällt mir!

von Dennis S. (whiterussian)


Lesenswert?

Manfred P. schrieb:
> Du weißt, dass es den Nano auch mit einem Atmega328 gibt,

Ja. Ich war mal der Meinung gesehen zu haben, dass A6  ADC6 und A7  
ADC7 beim Atmega168 auch I/O können und hatte deswegen den Typ genommen, 
hatte mich aber versehen...

Manfred P. schrieb:
> Der Grundriss im Display als Anzeige gefällt mir!

Danke, ist ausreichend. :-)

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Dennis S. schrieb:
> Anmaßend...

OK du wolltest Gedanken und Anmerkungen, wenn sie nicht gefallen lernst 
du vielleicht durch Schmerz, die Zukunft wird es zeigen auch heute 
lernen die Menschen nicht mehr durch Blick in die Vergangenheit.

Als ich 2015 viele Arduino Projekte machte auch LIBs angepasst hatte 
habe ich noch den Rechner, aber auch dort klappt es nicht mehr, der alte 
Rechner schwächelt.

von Dennis S. (whiterussian)


Lesenswert?

Wie bekomme ich am besten, einfachsten 10 bis 12 Kontaktstellungen über 
ein 15m langes CAT6 Kabel an den Controller... am liebsten im Bereich 
der Kontakte nur mit passiven Bauteilen / Verdrahtung... Auf 
Controller-Seite muss ich eh eine Platine machen, da ist sehr viel 
denkbar, wobei ich gern auf SMD verzichten würde...aber nicht muss.

Habe gerade noch einen Atmega168 im MLF auf einem Arduino mit einer 
0,2er Spitze an einem Pin nachgelötet, es geht also noch... :-) aber 
auch nur mit Kamerahilfe...lieber etwas größer, Platz is genug da...

: Bearbeitet durch User
von Lu (oszi45)


Lesenswert?

Die Überwachung ist sicher nützlich, wenn sie funktioniert. In der Firma 
hatte ich leider öfter Spaß mit fehlerhaften Fenstermeldungen, weil 
Kontakte nicht funktioniert haben oder Fenster sich verzogen hatten. Das 
wird auch die schönste Software kaum verhindern.

von Ralf X. (ralf0815)


Lesenswert?

Lu schrieb:
> Die Überwachung ist sicher nützlich, wenn sie funktioniert. In der
> Firma
> hatte ich leider öfter Spaß mit fehlerhaften Fenstermeldungen, weil
> Kontakte nicht funktioniert haben oder Fenster sich verzogen hatten. Das
> wird auch die schönste Software kaum verhindern.

Schrott-Kontakte oder Schrott-Installation.
Hast Du es selber gemacht?

von Nemopuk (nemopuk)


Lesenswert?

Dennis S. schrieb:
> Wie bekomme ich am besten, einfachsten 10 bis 12 Kontaktstellungen über
> ein 15m langes CAT6 Kabel an den Controller.

Du könntest durch die Kontakte unterschiedliche Widerstände auf die 
Leitungen legen und diese am anderen Ende analog ausmessen.

von Gerald B. (gerald_b)


Lesenswert?

Und wenn du dann noch bei Kontakt 2 den doppelten Widerstand von Kontakt 
1 nimmst und bei 3 den 4-fachen, kannst du über eine Leitung sicher 4-5 
Kontakte auswerten. Da Netzwerk 4 Adernpaare hat, kommst du selbst mit 4 
Kontakten p. Paar auf 16 Fenster ;-)

von Dennis S. (whiterussian)


Lesenswert?

An die Variante hatte ich noch gar nicht gedacht, gute Idee!

Hatte vor ca. 15 Jahren mal eine Tastenfeldabfrage damit gemacht...

Muss mal gucken, lange her, in diesem Fall kommt es vor, dass alle 
"Tasten" gedrückt sind... und nicht immer nur eine...

: Bearbeitet durch User
von Frank O. (frank_o)


Lesenswert?

Dennis S. schrieb:
> Wie bekomme ich am besten, einfachsten 10 bis 12 Kontaktstellungen über
> ein 15m langes CAT6 Kabel an den Controller..

Vielleicht reduzierst du die einfach? Bei den Schaltern einfach 
Widerstände vor die Leitung und alles an einer Leitung. Die Werte so 
wählen, dass die leicht ausgewertet werden können, sodass du auch eben 
zwei oder mehrere Stellen sicher erkennen kannst.

von Manfred P. (pruckelfred)


Lesenswert?

Dennis S. schrieb:
> Hatte vor ca. 15 Jahren mal eine Tastenfeldabfrage damit gemacht...

Ich auch schon, aber nur 8 ohne lange Leitung.

> Muss mal gucken, lange her, in diesem Fall kommt es vor, dass alle
> "Tasten" gedrückt sind... und nicht immer nur eine...

Da wird es problematisch, meine Tastaturabfrage ist nicht auf mehrere 
gleichzeitige ausgelegt.

Bei Deiner Frage kam auch mir direkt Widerstände in den Sinn, aber dann 
habe ich mal grob im Kopf gerechnet.

Frank O. schrieb:
> Die Werte so
> wählen, dass die leicht ausgewertet werden können, sodass du auch eben
> zwei oder mehrere Stellen sicher erkennen kannst.

Rechne mal vor, wie "leicht ausgewertet" geht. Mit 10 Kontakten in Reihe 
und Abstufung 1-2-4-8.. bekommt man am letzten 512. Jetzt sind Eins und 
Zehn aktiv, macht dann 513 - das bekommt man nicht mehr ausgewertet.

Oder wir machen alle 1..9 auf und unterscheiden gegen nur 10 offen?

von Frank O. (frank_o)


Lesenswert?

Hier gibt es sicher viele Leute die so etwas rechnerisch können. Ich 
müsste das händisch ausprobieren. Natürlich ist mir die Schwierigkeit 
mit "auf Kipp" bewusst, aber da kannst du dann vielleicht doch noch eine 
Leitung dazu nehmen.
In jedem Fall kannst du aber die Leitungen so reduzieren, wenn es am 
Ende auch nicht nur eine Leitung ist.

von Frank O. (frank_o)


Lesenswert?

Jetzt habe ich auch wieder gefunden wie was ich meinte.
Mit dem Maschenstromverfahren müsste das funktionieren. Damit könnte man 
doch sicher die Leitungen reduzieren.
Ist ja nur so eine Idee von mir. Also nicht gleich wieder mit Dreck 
schmeißen.

von Heinz R. (heijz)


Lesenswert?

ich frage mich zugegeben - wozu braucht es hierfür eine LED-Matrix?

Ja, weil Du es kannst, andere nicht

Aber frag mal Deine Oma ob sie das Display versteht?

Pro Tür eine LED die mal rot, mal grün ist wäre wesentlich 
aussagekräftiger

Sorry, just my 5 Cents

von Ralf X. (ralf0815)


Lesenswert?

Frank O. schrieb:
> Jetzt habe ich auch wieder gefunden wie was ich meinte.
> Mit dem Maschenstromverfahren müsste das funktionieren. Damit könnte man
> doch sicher die Leitungen reduzieren.
> Ist ja nur so eine Idee von mir. Also nicht gleich wieder mit Dreck
> schmeißen.

Es ist leicht, die Tastaturbefehle einer Tastatur nicht auszuwerten, 
wenn zwei oder mehr Kontakte gleichzeitig geschlossen sind, bzw. 
"melden".
In diesem Fall sehe ich null Chancen, hier mit Maschenberechnungen 
weiter zu kommen..
Aber wo 8 Leiter vorhanden sind und darin auch eine Spannungsversorgung, 
kann man allerhand unterbringen, wenn man mal an MUX u.ä denkt.

von Joachim B. (jar)


Lesenswert?

Dennis S. schrieb:
> 10 bis 12 Kontaktstellungen

gibt ja nur 2 mögliche Zustände offen oder geschlossen 1Bit *12

Diese 12 Bit müssen ja nicht wahnsinnig schnell übertragen werden, jeder 
Kontakt braucht ja Zeit zum öffnen und schliessen, also würde ich 
seriell übertragen, bei Bedarf noch mit JJJJ/MO/TA-HH/MM/SS also noch 
mal 21-22 Byte zu den 12 Byte von vorher, macht 25 Byte und mit dem 
19200 Bd geht das in 1,3ms

von .● Des|ntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

tut eine Unterscheidung ob das Fenster gekippt offen
oder ganz geöffnet wurde not?
Das bedeutet doch 2 Sensoren für ein Fenster zu benötigen.

Ein Fenster auf Kipp ist für den Einbrecher
im Grunde wie ein ganz geöffnetes.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.