Kontrollera en Kwikset Smartcode låsa med en Intel Edison (3 / 6 steg)
Steg 3: Lägga till Kwikset kontroll skript
Med din protokoll kan skript gjort du nu lägga skriptet kontroll.
Skapa en annan python skript som heter kwikset.py
Vi kwikset.py
Detta python skript kommer att kwikset biblioteket kan du ringa för att låsa och låsa upp din deadbolt.
Klistra in följande kod i din texteditor, spara och avsluta din texteditor.
#! / usr/bin/python
# Det här är ett bibliotek för att ge tillgång till Kwikset Smartcode låser via UART
# H/w-gränssnittet är 3.3V 9600 baud 8N1 standard UART
# Detta är mer av en protokoll-kodare/avkodare men
# Du kan hitta mer information på randomwire.biz
importera kwikset_protocol
importera följetong
Importera tid
importera os
importera gängning
från binascii import hexlify, unhexlify
ser = ingen
def setup_arduinobreakout_pins():
# Först låt oss se till att alla stiften exporteras för config
OS.system ("echo 214 > /sys/class/gpio/export")
OS.system ("echo 248 > /sys/class/gpio/export")
OS.system ("echo 249 > /sys/class/gpio/export")
OS.system ("echo 216 > /sys/class/gpio/export")
OS.system ("echo 217 > /sys/class/gpio/export")
# Ska inte behöva detta som seriell port öppning bör ta hand om det
#os.system ("echo 130 > /sys/class/gpio/export")
#os.system ("echo 131 > /sys/class/gpio/export")
# Nästa låter Tristate alla utgångar
OS.system ("echo låg > /sys/class/gpio/gpio214/direction")
# Nästa låter setup buffertnivå/shifter I/O riktningar
OS.system ("echo låg > /sys/class/gpio/gpio248/direction")
OS.system ("echo hög > /sys/class/gpio/gpio249/direction")
# Inaktivera den externa pull ups
OS.system ("echo låg > /sys/class/gpio/gpio216/direction")
OS.system ("echo låg > /sys/class/gpio/gpio217/direction")
# Ställ in Edison I/O riktningar inte (bör vara nödvändigt, men här för eftervärlden
#os.system ("echo i > /sys/class/gpio/gpio130/direction")
#os.system ("echo ut > /sys/class/gpio/gpio131/direction")
# Ta bort tristate
OS.system ("echo hög > /sys/class/gpio/gpio214/direction")
def setup_serial():
globala ser
# Initiera serieporten
ser = följetong. Serial("/dev/ttyMFD1",9600,timeout=0)
def unlock():
globala ser
om ser == ingen:
skriva ut "Serial Port inte setup"
returnera False
ser.write(kwikset_protocol.generate_unlock_packet())
def lock():
globala ser
om ser == ingen:
skriva ut "Serial Port inte setup"
returnera False
ser.write(kwikset_protocol.generate_lock_packet())