Paso 8: Secuencia de comandos [Software] Upload "kicktracker.py"
#!/usr/bin/python import sys,urllib,json,serial,time prolite = serial.Serial("/dev/ttyUSB0", baudrate=2400, bytesize=8, parity='N', stopbits=1, xonxoff=0, rtscts=0) # get kickstarter stats url and goal amount if len(sys.argv) > 1: url = sys.argv[1] goal = int(sys.argv[2]) else: sys.exit("Missing arguments") # receive data from url r = urllib.urlopen(url) # grab json data structure data = json.loads(r.read()) # parse needed data pledged = int(float(data['project']['pledged'])) backers = data['project']['backers_count'] percentfunded = pledged / float(goal) # output data to console / Arduino # integer pledges / currency-formatted pledges / backers / percent funded print str(pledged)+'/'+'${:,}'.format(pledged)+'/'\ '{:,}'.format(backers)+'/'+'{:.2%}'.format(percentfunded)+'/' # write data to Pro-Lite PL-M2014R display prolite.write("<ID01>") prolite.write("\r\n") time.sleep(0.1) prolite.write("<ID01>") prolite.write("<PA>") prolite.write("<CL><FI><SB>") prolite.write('${:,}'.format(pledged)) prolite.write("<CC><FI><SA>Backers: ") prolite.write(str(backers)) prolite.write("<CH><FI><SB>") prolite.write('{:.2%}'.format(percentfunded)) prolite.write("\r\n") prolite.flush() #prolite.write("<ID01>") #prolite.write("<RPA>") #prolite.write("\r\n") prolite.close()
El script en Python anterior recibe dos argumentos, una dirección URL estadísticas de Kickstarter y el objetivo de la campaña (porque esa información no está disponible en la URL de las estadísticas que estamos utilizando). El URL de estadísticas devuelve una respuesta JSON, que fácilmente podemos procesar los datos necesarios. Los datos JSON devueltos se ve algo como esto:
{"project":{"id":826672481,"state_changed_at":1411636608,"state":"live","backers_count":175,"pledged":"16980.0","comments_count":78}}
Los datos extraídos se imprimen en la consola (que se alimenta directamente hacia el lado de Arduino) y también a través del puerto serial con varios comandos de formato según el Protocolo Pro-Lite.
Hay varias maneras para obtener el archivo kicktracker.py en la Yún. Se recomienda para colocar los archivos en una tarjeta micro-SD, pero ya que este es un pequeño script que vierten directamente en la carpeta de inicio de la raíz. Podría utilizar el comando "nano kicktracker.py" y luego pegar el código de la consola, Ctrl-X y luego Y para guardar y salir. Alternativamente podría transferir el archivo por SSH desde el equipo local usando un comando como este:
scp kicktracker.py root
Esto tiene que hacerse desde el equipo local, no escribe en la consola de Yún. El comando anterior debería funcionar en OSX y Linux, para Windows, usted necesitará utilizar un programa FTP que soporta transferencia sobre SSH (FileZilla es uno).