| |

6 façons dont un Arduino peut stocker des données (comment utiliser et comparer les coûts)

Un guide sur les différentes manières dont Arduino peut enregistrer des données. Je crois à l’utilisation d’Arduino dans le cadre d’un processus de collecte et d’analyse de données ; une partie de ce processus consiste à utiliser Arduino pour stocker des données. Dans ce guide, j’ai répertorié différentes manières dont Arduino peut stocker des données afin qu’elles puissent être analysées et traitées ultérieurement.

Un Arduino peut stocker des données en cas de coupure de courant ou pour les partager avec un autre ordinateur. L’EEPROM intégrée offre généralement entre 1 et 4 kilo-octets de stockage protégé contre les coupures de courant. Un Arduino peut également envoyer des données à un autre ordinateur via WiFi, Ethernet, Bluetooth ou la connexion série. Les cartes SD et les clés USB peuvent également être utilisées à partir d’un croquis Arduino.

Comment Arduino peut stocker les données collectées à partir des capteurs

Les meilleures façons de stocker les données dépendent de votre projet :

  • Pour stocker de petites quantités de données, telles que des mesures récentes, essayez l’ EEPROM ;
  • Pour collecter des données sur une longue période qui seront partagées avec un ordinateur, essayez une carte SD ;
  • Pour analyser des données sur un autre appareil, essayez de stocker les données dans le cloud .

1. EEPROM

L’EEPROM est une section de mémoire qui est sécurisée lorsque l’Arduino perd de l’alimentation. Cela signifie que les données enregistrées dans l’EEPROM peuvent être lues à l’aide d’un croquis même après que l’Arduino ait été éteint et rallumé. Considérez l’EEPROM comme un petit lecteur flash intégré à votre Arduino. L’EEPROM ne coûte rien à utiliser si elle est incluse avec votre Arduino (voir FRAM ci-dessous si votre carte n’a pas d’EEPROM).

Utiliser l’EEPROM sur un Arduino est généralement une bonne idée lorsque vous disposez d’une alimentation peu fiable et que vous devez enregistrer rapidement de petites quantités de données pour vous protéger contre les pannes de courant. Certaines des façons dont j’ai vu cela utilisé incluent :

  • Des relevés récents d’un capteur, comme la sauvegarde des dernières mesures afin de pouvoir les récupérer en cas de coupure de courant ;
  • « État » actuel du croquis, si votre croquis représente une machine à états, l’enregistrement des informations d’état dans l’EEPROM peut permettre à l’Arduino de récupérer rapidement après une panne de courant.

L’EEPROM ne peut stocker que de petites quantités de données. Le tableau ci-dessous montre la quantité d’espace EEPROM dont disposent les modèles Arduino :

ModèleEEPROM
ONU Rév. 31024 octets
Méga 25604096 octets
Nano1024 octets
Exigible0
Léonard1024 octets
ONU WiFi Rév. 2256 octets

Montants Arduino EEPROM

1 024 octets peuvent stocker environ 500 mesures de température (c’est-à-dire en utilisant deux octets de mémoire pour chaque lecture).

Certaines cartes Arduino populaires n’ont pas d’EEPROM. Il s’agit notamment de la série MKR et de l’Arduino Due. Bien qu’une EEPROM puisse être ajoutée à un Arduino, je recommande généralement d’utiliser les autres options de stockage de données présentées dans ce guide (par exemple, le flash NAND qui est très similaire).

Pour utiliser l’EEPROM avec Arduino :

  1. Incluez la bibliothèque EEPROM :#include <EEPROM.h>
  2. Écrivez dans l’EEPROM à l’aide de l’appel de fonction suivant :EEPROM.put(address, data);
  3. Suivez les adresses que vous avez utilisées (si nécessaire, vous pouvez les stocker au début ou à la fin de l’EEPROM, les adresses commencent à 0 et chaque octet est adressé ; vous pouvez également envisager d’utiliser un nombre magique )
  4. Lisez à partir de l’EEPROM à l’aide de l’appel de fonction suivant :EEPROM.get(address, data);

Pour plus de détails sur la façon d’utiliser ces fonctions (et la différence entre put/get et write/read), la référence officielle Arduino est ici .

2. Carte SD

Un Arduino peut utiliser une carte SD branchée sur un blindage connecté à l’Arduino. Les bibliothèques Arduino prennent en charge les cartes SD standard et les cartes SDHC. Le système de fichiers doit être FAT16 ou FAT32. Si vous l’utilisez avec un ordinateur, FAT32 offre une plus grande compatibilité avec les PC modernes.

Utiliser une carte SD pour stocker les données d’un Arduino est utile lorsque :

  • Les données doivent être transférées vers un ordinateur ou un autre appareil
  • La collecte des données n’est ni urgente ni urgente
  • Une grande quantité de données va être stockée

Certaines des meilleures utilisations des cartes SD que j’ai vues sont lorsque l’Arduino est configuré comme un dispositif de surveillance à distance, comme la collecte de données à distance dans une ferme. Certaines données ne sont pas sensibles au temps, comme les conditions météorologiques à long terme, et l’Arduino peut enregistrer ces données sur une carte SD. Quelqu’un peut alors récupérer la carte SD et analyser les données sur un ordinateur.

Les cartes SD ne sont pas géniales si vous avez du mal à retirer la carte de l’Arduino (par exemple, si elle est dans un étui).

Les tailles typiques de carte SD peuvent aller de 1 Go à 32 Go (ou plus !). Ces cartes peuvent stocker des millions de mesures, des instructions complexes et toute autre information dont votre Arduino pourrait avoir besoin.

Pour utiliser une carte SD avec Arduino :

  • Achetez un Shield de carte SD et une carte SD
  • Formatez cette carte SD pour FAT32 (à l’aide d’un ordinateur)
  • Connectez le Shield (SPI) et branchez la carte SD
  • Utilisez les bibliothèques SPI.het SD.hpour accéder à la carte à partir d’une esquisse

La référence de la bibliothèque de cartes SD est ici . J’ai également trouvé ce tutoriel utile pour démarrer avec les cartes SD.

3. Stockage de données dans le cloud

Un Arduino peut enregistrer des données sur des services cloud en utilisant ses capacités de connexion réseau. Le moyen le plus simple de sauvegarder des données dans le cloud à partir d’un Arduino est de transmettre ces données directement à une API cloud via Ethernet ou WiFi. Un Arduino peut également communiquer ces données à un autre appareil à l’aide de connexions série ou Bluetooth, et cet appareil enregistre ensuite les données dans le cloud.

Arduino peut collecter les données des capteurs et les envoyer vers le cloud. J’ai écrit un guide complet à ce sujet ici .

Avoir un Arduino stockant des données dans le cloud est une bonne chose lorsque :

  • L’alimentation n’est pas un problème, par exemple lorsque l’Arduino est connecté au secteur. Communiquer avec le cloud augmente la consommation d’énergie.
  • Une analyse des données en temps réel est nécessaire. Les données téléchargées sur le cloud sont disponibles presque instantanément pour d’autres services et pour analyse.
  • Une sauvegarde des données en dehors de l’Arduino est nécessaire (par exemple en cas de coupure de courant).

Le stockage de données dans le cloud n’est pas idéal si votre Arduino doit fonctionner sur batterie, ou autrement dans un scénario de faible consommation. En effet, l’Arduino a besoin de cette puissance pour transmettre ses données via des connexions sans fil ou filaires afin de les enregistrer dans le cloud ; il communique également généralement sur Internet pour ce faire. Dans les projets à faible consommation , essayez de connecter l’Arduino (de préférence par série, mais peut également être Bluetooth intermittent) à un autre appareil et laissez cet appareil maintenir la connexion avec le cloud.

De manière générale, pour utiliser un Arduino avec le cloud :

  1. Créez un compte auprès du fournisseur de stockage cloud
  2. Incluez la bibliothèque WiFi ou Ethernet dans votre croquis
  3. Connectez-vous au stockage cloud à l’aide des détails de l’API fournis

4. CADRE

La mémoire ferroélectrique à accès aléatoire (FRAM) est un type de mémoire qui conserve ses données même en cas de coupure de courant. Les puces FRAM compatibles Arduino sont disponibles dans des tailles allant de 8 kilo-octets à 512 kilo-octets et coûtent environ 6 à 18 dollars pour ces tailles. La puce FRAM est connectée à l’Arduino via SPI ou I2C.

Utiliser FRAM pour stocker des données avec Arduino est utile pour :

  • Stocker les données afin qu’elles ne soient pas perdues en cas de coupure de courant (pour les cartes sans EEPROM)
  • Stocker plus de données que ne le permet l’EEPROM intégrée
  • RAM supplémentaire pour les croquis nécessitant un peu plus de mémoire de travail

FRAM est polyvalent car il est accessible rapidement et ne perd pas ses valeurs en cas de coupure de courant. Cela est idéal pour le stockage de données à long terme, dans un environnement où l’alimentation n’est pas toujours disponible, et comme bit de mémoire supplémentaire qu’un croquis peut utiliser (le temps d’accès est rapide).

Pour utiliser FRAM avec Arduino :

  1. Achetez une puce FRAM (suggérez de la placer sur une carte de dérivation lors de la construction d’un prototype)
  2. Connectez-le à l’Arduino (I2C est la préférence, mais SPI est également disponible)
  3. Inclure la bibliothèque pertinente
  4. Utilisez les fonctions de la bibliothèque pour lire et écrire dans le FRAM

Je dis que I2C est la préférence uniquement parce qu’il était plus facile de trouver les instructions d’Adafruit sur la façon d’utiliser le FRAM I2C avec Arduino (consultez la bibliothèque ici ). Ils vendent également les planches de répartition FRAM ici .

5. Base de données sur un autre appareil

Un Arduino peut envoyer des données à un autre appareil, tel qu’un ordinateur ou un Raspberry Pi, pour les stocker dans une base de données ou un fichier. L’Arduino peut le faire en utilisant le WiFi, Ethernet ou la connexion série USB sur l’Arduino. L’appareil récepteur peut ensuite enregistrer ces données dans un fichier ou une base de données.

Demander à l’Arduino d’envoyer des données à un autre appareil pour les stocker est une bonne chose lorsque :

  • Une base de données est en cours d’exécution sur l’autre appareil (permettant une analyse facile ultérieurement)
  • Plusieurs cartes Arduino envoient toutes leurs données à un appareil central
  • Le temps est important (c’est l’un des moyens les plus rapides d’extraire des données de l’Arduino)

Un Arduino peut envoyer des données à l’autre appareil via WiFi, Ethernet, Bluetooth ou la connexion série. La plupart des projets sur lesquels j’ai vu cela utilisent le WiFi : tous les appareils sont connectés au même réseau WiFi, un ordinateur central configure un serveur pour recevoir des données et plusieurs cartes Arduino peuvent lui envoyer des données en utilisant le WiFi.

Il n’y a aucun coût supplémentaire pour configurer un serveur et une base de données pour recevoir les données d’un Arduino, tous les logiciels sont disponibles gratuitement. Les coûts liés à cette opération dépendent de l’ordinateur et du matériel réseau que vous allez utiliser.

De manière générale, pour utiliser une base de données avec Arduino :

  • Configurer un autre appareil, tel qu’un ordinateur portable ou un Raspberry Pi, pour héberger la base de données et exécuter un serveur
  • Connectez les cartes Arduino à l’appareil via WiFi, Ethernet, Bluetooth ou la connexion série
  • Envoyez les données à l’autre appareil et faites-le enregistrer ces données dans la base de données (ou dans un fichier)

6. Stockage de masse USB (lecteur flash)

Une clé USB peut être branchée sur un Arduino pour qu’un croquis puisse être utilisé comme stockage de données. Le lecteur flash doit être formaté pour utiliser les systèmes de fichiers FAT16 ou FAT32, si ce dernier est utilisé, n’importe quelle taille de lecteur flash peut être utilisée par l’Arduino. En règle générale, un Shield hôte USB doit être utilisé pour brancher le lecteur flash.

Utiliser une clé USB avec un Arduino est bon pour :

  • Partage de données entre l’Arduino et les ordinateurs
  • Collecter beaucoup de données (des centaines de gigaoctets peuvent être stockés sur une clé USB)

J’ai cependant trouvé très difficile de comprendre les bibliothèques permettant de communiquer avec une clé USB à partir d’un croquis Arduino. La prise en charge des bibliothèques n’est pas aussi bonne que pour les cartes SD, ce qui signifie qu’il est plus difficile de travailler avec le système de stockage de fichiers d’une clé USB.

De manière générale, pour stocker des données sur une clé USB :

  1. Connectez un Shield hôte USB à l’Arduino
  2. Connectez une clé USB au Shield hôte
  3. Importer la bibliothèque de stockage de masse USB dans une esquisse
  4. Lire ou écrire sur la clé USB

J’ai trouvé ce Shield hôte USB disponible à l’achat et j’ai trouvé une bibliothèque pour l’accompagner ici . Je n’ai pas trouvé plus de détails sur la façon d’utiliser la bibliothèque, il semblait que la lecture du code était nécessaire.

Il est également assez coûteux d’utiliser une clé USB avec Arduino. Le Shield hôte peut coûter plus de 30 dollars, et une clé USB coûtera également quelques dollars.

Dans l’ensemble, je ne recommande pas d’utiliser une clé USB avec Arduino (c’est pourquoi elle figure à la fin de ma liste). Il existe de meilleures options disponibles, comme l’utilisation d’une carte SD.

A lire également

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *