DoorPiBoard: Unterschied zwischen den Versionen

Aus FHEMWiki
Zeile 12: Zeile 12:
=== Funktionen ===
=== Funktionen ===


Die Platine bietet alle auf ([[DoorPi_und_FHEM]]) beschriebenen Funktionen. Zusätzlich beinhaltet sie noch einen Briefkastenmelder. Ausserdem ist ein USB-Hub enthalten, durch welchen es möglich ist die Soundkarte und den Arduino anzusprechen. Der Vorteil hierbei ist, dass der Sketch aktualisiert werden kann ohne den Arduino ausbauen zu müssen.
Die Platine bietet alle in [[DoorPi_und_FHEM]] beschriebenen Funktionen. Herzlichen Dank an Prof. Dr. Peter A. Henning an dieser Stelle für dieses Projekt.
Es empfiehlt sich zuerst [[DoorPi_und_FHEM]] zu lesen, da im Folgenden vorausgesetzt wird, dass das Projekt bekannt ist.
 
Zusätzlich zum Original-Projekt beinhaltet die Platine noch einen Briefkastenmelder. Ausserdem ist ein USB-Hub enthalten, durch welchen es möglich ist die Soundkarte und den Arduino anzusprechen. Der Vorteil hierbei ist, dass der Sketch aktualisiert werden kann ohne den Arduino ausbauen zu müssen.
 
Der Grundgedanke dieser Unternehmung ist eine vollumfassende, saubere und möglichst einfach zu installierende Lösung bereitzustellen. Zu diesem Zweck besteht dieses Projekt aus zwei Platinen., welche nur durch vier Netzwerkkabel verbunden sind. Sämtliche Bauteile und Zusatzplatinen befinden sich auf einer kompakten Hauptplatine, welche sich an der Türstation selbst befindet. Sensoren und Aktoren, welche in der Frontplatte oder anderweitig extern benötigt werden, werden mittels Screwterminals angeschlossen. Um auf der RaspberryPi-Seite die ankommenden Netzwerkkabel an das Piface2 bzw. den RaspberryPi selbst anschliessen zu können gibt es eine entsprechende Adapterplatine.


=== Prinzipieller Aufbau ===
=== Prinzipieller Aufbau ===

Version vom 14. April 2017, 23:33 Uhr

DIESE SEITE BEFINDET SICH NOCH IM AUFBAU

Voll funktionaler Testaufbau
Leere Platinen Vorder- und Rückseite

Diese Seite beschreibt eine Platine welche maßgeblich das DoorPi-Projekt (DoorPi_und_FHEM) umsetzt.

Die Entwicklung der Platine fand, bzw. findet in diesem Forums-Thread statt. Fragen, Anregungen, Wünsche und Probleme bitte dort diskutieren bzw. melden.

Übersicht

Funktionen

Die Platine bietet alle in DoorPi_und_FHEM beschriebenen Funktionen. Herzlichen Dank an Prof. Dr. Peter A. Henning an dieser Stelle für dieses Projekt. Es empfiehlt sich zuerst DoorPi_und_FHEM zu lesen, da im Folgenden vorausgesetzt wird, dass das Projekt bekannt ist.

Zusätzlich zum Original-Projekt beinhaltet die Platine noch einen Briefkastenmelder. Ausserdem ist ein USB-Hub enthalten, durch welchen es möglich ist die Soundkarte und den Arduino anzusprechen. Der Vorteil hierbei ist, dass der Sketch aktualisiert werden kann ohne den Arduino ausbauen zu müssen.

Der Grundgedanke dieser Unternehmung ist eine vollumfassende, saubere und möglichst einfach zu installierende Lösung bereitzustellen. Zu diesem Zweck besteht dieses Projekt aus zwei Platinen., welche nur durch vier Netzwerkkabel verbunden sind. Sämtliche Bauteile und Zusatzplatinen befinden sich auf einer kompakten Hauptplatine, welche sich an der Türstation selbst befindet. Sensoren und Aktoren, welche in der Frontplatte oder anderweitig extern benötigt werden, werden mittels Screwterminals angeschlossen. Um auf der RaspberryPi-Seite die ankommenden Netzwerkkabel an das Piface2 bzw. den RaspberryPi selbst anschliessen zu können gibt es eine entsprechende Adapterplatine.

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.

Die Hauptplatine ist so gestaltet, dass sie hinter dem 3,2" Nextion-Display montiert werden kann. Zu diesem Zweck sind die Schraublöcher der Hauptplatine identisch zu der des Displays. Die Breite entspricht in etwa der des Display. Nur unten und oben steht die Platine ca. 10mm über.

Nachfolgend der prinzipiell Aufbau:

Übersicht der einzelnen Komponenten.


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 dediziert nur im Arduino zu lösen oder die Logik komplett nach DoorPi/FHEM auslagern.

Dedizierte Arduino-Lösung

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);
    }
  }

Schema und Layout

Teile

In diesem Abschnitt werden die Teile beschrieben, welche direkt für die Platinen benötigt werden.

Breakoutboards / fertige Platinen

Es ist wichtig, dass genau diese Komponenten verwendet werden, da die entsprechenden Footprints auf der Platine vorhanden sind.

Zusammenbau der Hauptplatine

Der Zusammenbau der Platine ist mit moderaten Lötkenntnissen zu bewerkstelligen.

Benötigt werden:

  • Ein Standardlotkolben (am Besten mit Temperaturregelung)
  • Lötzinn 0,3mm und 1,0mm
  • Flussmittelstift
  • Entlötlitze


Auflöten der SMD-Bauteile

Hauptplatine mit aufgelöteten SMD-Bauteilen.

Die SMD-Bauteile befinden sich auf der Unterseite. Das SMD-Bauteil jeweils mit der Pinzette festhalten und an einer Seite anlöten. Nachdem das Bauteil fixiert ist die andere Seite verlöten. Es empfiehlt sich hier das 0,3mm Lötzinn zu verwenden.

Auflöten der THT-Bauteile

Hauptplatine mit aufgelöteten THT-Bauteilen.

Die THT-Bauteile von oben einstecken und von unten verlöten.

In diesem Arbeitsschritt können auch die Sockelleisten für den Ardunio aufgelötet werden. Bitte nicht den Arduino direkt auflöten, da sonst dessen USB-Buchse nicht mehr zugänglich ist und durch die Screwterminals blockiert wird. Die Sockelleisten heben den Arduino über die Screwterminals, sodass ein eingesteckter Micro-USB-Stecker über diesen schwebt. Ein Nachteil in Bezug auf Zuverlässigkeit besteht meines Erachtens nicht, da die Sockelleisten den Arduino extrem fest fixieren und dieser nur mit viel Kraftaufwand herausgezogen werden kann.

Die FFC-Buchse kann je nach Ausrichtung entweder in CAM1 oder CAM2 eingelötet werden. Bei vertikalem Aufbau, also wenn sich die Kamera über oder unter dem Display befindet sollte CAM2 verwendet werden. Bei horizontalem Aufbau, also wenn sich die Kamera links oder rechts des Displays befindet sollte CAM1 verwendet werden. Beim Einstecken rastet die Buchse in den Löchern ein, das erleichtert das Einlöten. Da das RM hier relativ klein ist sollte umbedingt wieder das 0,3mm Lötzinn verwendet werden.

Ebenfalls muss nun die USB-Buchse (AU1) aufgelötet werden. Die Buchse schnappt in den grossen Löchern ein, wenn man sie einsteckt. Man fängt mit den Pins an und lötet zum Schluss die beiden GND fest. Hier kann ruhig ordentlich Lötzinn benutzt werden, da diese Verbindung nachher maßgeblich zur Stabilität der Buchse beiträgt.

Auflöten der Zusatzplatinen/Breakoutboards

NanoUSB

NanoHub, testweise auf 1,27mm Pinleisten gesteckt

WICHTIG: Der NanoHub muss VOR der Soundkarte aufgelötet werden.

Zuerst müssen kleine Drähte in die Pinlöcher für den NanoHub auf der Hauptplatine gelötet werden. Diese müssen auf der Oberseite gelötet werden und auf der Unterseite herausschauen.

Nachdem die Pins aufgelötet sind, kann der NanoHub von UNTEN aufgelötet werden. Da das RM des NanoHubs extrem klein ist empfiehlt es sich das 0,3mm Lötzinn zu verwenden. Der Lötkolben sollte dabei nur die eben eingelöteten Drähte berühren. Anderenfalls besteht die Chance, dass man den NanoHub zerstört. Ich habe gute Erfahrungen damit gemacht, die Drähte zu erhitzen und dann das Lötzinn direkt am Loch auf den Draht zu drücken. Da nur sehr wenig Zinn nötig ist, schliesst sich das Loch sofort und die Verbindung ist gemacht.

Soundkarte

Vorbereitete Soundkarte

Die Soundkarte wird zuerst aus Ihrem Gehäuse entfernt. Danach werden die beiden Audio-Buchsen und die USB-Buchse entfernt. Ich hab die beiden Audio-Buchsen relativ brutal mit einem Cuttermesser zerstört und die einzelnen Verbindungen zur Platine mit einem Saitenschneider abgetrennt. Zum entfernen der Buchsen-Pole sollte eine Entlötlitze verwendet werden. Es kann auch helfen zuerst frisches Lötzinn und Flussmittel aufzutragen.

Wer möchte kann noch die LEDs auslöten. Nötig ist es nicht, und die LEDs sind ganz praktisch bei der Fehlersuche.

Sind die Buchsen entfernt, müssen jeweils einzelne Pins eingelötet werden. Hierzu wird eine 2,54mm Pinleiste benötigt. Man trennt jeweils einen Pin ab. Insgesamt werden 14 Pins benötigt. 5 für den Ausgang, 5 für den Eingang und 4 für USB. Da der Abstand der mittleren USB-Pins kleiner als 2,54mm ist, habe ich dort die Abstandshalter entfernt. Bei allen anderen Pins nicht.

Die so vorbereitete Platine kann nun auf die Hautplatine gelötet werden. WICHTIG: Der NanoHub muss bereits aufgelötet sein!

Verstärker

Verstärker vor dem Einbau.

Der Verstärker wird mit einer Pinleiste, zwei Screwterminals und einer Jumperleiste geliefert. Alle drei Teile müssen zuerst auf die Verstärkerplatine gelötet werden. Danach kann die Verstärkerplatine auf die Hautpplatine gelötet werden. Da es sich um 2,54RM handelt ist dies relativ simpel.

Die Platine hat Löcher passend zu den Befestigungslöchern des Verstärkers. Diese könnte man mit Abstandshaltern aus Plastik oder Schrauben verwenden. Ich habe dies allerdings nicht getan, da die Pinleiste den Amp ausreichend fixiert.

Auflöten der Screwterminals

Es gibt prinzipiell nur 2er oder 3er. Die verkauften 4er, 5er oder mehr sind jeweils nur zusammengesteckte 2er und/oder 3er. Ich habe die Terminals vorher in entsprechender Länge zusammengesteckt und dann eingelötet. Es geht aber sicher auch einzeln.

Auflöten der RJ45-Buchsen

Hauptplatine mit stehenden RJ45-Buchsen.

Für die RJ45-Buchsen können je nach Einbausituation liegende oder stehende Buchsen verwendet werden. Die Footprints der ausgesuchten Buchsen sind in beiden Varianten identisch.

Aufstecken des Arduinos

Zum Schluss noch den Arduino aufstecken. Die USB-Buchse des Arduinos muss nach oben zeigen, also weg von den RJ45-Buchsen. Nun sollte noch der Ardunio mittels eines kurzen USB-Kabels mit AU1 verbunden werden. Es empfiehlt sich ein Kabel mit entsprechend abgewinkeltem USB-Steckern zu verwenden. Bei herkömmlichen Standard-Steckern werden mindestens 20cm benötigt.

Zusammenbau der Adapterplatine

Fertige Adapterplatine mit liegenden RJ45-Buchsen.


Die Adapterplatine ist verhältnismäßig einfach. Benötigt wird das gleiche Material wie für die Hauptplatine. Elektronische Bauteile sind hier keine vorhanden.

Auflöten der FFC-Buchse (THT)

Wie gehabt auflöten. Hier gibt es nur eine Variante CAM3.

Auflöten der Micro-USB-Breakoutboards

Es gibt zwei identische USB-Footprints mit unterschiedlichen Ausrichtungen. Es können beide verwendet werden, z.B. wenn der Sachverhalt ausgenutzt wird, dass man den RaspberryPi über die USB-Ausgänge mit Strom versorgen kann. In diesem Fall schliesst man das Netzteil an die Adapterplatine an und verbindet die Adapterplatine per USB mit dem RaspberryPi. Der RaspberryPi hat dann kein eigenes Netzteil. Das kann praktisch sein, falls man Adapterplatine und RaspberryPi in einem Gehäuse unterbringen möchte. Ist der RaspberryPi bereits mit Strom versorgt, kann man nur eine der beiden USB-Buchse auflöten.

Auflöten der Screwterminals

Wie gehabt auflöten.

Auflöten der RJ45-Buchsen

Wie gehabt auflöten. Auch hier ist es möglich stehende oder liegende Buchsen zu verwenden.

Verkabelung Hauptplatine

Beschriftung
auf der Platine
ZielgerätZielverwendungBeschreibung
LOUT-Lautsprecher LinksMinus
LOUT+Lautsprecher LinksPlus
ROUT+Lautsprecher RechtsMinus
ROUT-Lautsprecher RechtsPlus
FT-FototransistorMinus
FT+FototransistorPlus
PIRBewegungsmelder (PIR13)OpenCollector
VBewegungsmelder (PIR13)VCC
GBewegungsmelder (PIR13)GND
RNG (Ring) Klingelknopf2-poliger Kontakt
RL- (RingLED Minus)Beleuchtungs-LED des KlingelknopfesMinus
RL+ (RingLED Plus)Beleuchtungs-LED des KlingelknopfesPlus
GIR-LEDsGND
IR1-9 (InfraRed 1-9)IR-LEDs3x Plus für jeweils 3 IR-LEDs
SAB (Sabotage)Sabtage2-poliger Kontakt
GiButton LeserGND
1W (1Wire)iButton Leser1Wire-Daten
RD (Red)iButton LeserPlus für Rot
GR (Green)iButton LeserPlus für Grün
BL (Blue)iButton LeserPlus für Blau
ViButton LeserVCC
PL- (PostBoxLED Minus)Briefkastenstatus-LEDMinus
PL+ (PostBoxLED Plus)Briefkastenstatus-LEDPlus
TXNextion-DisplayTX
RXNextion-DisplayRX
VNextion-DisplayVCC
GNextion-DisplayGND
GMikrofon 1GND
MICMikrofon 1MIC
GMikrofon 2GND
MICMikrofon 2MIC
PBD (PostBoxDoor)Briefkastentür2-poliger Kontakt
PBT (PostBoxTrap)Briefkastenklappe2-poliger Kontakt
CAM1 oder CAM2Pi KameraFFC15-poliges Flachbandkabel
AU1ArduinoUSB
RASPI1Adapter-PlatineDPB1 (DoorPiBoard1)Standard-Netzwerkkabel
RASPI2Adapter-PlatineDPB2 (DoorPiBoard1)Standard-Netzwerkkabel
RASPI3Adapter-PlatineDPB3 (DoorPiBoard1)Standard-Netzwerkkabel
RASPI4Adapter-PlatineDPB4 (DoorPiBoard1)Standard-Netzwerkkabel

Verkabelung Adapterplatine

Beschriftung
auf der Platine
ZielgerätZielverwendungBeschreibung
PBL (PostBoxLED)PiFace2OUT 7
PBT (PostBoxTrap)PiFace2IN 3
IRI (InfraRedIn)PiFace2OUT 3
PBD (PostBoxDoor)PiFace2IN 2
MOV (Movement)PiFace2IN 6
SAB (Sabotage)PiFace2sIN 7
ASW (AudioSwitch)PiFace2OUT 5
DOP (DoorOpen)PiFace2IN 1
WID (WrongID)PiFace2IN 4
LST (LockState)PiFace2IN 5
HLK (HardLock)PiFace2OUT 4
DLO (DashLightOn)=PiFace2OUT 2
RNG (Ring)PiFace2IN 0
CAM3Raspberry PiCamera (FFC)15-poliges Flachbandkabel
USB1 oder USB2Raspberry PiUSB
DPB1HauptplatineRASPI1Standard-Netzwerkkabel
DPB2HauptplatineRASPI2Standard-Netzwerkkabel
DPB3HauptplatineRASPI3Standard-Netzwerkkabel
DPB4HauptplatineRASPI4Standard-Netzwerkkabel

Sammelbestellungen