Super enkel Raspberry Pi 433MHz hemautomation (6 / 7 steg)
Steg 6: En anteckning på timing noggrannhet
Som nämnts, är timingen mellan den överförda på/av pulser ganska viktigt. TransmitRF.py skriptet använder python's time.sleep() funktion för att bygga upp vågformer med rätt puls intervall, men det bör noteras att denna funktion inte är helt korrekt. Den längd som det orsakar skriptet att vänta innan nästa operation kan bero på processorbelastningen på som gett omedelbar. Det är en annan anledning till varför TransmitRF.py sänder varje kod flera gånger - bara i fall den time.sleep() funktionen inte är kunna korrekt konstruera en given förekomst av koden.
Jag har personligen aldrig haft problem med time.sleep() när det gäller att skicka koderna. Emellertid vet jag att min time.sleep() tenderar att ha ett fel på cirka 0.1ms. Jag fastställt detta med hjälp av den bifogade SleepTest.py skript som kan användas för att ge en uppskattning av hur exakt din Pi time.sleep() funktion är. För min särskilda fjärrstyrd sockets var den kortaste fördröjningen jag behövs för att genomföra 0.45ms. Som sagt, har inte jag haft problem med icke-lyhörd uttag, så det verkar som 0,45 ± 0.1ms är tillräckligt bra.
Det finns andra metoder för att förseningen är mer korrekt; till exempel kan du använda en dedikerad PIC chip för att generera koder, men sånt är utanför ramen för denna tutorial.