Stap 2: Sniffing de handset-codes
Nu dat uw ontvanger is bedraad tot de Pi, kun je de eerste spannende fase van dit project - de sniff. Dit gaat met behulp van het bijgevoegde Python script opnemen het signaal uitgezonden door de handset wanneer elke knop is ingedrukt. Het script is zeer eenvoudig, en ik zou hoogst adviseren dat u eens een kijkje op het voordat u het programma uitvoeren - immers, het punt van dit project is dat je gewoon blindelings iemand anders code niet uitgevoerd!
Voordat u dit proces begint, moet u zorg ervoor dat u de Python bibliotheken die nodig zijn voor het uitvoeren van het script sniffer. Ze staan bij de bovenkant van het manuscript:
from datetime import datetime import matplotlib.pyplot as pyplot import RPi.GPIO as GPIO
De RPi.GPIO en datetime bibliotheken werden meegeleverd met de distributie van mijn Raspbian, maar ik moest de matplotlib bibliotheek als volgt installeren:
sudo apt-get install python-matplotlib
Deze bibliotheek is een veelgebruikte grafiek plotten bibliotheek die zeer nuttig zijn ook buiten dit project, is dus zeker installerend het kan geen kwaad! Zodra uw bibliotheken up to date zijn, bent u klaar om te beginnen met opnamegegevens. Hier is hoe het script werkt:
Wanneer het wordt uitgevoerd (met behulp van de opdracht 'python ReceiveRF.py'), zal het de gedefinieerde GPIO pin configureren als een data-input (pin 23 standaard). Het zal dan voortdurend proeven van de pin en meld u of het is ontvangen een digitale 1 of 0. Dit blijft een vaste tijdsduur (5 seconden standaard). Wanneer deze termijn is bereikt, wordt het script stopt opgenomen gegevens en de GPIO input zal afsluiten. Vervolgens voert het een weinig post-processing en percelen van de ontvangen invoerwaarde die tegen de klok. Nogmaals, als u vragen hebt over wat het script doet, kunt u waarschijnlijk beantwoorden ze zelf na te kijken hoe het werkt. Ik heb geprobeerd om de code leesbaar en simpel zoals ten spoedigste.
Kijk uit voor wanneer het script wordt aangegeven dat er wat u hoeft te doen is ** begon opname **. Zodra dit bericht wordt weergegeven, moet u druk op en houd een van de knoppen op de handset voor ongeveer een seconde. Zorg ervoor dat om het te houden dicht bij de ontvanger. Zodra het script klaar is met opnemen, zal het matplotlib uitzetten in een grafische golfvorm van het signaal dat zij heeft ontvangen tijdens het opname-interval gebruiken. Houd er rekening mee, als u bent verbonden met uw Pi met behulp van een SSH-client zoals PuTTY, zal u ook wilt openen van een X11 toepassing om de golfvorm om weer te geven. XMing gebruik ik hiervoor (en voor andere dingen zoals afstandsbediening-desktopping in mijn Pi). Als u wilt toestaan de plot te worden weergegeven, gewoon beginnen met xMing voordat u het script uitvoeren en wachten op de resultaten worden weergegeven.
Zodra uw matplotlib-venster verschijnt, is het gebied van belang in de plot moeten vrij duidelijk. U kunt de besturingselementen aan de onderkant van het venster om in te zoomen tot je bent in staat om te kiezen uit de hoogte- en dieptepunten van het signaal uitgezonden door de handset, terwijl de knop werd ingedrukt wordt gehouden. Zie de bovenstaande afbeelding voor een voorbeeld van een volledige code. Het signaal zal waarschijnlijk bestaan uit zeer korte pulsen gescheiden door soortgelijke periodes waar geen signaal ontvangen. Dit blok van korte pulsen zal waarschijnlijk worden gevolgd door een langere periode waar niets wordt ontvangen, waarna het patroon wordt herhaald. Nadat u het patroon behorend tot een enkel exemplaar van de code hebt geïdentificeerd, een screenshot zoals die aan de bovenkant van deze pagina, en doorgaan naar de volgende stap te interpreteren.