Étape 2: logiciel
Du côté de l’Arduino, le logiciel est divisé en plusieurs fichiers et ils sont tous dans le même dossier afin que vous n’avez pas besoin d’importer n’importe quelle bibliothèque dans l’IDE Arduino. Il y a aussi un module I2C intermédiaire qui tente de constituer une norme plus et abstrait I2C API que l’Arduino un.
La bibliothèque est portée par le projet plus âgé, et c’est encore assez C que le C++. Il offre seulement des fonctions, sans classes, mais c’est très bien tant que vous ne pas d’interface deux capteurs BME280 (ayant des adresses différentes) sur le même MCU (et très probablement vous ne serez pas). L’avantage de cette bibliothèque, à mon avis, est qu’il est optimisé pour la vitesse plus élevée et la plus faible consommation de ressources. Une des améliorations est que le trafic I2C est réduite au minimum et cela devrait faire une différence (dans les implémentations sans DMA) comme I2C est l’une des interfaces plus lente.
L’app juste Initialise le capteur puis effectue un capteur lire chaque 10ms et envoie les données sur l’interface série dans ce format : température, espace, espace, humidité, pression, nouvelle ligne.
Du côté des PC, nous avons une GUI en traitement v3 qui ouvre un port série pour recevoir les données de l’Arduino et Initialise une fonction de rappel qui sépare le flux de données afin d’extraire les paramètres individuels et qui les pousse intro un tampon. Dans la boucle de draw() j’ai seulement tracer les données et actualiser la dernière valeur reçue (les étiquettes bleues). L’application fonctionne, bien que parfois ne parvient pas à démarrer en raison de non traitées des exceptions dans le code et éventuellement d’autres raisons. En cas de problèmes, vous pouvez essayer de démarrer l’interface graphique tout en maintenant le bouton de reset de l’Arduino et de le relâcher après le démarrage de l’interface graphique. J’espère que j’ai ceci fixera à l’avenir.
Vous pouvez trouver le code pour l’application de l’Arduino et pour l’interface graphique ici : https://github.com/cosminp12/BME280-plotting-GUI