Datenanalyse in der Cloud

Autos zählen mit ThingSpeak

9. Mai 2017, 11:28 Uhr | Von Eric Wetjen
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Genauigkeit des Auto-Zählalgorithmus

Der Zählerwert ist eine Schätzung, da der Algorithmus die Autos nicht verfolgt. Daher werden unter bestimmten Bedingungen mit hohem Verkehrsaufkommen, beispielsweise bei stehendem oder zähflüssigem Verkehr, einige Autos möglicherweise zweimal gezählt. Um diese Situation zu vermeiden, müsste der Algorithmus so verändert werden, dass er Autos verfolgt, wenn sie in den zu untersuchenden Bereich hinein und wieder hinaus gelangen.
In den folgenden Situationen arbeitet der Algorithmus möglicherweise nicht wie erwartet:

  • Da keine Nachtsichtkamera zum Einsatz kommt, erzielt der Auto-Zählalgorithmus nachts möglicherweise kein präzises Ergebnis.
  • Bei einem Stau im erfassten Straßenabschnitt ist es möglich, dass Autos, die sich kaum oder gar nicht bewegen, als Teil des Hintergrunds eingestuft und nicht ordnungsgemäß gezählt werden.
  • Bei einer abrupten Änderung der Lichtverhältnisse braucht der Algorithmus einige Sekunden, um sich anzupassen.
  • Teilweise verdeckte Autos zählt der Algorithmus möglicherweise nicht.

Offline-Datenanalyse mit Matlab

Nach der Entwicklung kann der Algorithmus auf die Hardware übertragen werden und ohne Verbindung mit Simulink ausgeführt werden. Hierfür gibt es das Simulink-Support-Paket für Raspberry Pi Hardware. Wenn der Simulink-Algorithmus auf dem Raspberry Pi Board läuft und die Daten an ThingSpeak sendet, kann damit begonnen werden, die Rohdaten zu analysieren, indem sie von thingspeak.com abgerufen werden. Um das Abrufen der Daten von ThingSpeak zu vereinfachen, sind die Funktionen aus der ThingSpeak Support Toolbox sehr nützlich, die über Matlab Central File Exchange zur Verfügung steht.

passend zum Thema

Listing 1. Analyse der Verkehrsdaten mit Matlab
Listing 1. Analyse der Verkehrsdaten mit Matlab.
© MathWorks

Um die Daten einer ganzen Woche in Matlab einzulesen, ist ein datetime-Objekt erforderlich, das als Parameter ein Start- und ein Enddatum enthält. Da alle 15 s Daten an ThingSpeak gesendet werden, müssen ca. 40.000 Datenpunkte abgerufen werden. ThingSpeak lässt pro Lesevorgang nur 8000 Datenpunkte zu. Dieses Limit lässt sich mit einer For-Schleife umschiffen, um die Daten in Batches zu sammeln. Dann werden die Verkehrs- und Zeitdaten aus den einzelnen Iterationen zu zwei Vektoren verkettet, die „alltrafficData“ und „timestamp“ heißen (Listing 1).

Auswertung der Daten mit Matlab. Am Wochenende (25. und 26.7.) ist ein etwas anderes Verkehrsaufkommen zu erkennen
Bild 5. Auswertung der Daten mit Matlab. Am Wochenende (25. und 26.7.) ist ein etwas anderes Verkehrsaufkommen zu erkennen als an den anderen Tagen, die höhere Spitzen im Berufsverkehr haben.
© MathWorks

Als Nächstes werden die Daten grafisch dargestellt und beschriftet (Bild 5). Die täglichen Schwankungen des Verkehrsaufkommens sind deutlich zu sehen. Auch wenn dies an den Rohdaten schwerer zu erkennen ist, lässt sich am Wochenende (25.7. und 26.7.) ein anderes Muster beobachten als an den Wochentagen (27.7. bis 31.7.). An den Wochentagen gibt es morgens und nachmittags wegen des Berufsverkehrs höhere Spitzen.

Online-Analyse: Matlab-Code in ThingSpeak

Der bisherige Zählalgorithmus war so programmiert, dass er auf der Raspberry Pi Hardware bereitgestellt wird und seine Ergebnisse in Rohform an den Thing­Speak-Da­ten­ag­gregations­service gesendet werden. Dann wurden die Daten in Matlab eingelesen, um dort die täglichen und wöchentlichen Verkehrsmuster offline zu analysieren. Wie aber lässt sich das Verkehrsaufkommen in ThingSpeak berechnen und darstellen? Es ist sehr einfach, die Berechnung offline durchzuführen, aber dank der Matlab-Integration von ThingSpeak funktioniert das auch online, ohne dass man die Daten extra wieder herunterladen muss.

Listing 2. Online-Analyse der Daten auf ThingSpeak mit Matlab-Code
Listing 2. Online-Analyse der Daten auf ThingSpeak mit Matlab-Code.
© MathWorks

Um das Verkehrsaufkommen zu berechnen, kann die Analyse-App von Matlab, die über Thingspeak.com zur Verfügung steht, verwendet werden. Dazu ist etwas Code nötig, um die Verkehrs-Rohdaten des vorherigen Tages abzurufen und die Ergebnisse zusammenzufassen. Dann kommt der Befehl thingSpeakWrite zum Einsatz, um die Daten an den neuen Kanal „DailyVolume“ zu senden (Listing 2).

Zum Schluss wird noch ein Zeitplan eingerichtet, der die Analyse einmal täglich kurz nach Mitternacht ausführt. Hierfür wird die TimeControl-App von ThingSpeak angewendet. Die berechneten Ergebnisse werden an einen neuen Kanal gesandt, der das täglich gezählte Auto-Aufkommen darstellt. Da sich dieser Kanal in ThingSpeak befindet und die Analyse-App von Matlab integriert ist, kann die Analyse jederzeit über jeden Web-Browser auf einem PC oder mobilen Gerät betrachtet werden. Den berechneten Wert finden Sie in Kanal 51671 in ThingSpeak.

Weitere Informationen

[1] Autozähler auf Thingspeak:
https://thingspeak.com/channels/38629
[2] Analyse des täglichen Verkehrsaufkommens:
https://thingspeak.com/channels/51671

 

Der Autor

 

 

Eric Wetjen
Eric Wetjen ist Senior Product Marketing Manager for Test and Measurement and IoT bei MathWorks. Vorher hatte er verschiedene Positionen im Produktmanagement sowie in der Anwendungsentwicklung in der Telekommunikationsindustrie inne. Er hat erfolgreich eine Promotion an der Brown University abgeschlossen und beschäftigte sich dabei mit optischen Sensoren und Umwelt-Monitoring.

 


  1. Autos zählen mit ThingSpeak
  2. Genauigkeit des Auto-Zählalgorithmus

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu MathWorks GmbH

Weitere Artikel zu Maker-Boards

Weitere Artikel zu IoT / IIoT / Industrie 4.0