ModbusRTU-Vibration&Temperature-Sensor
This flow takes Vibration and Temperature Data from a Machine Saver VTB Vibration Sensor via serial connection.
It then parses the binary buffers and converts them into integers, floats, etc (whatever the useful format is) and passes them to a simple graphical user interface.
[{"id":"aacb417.f86dbc","type":"tab","label":"VTBSensor Serial Flow","disabled":false,"info":"Reading Temperature Value (16-bit Signed Integer)\n\nReading Velocity Value (32-Bit Unsigned Float)\n\nReading Acceleration Value (32-Bit Unsigned Float)"},{"id":"34992ee8.4adff2","type":"function","z":"aacb417.f86dbc","name":"Convert Raw Temperature to Degrees Celsius","func":"// save the value & remove trailing decimal places\nvalue = msg.payload;\nmsg.payload = value/10;\nreturn msg;","outputs":1,"noerr":0,"x":560,"y":100,"wires":[["7251fe8.d5299","b132b43d.3718f8"]]},{"id":"7f7ec293.625efc","type":"function","z":"aacb417.f86dbc","name":"Convert Raw Temperature to Degrees Fahrenheit","func":"// save the value\nvalue = msg.payload;\nvalue2 = value/10*1.8+32;\nvalue3 = value2.toFixed(2);\nmsg.payload = value3;\nreturn msg;","outputs":1,"noerr":0,"x":570,"y":180,"wires":[["e8866cbf.ffa5c","db6e05be.668bb8"]]},{"id":"e8866cbf.ffa5c","type":"ui_gauge","z":"aacb417.f86dbc","name":"","group":"35309987.d931b6","order":1,"width":0,"height":0,"gtype":"gage","title":"Temperature (F)","label":"units","format":"{{value}}","min":"32","max":"221","colors":["#0050b5","#7f7f7f","#ca3838"],"seg1":"","seg2":"","x":890,"y":180,"wires":[]},{"id":"b132b43d.3718f8","type":"ui_gauge","z":"aacb417.f86dbc","name":"","group":"35309987.d931b6","order":3,"width":0,"height":0,"gtype":"gage","title":"Temperature (C)","label":"units","format":"{{value}}","min":0,"max":"105","colors":["#0050b5","#7f7f7f","#ca3838"],"seg1":"","seg2":"","x":890,"y":100,"wires":[]},{"id":"7251fe8.d5299","type":"ui_chart","z":"aacb417.f86dbc","name":"","group":"35309987.d931b6","order":4,"width":0,"height":0,"label":"Historical Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":true,"ymin":"0","ymax":"105","removeOlder":"1","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":910,"y":60,"wires":[[],[]]},{"id":"db6e05be.668bb8","type":"ui_chart","z":"aacb417.f86dbc","name":"","group":"35309987.d931b6","order":2,"width":0,"height":0,"label":"Historical Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":true,"ymin":"32","ymax":"221","removeOlder":"1","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":910,"y":140,"wires":[[],[]]},{"id":"6e78a69e.b202d8","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Temperature from Sensor 15","topic":"","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"31","quantity":"1","rate":"5","rateUnit":"s","delayOnStart":false,"startDelayTime":"","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":190,"y":100,"wires":[["34992ee8.4adff2","7f7ec293.625efc"],[]]},{"id":"36461e7a.235e82","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Acceleration A1 from Sensor 15","topic":"A1","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"172","quantity":"2","rate":"500","rateUnit":"ms","delayOnStart":true,"startDelayTime":".1","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":200,"y":260,"wires":[["fc8b74c9.8307b8"],[]]},{"id":"d8e6c675.470608","type":"function","z":"aacb417.f86dbc","name":"Buffer to Single 32-Bit Float & Round to 3 Decimal Places","func":"var rawData = new ArrayBuffer(4);\nvar intView = new Uint16Array(rawData);\nvar fltView = new Float32Array(rawData);\n\n\nintView[0] = msg.payload[1]; //low\nintView[1] = msg.payload[0]; //high\n\n\nmsg.payload = fltView[0].toFixed(3);\nmsg.topic = \"Axis_2\"\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":320,"wires":[["a06eabb2.d07a48"]]},{"id":"1179db34.59e9d5","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Acceleration A2 from Sensor 15","topic":"A2","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"174","quantity":"2","rate":"500","rateUnit":"ms","delayOnStart":true,"startDelayTime":".2","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":200,"y":320,"wires":[["d8e6c675.470608"],[]]},{"id":"415253c5.74d6cc","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Acceleration A3 from Sensor 15","topic":"A3","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"176","quantity":"2","rate":"500","rateUnit":"ms","delayOnStart":true,"startDelayTime":".3","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":200,"y":380,"wires":[["6ad75e5.56da1a"],[]]},{"id":"6ad75e5.56da1a","type":"function","z":"aacb417.f86dbc","name":"Buffer to Single 32-Bit Float & Round to 3 Decimal Places","func":"var rawData = new ArrayBuffer(4);\nvar intView = new Uint16Array(rawData);\nvar fltView = new Float32Array(rawData);\n\n\nintView[0] = msg.payload[1]; //low\nintView[1] = msg.payload[0]; //high\n\n\nmsg.payload = fltView[0].toFixed(3);\nmsg.topic = \"Axis_3\"\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":380,"wires":[["a06eabb2.d07a48"]]},{"id":"fc8b74c9.8307b8","type":"function","z":"aacb417.f86dbc","name":"Buffer to Single 32-Bit Float & Round to 3 Decimal Places","func":"var rawData = new ArrayBuffer(4);\nvar intView = new Uint16Array(rawData);\nvar fltView = new Float32Array(rawData);\n\n\nintView[0] = msg.payload[1]; //low\nintView[1] = msg.payload[0]; //high\n\n\nmsg.payload = fltView[0].toFixed(3);\nmsg.topic = \"Axis_1\";\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":260,"wires":[["a06eabb2.d07a48"]]},{"id":"a06eabb2.d07a48","type":"ui_chart","z":"aacb417.f86dbc","name":"","group":"35309987.d931b6","order":6,"width":"0","height":"0","label":"Acceleration","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Waiting For Data","dot":true,"ymin":"0","ymax":".5","removeOlder":"1","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#daff00","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":950,"y":320,"wires":[[],[]]},{"id":"11144b93.7e40b4","type":"comment","z":"aacb417.f86dbc","name":"Single Sensor Vibration and Temperature Data","info":"These are main Overall Data Values for a single VTB Sensor.\nThis has a simple user interface attached which may be accessed via your system's web browser @ localhost:1880/ui\n","x":210,"y":40,"wires":[]},{"id":"e87a3168.dcc0f","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Acceleration A1 from Sensor 15","topic":"A1","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"172","quantity":"2","rate":"500","rateUnit":"ms","delayOnStart":true,"startDelayTime":".4","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":200,"y":440,"wires":[["1bb465c9.71b3aa"],[]]},{"id":"8f99b7e4.af6168","type":"function","z":"aacb417.f86dbc","name":"Buffer to Single 32-Bit Float & Round to 3 Decimal Places","func":"var rawData = new ArrayBuffer(4);\nvar intView = new Uint16Array(rawData);\nvar fltView = new Float32Array(rawData);\n\n\nintView[0] = msg.payload[1]; //low\nintView[1] = msg.payload[0]; //high\n\n\nmsg.payload = fltView[0].toFixed(3);\nmsg.topic = \"Axis_2\";\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":500,"wires":[["5bc5a5b8.656b3c"]]},{"id":"a765c000.05c53","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Acceleration A2 from Sensor 15","topic":"A2","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"174","quantity":"2","rate":"500","rateUnit":"ms","delayOnStart":true,"startDelayTime":".5","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":200,"y":500,"wires":[["8f99b7e4.af6168"],[]]},{"id":"c386118e.1e2ad","type":"modbus-read","z":"aacb417.f86dbc","name":"Read Acceleration A3 from Sensor 15","topic":"A3","showStatusActivities":false,"logIOActivities":false,"showErrors":false,"unitid":"15","dataType":"HoldingRegister","adr":"176","quantity":"2","rate":"500","rateUnit":"ms","delayOnStart":true,"startDelayTime":".6","server":"2a03a997.f6a7a6","useIOFile":false,"ioFile":"","useIOForPayload":false,"x":200,"y":560,"wires":[["3f3632bf.72edbe"],[]]},{"id":"3f3632bf.72edbe","type":"function","z":"aacb417.f86dbc","name":"Buffer to Single 32-Bit Float & Round to 3 Decimal Places","func":"var rawData = new ArrayBuffer(4);\nvar intView = new Uint16Array(rawData);\nvar fltView = new Float32Array(rawData);\n\n\nintView[0] = msg.payload[1]; //low\nintView[1] = msg.payload[0]; //high\n\n\nmsg.payload = fltView[0].toFixed(3);\nmsg.topic = \"Axis_3\";\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":560,"wires":[["5bc5a5b8.656b3c"]]},{"id":"1bb465c9.71b3aa","type":"function","z":"aacb417.f86dbc","name":"Buffer to Single 32-Bit Float & Round to 3 Decimal Places","func":"var rawData = new ArrayBuffer(4);\nvar intView = new Uint16Array(rawData);\nvar fltView = new Float32Array(rawData);\n\n\nintView[0] = msg.payload[1]; //low\nintView[1] = msg.payload[0]; //high\n\n\nmsg.payload = fltView[0].toFixed(3);\nmsg.topic = \"Axis_1\";\nreturn msg;","outputs":1,"noerr":0,"x":620,"y":440,"wires":[["5bc5a5b8.656b3c"]]},{"id":"5bc5a5b8.656b3c","type":"ui_chart","z":"aacb417.f86dbc","name":"","group":"35309987.d931b6","order":6,"width":"0","height":"0","label":"Velocity","chartType":"line","legend":"true","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Waiting For Data","dot":true,"ymin":"0","ymax":".5","removeOlder":"1","removeOlderPoints":"","removeOlderUnit":"60","cutout":0,"useOneColor":false,"colors":["#daff00","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":940,"y":500,"wires":[[],[]]},{"id":"35309987.d931b6","type":"ui_group","z":"","name":"Home","tab":"26d2154e.1d6c5a","disp":true,"width":"6","collapse":false},{"id":"2a03a997.f6a7a6","type":"modbus-client","z":0,"name":"Raspberry Pi Serial","clienttype":"serial","bufferCommands":true,"stateLogEnabled":false,"tcpHost":"127.0.0.1","tcpPort":"15502","tcpType":"DEFAULT","serialPort":"/dev/ttyUSB0","serialType":"RTU-BUFFERD","serialBaudrate":"115200","serialDatabits":"8","serialStopbits":"1","serialParity":"none","serialConnectionDelay":"500","unit_id":"","commandDelay":100,"clientTimeout":1000,"reconnectTimeout":2000},{"id":"26d2154e.1d6c5a","type":"ui_tab","z":"","name":"Sensor Values","icon":"dashboard","disabled":false,"hidden":false}]