DoorPiBoard: Unterschied zwischen den Versionen
Farion (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Farion (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 41: | Zeile 41: | ||
== Briefkastenmelder == | == Briefkastenmelder == | ||
Der Briefkastenmelder überwacht die Einwurfklappe und die Entnahmetür mit jeweils einem Kontakt. Der Status des Briefkastens kann über eine LED angezeigt werden. Die Semantik ist dabei: LED leuchtet wenn der Briefkasten gefüllt ist und noch nicht geleert wurde. Die beiden Kontakte werden sowohl an den Arduino (Einwurfklappe: A3,Entnahmetür: A2), als auch an das PiFace (Einwurfklappe: IN 3, Entnahmetür IN 2) gemeldet. Die LED kann über den Arduino gesteuert werden (D2). Die LED kann nicht direkt über das PiFace gesteuert werden, allerdings kann dies über OUT 7 an den Arduino (A4) gemeldet werden. | |||
Damit ist es möglich den Briefkastenmelder nur im Arduino zu lösen oder die Logik komplett nach DoorPi/FHEM auslagern. | |||
=== Lösung nur im Arduino === | |||
Dies ist die einfachste Lösung. Initial wird davon ausgegangen, dass der Briefkasten leer ist. Wird die Einwurfklappe geöffnet geht die LED an, wird die Entnahmetür geöffnet geht die LED aus. Der Status wird nur im Arduino gespeichert, nach Neustart des Arduinos wird der Status also wieder auf "leer" gesetzt. | |||
Basierend auf dem [[DoorPi_und_FHEM#Arduino_2|Original-Sketch]] sind dazu folgende Änderungen nötig: | |||
Definieren der Pins: | |||
<pre> | |||
// postbox | |||
const int PostBoxLED = 2; // LED for postbox | |||
const int PostBoxDoor = A2; // input for postbox door | |||
const int PostBoxTrap = A3; // input for postbox trap | |||
</pre> | |||
In setup(): | |||
<pre> | |||
pinMode(PostBoxLED, OUTPUT); | |||
pinMode(PostBoxTrap, INPUT_PULLUP); | |||
pinMode(PostBoxDoor, INPUT_PULLUP); | |||
digitalWrite(PostBoxLED, HIGH); | |||
</pre> | |||
In loop(void): | |||
<pre> | |||
// postbox | |||
if( digitalRead(PostBoxDoor) == LOW ){ | |||
digitalWrite(PostBoxLED, HIGH); | |||
}else { | |||
if( digitalRead(PostBoxTrap) == LOW ){ | |||
digitalWrite(PostBoxLED, LOW); | |||
} | |||
} | |||
</pre> | |||
== Zusammenbau == | == Zusammenbau == | ||
Zeile 60: | Zeile 98: | ||
<tr><td>'''RL+''' (RingLED Plus)</td><td>Beleuchtungs-LED des Klingelknopfes</td><td>Plus</td><td></td></tr> | <tr><td>'''RL+''' (RingLED Plus)</td><td>Beleuchtungs-LED des Klingelknopfes</td><td>Plus</td><td></td></tr> | ||
<tr><td>'''G'''</td><td>IR-LEDs</td><td>GND</td><td></td></tr> | <tr><td>'''G'''</td><td>IR-LEDs</td><td>GND</td><td></td></tr> | ||
<tr><td>'''IR1-9''' (InfraRed 1-9 | <tr><td>'''IR1-9''' (InfraRed 1-9)</td><td>IR-LEDs</td><td>3x Plus für jeweils 3 IR-LEDs</td><td></td></tr> | ||
<tr><td>'''SAB''' (Sabotage)</td><td>Sabtage</td><td>2-poliger Kontakt</td><td></td></tr> | <tr><td>'''SAB''' (Sabotage)</td><td>Sabtage</td><td>2-poliger Kontakt</td><td></td></tr> | ||
<tr><td>'''G'''</td><td>iButton Leser</td><td>GND</td><td></td></tr> | <tr><td>'''G'''</td><td>iButton Leser</td><td>GND</td><td></td></tr> |
Version vom 14. April 2017, 21:25 Uhr
DIESE SEITE BEFINDET SICH NOCH IM AUFBAU
Diese Seite beschreibt eine Platine welche maßgeblich das DoorPi-Projekt (DoorPi_und_FHEM)) umsetzt.
Übersicht
Funktionen
Die Platine bietet alle auf (DoorPi_und_FHEM)) beschriebenen Funktionen. Zusätzlich beinhaltet sie noch einen Briefkastenmelder.
Prinzipieller Aufbau
Ein Gesamtsystem besteht aus der Hauptplatine, der Adapterplatine, einem PiFace2, einem Raspberry Pi und diversen an die Hauptplatine angeschlossener Sensoren und Aktoren. Die Hauptplatine befindet sich direkt an der Türstation und beherbergt einen Arduino. Sie wird über 4 handelsübliche RJ45-Netzwerkkabel mit der Adapterplatine verbunden, welche sich von der Türstation räumlich getrennt befindet. Weitere Kabel sind nicht nötig. Dies könnte z.B. ein Schaltschrank sein. In unmittelbarer Nähe zur Adapterplatine befindet sich der RaspberryPi mit aufgesetztem PiFace2. Die 13 I/O Ports des PiFace2 werden mit der Adapterplatine verbunden. Der RaspberryPi selbst wird mit einem Micro-USB-Kabel und einem FFC-Kabel für die Kamera mit der Adapterplatine verbunden. Nachfolgend der prinzipiell Aufbau:
Anschlüsse der Hauptplatine
- Bewegungssensor
- Helligkeitssensor
- Touch-Display
- Kamera (FFC) (1x vertikal, 1x horizontal)
- IR-Beleuchtung
- Klingelknopf
- Beleuchtung für Klingelknopf
- Sabotagekontakt
- Kontakt für Briefkastenklappe
- Kontakt für Briefkastentür
- LED zur Anzeige des Briefkastenstatus
- 1Wire für einen iButton-Lesers
- RGB-Beleuchtung des iButton-Lesers
- 4xRJ45 zur Adapterplatine
- USB-B zum Arduino
- Ardunio-Sockel
Anschlüsse der Adapterplatine
- 4xRJ45 zur Hauptplatine
- 2x MicroUSB
- Kamera (FFC)
- 13-polige Schraub-Terminals zum Anschluss an ein PiFace2
Briefkastenmelder
Der Briefkastenmelder überwacht die Einwurfklappe und die Entnahmetür mit jeweils einem Kontakt. Der Status des Briefkastens kann über eine LED angezeigt werden. Die Semantik ist dabei: LED leuchtet wenn der Briefkasten gefüllt ist und noch nicht geleert wurde. Die beiden Kontakte werden sowohl an den Arduino (Einwurfklappe: A3,Entnahmetür: A2), als auch an das PiFace (Einwurfklappe: IN 3, Entnahmetür IN 2) gemeldet. Die LED kann über den Arduino gesteuert werden (D2). Die LED kann nicht direkt über das PiFace gesteuert werden, allerdings kann dies über OUT 7 an den Arduino (A4) gemeldet werden. Damit ist es möglich den Briefkastenmelder nur im Arduino zu lösen oder die Logik komplett nach DoorPi/FHEM auslagern.
Lösung nur im Arduino
Dies ist die einfachste Lösung. Initial wird davon ausgegangen, dass der Briefkasten leer ist. Wird die Einwurfklappe geöffnet geht die LED an, wird die Entnahmetür geöffnet geht die LED aus. Der Status wird nur im Arduino gespeichert, nach Neustart des Arduinos wird der Status also wieder auf "leer" gesetzt.
Basierend auf dem Original-Sketch sind dazu folgende Änderungen nötig:
Definieren der Pins:
// postbox const int PostBoxLED = 2; // LED for postbox const int PostBoxDoor = A2; // input for postbox door const int PostBoxTrap = A3; // input for postbox trap
In setup():
pinMode(PostBoxLED, OUTPUT); pinMode(PostBoxTrap, INPUT_PULLUP); pinMode(PostBoxDoor, INPUT_PULLUP); digitalWrite(PostBoxLED, HIGH);
In loop(void):
// postbox if( digitalRead(PostBoxDoor) == LOW ){ digitalWrite(PostBoxLED, HIGH); }else { if( digitalRead(PostBoxTrap) == LOW ){ digitalWrite(PostBoxLED, LOW); } }
Zusammenbau
Verkabelung Hauptplatine
Beschriftung auf der Platine | Zielgerät | Zielverwendung | Beschreibung |
---|---|---|---|
LOUT- | Lautsprecher Links | Minus | |
LOUT+ | Lautsprecher Links | Plus | |
ROUT+ | Lautsprecher Rechts | Minus | |
ROUT- | Lautsprecher Rechts | Plus | |
FT- | Fototransistor | Minus | |
FT+ | Fototransistor | Plus | |
PIR | Bewegungsmelder (PIR13) | OpenCollector | |
V | Bewegungsmelder (PIR13) | VCC | |
G | Bewegungsmelder (PIR13) | GND | |
RNG (Ring) | Klingelknopf | 2-poliger Kontakt | |
RL- (RingLED Minus) | Beleuchtungs-LED des Klingelknopfes | Minus | |
RL+ (RingLED Plus) | Beleuchtungs-LED des Klingelknopfes | Plus | |
G | IR-LEDs | GND | |
IR1-9 (InfraRed 1-9) | IR-LEDs | 3x Plus für jeweils 3 IR-LEDs | |
SAB (Sabotage) | Sabtage | 2-poliger Kontakt | |
G | iButton Leser | GND | |
1W (1Wire) | iButton Leser | 1Wire-Daten | |
RD (Red) | iButton Leser | Plus für Rot | |
GR (Green) | iButton Leser | Plus für Grün | |
BL (Blue) | iButton Leser | Plus für Blau | |
V | iButton Leser | VCC | |
PL- (PostBoxLED Minus) | Briefkastenstatus-LED | Minus | |
PL+ (PostBoxLED Plus) | Briefkastenstatus-LED | Plus | |
TX | Nextion-Display | TX | |
RX | Nextion-Display | RX | |
V | Nextion-Display | VCC | |
G | Nextion-Display | GND | |
G | Mikrofon 1 | GND | |
MIC | Mikrofon 1 | MIC | |
G | Mikrofon 2 | GND | |
MIC | Mikrofon 2 | MIC | |
PBD (PostBoxDoor) | Briefkastentür | 2-poliger Kontakt | |
PBT (PostBoxTrap) | Briefkastenklappe | 2-poliger Kontakt | |
CAM1 oder CAM2 | Pi Kamera | FFC | 15-poliges Flachbandkabel |
AU1 | Arduino | USB | |
RASPI1 | Adapter-Platine | DPB1 (DoorPiBoard1) | Standard-Netzwerkkabel |
RASPI2 | Adapter-Platine | DPB2 (DoorPiBoard1) | Standard-Netzwerkkabel |
RASPI3 | Adapter-Platine | DPB3 (DoorPiBoard1) | Standard-Netzwerkkabel |
RASPI4 | Adapter-Platine | DPB4 (DoorPiBoard1) | Standard-Netzwerkkabel |
Verkabelung Adapterplatine
Beschriftung auf der Platine | Zielgerät | Zielverwendung | Beschreibung |
---|---|---|---|
PBL (PostBoxLED) | PiFace2 | OUT 7 | |
PBT (PostBoxTrap) | PiFace2 | IN 3 | |
IRI (InfraRedIn) | PiFace2 | OUT 3 | |
PBD (PostBoxDoor) | PiFace2 | IN 2 | |
MOV (Movement) | PiFace2 | IN 6 | |
SAB (Sabotage) | PiFace2s | IN 7 | |
ASW (AudioSwitch) | PiFace2 | OUT 5 | |
DOP (DoorOpen) | PiFace2 | IN 1 | |
WID (WrongID) | PiFace2 | IN 4 | |
LST (LockState) | PiFace2 | IN 5 | |
HLK (HardLock) | PiFace2 | OUT 4 | |
DLO (DashLightOn)= | PiFace2 | OUT 2 | |
RNG (Ring) | PiFace2 | IN 0 | |
CAM3 | Raspberry Pi | Camera (FFC) | 15-poliges Flachbandkabel |
USB1 oder USB2 | Raspberry Pi | USB | |
DPB1 | Hauptplatine | RASPI1 | Standard-Netzwerkkabel |
DPB2 | Hauptplatine | RASPI2 | Standard-Netzwerkkabel |
DPB3 | Hauptplatine | RASPI3 | Standard-Netzwerkkabel |
DPB4 | Hauptplatine | RASPI4 | Standard-Netzwerkkabel |