Projekt-Beschreibung

Die Grundidee des Projekts ist ein elektronisches Fahrtenbuch. Hierzu wird der RaspberryPi mit zusätzlicher Hardware im Auto platziert und sendet die gefahrene Strecke an einen Webserver. Der Fahrer identifiziert sich über eine RFID-Karte. So kann die Fahrt einer Person zugeordnet werden. In einem Webinterface können die Fahrten eingesehen werden. Start- und Ziel-Punkt der Fahrten werden mit einem Adressbuch verknüpft. So soll der Grund der Fahrt (Weg zu Arbeit, Weg zum Kunden, privat) sowie die angefahrenen Orte/Personen automatisch generiert werden. Mit diesen Informationen lässt sich anschließend je Fahrzeug ein Fahrtenbuch erstellen.

Architektur

Hardware

Im Zentrum steht der RaspberryPi. An diesen wird über die GPIO-Schnittstelle ein RFID-Sensor, das GSM- uns GPS-Modul sowie eine RGB-Led angeschlossen. Für die Stromversorgung wird das Bordnetz des KFZ verwendet, auf das mittels USB zugeriffen wird. Um das Senden der Daten im abgestellten KFZ zu ermöglichen, wird eine Puffer-Batterie per Relais zugeschaltet.

Stückliste

Nr. Rubrik Beschreibung Lieferant Artikelnummer Anz. Preis
1 Systemboard Raspberry Pi 3 B Reichelt RASPBERRY PI 3 1 31,90 €*
2a Erweiterungsboard Waveshare GSM GPRS GNSS Bluetooth HAT Welectron 402551 1 29,90 €*
2b Erweiterungsboard SIM 808 GPRS/GSM Shield az-delivery.de 1 29,99 €
2c Erweiterungsboard mini type SIM808 module IPX SMA aliExpress 1 $22,80*
3 Device ACS ACR122U A9 RFID / NFC Reader Identible ACR122UW 1 33,00 €*
3a Erweiterungsboard Joy-IT RFID Modul MFRC-522 Reichelt DEBO RFID RC522 1 9,70 €*
3b Erweiterungsboard RPI EXPLO NFC WW – Raspberry Pi Shield – NFC-konform mit NFC-Karte Reichelt RPI EXPLO NFC WW 1 22,95 €*
4 Erweiterungsboard Joy-IT DEBO LED 8 RGB – LED, 8 mm, RGB Reichelt DEBO LED 8 RGB 1 3,80 €*
5 DC-DC Spannungswandler 12V auf 5V 3A Amazon AM0021CL 1 8,59 €
6 Power Bank, Kinps 10000mAh Portable Externer Akku (Dual Port, Total 5V/3.5A) Amazon KS5-002 1 11,88 €
7 2 Kanal Relais Modul 5V Amazon RBS11615 1 2,45 €*

* eventuell fallen zusätzliche Versandkosten an

Hardware-Skizze

 

Datenbankstruktur

Serverseitig werden die Adressen, Fahrten (directions), Fahrzeuge und Benutzer in einer Datenbank gespeichert. Zudem wird eine View über die Tabellen erzeugt, welche die Daten mit JOINs verbindet.

Folgend sind die SQL-Exporte der Tabellen-Strukturen dargestellt.

CREATE TABLE `adressen` (
`id` int(11) NOT NULL,
`name` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
`typ` tinyint(1) NOT NULL,
`address` varchar(80) COLLATE utf8_unicode_ci NOT NULL,
`lat` double DEFAULT NULL,
`lng` double DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `directions` (
`id` int(11) NOT NULL,
`direction` longtext COLLATE utf8_unicode_ci NOT NULL,
`starttime` datetime NOT NULL,
`user` int(4) NOT NULL,
`fahrzeug` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `fahrzeuge` (
`id` int(11) NOT NULL,
`kennzeichen` char(9) COLLATE utf8_unicode_ci NOT NULL,
`modell` tinytext COLLATE utf8_unicode_ci NOT NULL,
`farbe` char(6) COLLATE utf8_unicode_ci NOT NULL,
`fuel` tinyint(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `users` (
`id` int(11) NOT NULL,
`lname` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`fname` varchar(30) COLLATE utf8_unicode_ci NOT NULL,
`role` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE ALGORITHM=UNDEFINED DEFINER=`user`@`%` SQL SECURITY DEFINER VIEW `getDirections` AS select `d`.`id` AS `id`,`d`.`direction` AS `direction`,`d`.`starttime` AS `starttime`,`d`.`fahrzeug` AS `fahrzeug`,`f`.`kennzeichen` AS `kennzeichen`,`d`.`user` AS `user`,`u`.`lname` AS `lname`,`u`.`fname` AS `fname` from ((`directions` `d` left join `fahrzeuge` `f` on((`d`.`fahrzeug` = `f`.`id`))) left join `users` `u` on((`d`.`user` = `u`.`id`))) ;

ALTER TABLE `adressen`
ADD PRIMARY KEY (`id`),
ADD KEY `id` (`id`);

ALTER TABLE `directions`
ADD PRIMARY KEY (`id`),
ADD KEY `id` (`id`),
ADD KEY `id_2` (`id`);

ALTER TABLE `fahrzeuge`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `id_2` (`id`),
ADD KEY `id` (`id`);

ALTER TABLE `users`
ADD PRIMARY KEY (`id`),
ADD KEY `id` (`id`);

ALTER TABLE `adressen`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `directions`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `fahrzeuge`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE `users`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

Fahrtenbuch (1): Idee und Architektur

2 Gedanken zu „Fahrtenbuch (1): Idee und Architektur

Schreibe einen Kommentar

Zur Werkzeugleiste springen