Aller au contenu principal

Mode connecté (commandes)

Recommandation

Pour pouvoir se connecter au tag et télécharger le datalogger, il est recommandé de configurer un Advertising Interval inférieur ou égal à 3 secondes. Si la période de publicité est supérieure à cette valeur, l'établissement du mode connecté peut prendre plus de temps et nécessiter plusieurs tentatives.

Liste des commandes

CommandeActionVersion firmware minimale
LED_ONAllume la LED (clignotement infini)≥ 1.0.0
LED_OFFÉteint la LED≥ 1.0.0
LED_ON XXAllume la LED pendant XX secondes≥ 2.0.0
BUZZ_ONActive le buzzer (bips répétés)≥ 1.0.0
BUZZ_OFFDésactive le buzzer≥ 1.0.0
BUZZ_ON XXActive le buzzer pendant XX secondes≥ 2.0.0
DIGI_ONMet la sortie digitale à ON≥ 2.1.0
DIGI_OFFMet la sortie digitale à OFF≥ 2.1.0
DIGI_ON XXMet la sortie digitale à ON pendant XX secondes≥ 2.1.0
RAZ_COUNTRéinitialise le compteur≥ 2.0.0
LOG_DLTélécharge le datalogger (ordre chronologique)≥ 2.0.0
LOG_SO_DLTélécharge en ordre inverse≥ 4.0.0
LOG_RSTEfface le datalogger et son horodatage≥ 2.0.0
LOG_SP_DL XX YYTélécharge les données entre index XX et YY (ordre chronologique)≥ 4.0.0
LOG_SP_INV_DL XX YYTélécharge les données entre index XX et YY (ordre inverse)≥ 4.0.0
LOG_SP_DL_DATETélécharge entre deux dates (chronologique)≥ 4.1.0
LOG_SP_INV_DL_DATETélécharge entre deux dates (ordre inverse)≥ 4.1.0
LOG_SET_CURR_DATEDéfinit la date courante du tag≥ 4.1.0
LOG_READ_CURR_DATELit la date courante≥ 4.1.0
LOG_READ_START_DATELit la date de début d’enregistrement≥ 4.1.0
GET_BATT_VOLTAGERetourne la tension batterie (mV)≥ 2.1.0
GET_SENSOR_DATARetourne la dernière valeur capteur≥ 2.2.0

Datalogger simple (temps relatif)

Les tags capteurs ELA Innovation peuvent utiliser la fonction datalogger.

Le datalogger est un enregistrement de données sauvegardées pendant l’advertising, chaque valeur étant associée à un horodatage permettant d’identifier le moment de la mesure.

Fonctionnement

Pour les firmwares < 4.0.0, le datalogger est récupérable en mode connecté via la commande :

LOG_DL

Format des données

Exemple pour un capteur température avec un intervalle de 30 secondes :

Temperature LOG:
DATA_START
0d0h0m30s:2712
0d0h1m0s:2730
0d0h1m30s:2695

1d3h25m30s:1505
END_OF_DATA
  • 0d0h0m30s → 30 secondes après démarrage
  • 1d3h25m30s → 1 jour, 3h, 25 min, 30 sec après démarrage

Le format est identique pour tous les produits :

xxd xxh xxm xxs : valeur capteur

Les données capteurs correspondent aux valeurs transmises en advertising.

Suppression des données

Commande :

LOG_RST

Efface complètement le contenu du datalogger.

Téléchargement partiel (firmware ≥ 4.0.0)

Permet de réduire le volume de données transférées.

Commandes disponibles

LOG_SP_DL XX YY

→ ordre chronologique (XX = plus ancien)

LOG_SP_INV_DL XX YY

→ ordre inverse (XX = plus récent)

Exemples

LOG_DL

DATA_START
0d0h0m30s:2712
...
END_OF_DATA

LOG_SP_DL 03 12

DATA_START
0d0h1m30s:2695
...
END_OF_DATA

LOG_SP_INV_DL 03 12

DATA_START
1d3h25m30s:1505
...
END_OF_DATA

Datalogger temps absolu

Pour les versions firmware strictement inférieures à 4.1.0, l’horodatage du datalogger peut être récupéré en temps absolu avec le format :

DD/MM/YYYY HH:MM:SS Tz:Tz

en utilisant la commande :

LOG_SP_DL_DATE

Principe de fonctionnement

L’utilisation du temps absolu nécessite de définir une date de référence dans le beacon via la commande :

LOG_SET_CURR_DATE

Cette commande doit être envoyée :

  • après le début de l’enregistrement (après LOG_RST ou reboot)
  • avant la commande LOG_SP_DL_DATE

Téléchargement partiel

Comme pour le datalogger simple, il est possible de télécharger uniquement une partie des données en spécifiant une plage de dates :

LOG_SP_DL_DATE DD/MM/YYYY HH:MM dd/mm/yyyy hh:mm

Téléchargement inverse

Il est également possible de récupérer les données en ordre chronologique inverse (du plus récent au plus ancien) :

LOG_SP_INV_DL_DATE

Avec possibilité de définir une plage de dates.


Exemples de commandes

LOG_DL

Temperature LOG:
DATA_START
0d0h0m30s:2712
0d0h1m0s:2730
0d0h1m30s:2695

1d3h24m30s:1617
1d3h25m0s:1500
1d3h25m30s:1505
END_OF_DATA

LOG_SP_DL 03 12

Temperature LOG:
DATA_START
0d0h1m30s:2695
0d0h2m0s:2700
0d0h2m30s:2705

0d0h5m0s:2902
0d0h5m30s:2875
0d0h6m0s:2822
END_OF_DATA

LOG_SP_INV_DL 03 12

Temperature LOG:
DATA_START
1d3h25m30s:1505
1d3h25m0s:1500
1d3h24m30s:1617

1d3h20m30s:1200
1d3h20m00s:1102
1d3h19m30s:1015
END_OF_DATA

Data Logger EN12830

Configuration du mode connecté BLE

Démarrage de l'enregistrement

Pour commencer à stocker les relevés de température dans la mémoire du tag, vous devez envoyer la date/heure de démarrage au tag. Cette date/heure de démarrage sera utilisée comme base pour l'horodatage des données. Après l'envoi de la commande, le data logger commencera à surveiller et à stocker les valeurs pour la période définie dans la configuration NFC.

Commande : DATALOGGER_START

Vous devez ensuite fournir le mot de passe BLE pour que la commande soit prise en compte par le tag. Enfin, vous devez fournir la date au format suivant :

DD/MM/YYYY HH:mm:SS +hh:gg

Où :

  • DD : jour de début de l'enregistrement, écrit avec 2 chiffres (ex. 01, 08, 15...)
  • MM : mois de début de l'enregistrement, écrit avec 2 chiffres (ex. 01, 05, 11...)
  • YYYY : année de début de l'enregistrement, écrite avec 4 chiffres (ex. 2019...)
  • HH : heure de début de l'enregistrement, en format 24 heures, écrite avec 2 chiffres (ex. 02, 16, 23...)
  • mm : minute de début de l'enregistrement, écrite avec 2 chiffres (ex. 01, 26, 54...)
  • SS : secondes de début de l'enregistrement, écrites avec 2 chiffres (ex. 05, 18, 56...)
  • hh : heure du fuseau horaire UTC utilisé pour démarrer l'enregistrement, écrite avec 2 chiffres (ex. 00, 03...)
  • gg : minutes du fuseau horaire UTC utilisé pour démarrer l'enregistrement, écrites avec 2 chiffres (ex. 00, 30...)

Exemple de commande :

DATALOGGER_START PASSWORD_1 05/06/2019 11:20:00 +01:00

Réponses du tag :

  • Si le mot de passe est valide : DATALOGGER_START: Success
  • Si le mot de passe est invalide : DATALOGGER_START: ACCESS DENIED
  • Si la date est invalide : DATALOGGER_START: WRONG PARAMETERS
Important

Lorsque cette commande est envoyée au tag, tout le contenu précédent stocké sur le data logger est supprimé et l'enregistrement redémarre à zéro.

Lorsque cette commande est envoyée au tag, la première mesure du capteur sera effectuée après la période de journalisation entrée dans la configuration NFC.

Par exemple, si la période du Datalogger est de 30 secondes, la première donnée du data logger sera mesurée et stockée 30 secondes après l'envoi de la commande DATALOGGER_START.

Arrêt de l'enregistrement

Vous pouvez arrêter l'enregistrement sur le tag en utilisant la commande DATALOGGER_STOP. Vous devez fournir le mot de passe BLE pour que la commande soit prise en compte par le tag. Les données déjà enregistrées ne sont pas effacées par cette commande.

Exemple de commande :

DATALOGGER_STOP PASSWORD_1

Réponses du tag :

  • Si le mot de passe est valide et l'enregistrement est en cours : DATALOGGER_STOP: Success
  • Si le mot de passe est valide mais l'enregistrement n'est pas en cours : DATALOGGER_STOP: LOG not started!
  • Si le mot de passe est invalide : DATALOGGER_STOP: ACCESS DENIED

Les données stockées dans la mémoire du data logger peuvent être récupérées (commande READ_DATA) jusqu'à ce que vous démarriez une autre session d'enregistrement ou redémarriez le tag.

Récupération et vérification des données

Lecture de toutes les valeurs du data logger

Important

Vous pouvez lire les données stockées à tout moment, sans avoir à arrêter l'enregistrement.

4 commandes en mode connecté sont disponibles pour récupérer les données du data logger :

  1. READ_DATA : télécharge le data logger complet en ordre chronologique (du plus ancien au plus récent)
  2. READ_INV_DATA : télécharge le data logger complet en ordre inverse (du plus récent au plus ancien)
  3. READ_SP_DATA DD/MM/YYYY HH:MM dd/mm/yyyy hh:mm : télécharge le data logger complet en ordre chronologique entre les dates DD/MM/YYYY HH:MM et dd/mm/yyyy hh:mm
  4. READ_SP_INV_DATA DD/MM/YYYY HH:MM dd/mm/yyyy hh:mm : télécharge le data logger complet en ordre chronologique inverse entre les dates DD/MM/YYYY HH:MM et dd/mm/yyyy hh:mm

Pour chaque commande, le mot de passe doit être spécifié. Si la syntaxe de la commande est valide, le tag retourne READ_DATA: Success. Le tag commence ensuite à transmettre ses données.

Exemples de commandes :

READ_DATA PASSWORD_1
READ_INV_DATA PASSWORD_1
READ_SP_DATA DD/MM/YYYY HH:MM dd/mm/yyyy hh:mm PASSWORD_1
READ_SP_INV_DATA DD/MM/YYYY HH:MM dd/mm/yyyy hh:mm PASSWORD_1

Réponses du tag :

  • Si le mot de passe est valide : READ_DATA: Success
  • Si le mot de passe est invalide : READ_DATA: ACCESS DENIED
  • Si le mot de passe est valide mais l'enregistrement n'est pas en cours : READ_DATA: LOG not started!

Une fois la commande reçue, le tag transmet toutes les données stockées dans la mémoire du data logger. Les données sont au format suivant :

---DOWNLOAD_START---
Firmware version: 2.1.0\n
MacAddress: 01:02:03:04:05:FE\n
Name: TAG_LOCAL_NAME\n
Unit: Celsius degrees\n
Start date: 01/04/2019 11:26:33 +01:00\n
<DATA_START>\n
01/04/2019 11:26:33+01:00: 23.34\n
01/04/2019 11:26:43+01:00: 23.44\n
[…]
<DATA_END>\n
CRC16: 0x0D06\n
---DOWNLOAD_END---
Note

Les caractères de nouvelle ligne (\n) ne sont pas visibles, mais ils doivent être pris en compte pour le calcul du CRC.

Explication des champs :

  • ---DOWNLOAD_START--- : marqueur indiquant le début de la transmission par le data logger
  • Firmware version : version du firmware du data logger (tag)
  • MacAddress : numéro d'identification unique du tag
  • Name : nom du tag tel que configuré dans la mémoire NFC
  • Unit : unité utilisée pour les valeurs de température (°C dans cet exemple)
  • Start date : début de l'enregistrement tel qu'envoyé par la commande DATALOGGER_START
  • <DATA_START> : marqueur indiquant le début de la transmission des données de température
  • 01/04/2019 11:26:33+01:00: 23.34 : exemple complet de données de température avec horodatage
  • <DATA_END>; : marqueur indiquant la fin de la transmission des données de température
  • CRC16 : contrôle de redondance cyclique calculé à partir des données transmises
  • ---DOWNLOAD_END--- : marqueur indiquant la fin de la transmission par le data logger

Lecture des données de température

Dans l'exemple précédent, les relevés de température sont formalisés comme suit :

01/04/2019 11:26:33+01:00: 23.34
  • 01/04/2019 correspond à la date à laquelle la température a été relevée : 1er avril 2019 dans cet exemple
  • 11:26:33 correspond à l'heure à laquelle la température a été relevée
  • +01:00 correspond au fuseau horaire UTC, fourni avec la commande DATALOGGER_START
  • 23.34 correspond à la valeur de température exprimée dans l'unité transmise par le data logger, 23,34°C dans cet exemple

Vérification du CRC du data logger

Les données du datalogger sont contrôlées par un calcul CRC16 (Cyclic Redundancy Check). Les détails du CRC sont les suivants :

  • Algorithme : CRC-16-CCITT
  • Polynôme : 0x1021
  • Valeur d'initialisation : 0xFFFF

Exemple de calcul : Données d'entrée (type ASCII) 0123456789ABCDEF

  • Résultat : 0x2C1F

Le calcul du CRC du data logger est effectué sur toutes les données contenues entre les marqueurs ---DOWNLOAD_START--- (non inclus) et la chaîne de caractères CRC16: 0x (inclus).

Exemple complet de data logger :

---DOWNLOAD_START---
Firmware version: 2.1.0\n
MacAddress: FA:FD:50:39:A1:2C\n
Name: BE_TEST_T3\n
Unit: Celsius degrees\n
Start date: 14/06/2019 12:00:00 +01:00\n
<DATA_START>\n
14/06/2019 12:00:10 +01:00: 26.62\n
14/06/2019 12:00:20 +01:00: 26.62\n
<DATA_END>\n
CRC16: 0xDF91\n
---DOWNLOAD_END---

La valeur CRC est calculée sur toutes les données affichées ci-dessus (de Firmware version à CRC16: 0x inclus). Pour cet exemple, la valeur est donc 0xDF91.

Un calculateur CRC est disponible en ligne à cette adresse : http://www.tahapaksu.com/crc/. Utilisez le résultat contenu dans le champ CRC-CCITT (0xFFFF).

Important
  • L'utilisation de la fonction READ_DATA n'efface pas les données enregistrées et transmises
  • L'enregistrement est arrêté jusqu'à ce que la transmission ne soit pas terminée (marqueur "---DOWNLOAD_END---"). Il continue automatiquement dès que la transmission des données est terminée

Lecture de la date de début d'enregistrement

La commande pour lire la date de début d'enregistrement qui a été envoyée au tag est READ_START_DATE. Vous devez fournir le mot de passe BLE pour que la commande soit prise en compte par le tag.

Exemple de commande :

READ_START_DATE PASSWORD_1

Réponses du tag :

  • Si le mot de passe est valide mais l'enregistrement n'est pas en cours : READ_START_DATE: LOG not started!
  • Si le mot de passe est valide et l'enregistrement est en cours : READ_START_DATE: DD/MM/YYYY HH:MM:SS +UU:UU
  • Si le mot de passe est invalide : READ_START_DATE: ACCESS DENIED