Super enkel Raspberry Pi 433MHz hemautomation (2 / 7 steg)
Steg 2: Sniffa luren koderna
Nu när mottagaren är kopplad till Pi, kan du starta den första spännande etappen av detta projekt - sniff. Detta innebär att man använder den bifogade Python-skriften för att spela in signalen överförs av luren när varje knapp trycks. Skriptet är mycket enkel, och jag skulle starkt rekommendera att du har en titt på det innan du kör det - poängen med detta projekt är ju att bara blint inte kommer köra någon annans kod!
Innan du börjar denna process, måste du se till att du har Python biblioteken behövs för att köra skriptet sniffer. De listas överst i skriptet:
datetime importera datetime
importera matplotlib.pyplot som pyplot
importera RPi.GPIO som GPIO
Den RPi.GPIO och datetime biblioteken följde med min Raspbian distribution, men jag var tvungen att installera matplotlib biblioteket så här:
sudo lämplig-få installera python-matplotlib
Detta bibliotek är en vanligt förekommande graf plottning bibliotek som är mycket användbar även utanför detta projekt, så installera det definitivt inte kan skada! När biblioteken är uppdaterade, är du redo att börja inspelningen data. Här är hur skriptet fungerar:
När det körs (med kommandot "python ReceiveRF.py"), konfigurerar det definierade GPIO stiftet som en inmatning av data (pin 23 som standard). Sedan kommer det ständigt prova pin och logga om den tar emot en digital 1 eller 0. Detta fortsätter för en uppsättning varaktighet (5 sekunder som standard). När denna tidsgräns nås, skriptet kommer att stoppa inspelningen data och kommer att stänga den GPIO ingång. Därefter utför en liten efterbearbetning och tomter mottagna indatavärdet mot tiden. Igen, om du har frågor om vad skriptet gör, du kan nog svara dem själv efter att titta på hur det fungerar. Jag har försökt att göra koden så läsbar och enkla som möjligt.
Vad du behöver göra är att hålla utkik efter när skriptet anger att det har ** började inspelningen **. När meddelandet visas, bör du trycker och håller en av knapparna på telefonen för cirka en sekund. Var noga med att hålla den nära mottagaren. När skriptet har slutförts inspelning, använder matplotlib för att rita en grafisk vågform av signalen har mottagit under inspelningen tiden. Observera att om du är ansluten till din Pi med en SSH-klient som kitt, också måste att öppna ett X11 program för att tillåta vågformen ska visas. Jag använder xMing för detta (och för andra saker såsom remote-desktopping till min Pi). Om du vill att tomten ska visas, enkelt börja xMing innan du kör skriptet och vänta på att resultaten ska visas.
När din matplotlib visas bör området av intresse i tomt vara ganska uppenbart. Du kan använda kontrollerna längst ned i fönstret zooma in tills du har möjlighet att plocka ut toppar och dalar av signalen som överförs av lurenheten medan knappen hölls ner. Se bilden ovan ett exempel på en komplett kod. Signalen kommer förmodligen bestå av mycket korta pulser åtskilda av liknande perioder där ingen signal tas emot. Detta block av korta pulser kommer förmodligen att följas av en längre period där ingenting mottas, varefter mönstret upprepas. När du har identifierat det mönster som hör till en enda instans av koden, ta en skärmdump som det på den här sidan och fortsätta till nästa steg för att tolka den.