Guide: Styr fjärrströmbrytare med Raspberry Pi

När jag förstod att det var möjligt att styra sina fjärrströmbrytare med hjälp av en Raspberry Pi så blev jag helt lyrisk. Det började med att jag såg någon styra en fläkt med hjälp av Apple HomeKit. Detta ville jag också kunna göra, fast de saker som jag hade i min lägenhet t.ex. inbrottslarm, lampor, kaffekokare osv. Jag började läsa runt på Google och hittade massvis av olika guider.
Steg ett verkade vara att lära sig styra fjärrströmbrytare via sin Raspberry Pi och det är det som jag kommer att beskriva hur du gör i denna guide.

Hur fungerar det?

De flesta billiga fjärrströmbrytare styrs med fjärrkontroller som sänder ut signaler med radiofrekvens 433 MHz. Man kopplar ihop en fjärrströmbrytare med en knapp på fjärrkontrollen. Varje gång man trycker på den kopplade knappen på fjärrkontrollen sänder denne ut en signal för att stänga av/sätta på just den strömbrytaren.
Vi vill ersätta fjärrkontrollen med din Raspberry Pi.

Vad behöver du?

Steg 1: Installera wiringPi

Börja med att gå in i terminalen på din Raspberry Pi, antingen via ssh eller direkt via en egen skärm. Vi behöver installera wiringPi för att lätt kunna använda oss av GPIO-portarna.  Skriv följande i din Raspberry Pi:s terminal:

  • Börja med att uppdatera:
    $ sudo apt-get update
    $ sudo apt-get upgrade
  • Om inte Git redan är installerat så installera:
    $ sudo apt-get install git-core
  • Ladda ner wiringPi med Git:
    $ cd
    $ git clone git://git.drogon.net/wiringPi
  • Sedan behöver du bara installera genom:
    $ cd ~/wiringPi
    $ ./build

Steg 2: Installera 433Utils

Vi behöver några program för att kunna använda oss av sändar- och mottagarmodulen. Jag testade en del olika program men jag upplevde att 433Utils fungerade bäst.

  • Börja med att ladda ner 433Utils:
    $ git clone --recursive git://github.com/ninjablocks/433Utils.git
  • Gå till den nya mappen:
    $ cd 433Utils/RPi_utils
  • Skriv $ make för att kompilera.

Steg 3: Anslut sändar- och mottagarmodul

Nu ska vi koppla in mottagaren och sändaren. Börja med att dra ur strömkontakten ur din Raspberry Pi så att den stängs av. De är rätt tåliga men var ändå lite försiktig så att du inte har sönder något.
Jag har gjort en bild för att beskriva hur du ska koppla ihop dessa, jag hoppas att det är tydligt nog.

sändar-och-mottagarmodul-433-mhz

GPIO-pinsen på din Raspberry Pi:

Vi börjar med sändarmodulen (den med 3 pins). Här ska du koppla på följande sätt:

  • Pin som är numrerad 1 på bilden är den som skickar data ska kopplas till pin nummer 11 på Raspberryn, alltså GPIO17.
  • Pin som är numrerad 2 på bilden är strömpin och ska kopplas till pin nummer 2 på Raspberryn, alltså 5V.
  • Pin som är numrerad 3 på bilden är jord och ska kopplas till pin nummer 9 på Rasberryn, alltså Ground.

Då var sändarmodulen inkopplad och vi går över till mottagarmodulen istället. Här ska vi endast koppla in 3 av 4 pins. Den näst längst till höger lämnas okopplad.

  • Pin som är numrerad 4 på bilden är strömpin och ska kopplas till pin nummer 4 på Rasberryn, alltså 5V.
  • Pin som är numrerad 5 på bilden är den pin som tar emot data och ska kopplas till pin nummer 13 på Raspberryn, alltså GPIO27.
  • Pin som är numrerad 6 på bilden är jord och ska kopplas till pin nummer 6 på Raspberry, alltså Ground.

Om du har gjort rätt bör kopplingen se ut såhär:

RF-koppling

Steg 4: Kopiera signaler

Börja med att parkoppla din fjärrströmbrytare med den vanliga fjärrkontrollen. Därefter vill vi kopiera fjärrkontrollens signal till din Raspberry Pi.

  • Börja med att gå in i mappen där RPi_Utils finns installerat:
    $ cd 433Utils/RPi_utils
  • Starta RFSniffer med:
    $ ./RFSniffer
  • Nu väntar mottagarmodulen på inkommande signaler. Tryck nu först på på-knappen på din fjärrkontroll i närheten av mottagarmodulen. Vi bör nu få något i stil med:
    $ Received 11624876
  • Nu vill vi göra samma sak för av-knappen. Du kanske får något i stil med:
    $ Received 12550076

Steg 5: Sätt på och stäng på strömbrytaren med din Raspberry Pi

Nu till sanningens ögonblick, fungerar det?
Testa att koppla in fjärrströmbrytaren till en lampa och testa om det fungerar. Vi kommer att använda oss av $ ./codesend decimalcode [protocol] [pulselength] för att sända signalen. Det du behöver skicka med är decimalcode som är den koden du fick när du kopierade signalen och protocol. Jag fick testa mig lite fram för att det skulle fungera men det fungerade för mig och jag använde protokoll 4.

  • Skriv $ ./codesend decimalcode 4 och förhoppningsvis tänds din lampa.
  • Skriv sedan $ ./codesend decimalcode 4 och förhoppningsvis släcks din lampa.

Videodemo 

6 svar till “Guide: Styr fjärrströmbrytare med Raspberry Pi”

  1. När jag använder $ ./RFSniffer får jag inkonsistenta. Köpte samma Fjärrkontroll och fjärrströmbrytare från Kjell &co.

    Jag har synkat en av fjärrströmbrytarna med kontrolllen på kanal A.

    När jag “sniffar” efter signaler får jag två olika resultat:
    “1623194323”
    “1737911699”

    När jag sedan försöker skicka signalen med:
    ./codesend 1623194323 4
    och
    ./codesend 1737911699 4

    Men tyvärr så fungerar inte någon av kommandona.

    Har du några tips?

    1. Hej,
      har du fått det att fungera än?
      Vad händer om du testar att byta ut 4an i slutet mot något annat?

      /Fredrik

  2. Hallå Fredrik,
    Har försökt följa denna guiden för att kunna styra min kaffekokare trådlöst.
    Efter att ha följt alla steg fram till ./RFSniffer har det gått bra. Men nu när jag försöker få rätt decimalcode att använda så får mottageran upp massvis med olika decimalcodes varje gång jag trycker på knappen. har provat att skicka ut ett flertal av dem utan något resultat. undrar om du stötte på samma problem och hur du löste det isåfall.
    Tacksam för svar!

  3. Hej!

    Tack för din sida. Det här var det mest begripliga jag har läst i detta ärende. Jag har några Raspberry Pi’s och läser såväl elmätarens blinkningar (med hjälp av lite elektronik) som temperaturer, men har länge tänkt mig att försöka mig på att sända signaler till fjärrströmbrytare för olika 230 V-laster. Köpte några 433 MHz-moduler för att skicka elmätarpulser från en mätare i en fristående byggnad till en mottagarmodul vid Pi:n, men har inte startat det projektet ännu. Men säg:

    I den första Pi jag satte igång var man tvungen att ladda hem Drogons wiringpi, men inte använde jag ‘git’? Ochintegjhorde jag ‘build’ heller. På nyare operatuv verkar det var med från början. Missar jag några fina funktioner genpm att inte ldda hem med ‘git …’?

    En annan sak var att när jag skrev mitt elmätaravläsningsscript tyckte jag mig förstå att mankonde sätta upp en som avbrottsstyrande? Förstod aldrg hur jag skulle få det att fungera, och gjorde på ett primitivare sätt (kör en snurra med ‘while true’ och kollar om pinnen är hög eller inte (elmätarblinken sätter en vippa och när jag har läst gör jag reset på vippan, sedan går det runt 10 varv innan den bir hög igen). Har du nå’t att säga kommer jag att lyssna och prova.

    Med vänliga hälsningar
    LarsN

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *