Densimètre Wifi iSpindle

De Le Wiki du Brassage Amateur
Aller à : navigation, rechercher

Présentation

Le iSpindle est un projet open source de densimètre wifi.

Cela permet de suivre la densité en cours de fermentation sans ouvrir le fermenteur. Les données sont envoyées toutes les 30 minutes directement via wifi vers un site internet. Ce dernier permet d'afficher un graphique de l'évolution de la densité ainsi que de la température.

Le fonctionnement repose sur l'analyse de l'angle du densimètre dans le liquide. En fonction de l'angle (et de la température), on peut corréler une densité.

L'autonomie est d'environ 3 mois (log des données toutes les 30 minutes).

Floating.jpg

Dashboard.jpg

Matériel

Deux "versions" du iSpindle sont envisageables. Au final le fonctionnement est le même et le choix dépendra de la capacité de chacun à trouver les pièces et à arriver à souder le tout (connaissances en électronique).

Version Facile (mais plus chère)

Pour ceux qui ne se sentent pas de découper du PCB, commander les pièces un peu partout puis souder le tout (il ne faut pas avoir de gros doigts :p) on trouve ici un kit contenant tout le nécessaire ainsi qu'un PCB (circuit imprimé) spécifiquement conçu pour le iSpindle. On trouve aussi le traineau (support en plastique) mais la batterie est à commander séparément (trouvable sur le même site).

C'est la solution recommandée pour avoir un truc qui marche facilement et rapidement.

Version Avancée (mais plus économique)

Alors là il va falloir acheter le matériel (plusieurs choix possible, le moins onéreux étant probablement aliexpress).

Voici la liste des composants :

  • Cylindre en plastique (type géocaching)

Il contiendra tout le montage. La taille "officielle" est disponible ici.

  • Diamètre Intérieur: 41mm (début 22mm)
    • Diamètre Intérieur: 37mm (restant)
    • Diamètre Exterieur: 51mm
    • Longueur: 150mm

Alternative Ebay : le petling XL. Légèrement plus court (137mm).

Autre alternative Ebay pour la version XXL

  • Traineau (support)

L'idéal est de télécharger le support et l'imprimer sur une imprimante 3D. Sinon, il est toujours possible de l'acheter sur le site du kit (voir ci-dessus).

Voici les fichiers destinés à l'impression 3D selon le modèle de tube :

Tube XL Ebay : https://www.thingiverse.com/thing:2169567

Tube XXL Ebay (choisir 36x133) : https://github.com/universam1/iSpindel/tree/master/drawer

  • Batterie

Modèle 18650 type Panasonic NCR18650B. Si possible, prenez une batterie protégée, de marque, avec des ailettes déjà soudées, vous éviterez un possible risque d'incendie...

  • Wemos D1 mini

C'est le cerveau du iSpindle ainsi que son module de communication Wifi.

3 modèles sont possibles : Wemos D1 mini V2, Wemos D1 mini V3, Wemos D1 mini pro V1.

Achat sur le site officiel Lolin (sur Aliexpress) : https://lolin.fr.aliexpress.com/store/1331105

  • Gyromètre/accéléromètre GY-521

Permet de mesurer l'angle d'inclinaison. (possible d'utiliser un MPU-6050 en modifiant légèrement le montage)
Pour retirer la LED sans endommager le circuit (trop petit pour y aller avec un fer à souder), utiliser la lame d'un cutter.

  • Sonde de température DS18B20
  • Morceau de PCV (circuit imprimé) de 3x4cm ou un PCB double face (merci à airliquide)

Servira pour assembler le tout

  • Résistances (puissance de 0.25W)
    • 4k7 ohms
    • 220k ohms
    • 330 ohms (à remplacer par la diode BAT43 SCHOTTKY)
    • Diode BAT43 (type SCHOTTKY) : c'est la solution fortement recommandée pour les raisons évoquées ici et on en discute sur le forum ici.
      (Pour la diode, la Cathode va sur le D0 car elle est polarisée, contrairement aux résistances.)
  • microswitches

Un petit switch on/off

  • Module de charge lipo TP4056 (modèle 6 pins recommendé)

C'est ce qui permettra de recharger la batterie

Circuit et montage

Schéma général

Schematic-en.png

Exemple de montage #1

Voir cette page sur le github officiel du projet

Suppression de la DIODE du Wemos

Il faut supprimer la diode du Wemos (à ne pas confondre avec une LED ! LED = lumière, diode=pas de lumière, elle sert (grossièrement) à laisser passer le courant dans un seul sens). Ceci est important afin d'éviter que le courant arrivant du port USB n'entre en conflit avec la batterie.

Sur tous les modèles cette diode est situé sur la face où le connecteur USB est soudé. Sur celle-ci, à la loupe, on peut lire "SL" (merci à airliquide).

Autre remarque d'Epidemaiis :

Il faut virer la diode du Wemos (ou s’arranger pour couper le circuit).

Après il y a le choix :

- on utilise uniquement le port usb du TP4056 pour charger (Wemos éteint).
- on relie le 5v du port usb Wemos au In+ du TP4056 ce qui permet d’utiliser seulement le port usb Wemos pour tout faire (charger et programmer). Surtout intéressant pour les modèles XL (et non XXL) qui ont le module de charge TP4056 déporté.

Localisation de la diode en fonction du modèle wemos :

(Passer la souris au-dessus de l'image pour voir le modèle)

D1 MINI V2 D1 MINI V3 D1 MINI PRO V1

Configuration

Calibration

Explication de craboune à propos du concept général de calibration :

Dans un premier temps il faut le poser à plat et le calibrer dans cette position. C'est son "zero". Ensuite il faut le calibrer pour qu'il puisse convertir son angle d'inclinaison (le tilt) en densité. Pour cela tu vas "fabriquer" plusieurs solutions à différentes densités auxquelles vont correspondre différents angles d'inclinaison. Les solutions "fabriquées" sont des solutions à différentes concentrations en sucres et donc de densité différentes. Tu vas donc obtenir une relation entre le tilt et la densité. Avec quelques points (disons une dizaine pour avoir une bonne précision) tu vas "prédire" une tendance qui sera valable pour pouvoir calculer la densité à partir d'un angle d'inclinaison inconnu.

IMPORTANT

Vous devez lester votre iSpindle afin d'atteindre un angle de 25° dans l'eau (0° Plato, Densité spécifique = 1.000).
C'est obligatoire pour le bon fonctionnement de l'appareil.

Méthode simple

Il est conseillé de connecter le iSpindle à Ubidots afin d'avoir une lecture facile des mesures d'inclinaison.

De plus, il est plus que judicieux de changer *temporairement* le paramètre de l'intervalle d'envoi des données via internet, en le passant à 20 secondes. Il sera ainsi plus facile de suivre les mesures sur le site Ubidots pendant la procédure de calibration.

  1. Mettre le iSpindle dans de l'eau. (0° Plato, Densité spécifique = 1.000). Noter sur un papier l'angle du densimètre. (qui doit être le plus proche possible de 25°)
  2. Créer une solution de sucre et d'eau, correspondant à la densité la plus élevée par rapport aux bières brassées habituellement. Si les bières brassées sont des bières fortes, démarrer avec une solution ayant une densité élevée. Pour la plupart des brasseurs, une densité aux alentours de 1.085 (20° Plato) fera l'affaire.
    Exemple : solution de 400 ml d'eau avec 100g de sucre.
  3. Diluer la solution du point 2 avec de l'eau jusqu'à atteindre 15° Plato (densité 1.061)
    Exemple : diluer la solution vue à l'étape 2 avec 166 ml d'eau. Mesurer et noter la densité (ou degré plato) ainsi que l'angle du densimètre.
  4. Diluer la solution du point 3 jusqu'à atteindre 10° Plato (densité 1.040) .
    Exemple: Diluer la solution du point 3 avec 333 ml d'eau. Mesurer et noter la densité (ou degré plato) ainsi que l'angle du densimètre.
  5. Diluer la solution du point 4 jusqu'à atteindre 7.5° Plato (densité 1.030).
    ​Exemple: Diluer la solution du point 4 avec 333 ml d'eau. Mesurer et noter la densité (ou degré plato) ainsi que l'angle du densimètre.
  6. ​Diluer la solution du point 5 jusqu'à atteindre 5° Plato (densité 1.020).
    ​Exemple: Diluer la solution du point 5 avec 333 ml d'eau. Mesurer et noter la densité (ou degré plato) ainsi que l'angle du densimètre.​
  7. Diluer la solution du point 6 jusqu'à atteindre 2.5° Plato (densité 1.010).
    Exemple: Diluer la solution du point 6 avec 2000 ml d'eau. Mesurer et noter la densité (ou degré plato) ainsi que l'angle du densimètre.
  8. Enfin, entrer toutes les données mesurées dans cefichierexcel qui va permettre de calculer la formule de référence.
    Il est aussi possible d'utiliser cet outil en ligne (qui fait la même chose).

Une fois la formule récupérée (enfin !) on va pouvoir calibrer le iSpindle en se rendant dans la partie "configuration" de l'interface WEB.

Pour Ubidots, Il faut s'y connecter, aller dans "Source". Choisir le iSpindle. Cliquer sur le + (add variable). Choisir "Derived" et entrer les données.

Ubiderived.jpg

Ubiplato.jpg

Méthode avancée (fermentation rapide)

La méthode de calibration par fermentation est une autre méthode permettant de calibrer le module I-Spindel. Cette méthode possède l'avantage d'être plus proche de la réalité car elle tient compte du dégagement de CO2 lors de la fermentation et prend ainsi en compte l'effet de cette la pression résiduelle dans le fermenteur sur l'angle d'inclinaison du I-Spindel.

Le principe global reste le même que pour une calibration point par point effectuée avec des solutions indépendantes de sucre. A chaque valeur de densité correspond un angle d'inclinaison spécifique du I-Spindel. Il suffit de quelques valeurs (en général au moins 5 ou 6) afin d'obtenir une tendance ou régression linéaire pouvant prédire n'importe quelle valeurs de densité à partir d'une valeur d'un angle. 

La régression linéaire peut être une régression polynomiale du premier ordre de type y = ax + b ou du second ordre y = ax² + bx + c (où y est la valeur de densité obtenue et x la valeur de l'angle d'inclinaison = le tilt)

Dans le premier cas, on a une relation proportionnelle (en considérant que la droite passe par le point (0,0) donc b=0), dans le second cas elle est quadratique.


Mais revenons à notre méthode de calibration par fermentation. Pour ce faire il suffit tout simplement de simuler une fermentation. C'est pour cette raison que cette méthode est un peu plus longue à mettre en oeuvre que la méthode classique.

Prenez un récipient tel qu'un petit fermenteur de quelques litres ou bien une Dame Jeanne en prenant soin que le module I-Spindel puisse passer facilement par le goulot ;-)

Connecter votre I-Spindel à votre serveur (Ubidots, Morebeer, ou autre) afin de recevoir les données (angle d'inclinaison)


1/ Déterminer l'angle avec le module plongé dans de l'eau seule à 20°C (densité = 1.000) et notez son angle d'inclinaison.  (qui doit être le plus proche possible de 25°) Vous avez le premier point de votre courbe de calibration.

2/ Préparer un solution sucrée de densité 1085 environ soit un rapport 1 pour 4 entre le sucre et l'eau (par exemple 100g de sucre pour 400g d'eau à 20°C). Bien homogénéiser l'ensemble. Noter la valeur de l'angle d'inclinaison du module. Prenez également la densité avec un densimètre. Vous avez le second point de votre courbe de calibration.

3/ Ajouter un sachet de levure sèche dans le fermenteur en ayant pris soin de la réhydrater auparavant. Oxygéner bien le tout (procéder comme pour l'ensemencement classique d'un brassin).

4/ Fermer le fermenteur à l'aide d'une bonde ou d'un siphon permettant ainsi au CO2 de s'échapper).

5/ Il suffira ensuite de venir de temps en temps prélever un échantillon de votre moût en fermentation, de noter  sa densité toujours à l'aide d'un densimètre et bien entendu de relever l'angle d'inclinaison du module correspondant à cette densité. Vous avez alors les autres points de votre courbe de calibration.

6/ Chaque relevé de densité viendra alimenter votre courbe de calibration.

7/ Rentrer, dans la feuille de calcul Excel donnée dans ce Wiki, l'ensemble des valeurs obtenues afin d'en déduire la régression polynomiale. Vous choisirez entre celle du premier ou second degré selon l'allure de la courbe la plus juste obtenue.



Remarque : Toutes ces étapes peuvent être faites également lors d'une vrai fermentation lorsque vous réalisez votre brassin. La seule précaution à prendre et elle n'est pas des moindre, c'est de bien nettoyer votre module en le passant au ChemOxy, ChemiPro (ou autre produit équivalent) afin qu'il n'amène pas d'infection dans votre moût. A chaque prise de densité, noter la valeur de l'angle (tilt) comme indiquer ci-dessus.

Paramétrage Ubidots

Serveur TCP Python

Il est possible de récupérer les données directement via un serveur TCP écrit en python. On le trouvera ici.

Flasher le firmware

A traduire : https://github.com/universam1/iSpindel/blob/master/docs/Firmware_en.md

Windows

Linux

Interface Web

FAQ

Ca ne fonctionne pas, je n'ai aucune donnée
Le meilleur moyen de trouver la solution est de savoir ce que fais le iSpindle. Pour cela, il faut lire son log via le port série ou via l'IDE arduino.
Connecter le iSpindle via son port micro USB, ouvrir le port COM et lire les données. (paramètres port COM : baud rate = 115200).

Tuto youtube: https://youtu.be/6xDW5GbIbUw
Se connecter au portail internet du iSpindle
Allumer le iSpindle. Appuyer sur le bouton reset 3 ou 4 fois, ce qui a pour effet d'activer le mode "point d'accès wifi".
Un nouveau réseau wifi sera visible, nommé "iSpindel". S'y connecter (via PC, tablette, smartphone).
Le navigateur doit automatiquement rediriger vers la page http://192.168.4.1. Si ce n'est pas le cas, y aller (copier/coller le lien).
Maintenant que l'on est sur le portail, aller dans "Configuration" et entrer le jeton wifi ainsi que le mot de passe d'accès à <u>votre</u> réseau wifi. Cliquer sur "Save". Le iSpindle va maintenant envoyer ses données sur Ubidots. Noter que le iSpindle n'est PLUS joignable, sauf à le repasser en mode "portail" encore une fois.
Pourquoi ne peut-on pas accéder au iSpindle en fonctionnement normal ?
Afin d'avoir une autonomie la plus longue possible, il faut éviter au maximum d'activer le iSpindle et de le connecter au wifi. Cela consomme 300x plus d'énergie qu'en veille profonde. C'est pour cela que l'intervalle de log des données est de 30 minutes (et dodo profond entre temps).
Le port Micro USB permet de mettre à jour le firmware (micro-logiciel) ?
Oui, voir la rubrique "firmware".
Comment calibrer l'affichage du voltage ?
A partir du firmware 3.0 il est possible d'ajuster le facteur de conversion. Par défaut il est de 191.8.
Pour l'ajuster, utiliser la formule : voltage affiché /voltage mesuré * facteur de conversion (191.8) = nouveau facteur
Est-il possible de faire fonctionner le iSpindle dans une cage de Faraday (type cuve inox fermée ou autre) ?
Afin d'avoir un signal wifi suffisant, voilà quelques pistes :
- "Casser" la cage de faraday. C'est possible en séparant (électriquement) le couvercle de la cuve, en appliquant par exemple un joint en silicone entre les deux.
- Utiliser une antenne passive. Utiliser un câble coaxial dénudé de chaque côté sur 32mm. (par exemple Lambda/4). Exemple ici : http://hobbybrauer.de/forum/viewtopic.php?p=208782#p208782
- Installer un répéteur wifi à côté de la cuve afin de booster le signal.

Références

Site iSpindle original sur gitHub

Le sujet dédié sur le forum