martes, 27 de septiembre de 2016

Ejemplos Sense Hat - IoT Challenge

Los flujos de ejemplo de para el IoT Challenge son los siguientes:

Envio de información a Sense Hat:

Este es el diagrama del flujo:


Este es el código que puedes importar a tú raspberry

[{"id":"edda6974.147558","type":"rpi-sensehatsim out","z":"63e1dba0.c64e8c","name":"","x":528,"y":296,"wires":[]},{"id":"db207c2d.f5dd","type":"inject","z":"63e1dba0.c64e8c","name":"","topic":"verde","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"x":121,"y":238,"wires":[["613df6e3.2b895"]]},{"id":"b69358fb.3d28f","type":"inject","z":"63e1dba0.c64e8c","name":"","topic":"marron","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"x":119,"y":333,"wires":[["ebd035e0.1714b"]]},{"id":"613df6e3.2b895","type":"function","z":"63e1dba0.c64e8c","name":"","func":"var marron=\"#800000\";\nvar verde=\"#008000\";\nvar negro=\"#000000\";\nvar plata=\"#C0C0C0\";\nvar color=verde;\nmsg.payload=\"0,0,\"+color+\",0,1,\"+color+\",0,2,\"+color+\",0,3,\"+color+\",0,4,\"+color+\",0,5,\"+color+\",0,6,\"+color+\",0,7,\"+color+\n            \",1,0,\"+color+\",1,1,\"+color+\",1,2,\"+color+\",1,3,\"+color+\",1,4,\"+color+\",1,5,\"+color+\",1,6,\"+color+\",1,7,\"+color+\n            \",2,0,\"+color+\",2,1,\"+color+\",2,2,\"+color+\",2,3,\"+color+\",2,4,\"+color+\",2,5,\"+color+\",2,6,\"+color+\",2,7,\"+color+\n            \",3,0,\"+color+\",3,1,\"+color+\",3,2,\"+color+\",3,3,\"+color+\",3,4,\"+color+\",3,5,\"+color+\",3,6,\"+color+\",3,7,\"+color+\n            \",4,0,\"+color+\",4,1,\"+color+\",4,2,\"+color+\",4,3,\"+color+\",4,4,\"+color+\",4,5,\"+color+\",4,6,\"+color+\",4,7,\"+color+\n            \",5,0,\"+color+\",5,1,\"+color+\",5,2,\"+color+\",5,3,\"+color+\",5,4,\"+color+\",5,5,\"+color+\",5,6,\"+color+\",5,7,\"+color+\n            \",6,0,\"+color+\",6,1,\"+color+\",6,2,\"+color+\",6,3,\"+color+\",6,4,\"+color+\",6,5,\"+color+\",6,6,\"+color+\",6,7,\"+color+\n            \",7,0,\"+color+\",7,1,\"+color+\",7,2,\"+color+\",7,3,\"+color+\",7,4,\"+color+\",7,5,\"+color+\",7,6,\"+color+\",7,7,\"+color;\nreturn msg;","outputs":1,"noerr":0,"x":295,"y":253,"wires":[["edda6974.147558","f73ce2d6.a6ac"]]},{"id":"ebd035e0.1714b","type":"function","z":"63e1dba0.c64e8c","name":"","func":"var marron=\"#800000\";\nvar verde=\"#008000\";\nvar negro=\"#000000\";\nvar plata=\"#C0C0C0\";\nvar color=marron;\nmsg.payload=\"0,0,\"+color+\",0,1,\"+color+\",0,2,\"+color+\",0,3,\"+color+\",0,4,\"+color+\",0,5,\"+color+\",0,6,\"+color+\",0,7,\"+color+\n            \",1,0,\"+color+\",1,1,\"+color+\",1,2,\"+color+\",1,3,\"+color+\",1,4,\"+color+\",1,5,\"+color+\",1,6,\"+color+\",1,7,\"+color+\n            \",2,0,\"+color+\",2,1,\"+color+\",2,2,\"+color+\",2,3,\"+color+\",2,4,\"+color+\",2,5,\"+color+\",2,6,\"+color+\",2,7,\"+color+\n            \",3,0,\"+color+\",3,1,\"+color+\",3,2,\"+color+\",3,3,\"+color+\",3,4,\"+color+\",3,5,\"+color+\",3,6,\"+color+\",3,7,\"+color+\n            \",4,0,\"+color+\",4,1,\"+color+\",4,2,\"+color+\",4,3,\"+color+\",4,4,\"+color+\",4,5,\"+color+\",4,6,\"+color+\",4,7,\"+color+\n            \",5,0,\"+color+\",5,1,\"+color+\",5,2,\"+color+\",5,3,\"+color+\",5,4,\"+color+\",5,5,\"+color+\",5,6,\"+color+\",5,7,\"+color+\n            \",6,0,\"+color+\",6,1,\"+color+\",6,2,\"+color+\",6,3,\"+color+\",6,4,\"+color+\",6,5,\"+color+\",6,6,\"+color+\",6,7,\"+color+\n            \",7,0,\"+color+\",7,1,\"+color+\",7,2,\"+color+\",7,3,\"+color+\",7,4,\"+color+\",7,5,\"+color+\",7,6,\"+color+\",7,7,\"+color;\nreturn msg;","outputs":1,"noerr":0,"x":290,"y":333,"wires":[["edda6974.147558","fa3b357b.f74f08"]]},{"id":"f73ce2d6.a6ac","type":"debug","z":"63e1dba0.c64e8c","name":"","active":true,"console":"false","complete":"false","x":499,"y":206,"wires":[]},{"id":"fa3b357b.f74f08","type":"debug","z":"63e1dba0.c64e8c","name":"","active":true,"console":"false","complete":"false","x":442,"y":379,"wires":[]}]


Obtención de temperatura del procesador:
Este es el flujo


Este es el código que puedes importar a tú raspberry:
[{"id":"aa52cc3a.cb762","type":"inject","z":"efc1e6ea.7394b8","name":"","topic":"","payload":"","payloadType":"str","repeat":"5","crontab":"","once":true,"x":167,"y":124,"wires":[["d0abb1a3.dc985"]]},{"id":"ce04b58e.13005","type":"function","z":"efc1e6ea.7394b8","name":"","func":"\nmsg.payload={'d':{'temp':Number(msg.payload.substring(5,9))}};\nreturn msg;","outputs":1,"noerr":0,"x":534.8499755859375,"y":121.42999267578125,"wires":[["6f5d4d10.38a10c"]]},{"id":"d0abb1a3.dc985","type":"exec","z":"efc1e6ea.7394b8","command":"vcgencmd","addpay":true,"append":"measure_temp","useSpawn":"","timer":"","name":"","x":337,"y":124.92999267578125,"wires":[["ce04b58e.13005"],[],[]]},{"id":"6f5d4d10.38a10c","type":"debug","z":"efc1e6ea.7394b8","name":"","active":true,"console":"false","complete":"false","x":709,"y":122,"wires":[]},{"id":"23dd7e8d.4479ea","type":"rpi-sensehatsim in","z":"efc1e6ea.7394b8","name":"","motion":false,"env":true,"stick":false,"x":178,"y":221,"wires":[["991a6ada.4b30d8"]]},{"id":"4176e72.f6fe218","type":"debug","z":"efc1e6ea.7394b8","name":"","active":true,"console":"false","complete":"false","x":647,"y":223,"wires":[]},{"id":"991a6ada.4b30d8","type":"delay","z":"efc1e6ea.7394b8","name":"","pauseType":"delay","timeout":"20","timeoutUnits":"seconds","rate":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":393,"y":218,"wires":[["4176e72.f6fe218"]]}]



Ahora enlisto los flujos modificados para funcionar con la nube:

 Este es el flujo para mandar y recibir comandos desde la nube:
 

El código:
[{"id":"847c4c02.169d18","type":"inject","z":"b7b06d0a.d0b9b","name":"","topic":"verde","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":107.75,"y":95.00000762939453,"wires":[["bf27053f.50cbc8"]]},{"id":"44a8fa1b.690444","type":"inject","z":"b7b06d0a.d0b9b","name":"","topic":"rojo","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"x":106.75,"y":169,"wires":[["f1fc518.562563"]]},{"id":"bf27053f.50cbc8","type":"ibmiot out","z":"b7b06d0a.d0b9b","authentication":"boundService","apiKey":"","outputType":"cmd","deviceId":"gate_rPi3_1","deviceType":"gate_rPi3","eventCommandType":"verde","format":"json","data":"1","qos":0,"name":"IBM IoT","service":"registered","x":266.74998474121094,"y":98.33334350585938,"wires":[]},{"id":"f1fc518.562563","type":"ibmiot out","z":"b7b06d0a.d0b9b","authentication":"boundService","apiKey":"","outputType":"cmd","deviceId":"gate_rPi3_1","deviceType":"gate_rPi3","eventCommandType":"rojo","format":"json","data":"0","qos":0,"name":"IBM IoT","service":"registered","x":264.74998474121094,"y":172.33334350585938,"wires":[]},{"id":"3f9497b4.6ade68","type":"ibmiot in","z":"b7b06d0a.d0b9b","authentication":"boundService","apiKey":"","inputType":"evt","deviceId":"disp_rPi3_1","applicationId":"","deviceType":"disp_rPi3","eventType":"+","commandType":"","format":"json","name":"IBM IoT","service":"registered","allDevices":"","allApplications":"","allDeviceTypes":"","allEvents":true,"allCommands":"","allFormats":"","qos":0,"x":97.75,"y":269.49998474121094,"wires":[["ebef400d.264c38"]]},{"id":"ebef400d.264c38","type":"debug","z":"b7b06d0a.d0b9b","name":"","active":true,"console":"false","complete":"false","x":271.74998474121094,"y":269.49998474121094,"wires":[]}]



Estos son los flujos modificados en raspberry para interactuar con la nube:


Para cambiar el estado del display:
 
Este es el código:

[{"id":"ae602619.6962c","type":"rpi-sensehatsim out","z":"d6be84be.dd29f","name":"","x":536,"y":209,"wires":[]},{"id":"f8862c66.98ddc","type":"inject","z":"d6be84be.dd29f","name":"","topic":"verde","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"x":129,"y":151,"wires":[["7867d97b.ddf1d8"]]},{"id":"3d31a4ba.372a34","type":"inject","z":"d6be84be.dd29f","name":"","topic":"marron","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"x":127,"y":246,"wires":[["e0adae54.391e9"]]},{"id":"7867d97b.ddf1d8","type":"function","z":"d6be84be.dd29f","name":"","func":"var marron=\"#800000\";\nvar verde=\"#008000\";\nvar negro=\"#000000\";\nvar plata=\"#C0C0C0\";\nvar color=verde;\nmsg.payload=\"0,0,\"+color+\",0,1,\"+color+\",0,2,\"+color+\",0,3,\"+color+\",0,4,\"+color+\",0,5,\"+color+\",0,6,\"+color+\",0,7,\"+color+\n            \",1,0,\"+color+\",1,1,\"+color+\",1,2,\"+color+\",1,3,\"+color+\",1,4,\"+color+\",1,5,\"+color+\",1,6,\"+color+\",1,7,\"+color+\n            \",2,0,\"+color+\",2,1,\"+color+\",2,2,\"+color+\",2,3,\"+color+\",2,4,\"+color+\",2,5,\"+color+\",2,6,\"+color+\",2,7,\"+color+\n            \",3,0,\"+color+\",3,1,\"+color+\",3,2,\"+color+\",3,3,\"+color+\",3,4,\"+color+\",3,5,\"+color+\",3,6,\"+color+\",3,7,\"+color+\n            \",4,0,\"+color+\",4,1,\"+color+\",4,2,\"+color+\",4,3,\"+color+\",4,4,\"+color+\",4,5,\"+color+\",4,6,\"+color+\",4,7,\"+color+\n            \",5,0,\"+color+\",5,1,\"+color+\",5,2,\"+color+\",5,3,\"+color+\",5,4,\"+color+\",5,5,\"+color+\",5,6,\"+color+\",5,7,\"+color+\n            \",6,0,\"+color+\",6,1,\"+color+\",6,2,\"+color+\",6,3,\"+color+\",6,4,\"+color+\",6,5,\"+color+\",6,6,\"+color+\",6,7,\"+color+\n            \",7,0,\"+color+\",7,1,\"+color+\",7,2,\"+color+\",7,3,\"+color+\",7,4,\"+color+\",7,5,\"+color+\",7,6,\"+color+\",7,7,\"+color;\nreturn msg;","outputs":1,"noerr":0,"x":303,"y":166,"wires":[["ae602619.6962c","ae027b2b.8e903"]]},{"id":"e0adae54.391e9","type":"function","z":"d6be84be.dd29f","name":"","func":"var marron=\"#800000\";\nvar verde=\"#008000\";\nvar negro=\"#000000\";\nvar plata=\"#C0C0C0\";\nvar color=marron;\nmsg.payload=\"0,0,\"+color+\",0,1,\"+color+\",0,2,\"+color+\",0,3,\"+color+\",0,4,\"+color+\",0,5,\"+color+\",0,6,\"+color+\",0,7,\"+color+\n            \",1,0,\"+color+\",1,1,\"+color+\",1,2,\"+color+\",1,3,\"+color+\",1,4,\"+color+\",1,5,\"+color+\",1,6,\"+color+\",1,7,\"+color+\n            \",2,0,\"+color+\",2,1,\"+color+\",2,2,\"+color+\",2,3,\"+color+\",2,4,\"+color+\",2,5,\"+color+\",2,6,\"+color+\",2,7,\"+color+\n            \",3,0,\"+color+\",3,1,\"+color+\",3,2,\"+color+\",3,3,\"+color+\",3,4,\"+color+\",3,5,\"+color+\",3,6,\"+color+\",3,7,\"+color+\n            \",4,0,\"+color+\",4,1,\"+color+\",4,2,\"+color+\",4,3,\"+color+\",4,4,\"+color+\",4,5,\"+color+\",4,6,\"+color+\",4,7,\"+color+\n            \",5,0,\"+color+\",5,1,\"+color+\",5,2,\"+color+\",5,3,\"+color+\",5,4,\"+color+\",5,5,\"+color+\",5,6,\"+color+\",5,7,\"+color+\n            \",6,0,\"+color+\",6,1,\"+color+\",6,2,\"+color+\",6,3,\"+color+\",6,4,\"+color+\",6,5,\"+color+\",6,6,\"+color+\",6,7,\"+color+\n            \",7,0,\"+color+\",7,1,\"+color+\",7,2,\"+color+\",7,3,\"+color+\",7,4,\"+color+\",7,5,\"+color+\",7,6,\"+color+\",7,7,\"+color;\nreturn msg;","outputs":1,"noerr":0,"x":298,"y":246,"wires":[["ae602619.6962c","13df3a30.5b83b6"]]},{"id":"ae027b2b.8e903","type":"debug","z":"d6be84be.dd29f","name":"","active":true,"console":"false","complete":"false","x":507,"y":119,"wires":[]},{"id":"13df3a30.5b83b6","type":"debug","z":"d6be84be.dd29f","name":"","active":true,"console":"false","complete":"false","x":450,"y":292,"wires":[]},{"id":"e6689ab5.4e6478","type":"wiotp in","z":"d6be84be.dd29f","authType":"g","deviceKey":"45e39e6a.449688","deviceType":"","deviceId":"","command":"verde","commandType":"g","name":"","x":129,"y":74,"wires":[["7867d97b.ddf1d8"]]},{"id":"7bdd92dd.9902ec","type":"wiotp in","z":"d6be84be.dd29f","authType":"g","deviceKey":"45e39e6a.449688","deviceType":"","deviceId":"","command":"rojo","commandType":"g","name":"","x":115,"y":313,"wires":[["e0adae54.391e9"]]},{"id":"45e39e6a.449688","type":"wiotp-credentials","z":"d6be84be.dd29f","name":"","org":"qvazg2","devType":"gate_rPi3","devId":"gate_rPi3_1"}]

El flujo para loggear información:


Código
[{"id":"a12b8eae.d1f268","type":"inject","z":"bc426bc4.578298","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":true,"x":136,"y":167,"wires":[["47b8afc4.5e2a6"]]},{"id":"c0b363aa.aae708","type":"function","z":"bc426bc4.578298","name":"","func":"\nmsg.payload={'d':{'temp':Number(msg.payload.substring(5,9))}};\nreturn msg;","outputs":1,"noerr":0,"x":503.8499755859375,"y":164.42999267578125,"wires":[["5180bd4a.aa2634","9194d2d.5199bb"]]},{"id":"47b8afc4.5e2a6","type":"exec","z":"bc426bc4.578298","command":"vcgencmd","addpay":true,"append":"measure_temp","useSpawn":"","timer":"","name":"","x":306,"y":167.92999267578125,"wires":[["c0b363aa.aae708"],[],[]]},{"id":"5180bd4a.aa2634","type":"debug","z":"bc426bc4.578298","name":"","active":true,"console":"false","complete":"false","x":678,"y":165,"wires":[]},{"id":"ec6c6897.29818","type":"rpi-sensehatsim in","z":"bc426bc4.578298","name":"","motion":false,"env":true,"stick":false,"x":147,"y":264,"wires":[["aa1639b.06a18c8"]]},{"id":"2b945deb.69f242","type":"debug","z":"bc426bc4.578298","name":"","active":true,"console":"false","complete":"false","x":746,"y":270,"wires":[]},{"id":"aa1639b.06a18c8","type":"delay","z":"bc426bc4.578298","name":"","pauseType":"delay","timeout":"40","timeoutUnits":"seconds","rate":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":362,"y":261,"wires":[["fab4d309.d74518"]]},{"id":"fab4d309.d74518","type":"function","z":"bc426bc4.578298","name":"","func":"var temp=msg.payload.temperature;\nmsg.payload=\"{d:{tempAmb:\"+temp+\"}\";\nreturn msg;","outputs":1,"noerr":0,"x":535,"y":267,"wires":[["2b945deb.69f242","81d676d2.e35ef8"]]},{"id":"9194d2d.5199bb","type":"wiotp out","z":"bc426bc4.578298","authType":"d","qs":"false","qsDeviceId":"","deviceKey":"115ca857.de9e58","deviceType":"","deviceId":"","event":"event","format":"json","name":"","x":658,"y":98,"wires":[]},{"id":"81d676d2.e35ef8","type":"wiotp out","z":"bc426bc4.578298","authType":"d","qs":"false","qsDeviceId":"","deviceKey":"115ca857.de9e58","deviceType":"","deviceId":"","event":"event","format":"json","name":"","x":652,"y":355,"wires":[]},{"id":"115ca857.de9e58","type":"wiotp-credentials","z":"bc426bc4.578298","name":"","org":"qvazg2","devType":"disp_rPi3","devId":"disp_rPi3_1"}]