Raspberry Pi Zero Garagentoröffner Hardware - Gunook
Raspberry Pi Zero Garagentoröffner Hardware - Gunook
Anonim
Raspberry Pi Zero Garagentoröffner Hardware
Raspberry Pi Zero Garagentoröffner Hardware

Eine der Inspirationen für dieses Projekt war die feine Anleitung bei Raspberry Pi 3 Garagentoröffner, zusammen mit mehreren anderen im Internet gefunden. Da ich kein erfahrener Elektroniker bin, habe ich eine Menge zusätzlicher Nachforschungen über Möglichkeiten der Schnittstelle mit dem Raspberry Pi angestellt und viel über die Bedeutung von Widerständen mit LED-Lampen und mit der gesamten GPIO-Verkabelung gelernt. Ich habe auch die Vorteile von Pull-Up- und Pull-Down-Hardwareschaltungen gegenüber der integrierten Pi-Funktionalität kennengelernt.

Da dieses Garagentorprojekt wirklich ein mehrteiliger Prozess ist, bestehend aus Pi-Hardware, Software und Installation mit Ihren Garagentoröffnern, dachte ich, ich würde mich zuerst auf die Pi-Hardware konzentrieren, da sie für jeden anderen Schritt benötigt wird.

Mein Ansatz ist es, sehr einfach zu sein und als Zusammenfassung des Gelernten zu fungieren, das ich gemacht habe, um die Hardware fertigzustellen. Es beginnt mit einigen Informationen, und dann bauen wir Schaltungen auf einem Steckbrett. Jeder Schritt wird unser Design und unser Wissen verfeinern, was im Aufbau einer dauerhaften Hardwarelösung gipfelt, um den Pi mit einem Relais und Reed-Sensoren zu verbinden.

Außerdem habe ich mich im Gegensatz zu einigen anderen Projekten für einen Raspberry Pi Zero W entschieden, den ich vor einiger Zeit im Angebot hatte, aber noch unbenutzt auf meinem Schreibtisch stand. Der Vorteil ist, dass wenn ich während des Prototyping eine der GPIO-Schaltungen beschädigt habe, es billig und einfach war, sie zu ersetzen und das Prototyping fortzusetzen. Der Nachteil ist, dass es nur einen ARMv6-Prozessor hat, sodass einige Dinge, wie Java, nicht verwendet werden können.

Die andere Sache, für die ich mich entschieden habe, war, meine eigene Zusatzplatine für die Schaltung zu erstellen. Sollte ich also meinen Pi ändern oder ersetzen müssen, sollte die Platine, solange die Pinbelegung gleich ist, leicht in den neuen Pi eingesteckt werden. Dies wird hoffentlich ein Rattennest der Verkabelung minimieren.

Meine Annahmen sind:

  • Sie können bequem löten
  • Sie wissen bereits, wie Sie grundlegende Terminalbefehle auf dem Raspberry Pi verwenden
  • Sie verwenden Raspbian Buster oder neuer.
  • Sie haben eine Schnittstelle zur Pi-Befehlszeile; entweder mit einem dedizierten Monitor, Tastatur usw. UND/ODER mit SSH.
  • Sie kennen das Grundkonzept des elektrischen Schaltungsentwurfs; Sie kennen beispielsweise den Unterschied zwischen Strom und Masse und verstehen das Konzept eines Kurzschlusses. Wenn Sie eine neue Steckdose in Ihrem Zuhause einrichten können, sollten Sie in der Lage sein, mitzumachen.

Lieferungen

Je nachdem, wie engagiert Sie sich für dieses Projekt einsetzen, können Sie mit nur den Dingen beginnen, die bei jedem Schritt benötigt werden, und von dort aus fortfahren. Viele dieser Teile sind in Ihrem örtlichen Elektronik- oder Baumarkt erhältlich, aber ich habe Amazon-Links eingefügt, um die Beschreibungen zu verbessern.

  • MakerSpot RPi Raspberry Pi Zero W Protoboard (um den endgültigen HAT für den Pi zu machen)
  • 2-Kanal-DC-5-V-Relaismodul (erhalten Sie einen 1-Kanal, wenn Sie eine Tür haben, 2 für 2 Türen usw.)
  • Obenliegender Türschalter, normalerweise offen (NEIN) (Wenn Sie zu diesem Zeitpunkt nur Prototypen erstellen und einige billige Reed-Schalter verwenden möchten, um loszulegen, ist das in Ordnung)
  • Electronic Fun Kit Bundle (diese enthielt alle Widerstände, die ich brauchte, sowie ein Steckbrett und ein Netzteil, um Prototypen zu testen und zu testen und zu lernen, bevor ich die permanente Platine machte). Wenn Sie all dies bereits haben, stellen Sie sicher, dass Sie ein paar 10K-, 1K- und 330-Ohm-Widerstände zur Hand haben.
  • Steckbrett-Überbrückungsdrähte (jeder wird tun)
  • Lötkolben mit kleiner Spitze
  • Kolophoniumkernlot
  • Lötspitzenreiniger
  • Ersatz 9V Netzteil (um das Steckbrett mit Strom zu versorgen)
  • Günstige Prototyping-Boards für Lötübungen (optional)
  • Funktionierender Raspberry Pi Zero oder Pi deiner Wahl
  • Header-Pins für den Raspberry Pi (falls Ihrer nicht bereits den Header hat)
  • Stacking-Header zur Verwendung auf dem Protoboard-HAT.
  • Kleine Spitzzange
  • Schraubendreher-Set für Juweliere
  • Kleiner Seitenschneider (zum Schneiden von Drähten nach dem Löten)
  • Pinzette
  • Etwas kleiner Draht (ich bevorzuge Vollkern) für die Verwendung auf dem Protoboard
  • Etwas Silikon (wenn Sie statt der im Kit-Bundle mitgelieferten 1,8-mm-SMD-LEDs verwenden möchten)
  • Ich fand, dass eine Lupenlampe super hilfreich war, um die kleinen Lötarbeiten zu sehen

Schritt 1: Einführung in den Raspberry Pi GPIO

Die Hauptschnittstelle, die wir mit dem Raspberry Pi verwenden werden, ist der GPIO (General Purpose Input/Output).

Finden Sie hier das richtige Pin-Diagramm für Ihren Pi. Dieses instructable konzentriert sich auf das Pi Zero W v1.1.

Wir werden nur die grünen GPIO-Pins verwenden und die SDA-, SCL-, MOSI-, MISO- usw. Pins vermeiden. (Ich entdeckte, dass einige GPIO-Pins spezielle Zwecke haben, einer der Vorteile des Prototyping auf einem Steckbrett, also blieb ich bei den GPIO-Pins 17 (Pin #11), 27 (Pin #13) und 12 (#32) wie sie waren in guten Positionen für mein Steckbrett.

GPIO-Pins sind so konzipiert, dass sie als digitale (binäre) Schalter arbeiten; sie existieren logischerweise als einer von zwei Zuständen: 1 oder Null. Diese Zustände hängen davon ab, ob der Pin Spannung oberhalb eines bestimmten Schwellenwerts (1) liefert oder empfängt oder Spannung unterhalb eines bestimmten Schwellenwerts liefert oder empfängt. (Wir werden später über die Schwellenwerte sprechen.)

Es ist wichtig zu beachten, dass der Raspberry Pi sowohl 5 V als auch 3,3 V (3 V3) liefern kann, GPIO-Pins jedoch mit bis zu 3,3 V arbeiten. Mehr als das und Sie beschädigen den GPIO und möglicherweise den gesamten Controller. (Deshalb erstellen wir Prototypen auf einem Steckbrett und verwenden den billigsten Pi, der möglich ist!)

Der Zustand der Pins kann entweder durch Software (Ausgang) oder durch andere Geräte manipuliert werden, die den Zustand einspeisen (Eingang).

Lassen Sie uns dies mit einigen grundlegenden SYSFS-Befehlen versuchen. Ich bin mir nicht sicher, ob dies WiringPi erfordert, aber wenn Sie auf Probleme stoßen, möchten Sie es möglicherweise installieren, wenn Sie das minimale Raspbian-Image verwenden.

Geben wir uns zunächst Zugriff auf GPIO 17:

sudo echo "17" > /sys/class/gpio/export

Lassen Sie uns nun den Wert des GPIO überprüfen:

sudo cat /sys/class/gpio/gpio17/value

Der Wert sollte Null sein.

Zu diesem Zeitpunkt weiß der GPIO nicht, ob es sich um eine Eingabe oder Ausgabe handelt. Wenn Sie versuchen, den GPIO-Wert zu manipulieren, erhalten Sie daher "Schreibfehler: Operation nicht zulässig". Sagen wir einfach dem Pin, der ausgegeben wird:

sudo echo "out" > /sys/class/gpio/gpio17/direction

Und jetzt setzen Sie den Wert auf 1:

sudo echo "1" > /sys/class/gpio/gpio17/value

Überprüfen Sie den Wert erneut, um zu sehen … und der Wert sollte 1 sein.

Herzlichen Glückwunsch, Sie haben gerade ein Ausgabe-GPIO erstellt und den Zustand geändert!

Nun, es gibt ein wenig mehr dazu, aber lassen Sie uns zuerst noch ein paar Dinge lernen.

Schritt 2: Widerstände verstehen

Sie können also Widerstände auf Wikipedia nachschlagen, aber was bedeuten sie für uns? Sie schützen in erster Linie unsere Komponenten.

Erinnern Sie sich, als wir über die GPIOs sprachen, dass sie mit bis zu 3,3 V arbeiten? Das heißt, wenn Sie einem GPIO-Pin mehr geben, können Sie ihn braten. Warum ist das wichtig? Manchmal gibt es in jedem Stromkreis kleine Überspannungen, und wenn das Maximum 3,3 V beträgt, kann jeder kleine Schluckauf Probleme verursachen. Der Betrieb bei maximaler Spannung ist ein riskantes Unterfangen.

Dies gilt insbesondere für LEDs. Eine LED zieht so viel Strom wie möglich. Letztendlich wird die LED durchbrennen, aber die erhebliche Stromaufnahme kann die gesamte verfügbare Leistung in einem Stromkreis verbrauchen und zu Fehlfunktionen führen.

Zum Beispiel: Was würde passieren, wenn Sie eine Gabel in beide Zinken einer Steckdose stecken? Es gibt wenig bis keinen Widerstand, und Sie werden den Leistungsschalter durchbrennen. (Und sich dabei wahrscheinlich selbst verletzen.) Warum macht der Toaster das nicht? Weil seine Heizelemente einen Widerstand bieten und als solche nicht die gesamte Last des Stromkreises ziehen.

Wie können wir also verhindern, dass dies einer LED passiert? Durch Begrenzung der Strommenge, die zum Ansteuern der LED mit einem Widerstand verwendet wird.

Aber welche Widerstandsgröße? Ja, ich habe ein paar Webartikel gelesen und mich schließlich für einen 330Ω Widerstand für 3,3V mit einer LED entschieden. Sie können alle ihre Berechnungen lesen und selbst herausfinden, aber ich habe ein paar auf einem Steckbrett getestet und 330 funktionierte einwandfrei. Eine Referenz, die ich überprüft habe, war in den Raspberry Pi-Foren, aber eine Google-Suche wird viele weitere entdecken.

Ebenso müssen die Pi GPIO-Pins vor Überspannung geschützt werden. Erinnern Sie sich, wie ich sagte, dass sie BIS ZU 3,3 V verwenden? Naja, ein bisschen weniger schadet nicht. Die meisten Projekte verwenden 1KΩ-Widerstände und ich habe dasselbe getan. Auch hier können Sie dies selbst berechnen, aber dies ist eine sehr beliebte Wahl. Auch hier liefern die Raspberry-Pi-Foren einige Informationen.

Wenn Sie dies nicht vollständig verstehen, lesen Sie weiter. Oder folgen Sie einfach den Anweisungen. Was auch immer für Sie funktioniert.

Viele Widerstände sind in der Verpackung beschriftet, aber wie können Sie sie nach dem Entfernen unterscheiden? Die kleinen farbigen Streifen auf dem Widerstand können es Ihnen sagen.

Als nächstes verdrahten wir eine einfache LED auf einem Steckbrett mit Strom, um die Dinge zu starten.

Schritt 3: Verdrahtung einer LED

Verkabelung einer LED
Verkabelung einer LED

Der erste Schritt besteht darin, eine LED auf dem Steckbrett zu verdrahten. Sobald dies sicher funktioniert, verbinden wir es mit dem Raspberry Pi und steuern es über den GPIO-Pin.

Hoffentlich wurde Ihr Steckbrett mit einer Stromquelle für 3,3 V geliefert. Wenn nicht, können Sie alles verkabeln und direkt an den Pi anschließen.

Suchen Sie eine LED und verdrahten Sie sie wie gezeigt mit einem 330Ω-Widerstand mit dem Steckbrett. Der längere Schenkel der LED ist die Anode, der kürzere Schenkel ist die Kathode. Die Anode wird an die 3,3-V-Stromversorgung angeschlossen, während die Kathode wieder an Masse angeschlossen wird. Der Widerstand kann entweder vor der LED liegen; es tut nichts zur Sache. Standard-Kabelfarben sind:

  • Rot = 5V
  • Orange = 3,3 V
  • Schwarz = Masse

Sobald Sie das Steckbrett verkabelt und mit Strom versorgt haben, sollte die LED aufleuchten. Fahren Sie nicht fort, es sei denn, dies funktioniert.

Schritt 4: Anschließen der LED an den GPIO

Anschließen der LED an den GPIO
Anschließen der LED an den GPIO

Jetzt haben wir also eine funktionierende LED mit einem Widerstand. Jetzt ist es an der Zeit, diese LED mit dem Raspberry Pi zu verbinden. Unser Ziel ist es, einen Ausgangs-GPIO zu erstellen und diesen GPIO mit der LED zu verbinden, sodass die LED aufleuchtet, wenn wir den GPIO AKTIVIEREN. Umgekehrt, wenn wir den GPIO DEAKTIVIEREN, erlischt die LED. (Dies wird später als der Schaltkreis verwendet, der den Knopf zum Öffnen des Garagentors "drückt".)

Trennen Sie die Stromversorgung vom Steckbrett und schließen Sie den Pi wie gezeigt an. (Am besten tun Sie dies auch, während der Pi ausgeschaltet ist.) Wir haben die 3,3-V-Versorgung von GPIO 17 und die Masse mit einem der Massestifte verbunden.

Starten Sie nun den Pi und die LED sollte aus sein. Führen Sie die gleichen Befehle wie zuvor aus, um den GPIO-Pin einzurichten und den Wert auszugeben:

sudo echo "17" > /sys/class/gpio/export

sudo echo "out" > /sys/class/gpio/gpio17/direction sudo cat /sys/class/gpio/gpio17/value

Der Wert sollte null sein.

Lassen Sie uns nun den GPIO aktivieren:

sudo echo "1" > /sys/class/gpio/gpio17/value

Dies sollte die LED einschalten. Um die LED auszuschalten, deaktivieren Sie einfach den GPIO wie folgt:

sudo echo "0" > /sys/class/gpio/gpio17/value

Eines der Dinge, die passieren können, ist, dass Sie bei genügend Interferenzen oder Ein-/Aus-Zyklen der LED feststellen können, dass die LED leicht leuchtet. Dafür gibt es einen Grund, und darüber werden wir in einem zukünftigen Schritt sprechen.

Schritt 5: Verwenden eines Relais zum Ansteuern der LED

Verwenden eines Relais zum Ansteuern der LED
Verwenden eines Relais zum Ansteuern der LED

Wie im vorherigen Schritt erwähnt, ist die LED ein Ersatz für den Garagentor-"Knopf". Während der GPIO unsere LED mit Strom versorgen kann, kann er jedoch unseren Garagentorknopf nicht "drücken". Ein Tastendruck verbindet im Wesentlichen nur die beiden Tastenanschlüsse und führt tatsächlich einen Tastendruck durch. Was Sie für diese "Presse" benötigen, ist ein Relais.

Ein Relais ist nichts anderes als ein Schalter, der von etwas angetrieben wird. In diesem Fall kann unser Raspberry Pi dem Relais sagen, dass es den Garagentorknopf "drücken" soll. Bei unserem Prototyp teilt der Raspberry Pi dem Relais mit, dass es die LED einschalten soll … nur damit wir unsere Schaltung testen können.

Was wir über unser Relais wissen müssen:

  • Das Relais arbeitet mit 5V. Diese Leistung dient nur zum Betrieb des Relais und wird in keinem anderen Teil des Stromkreises verwendet.
  • Wir wollen unser Relais als "normally open" verdrahten. Das bedeutet, dass das Relais geöffnet bleibt (nicht die beiden Drähte verbinden oder "den Knopf drücken", bis es aktiviert wird.
  • Dieses spezielle Relais wird aktiviert, wenn der GPIO den 3,3-V-Anschluss des Relais mit Nullstrom versorgt. Das scheint tatsächlich rückständig zu sein. Wenn 3,3 V anliegen, fällt das Relais ab. Bleiben Sie bei diesem Projekt bei uns und Sie werden sehen, wie das funktioniert.
  • Die beiden Relaisklemmenanschlüsse sind vollständig vom Raspberry Pi getrennt. Dies bedeutet, dass Sie einen Draht mit jedem Nennstrom schalten können, da er seinen Strom von einer anderen Stromquelle erhält. Der einfache winzige Raspberry Pi mit 3,3V und 5V könnte tatsächlich ein Relais betreiben, das viel größere Spannungen steuert. So kann ein winziger kleiner Knopf auf Ihrem Armaturenbrett Ihre Sitzheizung mit großer Stromstärke steuern.

Also lasst uns anfangen.

Schließen Sie zuerst das externe Netzteil für Ihr Steckbrett wieder an (aber ausgeschaltet). Dieser Strom wird die LED-Schaltung betreiben, während der Raspberry Pi das Relais steuert.

Erstellen Sie als Nächstes eine Unterbrechung in der 3,3-V-Leitung, die die LED mit Strom versorgt. (Bei Schaltern und Relais wollen wir immer das "Heiße", nicht die Masse schalten.) Diese sind im Diagramm orange und blau gekennzeichnet.

Verbinden Sie den Raspberry Pi wie gezeigt mit 5 V, die das Relais mit Strom versorgen, 3,3 V als Schalter und die Masse, die zum Raspberry Pi zurückkehrt. In diesem Beispiel habe ich die 3,3V an GPIO 17 angeschlossen. Ich empfehle, wie gezeigt einen 1KΩ-Widerstand an das GPIO-Kabel anzuschließen, um den GPIO vor Problemen zu schützen. (Dies wurde im Schritt Widerstände erwähnt.)

Schalten Sie das Steckbrett ein und schalten Sie jetzt Ihren Pi ein. Die LED sollte leuchten.

Führen Sie nun die folgenden Befehle auf dem Pi aus:

sudo echo "17" > /sys/class/gpio/export

sudo echo "out" > /sys/class/gpio/gpio17/direction sudo cat /sys/class/gpio/gpio17/value

Der Wert sollte Null sein.

Lassen Sie uns nun den GPIO aktivieren:

sudo echo "1" > /sys/class/gpio/gpio17/value

Dies sollte die LED ausschalten.

Schritt 6: Hinzufügen eines Pull-Up-Widerstands

Hinzufügen eines Pull-Up-Widerstands
Hinzufügen eines Pull-Up-Widerstands

An diesem Punkt sollten alle Ihre Sachen funktionieren. Aber eine Sache haben wir nicht über GPIOs diskutiert, und das ist die "schwebende" Spannung, die basierend auf dem zuvor erwähnten Schwellenwert möglich ist.

Während GPIOs im Allgemeinen zwei logische Zustände (1 und Null) haben, bestimmt es diese Zustände basierend darauf, ob die Spannung über oder unter dem Spannungsschwellenwert liegt, wie wir im GPIO-Abschnitt erwähnt haben. Das Problem bei den meisten GPIOs ist jedoch die Möglichkeit einer "schwebenden" Spannung; beim Raspberry Pi irgendwo zwischen null und 3,3 V. Dies kann durch Interferenzen oder durch Spannungsanstieg/-abfall in einem Stromkreis auftreten.

Wir wollen keine Situation, in der unser Garagentor-Tastenrelais nur von der schwebenden Spannung aktiviert wird. Tatsächlich möchten wir, dass es nur aktiviert wird, wenn wir es dazu sagen.

Situationen wie diese werden durch die Verwendung von Pull-Up- und Pull-Down-Widerständen gelöst, um eine bestimmte Spannung zu erzwingen und die schwebende Spannung zu vermeiden. In unserem Fall möchten wir sicherstellen, dass Spannung zugeführt wird, um zu verhindern, dass das Relais aktiviert wird. Wir brauchen also einen Pull-up-Widerstand, um die Spannung über den Schwellenwert zu bringen. (Schwellenwerte sind komische Dinge… Ich habe versucht, darüber zu lesen und zu sehen, ob sie gut definiert sind, und habe viele Informationen erhalten, die mir über den Kopf gewachsen sind, und einige, die zu einfach schienen. Es genügt zu sagen, dass ich das mit einem Multimeter sehen konnte die Spannung war niedriger als 3,3 V, aber da alles so funktionierte, wie ich es prototypiert habe, bin ich einfach weitergegangen. Ihre Laufleistung kann variieren, und deshalb haben wir dies vor dem Löten unseres Endprodukts mit einem Steckbrett versehen.)

Sicher, der Raspberry Pi hat sowohl interne Pullup- als auch Pulldown-Widerstände, die Sie im Code oder beim Booten einstellen können. Es ist jedoch sehr störanfällig. Obwohl es möglich ist, sie zu verwenden, da wir bereits mit Widerständen in einer Schaltung arbeiten, kann es sich lohnen, die externen zu verwenden.

Noch wichtiger ist, dass dies den Pull-up erzeugt und genügend Spannung hinzufügt, damit der GPIO-Pin-Zustand standardmäßig auf 1 gesetzt wird, bevor der Pi initialisiert wird. Erinnern Sie sich, wie unser Relais die LED aktiviert hat, als wir das Pi zum ersten Mal initialisiert haben, bis wir es ausgeschaltet haben? Die Verwendung des Pull-Ups verhindert, dass das Relais beim Start aktiviert wird, da der 3,3-V-Eingang des Relais gleichzeitig Spannung empfängt, während der 5-V-Eingang Spannung empfängt. Wir könnten dies auch in der Pi-Konfiguration tun, wenn wir möchten, aber da wir sowieso mit Widerständen verdrahten, scheint es weniger anfällig für Betriebssystem-Updates und -Distributionen zu sein.

Verschiedene Konfigurationen benötigen möglicherweise unterschiedliche Widerstände, aber ein 10kΩ-Widerstand funktionierte mit dem Relais, das ich hatte. Die LED an meinem Relais war beim Hochfahren sehr schwach, aber der Pull-up lieferte genug Spannung, um eine Aktivierung des Relais zu verhindern.

Fügen wir unserer Schaltung einen Pull-up-Widerstand hinzu. Im Steckbrettdiagramm habe ich einen 10kΩ-Widerstand zwischen dem 3,3-V-Eingang des Relais und einer 3,3-V-Quelle hinzugefügt.

Jetzt haben wir eine Schaltung, die zum "Drücken" des Garagentorknopfes geeignet ist; Das Ersetzen der LED und des 330Ω-Widerstands durch die tatsächlichen Tastendrähte sollte einfach sein.

Schritt 7: Reedschaltersensor

Reedschaltersensor
Reedschaltersensor

So toll, wir wissen, wie unsere Schaltung aussieht, um den Garagentoröffner zu aktivieren. Aber wäre es nicht schön zu wissen, ob das Garagentor geschlossen oder geöffnet ist? Dazu benötigen Sie mindestens einen Reed-Schalter. Einige Projekte empfehlen zwei, aber beide werden das gleiche Schaltungsdesign verwenden.

Wir verwenden eine "normally open" (NO) Reedschalterkonfiguration. Das bedeutet, dass unser Stromkreis geöffnet ist, bis sich der Reedschalter in der Nähe des Magneten befindet, wodurch der Stromkreis geschlossen wird und Strom fließen kann.

Die Hauptunterschiede zwischen dem Sensor-Setup und dem Relais-Setup sind:

  • Das an den Sensor angeschlossene GPIO wird Strom erkennen, also wird es ein Eingangs-GPIO sein (während das Relais einen Ausgangs-GPIO verwendet, der Spannung liefert).
  • Da der Standardzustand normalerweise offen ist, bedeutet dies, dass unsere Schaltung nicht aktiv ist. Daher sollte der GPIO-Zustand 0 sein. Im Gegensatz zum Konzept des Pull-up-Widerstands in der Relaisschaltung möchten wir sicherstellen, dass unsere Spannung unter dem Schwellenwert liegt, wenn der Stromkreis geöffnet ist. Dies erfordert einen Pull-Down-Widerstand. Dies ist im Grunde das gleiche wie das Pull-Up, aber mit Masse statt mit Strom verbunden.

Ähnlich wie bei der Relaisschaltung werden wir die Dinge auf einem Steckbrett verdrahten, bevor wir sie an den Pi anschließen.

Lassen Sie uns unser mit Strom versorgtes Steckbrett verwenden und eine LED, einen 330-Ω-Widerstand und ein Erdungskabel verdrahten. Schließen Sie dann 3,3 V an eine Seite des Reedschalters und einen Jumper von der anderen Seite des Reedschalters zur LED an. (Wenn Sie einen Reed-Schalter haben, der NO und NC unterstützt, verwenden Sie die NO-Position.) Bewegen Sie den Magneten vom Reed-Schalter weg und schalten Sie das Steckbrett ein. Die LED sollte aus bleiben. Bewegen Sie den Magneten in Richtung des Reed-Schalters und die LED sollte aufleuchten. Wenn es das Gegenteil tut, haben Sie es für NC verdrahtet (normalerweise geschlossen)

Schritt 8: Anschließen des Reed-Schalters an den Pi

Anschließen des Reed-Schalters an den Pi
Anschließen des Reed-Schalters an den Pi

Jetzt, da die Schaltung ohne Pi funktioniert, können wir die Stromversorgung vom Steckbrett trennen und den Pi anschließen.

Wir werden GPIO17 wieder verwenden, weil wir bereits wissen, wo es ist.

Ähnlich wie bei der Relaisschaltung werden wir den GPIO-Pin mit einem 1KΩ-Widerstand schützen; Wir werden jedoch einen 10kΩ-Widerstand gegen Masse verwenden, um einen Pulldown zu erzeugen.

Sobald wir alles verdrahtet haben, bewegen wir den Magneten vom Reed-Schalter weg, booten den P, i und gehen zu einer Befehlszeile und initialisieren den GPIO, wobei wir beachten, dass wir diesmal einen Eingangs-GPIO erstellen:

sudo echo "17" > /sys/class/gpio/export

sudo echo "in" > /sys/class/gpio/gpio17/direction sudo cat /sys/class/gpio/gpio17/value

Der Wert sollte Null sein. Bewegen Sie den Magneten zum Reed-Schalter. Das LED-Licht sollte aufleuchten und der Wert ist 1.

Voila! Wir haben unseren Reedschalter mit dem Pi verdrahtet!

Schritt 9: Erstellen einer dauerhaften Lösung auf einer Prototyping-Platine

Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board
Erstellen einer dauerhaften Lösung auf einem Prototyping-Board

Da wir nun wissen, wie unsere Schaltungen aussehen sollen, ist es an der Zeit, eine permanente Version auf einem Prototyping-Board zu löten. Da ich einen Pi Zero W verwende, habe ich mir kleine Protoboards besorgt.

Ich dachte, es wäre gut, das Zero-Format zu verwenden und ein oder mehrere Boards stapeln zu können, ein Zusatzmodul, das Raspberry Pi HAT (Hardware Attached on Top) nennt. Nun, technisch gesehen, da es keine Art von EEPROM hat und sich nicht selbst registriert, ist es kein HAT, aber ich muss es etwas nennen. Aber das Format lässt sich gut montieren und eliminiert ein Rattennest an Verkabelung, das ist also schön.

Die Herausforderung besteht darin, dass die Proto-Boards ziemlich klein sind, sodass Sie nicht viel darauf passen können. Außerdem ist keines der Löcher wie bei den größeren Proto-Boards in Reihen verbunden. Auch wenn dies unbequem erscheinen mag, ist es tatsächlich ein Lebensretter.

Ich dachte, ich könnte für jedes Garagentor, das ich steuern wollte, einen HAT erstellen. Auf diese Weise können Sie dieses Projekt nach Ihren Bedürfnissen erweitern.

Auf der Proto-Platine stellte ich fest, dass gerade genug Platz war, um drei Schaltungen zu erstellen:

  1. Relaisschaltung
  2. Sensorkreis
  3. zweiter Sensorkreis

Das ist ziemlich gut für jedes Garagentorprojekt da draußen.

Also habe ich GPIO17 und 27 für die Sensoren und GPIO12 für das Relais verwendet. Das wirklich Schöne an diesem Proto-Board ist, dass Sie den GPIO verdrahten können, ohne den Header zu berühren. Aber ja, Sie müssen zusätzlich zu Ihren Widerständen (und optional LEDs) einen Stapelkopf löten.

Ich habe die Schaltungen, die wir auf der Platine prototypierten, ziemlich neu erstellt. Sie können sagen, dass mein Löten nicht perfekt ist, aber es funktioniert immer noch. (Die nächsten Boards werden besser sein, seit ich geübt habe.) Ich habe einen Aoyue 469 und nur ein Haar über der Einstellung 4 war die beste Temperatur basierend auf den Empfehlungen zum Löten des GPIO-Headers.

Ich habe die äußeren verbundenen Reihen für Masse und die innere für 3.3V verwendet. Und ich habe den Widerstandsdraht als Brücke verwendet, da wir keine Reihen verbunden hatten. Der Rest ist diagonal und seitlich, weil ich so am besten auf das Brett passen konnte.

Von L-R (mit Blick auf die Vorderseite, die Widerstandsseite) sind die von mir hinzugefügten Ausgangspins für den Sensor-GPIO-Draht, den zweiten Sensor-GPIO-Draht und den Relais-GPIO-Draht. Anstatt direkt mit dem GPIO zu verdrahten, was wir vom Header aus tun könnten, werden diese Pins mit allen unseren Widerständen verbunden und bei den Sensoren habe ich eine microLED hinzugefügt. (Beachten Sie, dass sich die LED in einer völlig separaten Schleife befindet, sodass die Schaltung auch dann funktioniert, wenn sie durchbrennt.)

Angehängt ist eine Fritzing-Datei, aber da Instructables Probleme mit Datei-Uploads hat, musste ich ihr eine falsche Erweiterung von "txt" geben, um sie einzubetten.

Schritt 10: Referenzen

Raspberry Pi Garagentoröffner-Projekt (die Inspiration)

Anleitung für Idioten zu einem Raspberry Pi Garagentoröffner

iPhone oder Android Garagentoröffner

Soll ich einen Widerstand verwenden oder nicht?

Verwenden von Pullup- und Pulldown-Widerständen auf dem Raspberry Pi

SSH einrichten

Raspberry Pi-Pin-Diagramme.

SYSFS-Befehle

VerkabelungPi

Widerstände und LEDs

Schutz (sic) GPIO-Pins

Widerstands-Farbcode-Rechner und -Tabelle

Pull-Up- und Pull-Down-Widerstände

GPIO-Spannungsschwellen

GPIO-Eingangsspannungspegel

GPIO-Steuerung in config.txt

GPIO-Pull-Up-Widerstand (sic)

Warum brauchen wir externe Pull-Widerstände, wenn Mikrocontroller interne Pull-Widerstände haben?

Was ist ein Raspberry Pi HAT?

So löten Sie den Raspberry Pi Zero W GPIO-Anschluss