Home > Technologie > Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Advertisement

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Update 1/14/2014: Vielen Dank an alle, die für dieses Projekt im Hardware Hacking Contest gestimmt haben! Ich freue mich auf meinen neuen Kugelschreiber.

Update 31.12.2013: Auf der Suche nach einer erweiterten Version dieses Projekts? Schauen Sie sich meine neue, mehrsprachige, sprachgesteuerte Version an.

Wir alle wissen, Sie könnten einfach gehen KAUFEN eine Steckdose Timer anstelle der eigenen Gebäude, aber wo ist der Spaß, dass? Dieses Projekt zeigt Ihnen, wie Sie einen $ 10 drahtlosen Steckdosenadapter hacken, so dass Sie ihn mit einem Himbeer-Pi und einem einfachen Python-Skript mit der Motivation steuern können, Weihnachtslichter zu steuern - aber es funktioniert für jedes Gerät, das Sie an eine Steckdose anschließen können .

Ich sollte sofort erkennen, dass dies keineswegs das erste (noch das letzte) Projekt ist, das die Hausautomation diskutiert oder elektrische Steckdosen mit einem Himbeer-Pi kontrolliert. Mein Ziel ist es , dies ist ein sehr einsteigerfreundliches Projekt zu sein - der Code wird lokal auf dem Raspberry Pi (keine Internet - Kontrolle) ausführen, wird die Schaltung nur eine Steckdose zu steuern, und Sie werden keine Hochspannungsleitungen berühren. Wenn Sie bereit sind, etwas Fortgeschrittenes anzupacken, schauen Sie sich diese Instructables auf Web-fähigen Mehrfachsteckdose aus Hacking ein Multi-Kanal-Fernbedienung oder den Bau Ihrer eigenen Steckdosenleiste. Dieses Projekt wird immer noch die Verwendung eines Multimeters benötigen und einem Lötkolben, so dass es eine gewisse Erfahrung mit Elektronik erfordert, oder jemand, der helfen kann.

Ich hoffe auch, einige hilfreiche Hinweise für Himbeer-Pi-Neulinge (dies ist mein erstes RPI-Projekt, und ich bin mehr vertraut mit Arduino, so dass ich ein paar Beulen begonnen), aber beachten Sie bitte, dass dies nicht ein "Getting Started mit Raspberry Pi "Tutorial - würde ich ihre offiziellen empfehlen Quick Start Guide und dieses Wiki Ressource für das, und ich werde annehmen , dass Sie bereits ein Raspberry Pi und läuft mit Raspbian haben.

Nun, auf eine Materialliste. Haftungsausschluss: Sie können feststellen, dass ich Teil von Amazon und Sparkfun bin, aber natürlich können Sie einkaufen und versuchen andere Anbieter wie Adafruit, Radio Shack, Ebay, etc. Die Kosten sind ungefähr im Dezember 2013.

Werkstoffe

  • Raspberry Pi Modell B (40 $)

    • Monitor oder TV und entsprechendes Kabel. Ich habe ein altes Acer Modell AL1717 B VGA / DVI - kompatiblen Monitor (50 $ bei einem Wertstoffhof) und einen Amazon Basics HDMI - auf - DVI - Adapter ($ 8) Kabel.
    • 5V Mikro-USB-Netzteil. Ich habe diese ein ($ 6).
    • USB-Tastatur und -Maus. Ich habe eine Logitech K400 drahtlose Tastatur / Maus - Kombination ($ 35).
    • SD-Karte, mindestens 4 GB, mit einem Betriebssystem installiert. Ich habe eine Karte 8GB ($ 9) und ich Richtungen folgte dem RAW - Bild von Raspbian, zur Verfügung zu installieren hier .
    • Ethernet-Kabel oder USB-Wi-Fi-Adapter. Ich habe ein Ethernet-Kabel direkt in meinen Router gesteckt. Beachten Sie, dass die Himbeer-Pi nur zwei USB-Ports hat, so dass Sie einen USB-Hub benötigen, wenn Sie eine Maus / Tastatur-Combo, die zwei Ports benötigt, und wollen auch Wi-Fi.
  • Schaltungskomponenten
    • Zwei Single-Pole Double-Throw (SPDT) Relais, erhältlich von SparkFun ($ je 2).
    • Zwei N-Kanal - MOSFETs, erhältlich von SparkFun ($ je 1)
    • Männlich-weibliche Überbrückungskabel. 10er-Pack erhältlich von SparkFun ($ 4). Diese Kabel haben ein weibliches Ende, das Sie an die Raspberry Pi (männlich) GPIO (General Purpose Input / Output) Pins, und ein männliches Ende, das in eine lötfreie Steckdose geschoben werden kann, zu verbinden.
    • Stecker-Stecker Jumper - Kabel oder 22 AWG eindrähtig Schaltdraht für Steckbrett Verbindungen herstellen. Ich bevorzuge mit Hookup Draht, weil Sie die Drähte auf eine kürzere Länge schneiden können und Ihre Schaltung ist weniger chaotisch, aber entweder funktioniert. Sie benötigen etwa 15 Verbindungen für das Projekt, so ein einziges 10-Pack von Drähten ist nicht genug. SparkFun hat eine Vielzahl von Drahtbrücken zur Verfügung, wie Premium - Draht ($ 4 für 10-pack) oder Standard - Draht ($ 5 für 30-pack). Sie haben auch eine Vielzahl von Farben von Vollkernschaltdraht (3 $ pro Spule).
    • Lötfreies Steckbrett. Ich habe dieses von SparkFun ($ 5) , aber es gibt jede Menge Möglichkeiten gibt Steckbrett. Sie könnten auch perf board, wenn Sie wissen, was du tust und wollen eine dauerhafte Schaltung zu löten.
  • Hardware
    • Kabelloser Steckdosenadapter mit Fernbedienung. Ich benutzte einen "Utilitech Outdoor Wireless Outlet", Teilenummer 0357410, die ich persönlich bei einem Lowe gekauft habe ($ 10). Leider habe ich eine harte Zeit, einen Link zu diesem genauen Produkt irgendwo online zu finden. Sie sollten in der Lage sein, meine Prozedur mit jeder Einkanal-Fernbedienung mit separaten ON und OFF-Tasten (Sie könnten die Anleitungen an die Arbeit für eine Fernbedienung mit einem einzigen Toggle-On / Off-Taste oder mehrere Kanäle, aber ich werde nicht bieten Diese Richtungen). Zum Beispiel dieses von Home Depot oder dieses von Amazon .
    • Weihnachtsbeleuchtung nach Wahl (Preis variiert). Denken Sie daran, die Aufmerksamkeit auf die Etiketten zu zahlen, wie viele Stränge Sie in eine Steckdose stecken können.
  • Werkzeuge
    • Multimeter mit Durchgangsprüfung. Ich habe dieses von SparkFun ($ 15).
    • Nicht zwingend, aber ich liebe Bananen zu Krokodilklemme Adapterkabel ($ 4). Diese können Sie Clip Multimeter auf Zeug und lassen Sie Ihre Hände frei zu arbeiten, im Gegensatz zu mit Sonde Spitzen. Sie können auch diese bekommen Sonde-Spitze-Alligator-Clip - Adapter von Radio Shack ($ 3).
    • Lötkolben und Lötmittel. Ich habe diese Variable-Temperatur von Eisen aus SparkFun ($ 45) und nutzen ihre bleifreies Lot ($ 8).
    • Abisolierzangen - nur erforderlich, wenn Sie Anschlusskabel anstelle von Überbrückungskabeln verwenden. Diese sind alle über den Ort, sondern aus Gründen der Konsistenz ist hier ein SparkFun Paar ($ 5).
    • Schraubendreher und / oder Gebrauchsmesser. Typ hängt von der drahtlosen Fernbedienung für Ihre Steckdose. Einige haben eine Schraube, um die rückseitige Abdeckung zu entfernen (meine hatte einen kleinen Phillipskopf), aber andere sind versiegelt und Sie müssen sie knacken öffnen.

Gesamtkosten

Die Gesamtkosten dieses Projekts variieren ziemlich viel, je nachdem, was Sie bereits zur Verfügung haben. Hier sind grobe Summen für die Unterabschnitte oben:

Himbeer-Pi: 150 $
Schaltung: $ 23
Hardware: $ 20
Werkzeuge: $ 77

Also, wenn Sie bereits eine Himbeer-Pi-Setup, eine Elektronik-Werkbank mit einem Lötkolben, Ersatzbreadboards und Jumper Drähte etc., und einige Weihnachtsbeleuchtung, ist dieses Projekt ziemlich billig (wahrscheinlich unter $ 20). Wenn Sie buchstäblich alles neu kaufen, ist es fast 300 $. Aber natürlich werden all diese Tools zukünftig gute Investitionen für andere Projekte sein - hoffentlich kauft ihr sie nicht nur dafür!

Nun, auf den nächsten Schritt zu beginnen knacken öffnen und Hacking Ihre drahtlose Fernbedienung.

Schritt 1: Öffnen Sie das Remote-Gehäuse und entfernen Sie die Platine

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Zuerst müssen Sie Ihre drahtlose Steckdose öffnen und knacken Sie die Fernbedienung. Hier sind die Schritte, die ich folgte - Sie müssen zu improvisieren, wenn Sie nicht finden konnten, die exakt gleiche Modell Remote. Ihr Ziel ist nur, um die Platine erhalten intakt. Es ist ok, wenn Sie einige der Kunststoff-Gehäuse zu brechen, dies zu tun haben.

1. Entfernen Sie den Batteriefachdeckel und die Batterie.
2. Pry off die kleine Schlüsselbund Anlage.
3. Entfernen Sie die Schraubenbefestigung an der hinteren Abdeckung.
4. Entfernen Sie die hintere Abdeckung.
5. Entfernen Sie die Platine.

Schritt 2: Reverse-Engineering der Schaltung: Teil 1

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Dies ist wahrscheinlich der schwierigste (und möglicherweise einschüchternde) Teil des Projekts - herauszufinden, wie die Schaltung funktioniert. Fühlen Sie sich nicht überwältigt aber - Sie brauchen nicht zu verstehen, was jede einzelne Komponente in der Schaltung tut. Ihr Ziel ist es, nur um herauszufinden , was die Ein- und Aus - Tasten zu tun, so können Sie die Raspberry Pi verwenden , um "Trick" , um die Fernbedienung zu denken , diese Tasten gedrückt werden.

Also, was passiert, wenn wir die Platine betrachten? Die ersten beiden Bilder, die nebeneinander liegende Bilder beider Seiten zeigen, geben Ihnen eine grobe Vorstellung von den Dingen, die uns wichtig sind. Es gibt eine Batterie, die positive und negative Anschlüsse hat, verbunden mit der Platine. Auf der Platine befinden sich zwei Drucktastenschalter, SW1 und SW2 entsprechend den Ein- und Aus-Tasten des Kunststoff-Außenbehälters. Jeder dieser Schalter hat vier Pins, die mit der Platine verbunden sind und in der zweiten Abbildung oben markiert sind. Also, wir wollen herausfinden, was diese Tasten tun - ein guter Weg zu beginnen ist, um herauszufinden, was die Spannungen an diesen Pins sind, wenn die Tasten gedrückt werden.

Hier wird Ihr Multimeter nützlich sein. Wenn Sie Hilfe benötigen mit einem Multimeter Besuche dieses Tutorial von SparkFun oder dieses von Science Buddies (vollständige Offenlegung: Ich für Science Buddies arbeiten , und ich schrieb , dass Tutorial). Sie werden die schwarze Sonde des Multimeters an die negative Batterieklemme anschließen (hier finden Sie die Krokodilklemmen sehr praktisch). Verwenden Sie dann die rote Sonde, um die Spannung an jedem Anschluss zu messen, wenn:

  • Nichts wird gedrückt
  • Die EIN-Taste wird gedrückt (SW1)
  • Die OFF-Taste wird gedrückt (SW2)

Die letzten drei Bilder zeigen die Ergebnisse meiner Messungen. Es sieht so aus, wenn nichts gedrückt wird, sitzen alle Stifte bei 12V oder 0V. Wenn jedoch eine Taste gedrückt wird, steigen einige der 0V-Pins auf 4,5V (und einige der 12V-Pins gehen ebenfalls auf 4,5V). Was sagt uns das? Es bedeutet, dass die Fernbedienung wahrscheinlich eine digitale Logik verwendet, wobei ein 5-V-Signal als "high" (oder TRUE) angesehen wird und ein 0-V-Signal als "low" (oder FALSE) betrachtet wird. Wenn Sie nicht vertraut mit digitaler Logik sind, lesen Sie in diesem SparkFun Ressource auf Logikpegel oder der Wikipedia - Artikel .

So, jetzt wissen wir, wie sich die Spannungen der Schaltflächenstifte ändern, wenn sie gedrückt werden. Der nächste Schritt ist, herauszufinden, welche dieser Pins mit Eingängen auf dem Chip verbunden sind - das große schwarze Rechteck, das wie die "Gehirne" der Schaltung wirkt.

Schritt 3: Reverse-Engineering der Schaltung: Teil 2

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Als nächstes müssen Sie analysieren die Chip-Verbindung zur Schaltung. Der Chip in meiner Fernbedienung ist in einem Dual - In-Line - Paket (DIP), dh es zwei parallele Reihen von Stiften. Das erste Bild oben markiert alle diese Pins auf der Unterseite der Platine mit gelben Kreisen.

Unser Ziel ist es herauszufinden, welche dieser Pins mit den Pins auf den Schaltflächen verbunden sind, die wir im vorherigen Schritt analysiert haben. Sie können erraten, indem Sie auf die leichter-grüne Spuren auf der Platine. Das zweite Bild oben markiert diese in Magenta und Orange - es sieht so aus, als könnten wir zwei verschiedene Pins (eine von der ON-Taste und eine von der OFF-Taste) bis zu Pins auf dem Chip.

Es ist wahrscheinlich nicht eine gute Idee, nur um Augapfel dies, jedoch. Sie müssen ein Multimeter im Durchgangstestmodus verwenden, um zu überprüfen und sicherzustellen, dass diese Pins tatsächlich elektrisch verbunden sind. Also, stellen Sie Ihr Multimeter auf Durchgangstest und verwenden Sie die Sondenspitzen, um gleichzeitig zwei verschiedene Stifte (durch die orangefarbenen oder magentafarbenen Polygone oben) zu stoßen. Wenn die Stifte elektrisch verbunden sind, sollten Sie ein lautes BEEP vom Multimeter hören.

Nun wollen wir dies mit unserer Analyse der Pin-Spannungen (auf den Tasten) im vorherigen Schritt verknüpfen, um herauszufinden, was mit den Pin-Spannungen auf dem Chip passiert, wenn die Tasten gedrückt werden. Die letzten drei Bilder oben zeigen dies. Es sieht aus wie beide Pins sitzen bei 0V standardmäßig. Wenn die ON-Taste gedrückt wird, geht einer von ihnen auf 4,5V. Wenn die AUS-Taste gedrückt wird, geht die andere auf 4,5V. Dies bestätigt unseren Verdacht, dass die Schaltung wahrscheinlich einen Chip hat, der bei 5 V-Logikpegeln arbeitet. Jetzt können wir auf den Bau einer Schaltung, die Trick der Fernbedienung in das Denken der Tasten gedrückt werden, indem Sie 5V-Signale an diese Pins.

Schritt 4: Löten Sie Jumper-Kabel an die Fernbedienung

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Sie werden drei Drahtbrücken auf der Fernbedienung zu löten müssen: eine zu jedem der im vorherigen Schritt identifiziert Stifte, und man zu den an den Minuspol angeschlossen Pins der Batterie (so können Sie die Fernbedienung stellen Sie sicher , eine gemeinsame hat Boden Verbindung mit Die Sie bauen).

Achten Sie darauf, den Akku vor dem Löten entfernen (übermäßige Hitze kann Batterien explodieren), und wenn Sie Schneiden Sie Ihre eigenen Steckbrücken, stellen Sie sicher, sie sind lang genug (ein paar Zoll), um eine nahe gelegene Steckbrett zu erreichen.

Quoten sind , wenn Sie so weit gekommen sind bereits Sie wissen , wie zu löten (oder können Hilfe von jemandem, der Fall ist), aber hier ist das SparkFun Löten Tutorial nur für den Fall.

Schritt 5: Bauen Sie die Schaltung

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

In diesem Schritt werden Sie die Schaltung montieren, die Ihre neu gehackte Fernbedienung mit Ihrem Raspberry Pi verbinden wird. Folgen Sie den Schritten unten (entsprechend den obigen Diagrammen), um die Schaltung aufzubauen. Um zu erfahren , wie die Schaltung tatsächlich funktioniert, fahren Sie mit dem nächsten Schritt.

1. Richten Sie Ihre Himbeer Pi, Brot und Fernbedienung von links nach rechts, wie gezeigt.
2. Füllen Sie Ihr Steckbrett mit den beiden MOSFETs und zwei Relais. Achten Sie auf die Orientierung an den Stiften der Relais (eine Seite hat drei Pins, die andere Seite hat nur zwei) und die großen "Laschen" auf der Rückseite der MOSFETs (nach links in meinen Diagrammen).
3. Anschlusskabel an der Steckdose anschließen, wie im zweiten Diagramm dargestellt.
4. Verwenden Sie Überbrückungskabel, um externe Verbindungen zur Fernbedienung und zum Raspberry Pi herzustellen, wie im dritten Diagramm gezeigt. Ein paar Hinweise:

  • Ich habe nur gezeigt, die Pins auf der Fernbedienung, die Sie benötigen, um eine Verbindung zu, anstatt die gesamte Schaltung. Sie haben in Schritt 4 bereits Jumperdrähte an diese Pins gelötet, so dass Sie in der Lage sein sollten, ihre anderen Enden direkt in das Steckbrett zu platzieren.
  • Dies ist , wo die des Raspberry Pi wild unanschauliche Stift Nummerierungsschema kann für einen neuen Benutzer ziemlich verwirrend sein, besonders wenn Sie zu einem Arduino gewohnt sind. Ich werde nicht ins Detail gehen hier - diese Seite hat eine gute Erklärung , wenn Sie nach unten scrollen "Ein Wort über GPIO - Pin Nummerierungen ...". Ich habe eine vereinfachte Grafik, die die Pins, die Sie für dieses Projekt verwenden müssen, die hoffentlich weniger verwirrend als das Diagramm auf ihrer Wiki ist zunächst für mich. (P1-02), GND (P1-06), GPIO 17 (P1-11) und GPIO 18 (P1-12), wie in der Abbildung gezeigt.
  • Die Farben, die ich in meinen Diagrammen verwendete, stimmen nicht mit den Fotos meiner physischen Schaltung perfekt überein, weil ich nur roten und schwarzen Anschlussdraht hatte. Sie können verwenden, was Farbschema Sie wollen, solange Sie die Verbindungen rechts erhalten.

Schritt 6: Wie funktioniert die Schaltung?

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Disclaimer: Ich bin kein Elektroingenieur, und es könnte viel, viel bessere Möglichkeiten, dies zu tun. Ich werde präsentieren, was ich gemacht habe und wie es funktioniert. Wenn Sie einen besseren Schaltungsentwurf haben oder etwas falsch mit meinen sehen, gehen Sie bitte voran und überlassen Sie Vorschläge in den Anmerkungen!

Hier ist die allgemeine Idee: Wir müssen in der Lage, ein 5V-Logik-Signal ein-und ausschalten, um die Fernbedienung zu denken, dass die Tasten gedrückt werden. Das Raspberry Pi arbeitet auf einem Logikpegel von 3,3 V, aber im Allgemeinen werden Chips, die für eine 5-V-Logik ausgelegt sind, weiterhin 3,3 V als & ldquor; hoch "erkennen. Also, im Idealfall sollten Sie nur in der Lage sein , die Raspberry Pi GPIO - Pins direkt auf der Fernbedienung zu verdrahten, ohne Zwischenschaltung. Das ist irgendwie was Sie in diesem Instructable sehen (obwohl die Stifte nicht direkt mit dem Entfernen verbunden ist , gibt es einen Widerstand dazwischen).

Also, ich habe versucht, dass die Methode zuerst, aber konnte es nicht an die Arbeit (auch für eine Reihe von verschiedenen Widerstandswerten). Letztendlich sah es aus, als ob meine Fernbedienung mehr Strom verbrachte als die GPIO-Anschlüsse des Himbeer-Pi, die die Ausgangsspannung auf etwa zwei Punkte reduzieren würde - zu wenig, um erkannt zu werden Eine logische HOCH. Einige Googeln über GPIO - Pin Strombegrenzungen führen zu einer Reihe von Diskussionen im Forum darüber , wie Sie wirklich soll die Verwendung eines Puffers mit den GPIO - Pins, sind sie nicht direkt zu fahren viel von etwas gestaltet.

Somit wird die Pufferschaltung unter Verwendung von Relais und MOSFETs verwendet. Ein Relais ist ein elektrisch gesteuerter Schalter mit einem Elektromagneten nach innen. Ein "single pole double throw" (SPDT) Relais kann zwischen zwei verschiedenen Anschlüssen umschalten, je nachdem, ob der Elektromagnet eingeschaltet ist oder nicht. In diesem Fall können wir ein Relais bis zu + 5V und 0V einhängen und je nach der Spannung, die wir an die Fernbedienung senden wollen, hin und her schalten. Wir verwenden die Raspberry Pi den Elektromagneten zu steuern , um das Relais ein- oder auszuschalten - aber die Elektromagneten benötigen noch mehr Strom als die Raspberry Pi GPIO - Pins liefern können. So verwenden wir einen MOSFET , die Sie Hochleistungslasten mit einem Low-Power - Quelle zu fahren erlaubt (Sie nicht auf magische Kraft aus dem Nichts schöpfen kann - man auf eine größere externe Stromversorgung angeschlossen werden müssen, in diesem Fall die Raspberry Pi 5V-Quelle direkt von USB, die mehr Strom als die GPIO-Pins selbst liefern kann). Sie könnten mit MOSFETs vertraut sein, wenn Sie jemals versucht haben, einen Motor oder einen großen LED-Streifen mit einem Arduino zu steuern, das auch aktuelle Einschränkungen hat.

Die drei obigen Diagramme zeigen, was passiert, abhängig davon, welche GPIO-Pins in Python auf HIGH gesetzt sind (was wir als nächstes erreichen werden). Wenn beide Stifte auf LOW sitzen, verbinden beide Relais die Tasten auf der Fernbedienung auf 0V (Masse), so dass nichts passiert. Wenn der GPIO 17 auf HIGH gesetzt ist, schaltet der erste MOSFET ein, was es ermöglicht, dass Strom durch den Elektromagneten in dem ersten Relais fließt, der Schalter umgeschaltet und anstelle von 0 V an 5 V angeschlossen wird. Dies sendet ein 5V-Signal auf den Pin der ON-Taste auf der Fernbedienung, so dass die Fernbedienung denken, dass die Taste gedrückt wurde. Das gleiche Konzept gilt für GPIO 18 und die Taste OFF.

Schritt 7: Python-Code

Ein weiterer Disclaimer: Ich bin auch kein Informatiker oder Programmierer, viel weniger ein Python-Experte. Wenn der unten stehende Code schrecklich aussieht, ineffizient ist oder Sie einfach nur kriechen lässt, fühlen Sie sich bitte frei, einen Link zu einem besseren Code zu posten, um der Lektüre dieser Dinge in der Zukunft willen.

Update 12/13/2013: Siehe mmoon's Kommentar unten für einen Link zu einigen neater Code.

Nun, da Sie die Schaltung gebaut haben, ist es Zeit, um die Verwendung der Himbeer-Pi! Dies ist ein weiterer Teil, der für einen erstmaligen Himbeer-Pi-Benutzer verwirrend war - es war nicht sofort offensichtlich, wie die GPIO-Pins tatsächlich gesteuert werden können, denn anscheinend gibt es mehr als einen Weg, es zu tun. Eine Google-Suche nach "raspberry pi gpio python" zeigt mehrere verschiedene Tutorials und Python-Pakete, die Sie herunterladen können. Sie können auch die Stifte von einem Terminal direkt steuern , ohne überhaupt mit Python . Also, es dauerte eine Weile , um herauszufinden , dass die Standard - Raspbian Verteilung bereits mit einem Python - Modul kommt Stifte GPIO zur Steuerung . Puh!

Denken Sie daran , dass ich nehme an, dass Sie bereits ein Raspberry Pi haben und diesen Punkt ausgeführt wird , unter Verwendung von Raspbian, die beide mit Python 2.x und 3.x (Stand Dezember 2013) kommt. Ich schrieb den Code in Python 3.2.3 mit IDLE 3 (Integrated Development Library) - es gibt eine Verknüpfung für sie auf dem Standard-Raspbian-Desktop.

So führen Sie den Code aus:

1. Öffnen Sie ein Terminal ( "LXTerminal" Symbol auf dem Desktop), Typ sudo idle3, und drücken Sie die Eingabetaste. Dies führt IDLE "als root", die für den GPIO-Zugriff mit Python erforderlich ist.
Öffnen 2. Download christmas_timer.py (unten) und dann in IDLE 3 oder erstellen Sie eine neue Python - Datei und kopieren Sie den Code unten ein.
3. Nehmen Sie sich einen Moment Zeit, um sich den Code und die Kommentare anzusehen. Der einzige Teil, den Sie bearbeiten sollten, ist der Abschnitt zum Anfang mit allen "on" und "off" -Zeiten (MonOn, MonOff, TueOn, etc.).
4. Sie sind fast bereit, den Code auszuführen! Aber zuerst ... (gehen Sie zum nächsten Schritt)

# Raspberry Pi benutzerdefinierte Weihnachtslicht-Timer

GPIO-Modul importieren
Importieren Sie RPi.GPIO als GPIO

# GPIO-Pins als Ausgänge einrichten
# Diese Konvention ist für die "P1" Header Pin-Konvention
# Wo die Pins beginnen mit P1 in der oberen linken
# Und gehen Sie auf P26 in der unteren rechten, mit Quoten in der
# Linke Spalte und evens in der rechten Spalte.
# Die Pins P1-11 und P1-12 entsprechen dem GPIO17 und
# GPIO18.
GPIO.setmode (GPIO.BOARD)
GPIO.setup (11, GPIO.OUT)
GPIO.setup (12, GPIO.OUT)

# Importieren Sie Datum und Zeit Module
import datetime
Importzeit

# Geben Sie die Zeiten ein, zu denen die Beleuchtung ein- und ausgeschaltet werden soll
# Jeden Tag der Woche. Voreinstellung ist, dass die Beleuchtung eingeschaltet wird
# 17:30 Uhr und ab 10:30 Uhr an Werktagen, um 17:00 Uhr und aus
# Um 11:30 Uhr am Wochenende. Beachten Sie, dass dies eine 24-Stunden-Uhr verwendet.

MonOn = datetime.time (Stunde = 17, Minute = 30, Sekunde = 0)
MonOff = datetime.time (Stunde = 22, Minute = 30, Sekunde = 0)
TueOn = datetime.time (Stunde = 17, Minute = 30, Sekunde = 0)
TueOff = datetime.time (Stunde = 22, Minute = 30, Sekunde = 0)
WedOn = datetime.time (Stunde = 17, Minute = 30, Sekunde = 0)
WedOff = datetime.time (Stunde = 22, Minute = 30, Sekunde = 0)
ThuOn = datetime.time (Stunde = 17, Minute = 30, Sekunde = 0)
ThuOff = datetime.time (Stunde = 22, Minute = 30, Sekunde = 0)
FriOn = datetime.time (Stunde = 17, Minute = 30, Sekunde = 0)
FriOff = datetime.time (Stunde = 22, Minute = 30, Sekunde = 0)
SatOn = datetime.time (Stunde = 17, Minute = 0, Sekunde = 0)
SatOff = datetime.time (Stunde = 23, Minute = 30, Sekunde = 0)
SunOn = datetime.time (Stunde = 17, Minute = 0, Sekunde = 0)
SunOff = datetime.time (Stunde = 23, Minute = 30, Sekunde = 0)

# Speichern Sie diese Zeiten in einem Array für einen einfachen Zugriff später.
OnTime = [MonOn, TueOn, WedOn, ThuOn, FriOn, SatOn, SunOn]
OffTime = [MonOff, TueOff, WedOff, ThuOff, FriOff, SatOff, SunOff]

# Stellen Sie in Sekunden eine "Wartezeit" ein. Dadurch wird sichergestellt, dass das Programm pausiert
# Kurz nach dem Ein- und Ausschalten der Beleuchtung. Ansonsten, da die
# Schleife wird mehr als einmal pro Sekunde ausführen, wird es versuchen, zu halten
# Schaltet die Beleuchtung ein, wenn sie bereits eingeschaltet sind
# Schon aus.

WaitTime = 3

# Starten Sie die Schleife, die ausgeführt wird, bis Sie das Programm stoppen oder drehen
# Aus Ihrem Himbeer-Pi.

Während True:

# Die aktuelle Zeit in Stunden, Minuten und Sekunden erhalten
CurrTime = datetime.datetime.now ()
# Den aktuellen Wochentag erhalten (0 = Montag, 1 = Dienstag, 2 = Mittwoch ...)
CurrDay = datetime.datetime.now () Wochentag ()

# Überprüfen Sie, ob es an der Zeit ist, die Beleuchtung einzuschalten
Wenn (currTime.hour - OnTime [currDay] .hour == 0 und
CurrTime.minute - OnTime [currDay] .minute == 0 und
CurrTime.second - OnTime [currDay] .second == 0):

# Setzen Sie den GPIO-Pin auf HIGH, entspricht
# Taste ON auf der Fernbedienung drücken
GPIO.output (11, GPIO.HIGH)

# Für einen sehr kurzen Zeitraum warten dann eingestellt
# Den Wert auf LOW, das Äquivalent der Freigabe der
# ON-Taste drücken
Zeit.Schlaf (.5)
GPIO.output (11, GPIO.LOW)

# Für einige Sekunden warten, damit die Schleife nicht kommt
# Zurück durch und drücken Sie die "on" -Taste erneut
#, Während die Lichter ae bereits auf
Time.sleep (waitTime)

#check, um zu sehen, wenn es Zeit ist, die Lichter auszuschalten
Elif (currTime.hour - OffTime [currDay] .hour == 0 und
CurrTime.minute - OffTime [currDay] .minute == 0 und
CurrTime.second - OffTime [currDay] .second == 0):

# Setzen Sie den GPIO-Pin auf HIGH, entspricht
# Taste OFF auf der Fernbedienung drücken
GPIO.output (12, GPIO.HIGH)

# Für einen sehr kurzen Zeitraum warten dann eingestellt
# Den Wert auf LOW, das Äquivalent der Freigabe der
# OFF-Taste
Zeit.Schlaf (.5)
GPIO.output (12, GPIO.LOW)

# Für einige Sekunden warten, damit die Schleife nicht kommt
# Zurück durch und drücken Sie die "off" -Taste erneut
#, Während die Lichter ae schon aus
Time.sleep (waitTime)

Schritt 8: Hook Up Your Christmas Lights!

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Drahtlose Weihnachtslicht-Timer mit Himbeer-Pi und Python

Vergessen Sie nicht den wichtigsten Teil des Projekts! Wenn Sie dies noch nicht getan haben, String Ihre Weihnachtsbeleuchtung und stellen Sie sicher, dass sie in den drahtlosen Steckdose, die Sie gekauft haben (Ich habe die Fernbedienung manuell, um sicherzustellen, dass die Lichter für diese Bilder wurden)

Schritt 9: Testen Sie Ihren Code

Sie sind bereit für einen Testlauf! Wählen Sie Run-> Run Module aus, oder drücken Sie F5 in IDLE, um den Code auszuführen.

Allerdings, wenn Sie dieses Projekt in der Mitte des Tages tun, wollen Sie wahrscheinlich nicht warten, bis abends zu sehen, ob die Lichter einschalten, und dann noch ein paar Stunden, um zu sehen, wenn sie ausschalten. Für Testzwecke ist es viel schneller, ein paar Zeilen Code vorübergehend zu ändern. Zum Beispiel, wenn es 15:30 Uhr an einem Dienstag ist, könnten Sie ändern

TueOn = datetime.time (Stunde = 17, Minute = 30, Sekunde = 0)
TueOff = datetime.time (Stunde = 22, Minute = 30, Sekunde = 0)

(Um 17:30 Uhr, ab 22:30 Uhr)

nach

TueOn = datetime.time (Stunde = 15, Minute = 32, Sekunde = 0)
TueOff = datetime.time (Stunde = 15, Minute = 33, Sekunde = 0)

(Um 15:32 Uhr, ab 15:33 Uhr)

Das gibt Ihnen genügend Zeit, um nach draußen laufen und sehen, ob die Lichter ein-und ausschalten. Sie könnten auch nur vorübergehend die drahtlose Steckdose direkt neben Ihrem Schreibtisch (mit einer Lampe oder eine Laterne), so dass Sie nicht haben, um hin und her zu testen.

Wenn es funktioniert - congrats! Lehnen Sie sich zurück und aalen Sie auf dem Ruhm Ihres voll-kundengerechten automatischen Weihnachtslicht-Timers. Vielleicht können Sie sich auf den Ausbau Ihres Code arbeiten Web - Kontrolle oder mehrere Auslässe für eine jener zu ermöglichen verrückt Wizards of Winter Weihnachten Licht zeigt . Wenn es nicht bei dem ersten Versuch funktionierte, keine Sorge - gehen Sie zum nächsten Schritt für einige Debugging-Tipps.

Schritt 10: Debuggen

Schaltung funktioniert nicht? Hier sind ein paar Dinge, die Sie ausprobieren können.

  • Stellen Sie sicher, dass Ihre drahtlose Steckdose und Remote-Arbeit zu beginnen. Trennen Sie die Fernbedienung vollständig von Ihrem Stromkreis und versuchen Sie es mit den Tasten ON und OFF. Manchmal haben diese Dinge nicht eine große Auswahl, also versuchen, näher an die Steckdose.
  • Verwenden Sie ein Multimeter, um alle Spannungen zu überprüfen, die Sie auf dem Steckbrett erhalten sollten:
    • Sind Sie eigentlich immer + 5V von der + 5V-Pin?
    • Verwenden Sie den Durchgangstest an Ihrem Multimeter, um auf Kurzschlüsse zu prüfen.
    • Verwenden Sie die Befehlszeile in Python, um die GPIO-Pins einzeln auf HIGH einzustellen (Sie können die entsprechenden Codezeilen aus meiner Datei in die Befehlszeile kopieren und einfügen). Erhalten Sie 3.3V von jedem Stift, wenn Sie dies tun? Denken Sie daran, die Pins nachher wieder auf LOW zu setzen.
    • Schaltet der Ausgang des Relais tatsächlich zwischen 0V und 5V, wenn das Relais schaltet?
  • Vergewissern Sie sich, dass die Relais funktionieren, indem Sie den Elektromagneten (das Ende des Relais mit zwei Stiften direkt übereinander, siehe Schaltpläne in Schritt 6) bis + 5V und GND manuell anschließen. Sie sollten ein hörbares "Klicken" hören, wenn Sie dies tun.
  • Doppeltes und dreifaches - überprüfen Sie alle Ihre Überbrückerdrähte. Es dauert nur eine verpasste Verbindung, oder etwas versehentlich kurzschließende + 5V auf GND, um die ganze Sache von der Arbeit zu stoppen.
  • Stellen Sie sicher, es ist nicht etwas offensichtlich, wie eine Steckdose in Ihrem Haus, die auch durch einen Lichtschalter an der Wand gesteuert wird.

Schritt 11: Referenzen

Es gibt eine Reihe von Links alle in diesem Instructable. Hier sind sie alle an einem Ort:

Related Reading