<html> <p>Oftmals möchte man (Haushalts-)Geräte mit höherer Spannung auch mit dem Pi steuern können. Dafür eignen sich Raspberry Pi Funksteckdosen ideal, da sie sehr einfach zu steuern sind und man nicht in den Stromkreis eingreifen muss. Für solch ein und viele weitere Projekte bieten sich Funksteckdosen an, da sie sehr einfach auch über weitere Distanz im Haus mit kleinen Funksendern ferngesteuert werden können.</p> <p>In diesem Tutorial zeige ich die Inbetriebnahme und Konfiguration von Raspberry Pi Funksteckdosen und wie sie mit dem Pi steuerbar sind.</p> <h2>Zubehör</h2> <ul><li><a rel=„nofollow“ target=„_blank“ href=„http://www.amazon.de/gp/product/B001AX8QUM?ie=UTF8&linkCode=as2&camp=1634&creative=6738&tag=7513-21&creativeASIN=B001AX8QUM“>Funksteckdosen (Set)</a></li> <li><img class=„c9“ hidden=„“ src=„https://ir-de.amazon-adsystem.com/e/ir?t=modules-21&l=as2&o=3&a=B00OLI93IC“ alt=„“ width=„1“ height=„1“ border=„0“/><a rel=„nofollow“ target=„_blank“ href=„http://www.amazon.de/gp/product/B00OLI93IC?ie=UTF8&linkCode=as2&camp=1634&creative=6738&tag=7513-21&creativeASIN=B00OLI93IC“>433Mhz Sender und Empfänger</a> (gibt es auch auf <a href=„http://www.ebay.de/sch/i.html?_odkw=433mhz+rf&LH_PrefLoc=1&_blrs=spell_check&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.H0.X433mhz+rf+sender+empf%C3%A4nger.TRS0&_nkw=433mhz+rf+sender+empf%C3%A4nger&_sacat=0“ target=„_blank“>eBay</a>)</li> <li><a href=„http://www.ebay.de/sch/i.html?_odkw=433mhz+rf+sender+empf%C3%A4nger&LH_PrefLoc=1&_blrs=spell_check&_osacat=0&_from=R40&_trksid=p2045573.m570.l1313.TR0.TRC0.H0.Xjumper+kabel.TRS0&_nkw=jumper+kabel&_sacat=0“ target=„_blank“>Jumper Kabel</a></li> <li><a rel=„nofollow“ target=„_blank“ href=„http://www.amazon.de/mn/search/?_encoding=UTF8&linkCode=ur2&camp=1634&creative=19450&tag=7513-21&field-keywords=Breadboard“>Breadboard</a></li> </ul><p>Bei den Funksteckdosen ist es wichtig, dass man den Code per DIP-Schalter einstellen kann. Es gibt auch Modelle mit generischem Code. Ich habe einmal ein solches Gerät ausprobiert und konnte weder den richtigen Code auslesen, noch ein richtiges Signal senden. Zwar gibt es inzwischen auch Tabellen zu den angegeben Codes, aber wer auf der sicheren Seite sein will, nehme einfach z.B. die oben verlinkten (ohne generische Codes).</p>
<div class=„c11“><ins class=„adsbygoogle c10“ data-ad-format=„fluid“ data-ad-layout=„in-article“ data-ad-client=„ca-pub-7500567011943156“ data-ad-slot=„4770162299“/></div> <h2>Aufbau</h2> <p>Der Aufbau unterscheidet sich nicht wirklich, dem <a href=„https://tutorials-raspberrypi.de/gpio/raspberry-pis-ueber-433mhz-funk-kommunizieren-lassen/“ target=„_blank“>hier</a> gezeigten.</p> <div id=„attachment_2233“ class=„wp-caption aligncenter c12“><a href=„https://tutorials-raspberrypi.de/wp-content/uploads/2016/04/raspberry-pi-funksteckdosen_Steckplatine.png“ rel=„attachment wp-att-2233“><img class=„size-medium wp-image-2233“ src=„https://tutorials-raspberrypi.de/wp-content/uploads/raspberry-pi-funksteckdosen_Steckplatine-331x500.png“ alt=„Raspberry Pi Funksteckdosen Steckplatine“ width=„331“ height=„500“/></a> <p class=„wp-caption-text“>Raspberry Pi 433Mhz Sender/Empfänger Aufbau</p> </div>
<p>Kommen wir zur Einstellung der Steckdosen und Fernbedienung:</p> <p>In der Fernbedienung kann ein 5-stelliger Code durch Einstellen der DIP-Schalter eingestellt werden. Diesen Code musst du auch in den Steckdosen einstellen (Öffnung auf der Rückseite). Daneben muss noch ein Name (A-E) angegeben werden. In meinem Beispiel habe ich die 00011 also Code genommen und die Steckdose als E gekennzeichnet.</p>
<div id=„attachment_1141“ class=„wp-caption aligncenter c13“><img class=„wp-image-1141 size-medium“ src=„https://tutorials-raspberrypi.de/wp-content/uploads/20150801_162822-461x500.jpg“ alt=„Raspberry Pi Funksteckdosen Fernbedienung“ width=„461“ height=„500“/><p class=„wp-caption-text“>Funksteckdosen Fernbedienung</p> </div>
<div id=„attachment_1142“ class=„wp-caption aligncenter c14“><img class=„wp-image-1142 size-medium“ src=„https://tutorials-raspberrypi.de/wp-content/uploads/20150801_162755-600x236.jpg“ alt=„Raspberry Pi Funksteckdosen (433MHz) “ width=„600“ height=„236“/><p class=„wp-caption-text“>Raspberry Pi Funksteckdosen (433MHz) Hauscode</p> </div> <p>Durch die verschiedenen Codes ist es möglich quasi beliebig viele Steckdosen fernzusteuern.</p>
<div class=„c11“><ins class=„adsbygoogle c10“ data-ad-format=„fluid“ data-ad-layout=„in-article“ data-ad-client=„ca-pub-7500567011943156“ data-ad-slot=„4770162299“/></div> <h2>Software zum Steuern der 433 Mhz Raspberry Pi Funksteckdosen</h2> <p>Es ist wichtig, dass du <a href=„https://tutorials-raspberrypi.de/gpio/wiringpi-installieren-pinbelegung/“ target=„_blank“>wiringPi</a> bereits installiert hast. Falls noch nicht geschehen, steht <a href=„https://tutorials-raspberrypi.de/gpio/wiringpi-installieren-pinbelegung/“ target=„_blank“>hier</a> beschrieben, wie es funktioniert.</p> <p>Nun aktualisieren wir erst einmal alle Pakete und installieren git, falls noch nicht vorhanden:</p> <pre> sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade </pre> <p>Wir holen uns nun die 433Mhz Bibliothek von Ninjablocks und kompilieren:</p> <pre class=„bash“> git clone –recursive https://github.com/ninjablocks/433Utils.git cd 433Utils/RPi_utils make all </pre> <p class=„bash“>Als erstes muss nun der Code der Fernbedienung ausgelesen werden. Falls du diesen bereits kennst, kannst du den Schritt überspringen. Ansonsten starten wir</p> <pre class=„bash“> sudo ./RFSniffer </pre> <p class=„bash“>und drücken auf der Fernbedienung die entsprechenden Tasten. Der empfangene Code wird nun angezeigt (bei mir ist es <em>5510417</em> für on und <em>5510420</em> für off). Nach Auslesen des Codes kannst du den 433Mhz Empfänger auch entfernen, falls er dich stört.</p> <p class=„bash“>Jetzt erstellen wir eine neue C++ Datei mit folgendem Inhalt:</p> <pre class=„bash“> sudo nano steuerung.cpp </pre> <div id=„crayon-5a33ece77c697028631143“ class=„crayon-syntax crayon-theme-classic crayon-font-monaco crayon-os-mac print-yes notranslate c19“ data-settings=„ no-popup minimize scroll-mouseover“> <div class=„crayon-toolbar crayon-tools c15“ data-settings=„ show“> <div class=„crayon-button crayon-nums-button crayon-button-icon“ title=„Zeilennummern“/> <div class=„crayon-button crayon-wrap-button crayon-button-icon“ title=„Zeilenumbruch umschalten“/> <div class=„crayon-button crayon-expand-button crayon-button-icon“ title=„Code aufklappen“/> C++</div> <div class=„crayon-info c16“/> <div class=„crayon-plain-wrap“/> <div class=„crayon-main“> <table class=„crayon-table“><tr class=„crayon-row“><td class=„crayon-nums“ data-settings=„show“> <div class=„crayon-nums-content c17“> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-1“>1</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-2“>2</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-3“>3</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-4“>4</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-5“>5</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-6“>6</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-7“>7</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-8“>8</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-9“>9</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-10“>10</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-11“>11</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-12“>12</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-13“>13</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-14“>14</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-15“>15</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-16“>16</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-17“>17</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-18“>18</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-19“>19</div> <div class=„crayon-num crayon-striped-num“ data-line=„crayon-5a33ece77c697028631143-20“>20</div> <div class=„crayon-num“ data-line=„crayon-5a33ece77c697028631143-21“>21</div> </div> </td> <td class=„crayon-code“> <div class=„crayon-pre c18“> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-1“>#include „../rc-switch/RCSwitch.h“</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-2“>#include <stdlib.h></div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-3“>#include <stdio.h></div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-4“> </div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-5“>int main(int argc, char *argv[]) {</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-6“>    int PIN = 0; siehe wiring Pi Belegung</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-7“>    int codeSocketDon = 5510417;</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-8“>    int codeSocketDoff = 5510420;</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-9“> </div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-10“>    if (wiringPiSetup() == -1) return 1;</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-11“> </div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-12“>    RCSwitch mySwitch = RCSwitch();</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-13“>    mySwitch.enableTransmit(PIN);</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-14“> </div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-15“>    if (atoi(argv[1]) == 1) { hier kannst du deine eigenen Bedingungen setzen</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-16“>        mySwitch.send(codeSocketDon, 24);</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-17“>    } else {</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-18“>        mySwitch.send(codeSocketDoff, 24);</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-19“>    }</div> <div class=„crayon-line crayon-striped-line“ id=„crayon-5a33ece77c697028631143-20“>    return 0;</div> <div class=„crayon-line“ id=„crayon-5a33ece77c697028631143-21“>}</div> </div> </td> </tr></table></div> </div> <p>Anschließend muss die Datei auch noch kompiliert werden:</p> <pre class=„“> g++ -DRPI ../rc-switch/RCSwitch.cpp steuerung.cpp -o steuerung -lwiringPi </pre> <p>Und mittels</p> <pre> sudo ./steuerung 1 </pre> <p>kannst du die Steckdose anschalten. Natürlich kann man sich hier noch ganz weitere Dinge überlegen und die Datei z.B. per Python einbinden. Da ist deine Kreativität gefragt 🙂</p> <div class=„c20“/> </html>