Azure IoT Edge on wheels

Frederik Vannieuwenborg
Aptus
Published in
7 min readMay 10, 2020

--

Bij Aptus hebben we al verschillende projecten doorlopen waar we Azure IoT Central combineren met Azure IoT Edge.

Recent hebben we een nieuw project gerealiseerd bij Molcy (https://www.molcy.com/) waarbij we de data van de CAN bus van hun nieuwe elektrische terminal tractor ”on-the-edge” binnentrekken en aggregeren. Deze data sturen we dan iedere X tijd naar IoT central.

CAN bus zeg je, wat is dat precies?

Controller Area Network of CAN bus is een robuust communicatie netwerk om verschillende onderdelen of microcontrollers tegen elkaar te laten spreken. In eerste instantie is het ontworpen om de hoeveelheid bedrading te gaan beperken. In CAN bus zit ook het woord bus wat wil zeggen als onderdelen op de bus iets verstuurd, ontvangen alle andere onderdelen op de bus dit bericht. Een bericht of frame op de bus omvatten altijd kleine pakketjes data en kunnen heel frequent verstuurd worden op de bus. Ieder onderdeel verbonden op de bus heeft een unieke ID.

Ieder frame bestaat dus uit een unieke ID en data eigen aan dit onderdeel.

Als we ons even beperken tot een voertuig zijn enkele voorbeelden die op de CAN bus zitten zaken zoals ABS, remmen, cruise control, elektrische ramen, airbags, … allemaal redelijk belangrijke onderdelen.

Eigenlijk kan je de CAN bus vergelijken met de zenuwbanen in het menselijk lichaam.

Waarom Edge computing in een voertuig?

In de context van dit project heeft de klant een nieuwe “batterij gevoede” trekker (een full-electric voertuig dus) ontwikkeld. Men wil op termijn gaan inzetten op preventief onderhoud.

Om hier tot de juist algoritmes te komen moeten we uiteraard eerst data gaan verzamelen van hoe het voertuig in welke omstandigheden reageert.

Naast bovenstaande doelstellingen wenst men ook te gaan weten hoe het voertuig gebruikt wordt en vooral inzichten gaan krijgen hoe de batterij zich gedraagt.

Containers on the edge

Een belangrijk aspect aan een edge gateway in combinatie met een voertuig is dat je alles op afstand wenst te gaan beheren. Het voertuig moet zoveel mogelijk op de baan zijn en we willen vermijden dat het voertuig moet binnen gebracht worden om voor een software onderhoud.

Wat zich hier heel goed tot leunt is het gebruik maken van containers on the edge. Iedere individuele software component draait in zijn gesloten container en kan gemakkelijk vervangen worden door een nieuwe versie zonder dat deze impact hebben op de andere.

Het hele concept van modules in IoT Central is gebaseerd op containers. Een module of container op IoT Edge kan vanuit de cloud beheerd worden. De edge agent zorgt er onder andere voor dat alle modules opgestart worden, nieuwe versie opgestart worden, …

Architectuur

Voor deze Edge architectuur hebben we de keuze gemaakt om te werken met verschillende microservices die elk voor zich specifieke functie opnemen.

CAN Connector

De CAN connector maakt de bug tussen de twee CAN bussen en IoT Edge. Alle berichten die binnen komen op de CAN bus worden gepubliceerd op de local Edge Hub. Iedere component die deze berichten wenst te ontvangen van de CAN bus kan hier op luisteren.

GPS publischer

De GPS publisher is zeer vergelijkbaar met de CAN connector maar publiceert berichten met de GPS coördinaten op een vast interval.

CAN decoder

De berichten die de CAN connector publiceert is de ruwe data van de CAN bus. Om deze begrijpbaar te maken voor de andere processen worden deze ruwe berichten in HEX omgezet in een object met properties met begrijpbare waarden.

Aggregator

De aggregator gaat de data van de verschillende berichten gaan capteren en op een bepaald tijdstip naar de cloud gaan sturen.

Hoe lopen nu de berichten precies?

Hieronder ziet u een visuele voorstelling hoe de data binnenkomt op de gateway en hoe de flow tussen de verschillende componenten loopt.

Offline support

Op de edge computer draait IoT Edge. Die verzorgt tal van taken waaronder ook offline caching. Dit is uiteraard zeer belangrijk in deze setup. Aangezien het voertuig in beweging is gebeurt het vaak dat de 4G connectie eens wegvalt. Om geen data te gaan missen ondersteunt IoT Edge ook het bufferen van berichten als er geen connectiviteit is naar de cloud.

Deze buffering wordt afgehandeld door de Edge Hub, standaard worden de berichten 2 uur bewaard waarna ze verwijderd worden. Het is mogelijk om dit te verlengen tot ongeveer 2 miljoen! (wow!)

Op de Edge Hub is het mogelijk om deze instellingen aan te passen via de module twin of in de deployment manifest.

"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}

Als je wenst dat de berichten bewaard blijven tijdens een reboot, dan kan je ook een pad instellen waar de Edge Hub zijn data kan naar weg schrijven.

In de container configuratie van Edge Hub moet je de container toegang geven tot de local storage en het pad naar de storage folder meegeven.

Hoe beheer je nu zo iets?

We hebben in detail gesproken over de Edge kant van deze oplossing maar hoe beheer je nu zo’n oplossing? Hier komt de kracht van IoT Central naar boven. IoT Central is een laag software op verschillende Azure onderdelen zoals IoT Hub, Digital Provisioning Service, Time Series Insights, …

Alles start in IoT Central met het aanmaken van een device template, bij het aanmaken van een device template moet je de keuze maken tussen een device of Edge gateway.

Bij het aanmaken van een device template met IoT Edge moet je ook de manifest file meegeven die de configuratie definieert van de IoT Edge configuratie zoals welke containers er moeten opstarten met welke settings, …

Het aanmaken van een device template in IoT Central gebeurt op een visuele manier. Een device template definieert:

  • Welke modules er zijn en wat hun telemetrie data is die verstuurd zal worden
  • Wat cloud properties zijn van het device zoals welk type het is, waar het geïnstalleerd is, …
  • Welke visualisatie er is als je naar een detailpagina gaat van het device en welke settings je kan instellen

Het toevoegen van het device kan ook via IoT Central zelf.

Na het toevoegen van een Edge gateway wordt deze automatisch voorzien van de nodige configuratie op basis van de manifest file. Eénmaal alles opgestart is kan je doorklikken op het device en de telemetrie data live gaan opvolgen.

Naast bovenstaande zaken is het ook mogelijk om rules te gaan instellen en een analyse te doen op de ruwe data die binnen komt.

Wat zijn de next steps?

Gezien de grote hoeveelheid berichten die er op een CAN bus langs komen is het met de huidige connectiviteit moeilijker om deze berichten realtime naar de cloud te gaan sturen. Deze functionaliteit zou uiterst handig zijn om uitgebreide diagnose te doen het realtime doorstreamen van de CAN berichten naar de cloud. De perfecte technologie hiervoor is 5G en heeft de bandbreedte en latency om dit mogelijk te maken. Aptus heeft hier al de eerste stappen gezet met 5G om zo’n scenario’s te gaan valideren.

Wenst u meer te weten of 5G en alles errond lees dan zeker eens de interessante uiteenzetting van mijn collega Alexander: https://www.linkedin.com/pulse/wat-betekent-5g-nu-eigenlijk-de-wereld-van-iot-vanwynsberghe/

In de meeste gevallen is het niet nodig om alle berichten van de CAN bus naar de cloud te gaan sturen (stel je voor, iedere 50ms 10-tallen berichten gaan capteren), maar men wil wel op de hoogte gebracht worden wanneer er abnormaal gedrag is.

Voor het detecteren van dit abnormaal zijn de eerste stappen al gemaakt in de richting van het capteren van de data en het opstellen van de eerste versie van het algoritme die abnormaal gedrag gaat rapporteren als zicht dit voor doet.

Een volgende stap in die project is ook inzichten gaan aanbieden aan de eigenaar van het voertuig. Hierbij denken we aan zaken zoals:

  • Laadgebruik
  • Track and trace van het voertuig
  • Meldingen van het voertuig
  • Actuele status
  • Onderhoudshistoriek

Conclusie

De combinatie van IoT Edge met IoT central maakt het beheer en uitrol van de project perfect mogelijk.

Dit is één van de vele projecten waarin kennen en kunnen van Aptus naar boven komt. De combinatie met de Edge processing in combinatie met het capteren van verschillende signalen en dit te combineren in één geheel en te visualiseren in IoT Central.

Bent u op zoek naar een partij die u kan ondersteunen in het implementeren van bovenstaande oplossing of andere, zoek dan niet verder!

--

--