Skip to content

Instantly share code, notes, and snippets.

@dexterlabora
Last active February 26, 2017 01:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dexterlabora/302c74f398307be0f09e3b2e1ac089b2 to your computer and use it in GitHub Desktop.
Save dexterlabora/302c74f398307be0f09e3b2e1ac089b2 to your computer and use it in GitHub Desktop.
WiFi controlled LEGO train using NodeMCU and aREST - This the Node-RED UI, to be run on a local server such as a Raspberry Pi.
[{"id":"1e952328.aa7cbd","type":"mqtt-broker","z":"a073730a.79863","broker":"52.19.148.133","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willRetain":null,"willPayload":"","birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":""},{"id":"50bfec48.165834","type":"ui_tab","name":"Train","icon":"dashboard","order":"1"},{"id":"36934f45.9d7e","type":"inject","z":"a073730a.79863","name":"Forward","topic":"motor","payload":"1023","payloadType":"str","repeat":"","crontab":"","once":false,"x":120,"y":80,"wires":[["55863283.b31b3c"]]},{"id":"8413bbda.0048b8","type":"inject","z":"a073730a.79863","name":"Stop","topic":"motor","payload":"0","payloadType":"string","repeat":"","crontab":"","once":false,"x":110,"y":160,"wires":[["55863283.b31b3c"]]},{"id":"a640c6b2.71bec8","type":"inject","z":"a073730a.79863","name":"Reverse","topic":"motor","payload":"-1023","payloadType":"string","repeat":"","crontab":"","once":false,"x":120,"y":120,"wires":[["55863283.b31b3c"]]},{"id":"55863283.b31b3c","type":"http request","z":"a073730a.79863","name":"","method":"GET","ret":"txt","url":"http://192.168.0.57/{{{topic}}}?params={{{payload}}}","x":337.69042778015137,"y":118.71423149108887,"wires":[["36cabae.b425646","8154a69b.990af8"]]},{"id":"7472719a.f46a8","type":"ui_gauge","z":"a073730a.79863","tab":"50bfec48.165834","name":"Speed","group":"Horizon Express","order":"1","format":"{{value}}","min":"-1023","max":"1023","x":690,"y":460,"wires":[]},{"id":"36cabae.b425646","type":"http request","z":"a073730a.79863","name":"Status","method":"GET","ret":"txt","url":"192.168.0.57/","x":270,"y":380,"wires":[["bc7a62a7.0da02","50d2b216.018c9c"]]},{"id":"bc7a62a7.0da02","type":"json","z":"a073730a.79863","name":"","x":370,"y":420,"wires":[["62b01086.2ccd","c9ff929.ade117"]]},{"id":"62b01086.2ccd","type":"function","z":"a073730a.79863","name":"speed scale","func":"// Convert the speed from an absolute value with direction\n// to a negative/positive number\nvar speed = msg.payload.variables.speed;\nvar direction = msg.payload.variables.direction;\n\nif (direction === 1){\n msg.payload = -1*speed;\n}else{\n msg.payload = speed;\n}\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":460,"wires":[["7472719a.f46a8"]]},{"id":"8154a69b.990af8","type":"debug","z":"a073730a.79863","name":"HE command","active":true,"console":"false","complete":"true","x":527.6904277801514,"y":118.71423149108887,"wires":[]},{"id":"d5778b8.86efd78","type":"comment","z":"a073730a.79863","name":"Horizon Express - 192.168.0.57","info":"","x":150,"y":40,"wires":[]},{"id":"19f692c1.5a726d","type":"inject","z":"a073730a.79863","name":"Status","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":true,"x":110,"y":380,"wires":[["36cabae.b425646"]]},{"id":"c9ff929.ade117","type":"function","z":"a073730a.79863","name":"trainStatus","func":"// update node status indicator\nif(msg.payload.variables.speed !== undefined){\n if(msg.payload.variables.speed !== 0){\n node.status({fill:\"green\",shape:\"ring\",text:\"moving \"+ msg.payload.variables.speed+\":\"+msg.payload.variables.direction});\n }else{\n node.status({fill:\"red\",shape:\"ring\",text:\"stopped\"});\n }\n}else{\n node.status({fill:\"yellow\",shape:\"ring\",text:\"unknown\"});\n}\n\n\nreturn msg;","outputs":1,"noerr":0,"x":510,"y":400,"wires":[["ddd9bb88.b14cf8"]]},{"id":"8c2ff42d.2931f8","type":"inject","z":"a073730a.79863","name":"Lights On","topic":"lights","payload":"1023","payloadType":"string","repeat":"","crontab":"","once":false,"x":120,"y":240,"wires":[["55863283.b31b3c"]]},{"id":"c2bd31b2.0f1fb","type":"ui_switch","z":"a073730a.79863","tab":"50bfec48.165834","name":"Lights","topic":"lights","group":"Horizon Express","order":"5","onvalue":"1023","offvalue":"0","x":110,"y":320,"wires":[["55863283.b31b3c"]]},{"id":"c946b08b.62cbf","type":"inject","z":"a073730a.79863","name":"Lights Off","topic":"lights","payload":"0","payloadType":"string","repeat":"","crontab":"","once":false,"x":120,"y":280,"wires":[["55863283.b31b3c"]]},{"id":"6a14503a.c1cc","type":"ui_button_row","z":"a073730a.79863","tab":"50bfec48.165834","name":"Motor","topic":"motor","group":"Horizon Express","order":1,"toggle":false,"buttons":[{"payload":"-1023","icon":"arrow_back","color":"black","on_icon":"arrow_back","on_color":"green"},{"payload":"-900","icon":"chevron_left","color":"black","on_icon":"chevron_left","on_color":"green"},{"payload":"0","icon":"cancel","color":"black","on_icon":"close","on_color":"red"},{"payload":"900","icon":"chevron_right","color":"black","on_icon":"chevron_right","on_color":"green"},{"payload":"1023","icon":"arrow_forward","color":"black","on_icon":"arrow_forward","on_color":"green"}],"inputs":0,"x":110,"y":200,"wires":[["55863283.b31b3c"]]},{"id":"ddd9bb88.b14cf8","type":"function","z":"a073730a.79863","name":"format status for UI","func":"msg.payload = msg.payload.variables.lights || 0;\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":400,"wires":[["c2bd31b2.0f1fb"]]},{"id":"b7c7dd45.e1158","type":"mqtt in","z":"a073730a.79863","name":"","topic":"/trains/horizonexpress/motor","broker":"1e952328.aa7cbd","x":180,"y":520,"wires":[["97b2840.630aa8"]]},{"id":"97b2840.630aa8","type":"http request","z":"a073730a.79863","name":"","method":"GET","ret":"txt","url":"http://192.168.0.57/motor?params={{{payload}}}","x":390,"y":520,"wires":[["7be635cc.f0d0fc","36cabae.b425646"]]},{"id":"7be635cc.f0d0fc","type":"debug","z":"a073730a.79863","name":"HE MQTT command","active":true,"console":"false","complete":"payload","x":620,"y":520,"wires":[]},{"id":"50d2b216.018c9c","type":"mqtt out","z":"a073730a.79863","name":"","topic":"/trains/horizonexpress/status","qos":"","retain":"","broker":"1e952328.aa7cbd","x":560,"y":320,"wires":[]},{"id":"6971ce71.87e6d","type":"mqtt in","z":"a073730a.79863","name":"","topic":"/trains/#","broker":"1e952328.aa7cbd","x":120,"y":700,"wires":[["12449aed.18e785"]]},{"id":"12449aed.18e785","type":"debug","z":"a073730a.79863","name":"MQTT /trains/#","active":true,"console":"false","complete":"payload","x":300,"y":700,"wires":[]},{"id":"54afd810.7711d8","type":"mqtt in","z":"a073730a.79863","name":"","topic":"/trains/horizonexpress/lights","broker":"1e952328.aa7cbd","x":180,"y":580,"wires":[["153bfc6f.651564"]]},{"id":"153bfc6f.651564","type":"http request","z":"a073730a.79863","name":"","method":"GET","ret":"txt","url":"http://192.168.0.57/lights?params={{{payload}}}","x":390,"y":580,"wires":[["c9476f8a.bdc17","36cabae.b425646"]]},{"id":"c9476f8a.bdc17","type":"debug","z":"a073730a.79863","name":"HE MQTT command","active":true,"console":"false","complete":"payload","x":620,"y":580,"wires":[]}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment