Cum mi-am conectat masina la o platforma de bigdata -part1

Salut ! Azi o sa va povestesc cum am reusit sa trimit date in timp real de la masina catre un cluster de big data.

Tools used:

  1. Mufa Obd elm327

2. Raspberry PI 4 – cu Apache MiNiFI

3. Cluster de big data cu Apache Nifi

Pasul 1

Pregatirea flowului de preluare de fisier in Nifi si pregatirea flowului de MiNifi .

Pasul 2

Instalarea MiNiFi pe Raspberry Pi

Eu am instalat releasul de Java, iar toolkitul l-am recompilat intrucat are un bug la transformarea templateului de xml in config.yml.

https://nifi.apache.org/minifi/download.html

Se exporta templateul facut in Apache Nifi, se incarca pe Raspberry PI, si se apeleza nifi -toolkit pt obtinerea fisierului config.yml.

  • Start apache minifi pe raspberry

Pasul 3

Am conectat Raspberry Pi la mufa OBD. Conexiunea este pe bluetooth.

bluetoothctl
help <-- see all the commands
show
power on
pairable on
agent on <-- used for persisting pairing code
default-agent
scan on <-- find OBDII and its MAC address
pair <mac_address> <-- enter pin 1234
trust <mac_address> <-- this will allow Pi to automatically pair with the device next time
scan off
quit

Am facut un serial port pentru a fi accesibil din python :

sudo rfcomm bind hci0 <mac_address>

Pasul 4

Obtinerea datelor in timp real de la masina 🙂

Pentru asta am folosit o librarie obd-python https://python-obd.readthedocs.io/en/latest/

sudo pip3 install obd

Scriptul in python

https://github.com/kosminus/bigdata/blob/master/obd-car.py

Acest script se conecteaza la interfata OBD de la masina , citeste viteza si turatiile motorului, la fiecare 10 secunde, apoi le salveaza intr-un fisier cu timestamp.

Fisiele sunt copiate in folderul pe minifi iar apoi sunt trimise catre clusterul de bigdata unde este instalat Apache Nifi.

Pasul 5

Preluarea fisierelor din cluster

Urmeaza part2 cu preluarea lor in Kafka, analiza in Spark si salvarea in storage Cassandra 🙂

De ce bigdata ? Pentru ca solutia e scalabila si poate prelua date prin minifi de la mii de masini in real time .

About the author: cosmin chauciuc

Leave a Reply

Your email address will not be published.