...
The link below shows how to set up Node-Red , InfluxDB, and Grafana locally on the Raspberry Pi.
Telemetry: Setting up Node-Red, Chronograf, and Grafana
...
Connecting Device Node-Red to Cloud Node-Red
FRED
Link to FRED. This is the system we will be using that hosts Node-Red and InfluxDB on the cloud.
Multiple Network Interface Traffic (Multihoming)
...
# ifconfig eth0 192.168.1.254 up
# ifconfig eth1 192.168.2.254 up
FRED
Link to FRED. This is the system we will be using that hosts Node-Red and InfluxDB on the cloud.
Long Term Storage
In terms of storing data locally on the Raspberry Pi, Node-Red can directly output the data to a CSV file locally on the Raspberry Pi. These files can be manually moved to Google Drive if necessary. The youtube tutorial below explains how to use the CSV node in Node-Red.
...
For our purposes, the setup should look something like this.
...
Aggregating the CAN Messages
Since there is a flutter app that analyzes the CAN data and provides us with metrics on the vehicle, we need to be able to send WebSocket messages to the flutter app which can be set up through Node-Red. However, we also need to format these WebSocket messages as a JSON, similar to what is shown below.
Code Block |
---|
{
"speed" : num,
"errors" : [],
"right_turn" : bool,
"left_turn" : bool,
"soc" : {
battery_percent : num,
...
},
drive_state : "",
cruise_control : bool
} |
Currently, the messages that Node-Red receives from vcan0 are like the object below, so we need to use the generated DBC file to translate these messages for the flutter app.
Code Block |
---|
{
"ext":false,
"rtr":false,
"canid":123,
"dlc":5,
"data":[1,2,3,4,5]}
} |