Page créée le : 14/10/2020 Auteur : Christophe Delannoy
Récupérer le Code
-
Sur GitLab, prendre la version HTTPS : Lancer une console (Git Bash sur Windows), se placer dans votre répertoire Sketches
git clone https://gitlab.com/tontonCD/myMoss.git
-
Par la suite pour récupérer des mises à jour il suffira de faire
git pull
-
dupliquer et renommer (ou simplement renommer) ces deux fichiers :
credential.exemple
encredential.h
,settings.exemple
ensettings.h
Ces fichiers, qui vont contenir vos paramètres, ne sont pas versionnés, ils ne seront pas écrasés lors d'une mise à jour.
Vous ne devriez pas avoir à modifier d'autres fichiers (mais regarder les "commentaires" inclus si vous le devez).
Ce qui suit représente (en partie) le readme.md du dépôt GitLab.
principe
Le"Sender" capture les données (gyroscope) et les transmet au "Serveur" en HTTP (voir plus en détail dans fonctionnement).
Le projet (xx) comporte les deux codes Client et Serveur, il suffit de changer la valeur #define MODE xxx
dans settings.h, en #define MODE modeClient_NoDeepSleep
ou #define MODE modeServer_viaRouter
et éventuellement le Port (Outils>Port) dans Aruido.App si les deux modules1 sont branchés en même temps sur le même PC2.
pour commencer
- modifier :
- dans
credential.h
: vos noms d'utilisateur, nom de routeur (SSID) et mot-de-passe selon votre réseau local,
calibration du capteur
La calibration doit être faite une seule fois.
Il s'agit du réglage initial de la puce34, ne pas confondre avec la Calibration du myMoss (voir ce châpitre).
Dans le fichier settings.h
:
- choisissez le mode Client (
#define MODE modeClient_NoDeepSleep
), - choisir votre capteur, par exemple
#define USE_GYRO_SENSOR_MPU9250 true
, les autres doivent être àfalse
- vérifiez que
#define DO_CALIBRATION
est bien àtrue
- relier le modules au PC en USB, choisir le Port Série (Outils>Port), Téléverser le programme (Croquis>Téléverser).
- repérer les lignes
AK8963 mag biases (mG)
etAK8963 mag scale (mG)
dans le Monitor5, copier les valeurs respectives et les coller en face de# define MAG_BIAS
et# define MAG_SCALE
danssettings.h
. - vous pouvez mettre
#define DO_CALIBRATION
àfalse
.
Consulter pour chaque mode, dans le Moniteur, les infos à renseigner pour l'autre mode (voir graphiques).
Librairies utilisées
Si ce n'est fait, installer ces librairies en utilisant le Libraries Manager (Arduino : Outils > Gérer les Bibliothèques) :
- "wire"
https://github.com/zischknall/BohleBots_BNO055- "Adafruit BNO055" (Arduino : Outils > Gérer les Bibliothèques)
Road Map
Server: get and serve data : ok 10/02- Activate the DeepSleep mode (Client/Server)
- Server: clear data on demand
- Client: send more data at a time
- Server: get more data at a time
Publish pages on Web : ok, needs updatePublish code via GitLab- Gérer ESP_DoubleResetDetector pour switcher le mode deepsleep ?
- Chercher interrupteurs à gravité (nom ?)
- Convertir Angle en Densité (Server / Client / app ?)
- Densité VS Plato ?
- Regarder : il n'est pas tenu compte de la température pour corriger la valeur (note : la correction n'est pas la même pour un Réfractomètre et un Densimètre)
Suite : Configuration
j'appelle "module" la partie matérielle 2: on peut utiliser les deux modules , mais comme on ne peut choisir qu'un Port, le Monitor (Arduino.app) n'affichera que celui qui a été choisi). 3: Plus d'infos sur la Calibration : - https://www.firediy.fr/article/calibrer-le-capteur-mpu6050-avec-un-arduino-drone-ch-5 - https://diydrones.com/profiles/blogs/advanced-hard-and-soft-iron-magnetometer-calibration-for-dummies - https://www.woolseyworkshop.com/2018/08/17/interfacing-an-mpu6050-gyroscope-accelerometer-sensor-module-to-an-arduino-uno/ 4: Calibration du MP9250 : - https://github.com/kriswiner/MPU6050/wiki/Simple-and-Effective-Magnetometer-Calibration - https://fr.mathworks.com/help/fusion/ug/Estimating-Orientation-Using-Inertial-Sensor-Fusion-and-MPU-9250.html 5: pour le 9250 ils faut déplacer le capteur dans toutes le positins possibles (faire des '8') durant la calibration, juste après le message "Wave device in a figure eight until done!" ; si vous ne l'avez pas fait, ou mal, faire reset sur le module et recommencer.