Een datalogger zoals de SparkFun DataLogger IoT is een apparaat voor het verzamelen en opslaan van gegevens van verschillende sensoren of bronnen gedurende een bepaalde periode. Toepassingen in de wetenschap, industrie en het milieu maken vaak gebruik van datalogging om gegevens te kunnen bewaken en analyseren voor onderzoek, evaluatie of besturing.

De SparkFun DataLogger IoT

SparkFun heeft een behoorlijke reputatie in het ontwerpen en op de markt brengen van kleine dataloggers die je zelfstandig kunt gebruiken of die je kunt inbouwen in andere systemen. De SparkFun DataLogger IoT is de nieuwste toevoeging aan hun datalogger familie. Hij wordt geleverd in de vorm van een klein board (38 bij 52 mm; 1,5 bij 2 inch) met een ESP32-WROOM-32E module aan de ene kant en een microSD card slot aan de andere kant. Aan elke korte kant van het board zit een rij soldeereilanden waarmee het board in een groter systeem kan worden geïntegreerd. Er is een USB-C connector om het board aan te sluiten op een PC om het te kunnen configureren.
 
SparkFun DataLogger IoT met Qwiic vochtigheid sensor bord
Een eenvoudig dataloggersysteem met een Qwiic sensorboard voor luchtvochtigheid.

Qwiic (I²C) sensoren

Naast een 9-DoF inertial measurement unit (IMU) bestaande uit een accelerometer en gyroscoop (ISM330DHCX), een magnetometer (MMC5983MA) en een MAX17048 LiPo fuel gauge, heeft het board geen andere sensoren. Een I²C-bus in het SparkFun Qwiic-formaat is beschikbaar voor het aansluiten van eventuele extra sensoren. Omdat I²C een bus is, kunnen meerdere sensoren doorgelust worden (binnen de grenzen van de I²C-specificaties natuurlijk), waardoor het eenvoudig is om een systeem met een aantal sensoren op te zetten (zolang je de keuze beperkt tot Qwiic-boards). Interessant is dat de IMU-sensoren intern via SPI aangesloten zijn en niet via I²C.

De voeding voor de datalogger kan worden geleverd door een oplaadbare 1-cell LiPo batterij (JST-connector), USB-C of via de pin headers. Het board is voorzien van een acculader.
Inschrijven
Schrijf u in voor tag alert e-mails over Data logger!

Plug & play

De DataLogger IoT is geprogrammeerd met software die een soort plug & play dataloggertoepassing implementeert. Met een database van meer dan vijftig SparkFun Qwiic producten, worden de aangesloten sensoren automatisch gedetecteerd en geconfigureerd.
Je kunt de gegevens opslaan (in CSV of JSON formaat) op een microSD card of draadloos versturen naar de Internet of Things (IoT) service van jouw voorkeur. Het programmeren van de sensorboards blijft beperkt tot het configureren van enkele parameters in een seriële terminal. Degenen die bekend zijn met de (kleinere) SparkFun OpenLog Artemis zullen zich direct op hun gemak voelen.

Andere sensoren?

De vraag die in ieder geval bij mij direct opkomt is: wat als mijn sensor niet in de database staat? In dat geval sta je er alleen voor. Ik heb geen documentatie gevonden over hoe je de DataLogger IMU kunt gebruiken met andere sensoren, dit is duidelijk niet de bedoeling en wordt zelfs sterk afgeraden. De broncode van de voorgeïnstalleerde toepassing is niet beschikbaar, wat je veel werk oplevert. Het is natuurlijk mogelijk om het board naar de fabrieksinstellingen terug te zetten, maar hoe je dat doet moet je zelf uitzoeken (probeer de standaard ESP32 opstartprocedure die door het board wordt ondersteund). Het is daarom veel eenvoudiger om in plaats daarvan een passend Qwiic sensorboard te kopen.

Seriële human interface

Na het selecteren en aansluiten van je sensor(en) moet je de DataLogger IMU configureren. Dit doe je op een computer in een seriële terminal (115.200 baud). Het kan zijn dat je eerst een driver moet installeren, omdat het board een WH340C USB-naar-serieel converter heeft.

Na het aansluiten van de datalogger op de computer en het instellen van de seriële terminal, zie je wat statusinformatie en de lijst met Qwiic boards die gevonden zijn. Het loggen van de gegevens begint dan onmiddellijk met de standaard meetperiode van eenmaal per vijftien seconden.

Als je op een toets drukt, verschijnt het hoofdmenu. Het heeft slechts drie opties (Instellingen, Apparaatinstellingen en Afsluiten). De optie Instellingen opent een veel langer menu en je moet er waarschijnlijk wat tijd aan besteden om het te verkennen.
 
Menu DataLogger-instellingen
Het menu Instellingen heeft veel opties (de laatste optie Firmware-update, wordt niet weergegeven).

Veel configuratieopties voor de DataLogger IoT

Hierin vind je opties voor het beheer van de SD-card, Wi-Fi en NTP-verbinding, tijdsinstellingen, stroomverbruik, datalogging, IoT-diensten en firmware-updates, en nog veel meer. Het is vrij uitgebreid.

Omdat het een IoT-apparaat is, ondersteunt de datalogger AWS IoT en Azure IoT, MQTT (zowel beveiligd als standaard), ThingSpeak IoT, HTTP IoT en MachineChat. Eventuele certificaatbestanden die de dienst nodig heeft, moet je op de SD-card kopiëren.
In het menu Apparaatinstellingen kun je elk aangesloten board afzonderlijk configureren. De lengte van de lijst met instelbare parameters hangt af van de sensor.
Inschrijven
Schrijf u in voor tag alert e-mails over IoT!

Twee dataformaten

De geregistreerde gegevens worden automatisch opgeslagen in een bestand op de microSD-card (indien aanwezig). Je kunt de naam van het bestand en de periode van de registratie wijzigen, maar het lijkt erop dat je het bestand niet kunt openen via USB. Je moet de SD-card eruit halen en in een computer plaatsen om het te kunnen uitlezen.

Het dataformaat is standaard CSV (comma-separated values), maar JSON is ook mogelijk. Het dataformaat kan afzonderlijk worden ingesteld voor het registratiebestand en voor de seriële terminal.

Foutdetectie

Ik had maar één Qwiic sensorboard voor mijn experimenten, een SHTC3 luchtvochtigheidssensor, en die werkte prima. Om een storing te simuleren, trok ik de kabel eruit. Dit verstoorde de werking van de datalogger helemaal niet en er werden geen foutmeldingen weergegeven. De waarden van de gegevens werden echter onzinwaarden. Na het hot-pluggen van de sensor op de datalogger bevatte de datastroom gewoon de werkelijke gegevenswaarden. Blijkbaar is deze sensor eenvoudig en hoeft hij niet geconfigureerd te worden. Het zou interessant zijn om te zien wat er zou gebeuren in zo'n situatie met een meer gecompliceerde sensor of meerdere sensoren die doorgelust zijn.
 
JSON-uitvoer in seriële terminal
Gegevens in JSON-formaat in de seriële terminal zijn niet erg mensvriendelijk, maar IoT-clouddiensten kunnen er wel mee overweg.

Aangepaste toepassingen

Voor degenen die hun eigen toepassing willen maken voor de DataLogger, is toegang tot de SPI en I²C bussen en de seriële poort beschikbaar op de uitbreidingsconnectoren, samen met drie analoge ingangen en enkele LED's. Omdat de controller een ESP32 is, kan elke toolchain die er uitvoerbare bestanden voor kan maken worden gebruikt om programma's te schrijven (bijvoorbeeld Arduino). Maar nogmaals, SparkFun raadt dit sterk af. Let er ook op dat de SPI bus van SparkFun het (belachelijke) eigen signaal-benamingsysteem gebruikt, wat het leven een beetje moeilijker maakt dan nodig is.

Het board heeft een paar soldeer jumpers om een aantal opties te configureren. Met een daarvan kun je de 2,2 kΩ pull-up weerstanden van de I²C bus loskoppelen. Raadpleeg de documentatie over wat precies mogelijk is en hoe.

Samenvatting

De SparkFun DataLogger IoT (9 DoF) is, zoals de naam al doet vermoeden, een datalogger gericht op IoT-toepassingen. Het heeft Wi-Fi en ondersteunt MQTT en maakt eenvoudig verbinding met populaire IoT-diensten. Sensoren aansluiten op het apparaat is een kwestie van een of meer Qwiic sensormodules aansluiten. De DataLogger configureert ze automatisch, wat erg handig is. Zijn plug & play manier van omgaan met sensoren en datalogging is natuurlijk het sterkste punt van de DataLogger. Als je met compatibele sensoren kunt werken, kun je vrijwel direct na het inschakelen van het systeem beginnen met dataloggen. Behalve dat het klein is, is het ook klein genoeg om te integreren in andere systemen voor embedded datalogging.

Strain gauges

Hoewel er meer dan vijftig compatibele sensoren beschikbaar zijn, bestrijken ze niet alle mogelijke toepassingen (denk bijvoorbeeld aan strain gauges). Aangepaste sensoren kunnen worden toegevoegd maar dan moet je wel je eigen toepassingsprogramma schrijven. Als je dat doet, verlies je echter alle mooie ingebouwde dataloggerfuncties.

Ook de foutafhandeling lijkt een beetje zwak. Het onverwacht verwijderen van een SD-kaart wordt gedetecteerd, maar het loskoppelen van een sensor (en hoe zit het met de hele keten?) niet, althans niet in mijn testomgeving.

Liever bluetooth?

Het achtervoegsel '9-DoF' in de naam van het apparaat suggereert dat er meer DataLogger IoT-varianten zullen volgen. Tot die tijd is de SparkFun OpenLog Artemis een soortgelijke datalogger met bluetooth in plaats van Wi-Fi.


Vertaling: Hans Adams