Jeg har for noget tid siden bestilt en relæ hjem til en af mine raspberry's som skulle erstatte den klassiske radio signal styrring af vores "garrage port" og i sidste uge "døde" transmitteren.
Garrage port system er en ældre Bosch system der køre 26,995 MHz og en brugt erstatnings transmitter koster fra 500 kr ogomkring 700 kr for en ny Bosch kompatible transmitter enhed.
Derfor var det hver at se om jeg ikke kunne styre Porten via en Raspberry PI enhed.

Jeg var heldig at den originale bosch manual til port åbner motoren lå ude i garragen, så derfor kunne jeg nemt se hvad de "lus" på siden at port motoren kassen skulle bruges til, ellers havde jeg været i gang med at skulle dekode de elektroniske kredsløb som jeg kunne se, før jeg kunne lave en korrekt styrring af porten.

Manual for bosch port åbner

 Jeg prøvede at danne forbindelse mellem 5 og 6, som efter manualen skule være til et "pin" indtasnings system, hvorpå at porten begyndte at gå op, og et forsøg til, kørte den ned, her efter var opgaven simpel, jeg skulle benytte et relæ til at styre denne forbindelse, der forsagede et signal til porten om at køre op og ned for at åbne og lukke porten.

Det Relæ jeg havde fåret hjem ser sådan ud og købt på ebay til hele 55 kr, man kan få mange forskellige af disse relæ på ebay, men vær opmærksom på at de alle styres på forskelligt vis, nogle skal også have 5V til at drive nogle forskellige komponenter, denne kan køre direkte fra 3.3 porten på Raspberry Pi'en.

Relæ

Denne model har 4 indput ben.
VCC tilsuttes 3.3 V F.eks pin 17
IN1 tilsluttes pin 16 alias GPIO 23
IN2 tilsluttes pin 17 alias GPIO 24
GND tilsluttes pin 25

Får man VCC tilsluttet 5V fra Raspberry PI pin 2 eller 4, vil relæ'et tænde med det er ikke muligt at styre denne on/off. !

Manuelt opsætning af GPIO styrring via Shell kan gøres sådan, her for port 23.
echo "23" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio23/direction

herefter vil 1 og 0 til "value" styre Relæet.
echo "1" > /sys/class/gpio/gpio23/value
echo "0" > /sys/class/gpio/gpio23/value

man kan også gøre det lidt nemmere for sig selv og installer WiringPI og brnytte GPIO til at læse og skrive ovenstående kommandoer.

WiringPi som er et projekt der giver nogle gode værktøjer til at styre GPIO fra linux Shell, kan nu benyttes til at styre relæet.

f.eks læse alle GPIO portenes instillinger.

garage:/home/pi# gpio readall
+----------+-Rev2-+------+--------+------+-------+
| wiringPi | GPIO | Phys | Name   | Mode | Value |
+----------+------+------+--------+------+-------+
|      0   |  17  |  11  | GPIO 0 | IN   | Low   |
|      1   |  18  |  12  | GPIO 1 | IN   | Low   |
|      2   |  27  |  13  | GPIO 2 | IN   | Low   |
|      3   |  22  |  15  | GPIO 3 | IN   | Low   |
|      4   |  23  |  16  | GPIO 4 | OUT  | High  |
|      5   |  24  |  18  | GPIO 5 | OUT  | Low   |
|      6   |  25  |  22  | GPIO 6 | IN   | Low   |
|      7   |   4  |   7  | GPIO 7 | IN   | High  |
|      8   |   2  |   3  | SDA    | IN   | High  |
|      9   |   3  |   5  | SCL    | IN   | High  |
|     10   |   8  |  24  | CE0    | IN   | Low   |
|     11   |   7  |  26  | CE1    | IN   | Low   |
|     12   |  10  |  19  | MOSI   | IN   | Low   |
|     13   |   9  |  21  | MISO   | IN   | Low   |
|     14   |  11  |  23  | SCLK   | IN   | Low   |
|     15   |  14  |   8  | TxD    | ALT0 | High  |
|     16   |  15  |  10  | RxD    | ALT0 | High  |
|     17   |  28  |   3  | GPIO 8 | ALT2 | Low   |
|     18   |  29  |   4  | GPIO 9 | ALT2 | Low   |
|     19   |  30  |   5  | GPIO10 | ALT2 | Low   |
|     20   |  31  |   6  | GPIO11 | ALT2 | Low   |
+----------+------+------+--------+------+-------+

WiringPI opsætning af GPIO23 til styrring af relæ GPIO sættes til Output

garage:/home/pi# gpio -g mode 23 out

Port kørslen startes ved at sende "1" afsted, her på skal "0" sendes før en ny "1" kan sendes igen, hvergang "1" køres vil porten køre modsatte vej at tidligere.

garage:/home/pi# gpio -g write 23 1
garage:/home/pi# gpio -g write 23 0

Her under er et simplet web interface som udføre ovenstående.

Web interface til Raspberry pi samt temp i garage

-------------------------Kode start --------------------------------------------------

<?php

        $state=exec("gpio -g read 23");


        if (isset($_POST['button1']))
    {
        exec("gpio -g write 23 0");
        sleep(2);

        exec("gpio -g write 23 1");
        print("Button1");
    }

    if (isset($_POST['button2']))
    {
        exec("gpio -g write 23 1");
    }

?>

<html>
<head>

  <title> ** Garage GPIO Control ** </title>

</head>

<body bgcolor="#c0c0c0">

<H2 align=center> == Garage GPIO Control == </H2>

    <form method="post">
    <p align=center>
        Styr Garage Port => <button name="button1">Aaben </button>
        <button name="button2">Luk</button>
    </p>
    </form>

<p align=center> <a href="/./mrtg/extsens_2.html"><img style="border:0;" src="/../mrtg/extsens_2-day.png" alt="temp og fugt" ></a></p>

</body>
</html>
-------------------------Kode stop --------------------------------------------------


Php koden her lånt herfra og tilpasset til WiringPI GPIO kommando. -> http://www.diverteka.com/?p=1492