Frage: RPi als USB Datenserver

  • Hallo zusammen,

    ich habe folgende Problematik.
    Unsere Firma besitzt eine digitale Dieseltankstelle, die alle Tankungen intern Speichert.
    Man kann diese Daten über eine Schnittstelle auf einen USB Stick übertragen lassen.

    Leider besitzt sie keine WLAN oder LAN Schnittstelle.

    Ich hatte nun den Einfall die Übertragung der Daten mittels eines RPI zu realisieren, dass man nicht ständig mit einem Stick zur Tankstelle rennen muss.
    Ist das prinzipiell möglich?

    Wenn ja hat jemand einen Ansatz für mich, dies zu realisieren.

    Vielen Dank für die Hilfe.

    Beste Grüße
    Der Wels

  • Zitat

    digitale Dieseltankstelle

    :s

    Der is gut! Hätte ich auch gerne dann muss ich nicht mehr zur Tanke.

    Ich vermute ihr habt hier die Software von AralFleet oder sowas ähnliches in Einsatz die festhält welcher Fahrer wo fährt und getankt hat. Die Schnittstelle zum Datenexport kann doch überall auf dem Rechner speichern und ich gehe davon aus der hat auch einen Netzwerkanschluss. Muss ja kein USB Stick sein, ich würd das evtl. auf ein Netzlaufwerk speichern. Was mir nicht klar ist, wieso musst du mit dem USB Stick zu Tanke rennen? Das erschließt sich mir nicht.

  • Naja, so wie ich das verstehe, hat seine Firma eine digitale Tanksäule, wo man zur Tankdatenerfassung einen USB-Stick einstecken kann.

    Interessant wäre, um welchen Tankautomaten es sich überhaupt handelt?

    Beachten muss man bei seiner Überlegung: USB-Master und USB-Slave. Ein normaler Pi kann nicht als USB-Slave fungieren, das geht nur mit USB-OTG und den hat nur ein PiZero/A/A+. Die anderen Pi's haben einen USB-Controller und somit USB-Host.
    Er könnte also einen PiZeroW zu einem "Mass Storage Device" machen, in die Tanksäule einstecken und dann via WLAN auf die Daten zugreifen....

  • Zitat von "meigrafd" pid='299689' dateline='1505383538'


    Naja, so wie ich das verstehe, hat seine Firma eine digitale Tanksäule, wo man zur Tankdatenerfassung einen USB-Stick einstecken kann.

    Interessant wäre, um welchen Tankautomaten es sich überhaupt handelt?

    Beachten muss man bei seiner Überlegung: USB-Master und USB-Slave. Ein normaler Pi kann nicht als USB-Slave fungieren, das geht nur mit USB-OTG und den hat nur ein PiZero/A/A+. Die anderen Pi's haben einen USB-Controller und somit USB-Host.
    Er könnte also einen PiZeroW zu einem "Mass Storage Device" machen, in die Tanksäule einstecken und dann via WLAN auf die Daten zugreifen....


    Korrekt.
    Wir sind ein Busunternehmen und haben für unsere Flotte eine eigene Tankstelle.

    Ja das mit dem Master/Slave war auch der Gedankengang, der mich dazu gebracht hat diesen Post hier zu eröffnen.
    Das mit dem Zero habe ich auch in meinen Google Recherchen irgendwo gelesen.
    Die Problematik hier wäre nur die Anbindung via WLAN. Der Zero hat meines Wissens ja nur einen USB Anschluss und keinen integrierten Netzwerkadapter oder liege ich da falsch?

    /edit
    Achso es handelt sich um einen Tankautomat von TECALEMIT

    Einmal editiert, zuletzt von P4nz3rwels (14. September 2017 um 12:49)

  • Zitat von "P4nz3rwels" pid='299696' dateline='1505386140'


    Der Zero hat meines Wissens ja nur einen USB Anschluss und keinen integrierten Netzwerkadapter oder liege ich da falsch?

    Es gibt den PiZero, der hat kein integriertes WLAN.
    Aber später kam der PiZeroW heraus, der hat ebenso wie der Pi3B integriertes WLAN ;)

    Wie gesagt käme kein "normaler" Pi für dein Vorhaben in Frage. Du kannst keinen Pi3B o.ä. zu einem Mass-Storage-Device machen weil bei denen ein USB-Controller verbaut ist.

    Background:
    Der SoC der Pi's hat intern einen einzigen USB Port. Das ist ein USB-OTG den man in Master oder Slave versetzen kann. Bei den "normalen" RaspberryPi's ist an diesen einen USB-Port vom SoC ein USB-Hub-Controller angeschlossen, der wiederum die weiteren USB-Ports sowie LAN zur Verfügung stellt.

    Bei den RaspberryPi Modellen A, A+ und Zero hat man auf den USB-Hub-Controller verzichtet und den USB-Port der SoC direkt herausgeführt. Dadurch hat man dann aber eben auch nur einen einzigen USB-Port, der sich aber wie gesagt in verschiedene Modies versetzen lässt.

    Beim Pi3B und PiZeroW wurde das OnBoard WLAN nicht via USB angebunden sondern über einen eigenen Bus: SDO.


    Allgemein geläufig wird die erwähnte Möglichkeit als "USB gadget" gehandelt und bietet viele Variationen - für dich hier ist aber denk ich nur "g_mass_storage" interessant.

    Allerdings könnte es bei deinem Vorhaben ein Problem geben:
    Wie wird dem Tankautomaten mitgeteilt das es die Daten übertragen soll? Ich vermute mal dass das erst angestoßen wird wenn ein Device eingesteckt wird. Weiter vermute ich das die Daten in einer SQLite Datenbank-Datei abgelegt werden und dann nur diese Datei kopiert wird. Das könnte denk ich zum größten Problem werden :denker:

    Zitat von "P4nz3rwels" pid='299696' dateline='1505386140'


    Achso es handelt sich um einen Tankautomat von TECALEMIT

    Und welches Model? ;)
    Manche Modelle von TECALEMIT haben nämlich auch WLAN / LAN / UMTS / RS232 / RS422 ...


    PS: Bitte nicht Beiträge vollständig quoten/zitieren, vor allem wenn diese genau da drüber stehen.

  • Es gibt doch einen Pi Zero W mit WLAN... kann der USB-OTG?
    Ansonsten könntest du einen ESP8266 anschließen, die Daten an den Übertragen und damit senden.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Soweit mir bekannt ist hängt die OTG Fähigkeit am Kabel und nicht am Pi Zero / Pi Zero W. Bei einem normalen (Micro) USB Kabel ist der Pin 4 (Sense) nicht belegt. Ein OTG Kabel hat zwischen Pin 4 (Sense) und Pin 5 (GND) eine Brücke.

    cum-se-face-usb-otg-schema.jpg

  • Zitat von "meigrafd" pid='299698' dateline='1505387798'


    Und welches Model? ;)
    Manche Modelle von TECALEMIT haben nämlich auch WLAN / LAN / UMTS / RS232 / RS422 ...

    Jap leider ein Modell ohne Netzwerkanbindung . Irgendwo sparen die Chefs dann doch :D
    Das war mit das erste was ich geprüft habe.

    Ich schaue mir das mit dem ZeroW mal an. Vielen Dank für die Infos und Beratung.

  • doing: Man kann den PiZero aber via Kernel Module so konfigurieren dass er beim einstecken eines normalen Kabels als ein FlashDrive erscheint... Welches Kabel man dabei verwendet ist unwichtig.
    Das funktioniert aber eben nur wenn man einen USB-OTG-Port verwendet, mit nem Pi 1/2/3 B funktioniert das aus besagten "Background"-Gründen nicht.
    Nicht durcheinander würfeln, sonst wirds anstrengend ;)

  • So wie ich Art. Nr.: 110 700 960, 110 700 980 (Betriebsanleitung HDM 60/80 eco Box) überflogen habe, wird die Datenausgabe (im Textformat.TXT) durch Anstecken des USB-Sticks angestossen und bei erfolgreichem Schreibvorgang werden die Datensätze im Gerät als gelesen markiert. Dasselbe passiert auch, wenn vom PC aus, über Kabel (RS232, oder RS422) die Datenabfrage erfolgt. Am Anschlussport X2 ist RS232 direkt und RS422/RS485 über einen Konverter angreifbar. Die "Nachrüstung" des Tankautomaten auf RS232 besteht lediglich aus der Montage einer 9-poligen Buchse samt 3 Kabel zum X2.

    Für mich würde sich anbieten, das RS232 Kabel zum PC samt RS232-USB Konverter durch eine serielle (verschlüsselte ?) Funkstrecke zu ersetzen.
    RS232-Rx/Tx <--------> RxTx- USB (RS232-USB).

    Servus !

    RTFM = Read The Factory Manual, oder so

    Einmal editiert, zuletzt von RTFM (14. September 2017 um 15:04)

  • Hallo zusammen, ich wollte mich auch noch einmal melden.

    RTFM

    Habe mir deinen Vorschlag noch mal im Detail angeschaut.

    Auf der Platine der Steuerkonsole selbst ist auch eine RJ45 Netzwerkbuchse vorhanden, jedoch muss man diese, wie alle anderen Zusatzanschlüsse über ein separates Socketmodul erst aktivieren und das lassen sie sich auch gut bezahlen.

    Daher wollte ich mittels des Pi eine günstige Lösung finden, außerdem war dadurch mein Ehrgeiz als Tüftler geweckt ^^

    Ich habe es inzwischen mit dem Zero W als Massenspeicher hin bekommen.

    Als Basis habe ich folgende Anleitung benutzt: https://www.raspberrypi.org/magpi/pi-zero-…sb-flash-drive/

    Jedoch darf ich den Pi nicht permanent im Flashdrive Mode lassen, da sonst die Tankstelle gesperrt ist.

    Also aktiviere ich den Modus mittels Cron, lasse ihn 20 Sekunden aktiv (was zum Auslesen absolut reicht) und deaktiviere den Massenspeichermodus wieder.

    Läuft wunderbar.

    Anschließend lasse ich den Pi das ausgespuckte .txt file analysieren und die Werte in eine Datenbank schreiben.

    Genau so wie ich es vor hatte.

    Jedoch darf ich den Massenspeicher nicht wie im Tutorial aktivieren, da die Tankstelle den Pi so nicht als Massenspeicher erkennt.

    Aktiviere ich den Modus jedoch mit Fakeangaben eines USB Sticks, geht es problemlos 8o

    Code
    sudo modprobe g_mass_storage file=/piusb.bin stall=0 removable=1 idVendor=0x0781 idProduct=0x5572 bcdDevice=0x011a iManufacturer="SanDisk" iProduct="Cruzer Switch" iSerialNumber="1234567890"


    Vielen Dank an alle für den Hinweis mit dem Zero W!

    Das hat mir enorm geholfen.

    Einmal editiert, zuletzt von P4nz3rwels (5. Oktober 2017 um 12:58)

  • Hallo liebe Tüftler,

    noch einmal der neuste Status meines Projekts hier.

    nach einigen Wochen im Livebetrieb muss ich sagen, dass mein gebasteltes System perfekt funktioniert.

    Der Pi ruft alle 60 Minuten die Tankdaten über die USB Schnittstelle ab, verarbeitet diese direkt und schreibt sie in eine SQL Datenbank.

    Die Vorteil dieser Lösung ist natürlich die Flexibilität, wir können die Daten direkt in unsere Fuhrpark-Software einlesen und sind nicht an die Software des Herstellers der Tankstelle gebunden.

    Das schöne ist, dass sich die Tankstelle beim Abruf der Daten sperrt. Somit habe ich auch eine Möglichkeit mittels dieser Eigenschaft der Tankstelle, diese zu sperren, wenn der Dieselstand im Tank gegen 0 geht, indem ich dann dauerhaft den Massenspeicher simuliere. Somit ist auch ein Trockenlaufen der Tankstelle verhindert.

    Noch einmal ein dickes Dankeschön, dass ihr mich auf diese Hardware aufmerksam gemacht habt. Das hat uns wohl massiv Geld gespart.

    Natürlich muss man ein wenige kreativ sein und gewillt etwas zu tüfteln.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!