Stap 5: Verzenden van signalen met behulp van de Pi
Dit is waar het tweede Python script komt. Het is ontworpen om net zo eenvoudig als de eerste, zo niet meer. Nogmaals, download het en kijken uit over de code. U moet bewerken van het script voor het verzenden van de juiste signalen volgens de gegevens die u hebt genoteerd in stap 3, dus nu is een goed moment om een snelle blik op het hebben.
De bibliotheken die nodig zijn voor het uitvoeren van dit script waren alle vooraf geïnstalleerde op mijn Pi, dus niet verder installatie was nood. Ze staan bij de bovenkant van het manuscript:
import time import sys import RPi.GPIO as GPIO
Is de informatie die u moet bewerken onder de invoer van de bibliotheek. Hier is hoe het eruit ziet standaard (dit is de informatie overeenkomt met mijn sockets zoals bepaald met behulp van stap 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
Hier hebben we acht codetekenreeksen (twee voor elk paar van op/uit knoppen op mijn toestel - moet u wellicht meer of minder codes) gevolgd door de drie stukken van timing informatie ook in stap 3 hebt vastgesteld. Neem de tijd om ervoor te zorgen dat u deze gegevens correct hebt ingevoerd.
Zodra u tevreden bent met de codes/vertragingen die u hebt ingevoerd in het script (u kunt de naam wijzigen de tekenreeksvariabelen code als je wilt), bent u vrij veel klaar om uit het systeem te proberen! Voordat je dat doet, neem een kijkje op de transmit_code()-functie in het script. Dit is waar de werkelijke interactie met de zender plaatsvindt. Deze functie verwacht een van de codetekenreeksen als een argument wordt verzonden. Vervolgens opent de gedefinieerde pin als een GPIO output en alle tekens in de codereeks doorlopen. Het blijkt dan de zender op of af volgens de timing informatie hebt ingevoerd een golfvorm die overeenkomen met de codetekenreeks opbouwen. Het stuurt elke code meerdere malen (10 standaard) ter vermindering van de kans op het wordt gemist, en bladeren een extended_delay tussen elk codeblok, net zoals de handset.
Het script wilt uitvoeren, kunt u de volgende syntaxis voor de opdracht:
python TransmitRF.py code_1 code_2 ...
U kunt het verzenden van meerdere codetekenreeksen met een enkel punt van het script. Bijvoorbeeld, om te schakelen contactdozen (a) en (b) en (c) uit socket, voert u het script met de volgende opdracht:
python TransmitRF.py a_on b_on c_off