Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 27 Next »

Table of Contents

Telemetry System

The new telemetry system uses a Raspberry Pi to collect CAN messages from the vehicle along with metrics such as GPS coordinates. We use Node-Red to collect this data and also send it to FRED’s Node-Red which will store our data in the cloud and allow us to pull data from InfluxDB which is hosted by FRED. We also have a DBC file that helps us translate what each CAN message-id and data mean.

Setup

The link below shows how to generate the DBC file used to translate all the CAN messages.

https://uwmidsun.atlassian.net/wiki/spaces/ELEC/pages/1395032080/Telemetry%2BSet%2BUp

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)

We can set up the Raspberry Pi such that we can send data over both LTE and wifi depending on the location of the vehicle and our situation. We can set this up on the Pi by following instructions provided here or read the short version below.

Assign each interface IP address using ifconfig to set up multihoming.

Example:

ifconfig eth0 192.168.1.254 up
ifconfig eth1 192.168.2.254 up

Aggregating Data

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 as shown below.

CAN Messages

Property

Sample Value

Datetime

2020-01-20 03:14:07

Name

MOTOR_CONTROLLER_VC

Sender

MOTOR_CONTROLLER

Data

{

'mc_voltage1':1234,

‘mc_current1’:1

)

GPS Data

Property

Value

Decoded

Datetime

030620 044747.0

June 3, 2020 4:47:47.0

Latitude

3722.117666

37° 22.117666'

Latitude Direction

N

North

Longitude

12200.011971

122° 00.011971'

Longitude Direction

W

West

Altitude (meters)

11.6

11.6

Speed (knots = 1.852 km/h)

0.0

0.0

Course (degrees)

0.0

0.0

The aggregate_can_data.py script allows us to grab data from the CAN bus, decode the message with our DBC file, write to a CSV, send to FRED with MQTT, and send to DynamoDB.

The GPS.py script allows us to grab GPS data from the vehicle.

Storing Data on the Raspberry Pi

In terms of storing data locally on the Raspberry Pi, the Python script aggregate_can_data.py 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.

Format of CAN Messages and GPS Data in DynamoDB

Property

Value

Decoded

Latitude

3722.117666,N

37° 22.117666' N

Longitude

12200.011971,W

122° 00.011971' W

UTC Date

030620

June 3, 2020

UTC Time

044747.0

4:47:47.0

Altitude (meters)

11.6

11.6

Speed (knots = 1.852 km/h)

0.0

0.0

Course (degrees)

0.0

0.0

  • No labels