Table des matières:

Enregistreur de données Open Source (OPENSDL) : 5 étapes (avec images)
Enregistreur de données Open Source (OPENSDL) : 5 étapes (avec images)

Vidéo: Enregistreur de données Open Source (OPENSDL) : 5 étapes (avec images)

Vidéo: Enregistreur de données Open Source (OPENSDL) : 5 étapes (avec images)
Vidéo: enregistreur de macro pour Calc de LibreOffice insertion automatique de données dans un tableau 2024, Juillet
Anonim
Enregistreur de données Open Source (OPENSDL)
Enregistreur de données Open Source (OPENSDL)
Enregistreur de données Open Source (OPENSDL)
Enregistreur de données Open Source (OPENSDL)
Enregistreur de données Open Source (OPENSDL)
Enregistreur de données Open Source (OPENSDL)

L'objectif de ce projet est de concevoir, construire et tester un système de mesure à faible coût pour les études d'évaluation de la performance des bâtiments qui comprend au moins la température, l'humidité relative, l'éclairement et qui est extensible à des capteurs supplémentaires, et de développer le prototype de ces dispositifs..

Il en résulte un système personnalisé et abordable qui permet aux parties prenantes d'effectuer les mesures requises pour l'évaluation des performances du bâtiment de manière efficace et abordable en enregistrant plusieurs paramètres environnementaux à la fois. L'enregistreur de données Open Source (OPENSDL) développé a été comparé à un enregistreur de données HOBO U12-012. Ce système homologue disponible dans le commerce peut mesurer 3 paramètres, à savoir la température, l'humidité relative et l'éclairement, et un canal externe pour les autres types de capteurs. Un dispositif de détection différent serait requis pour la mesure de tout autre paramètre. Les caractéristiques des paramètres à mesurer sont limitées au matériel et au logiciel propriétaires, ce qui restreint le système à la mesure de certains paramètres avec des précisions spécifiques. Un HOBO U12-012 coûte environ 13 000 yens (185 USD), tandis que l'OPENSDL coûte 4 605 yens (66 USD), soit près d'un tiers de la contrepartie commerciale.

Un enregistreur de données open source pour surveiller la température, l'humidité relative et les niveaux de lumière (éclairement) à l'aide d'un Arduino Uno Il s'agit d'un bricolage pour développer l'enregistreur de données OPENSDL.

Temps requis: 2-3 heures pour la soudure, 5 heures pour l'emballage (4 heures - impression 3D, et 1 heure pour la découpe laser) Compétences requises: Soudure, peu ou pas de connaissances en programmation et en électronique

Pièces requises:

  1. Arduino Uno avec câble
  2. Bouclier de l'enregistreur de données
  3. Pile bouton CR1220
  4. Carte de dérivation du capteur de pression d'humidité de la température BME280
  5. Carte de dérivation du capteur de lumière TSL2561
  6. Module Wi-Fi ESP01-8266
  7. Connecteur RJ-9 mâle et femelle
  8. En-têtes d'empilage de blindage pour Arduino
  9. Carte mémoire SD (toute capacité)
  10. Carte vectorielle (26 x 18 trous)
  11. 8 piles AA Porte-piles

Outils requis:

  • Fer à souder (35W)
  • Fil de soudure
  • Coupe-fil
  • Outil de sertissage
  • Multimètre

Logiciel requis: Arduino IDE (1.0.5 ou supérieur)

Bibliothèques Arduino utilisées:

  • Bibliothèque de fils
  • Bibliothèque SparkFun TSL2561
  • Bibliothèque multicapteurs Cactus BME280
  • bibliothèque de cartes SD
  • bibliothèque SPI
  • Bibliothèque RTC

Remarque: le capteur BME280 est un capteur de température, d'humidité relative et de pression très précis de Bosch. De même, le DS1307 est une horloge en temps réel précise de Maxim et le TSL2561 est un capteur de lumière précis. Il existe des alternatives moins chères et moins précises pour ces produits, mais ce didacticiel s'adressait aux personnes intéressées par la collecte de données pour l'évaluation des performances des bâtiments et les applications de surveillance des bâtiments nécessitant une précision et une exactitude élevées. Cela signifie que toute configuration matérielle et logicielle spécifique (bibliothèques, code de programme) était strictement destinée aux produits spécifiés uniquement.

Étape 1: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

Le bouclier de l'enregistreur de données peut être facilement empilé sur la carte Arduino Uno. Ce bouclier fournit les capacités d'enregistrement des données (conservation du temps et stockage des données). Le bouclier devait être empilé. Une pile bouton CR1220 a dû être insérée dans la fente ronde prévue pour que l'horloge continue de fonctionner même lorsque l'Arduino est éteint. La carte mémoire SD doit être insérée dans la fente pour carte intégrée fournie. Un blindage personnalisé unique a été développé en utilisant des broches femelles de connecteur RJ-9 et des en-têtes d'empilage de blindage Arduino. Les en-têtes appropriés ont été soudés aux emplacements appropriés afin que le blindage s'adapte parfaitement à la carte Arduino. L'Arduino a 18 broches d'un côté et 14 broches de l'autre côté. Les en-têtes avec le même nombre de broches ont été utilisés au même espacement (à 18 broches) que sur Arduino. L'espace supplémentaire restant adjacent aux en-têtes a été utilisé pour placer le connecteur RJ-9.

Les en-têtes étaient le meilleur moyen d'utiliser les broches requises, tout en les rendant toujours disponibles pour une utilisation par d'autres composants. Les capteurs utilisés suivent le protocole de communication I2C, qui nécessite 4 broches d'Arduino, à savoir: SDA (également disponible en A4), SCL (également disponible en A5), 3.3V & GND. Les quatre fils sortant du connecteur RJ-9 ont été soudés dans ces quatre broches d'en-tête. Le nombre de connecteurs RJ-9 requis dépend du nombre de capteurs. Dans ce projet, 3 connecteurs RJ-9 ont été utilisés (deux pour BME280 et un pour TSL2561). Les quatre fils sortant du connecteur RJ-9 étaient codés par couleur et chaque fil de couleur était désigné par une broche spécifique pour tous les connecteurs RJ-9. Il faut noter que le code couleur peut varier sur différentes pièces RJ-9. Dans un tel cas, l'emplacement du fil sur le connecteur doit être noté. Le connecteur RJ-9, après soudure, a été fait pour se coller sur la carte vectorielle à l'aide d'un Feviqwik, afin qu'il se fixe en surface. Ces connexions peuvent être vérifiées en utilisant le mode de continuité sur le multimètre. En mode continuité, le multimètre doit afficher une résistance nulle. Connectez l'une des sondes du multimètre à la broche soudée et une autre sonde à la broche à l'intérieur du connecteur RJ-9. Le multimètre doit émettre une tonalité, ce qui signifie que les joints de soudure sont corrects et que les connexions ont été correctement effectuées. Si la tonalité n'est pas émise, vérifiez les soudures. De même, soudez le connecteur RJ-9 avec les mêmes fils connectés aux mêmes trous d'épingle sur les cartes de dérivation du capteur, c'est-à-dire A4, A5, 3,3 V et GND. Le capteur BME280 prend en charge deux adresses I2C, ce qui signifie que deux capteurs BME280 peuvent être connectés au même contrôleur à la fois. Ce faisant, l'adresse de l'un des capteurs doit être modifiée en pontant les plots de soudure sur le capteur. Une puce de connexion sans fil ESP-01 nécessitait les connexions suivantes avec l'Arduino.

ESP-01 ---------Arduino Uno

10 --------------------TX

11 --------------------RX

Vcc ----------------CH_PD

Vcc -------------------- Vcc

GND ----------------- GND

Remarque: - Les multiples LED sur Arduino Uno ont été supprimées pour améliorer la durée de vie de la batterie. Les LED d'indicateur d'alimentation, les LED RX et TX ont été retirées en chauffant les joints de soudure et en poussant la LED avec une pince.

Étape 2: Configurer les IDE et les bibliothèques

Avant de faire toute programmation, Arduino IDE (Integrated Development Environment) doit être téléchargé. La programmation a été faite sur cette plateforme. Différentes bibliothèques étaient nécessaires pour interagir avec différents composants d'OPENSDL. Les bibliothèques suivantes ont été utilisées pour les composants donnés.

Composant -------------------------------------------------- --------------Une bibliothèque

Capteur de température et d'humidité relative BME280 ---------------------------------Cactus_io_BME280_I2C.h

Capteur de lumière------------------------------------------------ ----------------SparkFun TSL2561.h

Horloge temps réel ------------------------------------------------ -------------RTClib.h

Prise carte SD ------------------------------------------------ -------------SD.h

Connexion I2C------------------------------------------------ ------------- Fil.h

Une bibliothèque distincte pour communiquer avec l'ESP01 n'est pas requise car le code téléchargé dans l'Arduino contient des commandes AT, qui sont envoyées au moniteur série, d'où l'ESP-01 prend les instructions. Donc, fondamentalement, les commandes AT par lesquelles ESP01 s'exécute sont imprimées dans le moniteur série, qui sont considérées comme une commande d'entrée par ESP-01. Pour installer ces bibliothèques, après les avoir téléchargées, ouvrez l'IDE Arduino, accédez à Sketch -> Inclure la bibliothèque -> Ajouter la bibliothèque. Zip et sélectionnez les bibliothèques téléchargées.

Étape 3: Programmation du système

Programmation du système
Programmation du système

Avant de programmer OPENSDL, connectez l'Arduino à un ordinateur portable. Après la connexion, allez dans Outils -> Port, et sélectionnez le port COM dans lequel OPENSDL est connecté. Assurez-vous également que sous Outils -> Cartes, Arduino Uno est sélectionné.

L'OPENSDL a été développé pour fonctionner en 2 modes. Dans le premier mode, il stocke les données sur la carte SD sur le bouclier de l'enregistreur de données. Dans le second mode, il envoie les données via Internet à un site Web en utilisant une puce Wi-Fi ESP-01. Le programme pour les deux modes est différent. Ces lignes de code peuvent être directement copiées et collées dans l'éditeur Arduino IDE, et utilisées directement. Une fois dans le code, nous devons faire quelques personnalisations selon nos besoins:

  1. Modifiez manuellement la valeur du délai (1000) à la fin du code pour modifier l'intervalle d'enregistrement. La valeur 1000 représente l'intervalle en millisecondes.
  2. Modifiez la ligne de code qui dit mySensorData = SD.open("Logged01.csv", FILE_WRITE); et remplacez Logged01 par le nom de fichier du nom de fichier souhaité. L'extension du fichier peut également être modifiée en modifiant l'extension.csv juste après le nom du fichier.
  3. L'équation d'étalonnage obtenue en trouvant la corrélation entre le capteur maître/référence et le BME280 variera avec chaque capteur. Remplacez cette ligne de code par l'équation d'étalonnage des capteurs: Serial.print((1.0533*t2)-2.2374) – pour le capteur avec l'adresse par défaut (0x77), où t2 est la valeur lue par le capteur de température.

Un programme séparé a été fourni pour programmer le deuxième mode disponible d'OPENSDL, qui est le système sans fil. L'ESP-01 doit être connecté à OPENSDL selon les connexions comme expliqué dans l'étape #2. Une fois les connexions terminées, connectez l'Arduino à l'ordinateur portable et téléchargez un croquis vierge dans l'Arduino. Mettez l'ESP-01 en mode de mise à jour et mettez à jour le firmware avec la dernière mise à jour disponible. Après la mise à jour, assurez-vous de connecter la broche de réinitialisation d'Arduino avec la broche 3.3V, qui contourne le chargeur de démarrage Arduino

Étape 4: fabrication

Fabrication
Fabrication
Fabrication
Fabrication
Fabrication
Fabrication

Une enceinte pour OPENSDL a été créée pour la protection et pour améliorer l'esthétique. Les boîtiers ont été développés par impression 3D à l'aide de matériau PLA, et le boîtier du microcontrôleur a été développé en coupant au laser la feuille de MDF et en collant les pièces ensemble. Les modèles imprimés en 3D ont été développés à l'aide du logiciel SketchUp et les dessins dxf 2D pour la découpe laser ont été créés à l'aide d'AutoCAD.

Pour l'impression 3D, les fichiers STL produits à l'aide de SketchUp ont été ouverts et vérifiés dans le logiciel Ultimaker Cura 3.2.1. Assurez-vous que le matériau PLA est utilisé et que la buse de l'imprimante utilisée est destinée à l'impression de 0,4 mm. La plaque de construction de l'imprimante 3D peut nécessiter de la colle pour coller l'objet imprimé en 3D. Mais lorsque l'impression est terminée, la colle crée une forte adhérence entre l'objet imprimé et la plaque de construction.

Étape 5: Coder

Le code (fichiers.ino) est conçu pour fonctionner dans le logiciel Arduino IDE. Voici le lien vers ma page Github pour le code et d'autres détails.

github.com/arihant93/OPENSDL

N'hésitez pas à poser des questions sur le projet.

Merci.

Conseillé: