Raspberry PI - gennemføre en overkommelig hjem automatiseringssystem [Del I]

I tidligere indlæg i denne serie, Vi så Hvad er GPIO pins, og hvordan til at styre en LED med dem fra vores Raspberry PI af Bash og Python, o med en webprogram.

portadarelele

Ved denne lejlighed vil vi lære at kontrollere magten i en elektrisk apparat; før du starter serveren har vi installeret LAMPE som vi så i den tidligere levering.

At gennemføre det, har tænkt mig at bruge et relæ bord af 5V og otte kanaler, Det skal være optoacoplada at beskytte Raspberry PI; Siden de enheder, der vil vi tjek med 220V, og stifter GPIO Hindbær arbejde med maksimalt 3,3V.

placarele

Relæer optoacoplados plade.

Vi skal gøre mellem relæet og Raspberry PI følgende tilslutninger.

Modul relæer optoacoplados
Raspberry PI model til, B, A +, B +
VCC
+ 5V
I 8
GPIO 17
GND GND
OLYMPUS DIGITAL KAMERA

Forbindelser mellem PI hindbær og relæ plade.

Nu vil vi teste hvis tilslutningerne arbejde, med en simpel test i Bash, angive PIN-koden GPIO 17 som output, og giver en logisk høj værdi.

#Exportamos el PIN deseado
usuario@maquina:~$ sudo echo 17 > /sys/class/gpio/export

#Establecemos la direccion (salida o entrada)
usuario@maquina:~$ sudo echo out > /sys/class/gpio/gpio17/direction

#Activamos la salida del rele dandole un valor de 1 al bit
usuario@maquina:~$ sudo echo 1 > /sys/class/gpio/gpio17/value

Når har slået den led af relæ kontrol, fordi vi kan slukke for den og slip pin GPIO.

#Apagamos la salida del rele
usuario@maquina:~$ sudo echo 0 > /sys/class/gpio/gpio17/value

#Liberamos el PIN asociado
usuario@maquina:~$ sudo echo 17 > /sys/class/gpio/unexport

Vi har allerede testet funktion, så nu skal vi til at se den webside, vi har brug for at planlægge, Det er meget mere simpelt end test med den LED Vi så i den sidste levering.

<html>
 <head>
                 <!--/var/www/rele/index.php-->
 </head>
 <body>
 <!--GPIO17--> 
 <form action="" method="post">
 Enchufe 0 [GPIO 17]&nbsp;<input type="submit" name="encender17" value="Encender">
 <input type="submit" name="apagar17" value="Apagar">
 <input type="submit" name="parpadear17" value="Parpadear">
 </form> 
 <br></br>
 </body>
</html>

<?php
// Funciones PHP del pin GPIO 17
 if ($_POST[encender17]) { 
 $a- exec("sudo sh /var/www/rele/gpio/17/enciende.sh");
 echo $a;
 }

 if ($_POST[apagar17]) { 
 $a- exec("sudo sh /var/www/rele/gpio/17/apaga.sh");
 echo $a;
 }

 if ($_POST[parpadear17]) { 
 $a- exec("sudo sh /var/www/rele/gpio/17/parpadea.sh");
 echo $a;
 }
// Fin de las funciónes del pin GPIO 17
?>

Vi har brug for til at oprette disse tre scripts i bash at tænde, Ombøjning ned af og blinkende; Disse scripts er anbragt i /var/www/relæ/gpio/17 /.

#!/bin/bash
#enciende.sh

#Exportamos el PIN deseado
echo 17 > /sys/class/gpio/export

#Establecemos la direccion (salida o entrada)
echo out > /sys/class/gpio/gpio17/direction

#Activamos la salida del rele dandole un valor de 1 al bit
echo 1 > /sys/class/gpio/gpio17/value
#!/bin/bash
#apaga.sh

#Apagamos la salida del rele
echo 0 > /sys/class/gpio/gpio17/value

#Liberamos el PIN asociado
echo 17 > /sys/class/gpio/unexport
#!/bin/bash
#parpadea.sh

#Exportamos el PIN deseado
echo 17 > /sys/class/gpio/export

#Establecemos la direccion (salida o entrada)
echo out > /sys/class/gpio/gpio17/direction

#Activamos la salida del rele dandole un valor de 1 al bit, y lo desactivamos 5 veces
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 0 > /sys/class/gpio/gpio17/value

#Liberamos el PIN asociado
echo 17 > /sys/class/gpio/unexport

Når vi har den scripts og den index.php på deres respektive ruter, Vi er nødt til at være i stand til at se følgende hierarki Register på web-serveren.

Screenshot af 2014-11-08 16:27:54Ved denne lejlighed må vi også gøre sudoer til brugeren www-data; for at køre sudo terminalvisudo i terminalen, og vil tilføje det pi under brugeren således at brugeren www-data Du kan styre benene GPIO.

#includedir /etc/sudoers.d
pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=(ALL) NOPASSWD: ALL

Nu vil vi teste de tre knapper for Kontrollere, at alt fungerer korrekt. Engang arbejde, og relæ plade leds tænde, Vi vil høre den “Klik/klak” at du udleder ved åbning og lukning af kredsløbet.

Screenshot af 2014-11-08 13:30:46

Web-applikation til at styre relæet.

Vi vil se, hvordan du slutter den til en lampe eller nogen andre apparatet få kontrol over det. fra enhver enhed med en webbrowser.

Skema for Tilslut relæ mellem en magneto-termiske switch og en plug væggen i vores hus vil være som følger; for ordninger har jeg brugt billedet af en enkelt kanal relæ, i dette eksempel er det kanal i 8 otte-kanals plade.

rele5vmagnetotermico

Tilslutningsdiagram i det elektriske panel i et hus.

For proof of concept, Jeg vil bruge det følgende skema med en plug, at jeg måtte ændre i et værelse i huset, og en lampe. Nedenfor er væggen, og ovenfor der har redet i denne test til at forbinde i lampen; relæ fungerer som en switch.

rele5venchufe1

Ordningen anvendes i denne test.

Der er tre havne af elektrisk forbindelse for hver output i relæet: COM, normalt åben og normalt lukket. I COM Vi skal tilslutte den positive elektriske Det vil fodre apparatet, og i kun én to andre kabel udvidelse til positivt af apparatet. Den negative forbinder direkte fra stikket til apparatet.

PB080196

En relay-forbindelser.

Det vil afhænge af hvis du slutter den til normalt åben, eller en normalt lukket Hvis apparatet er tændt eller slukket hvis slår du hindbær.

I dette eksempel er relæet forbundet i normalt lukket, så hvis du slår hindbær, stik arbejde; Hvis conectásemos det i normalt åben, Hvornår udløsning hindbær lampen ikke kan antændes fordi kredsløbet ville være åben; Vi vil forstå det bedre med en video.

Hvis du som du kan følge mig på Twitter, Facebook, Google +, LinkedIn, eller dele det med knapper under denne publikation, Hvis du har spørgsmål eller forslag så tøv ikke at kommentere.

Hjælp os med at nå flere læsere Share on LinkedInShare on FacebookTweet about this on TwitterShare on Google+Email this to someone

33 tanker om"Raspberry PI - gennemføre en overkommelig hjem automatiseringssystem [Del I]

  1. Tænde og lukning Lysdioder fra internettet

    Godmorgen, På intet, det mindste jeg kan sige, Tak, Super
    tutorial, endnu et kig, Bravo og tak.

    Et spørgsmål, Jeg forstår ikke, præcis som og hvor skal jeg installere scripts,
    min hensigt er at have en WEB-side, Faktisk, ikke være så jeg får til
    arbejde med PHP og WEB, som eksempel, via en PC, forbindelse til internettet
    overalt til at aktivere de forskellige lysdioder eller relæer, ikke er hvordan man gør det,
    på forhånd og selvfølgelig, Mange tak for enhver hjælp.

    Mindelighed Ignacio fra Belgien

  2. Scripts og enkelt index.php du nødt til at kopiere dem til /var/www/rele, som vist i tutorial, hver har sin rute.

    index.php i /var/www/rele/index.php
    apaga.sh, enciende.sh og parpadea.sh i /var/www/rele/gpio/17 /

    For tiden bliver som det arbejder for en relay forbundet til GPIO 17, i et par dage vil jeg slutte af med den anden del at betjene de otte udgange.

    For at få adgang til fra internettet skal du konfigurere din router til at sende indgående anmodninger ved havnen 80 til din PI hindbær. Fra den virtuelle Server af den router eller NAT indstilling kan du konfigurere det.

    Endelig, for at få adgang til mere let du kan tilmelde dig NoIP og få et gratis domæne tilknyttet din offentlige ip af type casa.no-ip.biz.

    PD: Sørg for, at du beskytter denne side meget vel kun du har adgang til det.

    Mange tak for at kommentere.

    • God eftermiddag,

      Er jeg at jeg takker, af hans råd, så hurtig respons og din høflighed, Det er en fornøjelse, Jeg ønsker dig en god 2015

      Mindelighed,

      Ignacio Rubin fra Belgien

  3. God eftermiddag,

    Alt fungerer perfekt, Selv om kun via lan eller med Xming via ssh, Afskåret fra sammenknytte hen til sen, "med en anden PC via internettet, Jeg har noip og dyndns, og jeg kan ikke køre, Hvis du har nogen idé om jeg takker det du på forhånd,

    En stærk hilsen og en se mere, Tak

    Ignacio

    • Jeg er glad for, at det endelig virker, men du kan oprette forbindelse fra internettet hvilke protokoller bruger du?

      Du er nødt til at åbne porte af de tjenester, du vil bruge på den router, der giver dig adgang til internettet (Http-port 80, HTTPS-port 443, SSH port 22, osv) og lave Port Forwarding til private IP af hindbær IP routeren, der giver dig adgang til internettet.

      Endelig vil nu du kun nødt til at starte forbindelsen fra et andet netværk står over for den offentlige IP af din router, Du kan prøve fra din mobiltelefon 3 G.

      Hvis dette virker, Nu kan du fortsætte til at konfigurere NoIP eller Dyn for adgang fra et navn let at huske, i stedet for en offentlig IP; Desuden hvis installere NoIP på hindbær, på hjemmesiden NoIP din offentlige IP vil ændre automatisk når denne ændring til din router.

      For ekstra sikkerhed, Det ville være bedre, hvis du konfigurerer en VPN for at skabe forbindelser til dit hjemmenetværk, og kanal gennem det al din trafik.

  4. Hej, Jeg har et spørgsmål jeg har en led på gpio4, sudo echo 1 > /sys/class/gpio/gpio4/værdi dette jeg slukke førte, og med sudo echo 0 > /sys/class/gpio/gpio4/værdi, slå jeg førte, skal være til revez, vil gøre noget ondt?.
    Placer filen jeg forbinde via internettet, Når jeg trykker på en vilkårlig knap (tænde, Sluk, eller blinkende) kun slukke led, men ikke tænder, heller ikke flimmer.
    Jeg værdsætter den hjælp du kan give mig.

    • De led af relæet er kun en indikator, du har prøvet med et elektrisk apparat tilsluttet relæet?

      Det vil afhænge af hvis conectáis det i normalt åben, eller normalt lukket konfiguration scripts i python.

      • Hej, Interessant nok førte virker perfekt, Jeg tænde og slukke for at glæde, men relæet virker ikke, gør ikke åbne eller lukke, Parameteren Hare 🙁

    • Hej, en primer lugar muchas gracias peor du spørger 🙂

      Du kan følge tutorial trin for trin, relæet har 3 typer af pins:

      – VDC-> magt (PIN 5V RPI)
      – GND-> GND RPI Pin
      – IN-> poster, og afhængigt af om din tilstand er høj eller lav relæet vil tænde eller slukke.

      Eksempel på anvendelse IN8, solo debes cambiarlo for IN0 IN1 du relæ y som før efter comenté el tutorial 🙂

      PD: Sørg for, at disse er optoacoplados, billedet er.

      Med venlig hilsen, Jeg håber jeg hjalp.

  5. FIZ tudo til foretrukket som acima, Quando escrevo du ikke-terminal kommandoer, værker, Porém, Jeg ramte eller enciende.sh og kontrol ikke-terminal não executar Arkiv virker e nem via side index.php

  6. Først og fremmest, Tak for deres forklaringer, Meget god.

    Jeg har fulgt jeres instruks og jeg kan fange en fisk tank afstand luftpumpe.

    Det problem jeg har er mangler jeg kan kontrollere status for pin (Sandt eller falsk)

    Hvordan kan jeg gøre for at bringe mig denne data på den samme side jeg?

    Er flåde efter dine instruktioner, tændes og slukkes relæet korrekt.

    • Hej Teodoro,

      Denne kommentar er noget, som mange læsere spørger, af hvad jeg forbereder en næste del af den tutorial, hvor vi vil planlægge en indikator for status af GPIO gratis pins i min fritid.

      Når den er færdig vil jeg offentliggøre det på bloggen.

      Vi ses snart.

  7. Før noget Tak så meget for din blog.. er spektakulære. For mit vedkommende har jeg købt alt hvad du behøver, Jeg har fulgt alle dine tutorials, men når du kører pladen af 8 relæer, noget går galt jeg.

    Spørgsmålet er som er, hvis jeg har plade octoacoplada?? Det lader til, at der ikke når du tilstrækkelig strøm til at aktivere den. Mine forbindelser er:

    5v-> VCC (plade)
    GND (P3) -> GND (plade)
    GPIO4-> IN4 (plade)

    Når aktiv gpio med script, kontrolelementet røde led tændes en momoento, men bliver ikke. Jeg forstår, at det er fordi gpio er aktiveret til 3,3 volt og relæer er 5V. Sværg, men har den samme plade så du er nødt til at ahber en måde at gøre det arbejde ikke?

    Apreciaria enhver form for kommentar, relæet bord er som følger
    (8 relæer modul srd-05VDC-SL-C)

    Tak meget for alt

  8. Hej Loty,

    De fleste af pladerne af understøttede relæer, der er afsat til microcontrollers kommer allerede opto-koblet, Du kan kontrollere, hvis det er i specifikationerne eller leder efter optocouplers i pladen; der henviser til antallet af serier du har nævnt, hvis denne ting er.

    Effektivt, er disse plader drevet med 5V, men produktionen kan aktiveres også ved 3 aktuatorer, 3V som hindbær IP GPIO.

    Anyway, problemet synes at være mangel på strøm, så erstatte transformeren af hindbær med en 2A eller foder eksternt relæ kunne hjælpe.

    Hilsner og på gensyn.

    • Hej!
      Tak for dit hurtige svar. Jeg har gjort forsøg direkte på relay bord (at fjerne PI HINDBÆR), at se, hvis det var, at pladen havde ondt. Jeg har fået en ekstern strømforsyning af 5V på 2A.

      Jeg oprette forbindelse til GND, medmindre VDC arkføderen til den + feeder og IN4 også til de +. og der.. VÆRKER!! relæ Klik og LED-indikatoren forbliver tændt, Jeg har udført testen med en 220v lampe og alle arbejder stadig. Problemet opstår med RASPBERRY PI.

      Jeg har tilsluttet plade feeder eksterne “+” VDC “-” for GND og den IN4 jeg har tilsluttet den HINDBÆR gpio4, og der, når jeg aktiverer GPIO, intet sker. Jeg har målt GPIO og giver 3,3 v. Jeg har læst om andre steder og det siges at det er fordi jeg skal tilslutte jumper VDC-JCC af ellers. Ikke at jeg gør forkert. Det kan være at jeg tænder gpio gennem BASH?? Det er nødvendigt at gøre det arbejde på relay bord brug GPIO python library??

      Mange tak for ethvert bidrag

  9. Hej, Jeg var har en opgave at slette lys med relæ, ved hjælp af koden i denne tutorial, kunne lette normale, men for at fjerne ikke slettet og relæet var bevæbnet, kun afvæbning når jeg unplugged kablet fra relæ hindbær. Efter flere forsøg lykkedes det mig at slette denne tutorial med koder af koden tutorial førte til slet. at få denne form en del af koden: Hvis ($_ INDLÆG[apagar17]) {
    $til- exec(“sudo python /var/www/AcenderWebRele/apaga3.py”);
    $til- exec(“sudo echo 17 > /sys/class/gpio/eksport”);
    $til- exec(“sudo echo 0 > /sys/class/gpio/gpio17/værdi”);
    $til- exec(“sudo echo 17 > /sys/class/gpio/tilbagekalde”);
    ECHO $a;
    }

  10. God eftermiddag fra Mexico, mit navn er Enrique, Jeg er interesseret i del af implement Hjem automation med hindbær dette stammer fra en projekt skole, i disse tutorials nævner, at skal have linux for hvilke gør ikke vide meget, Det er muligt at udvikle projektet, både hjemmesiden og de nødvendige programmering i hindbær med windows?, web-serveren at du nævner skal installeres i den samme hindbær eller hvor?, Hvis antallet af enheder, som jeg ønsker at kontrollere overskredet en hindbær kapacitet 3 normal til ocuparia gør, andre hindbær eller der er noget, der vil øge mig kapacitet?, Hvis du handler med en anden hindbær som ville både med det samme webprogram?.

    Jeg håber, og du kan hjælpe mig med dette.

    Med venlig hilsen.

Skriv et svar