Super enkel Raspberry Pi 433MHz hemautomation (5 / 7 steg)
Steg 5: Sänder signaler med hjälp av Pi
Det är där den andra Python skriften kommer in. Den är avsedd att vara lika enkelt som först, om inte mer. Igen, vänligen ladda ner den och se över koden. Måste du redigera skriptet som används för att överföra de korrekta signalerna enligt de uppgifter som du registrerade i steg 3, så nu är en bra tid att ha en snabb blick på den.
De bibliotek som behövs för att köra detta skript var allt förinstallerat på min Pi, så ingen ytterligare installation behövdes. De listas överst i skriptet:
Importera tid
importera sys
importera RPi.GPIO som GPIO
Under biblioteket importen är informationen måste du redigera. Här är hur det ser ut som standard (detta är den information som motsvarar min sockets som bestäms med hjälp av steg 3):
a_on = "1111111111111010101011101"
a_off = "1111111111111010101010111"
b_on = "1111111111101110101011101"
b_off = "1111111111101110101010111"
c_on = "1111111111101011101011101"
c_off = "1111111111101011101010111"
d_on = "1111111111101010111011101"
d_off = "1111111111101010111010111"
short_delay = 0.00045
long_delay = 0.00090
extended_delay = 0.0096
Här har vi åtta kodsträngar (två för varje par av på/av-knapparna på min telefon - du kan ha fler eller färre koder) följt av tre bitar av tidsanpassad information också beslutsamt i steg 3. Ta dig tid att se till att du har angett informationen korrekt.
När du är nöjd med de koder/förseningar som du har angett i script (du kan byta namn på kod string variabler om du vill), är du ganska mycket redo att prova systemet! Innan du gör, ta en titt på funktionen transmit_code() i skriptet. Det är där själva interaktionen med sändaren uppstår. Denna funktionen förväntar sig en av strängarna till koden skickas som ett argument. Därefter öppnar upp den definierade stiftet som en GPIO utgång och loopar igenom varje tecken i kodsträngen. Det visar sedan sändaren på eller utanför enligt timing information du angett för att bygga upp en vågform på kodsträngen. Det skickar varje kod flera gånger (10 standard) för att minska risken för den som missat, och lämnar en extended_delay mellan varje kodblock, bara gillar luren.
För att köra skriptet, kan du använda den följande befalla syntaxen:
python TransmitRF.py code_1 code_2...
Du kan överföra flera kodsträngar med en enda körning av skriptet. Till exempel vill aktivera sockets (a) och (b) och socket a off, köra skriptet med följande kommando:
python TransmitRF.py a_on b_on c_off