dimanche 22 décembre 2019

3 - ÉCONOMISER L'ENERGIE

L'alimentation de notre module Lora se fait par le connecteur d'entrée LipO-LI-iON fourni




Les tests et les commentaires des forums sont unanimes, on peut utiliser la fonction DeepSleep de l'esp32 pour le mettre en veille , et dans tous les cas il faut une méthode de réveil et éviter de les mettre dans le coma difficilement réversible.

La meilleure performance en veille (serait) une consommation de 12 milli Ampères ce qui est très insuffisant pour ces Esp.

Je vous propose un montage un peu tiré par les cheveux mais qui fonctionne parfaitement.
Autre option, le solaire, il existe des montages simples à réaliser.

On va utiliser un autre modèle d'Arduino comme commande de relais d'alimentation de l'Esp, un ATTINY 45 ou 85 qui se programme comme un Arduino mais qui consomme en veille sur une alimentation de 3.3 V par plus de 7 micro Ampères et réveillé par un timer interne .




Le transistor 2N2222A en mode bloqué supporte jusqu'à 900 mA ce qui est largement suffisant dans notre cas.

************Modifcations au 01/05/2020*****************

Api_d nous propose une alternative en  changeant de transistor, ce qui est fort appréciable pour une puissance supérieure, en effet le montage que je vous propose ne fonctionnera pas avec une carte plus gourmande en énergie.



Pour plus de souplesse j'ai testé un système avec un transistor à effet de champ à grille isolée plus couramment nommé MOSFET modèle courant P16NF06 . Le schéma est un peu différent mais s'il est un peu plus cher , ll peut passer beaucoup plus de puissance. Alimenter des relais , des Esp plus gourmands en Wifi etc ...
Le code attiny ne change pas.





La résistance R1 limite le courant de sortie du attiny < 20 mA

La résistance R2 décharge le condensateur interne du Mosfet à la veille du attiny et coupe le circuit externe.


************FIN    Modifcations au 01/05/2020*****************

A vous d'améliorer ce montage, les batteries 18650 restent fragiles quand leur tension descend en dessous de 3 v (elles existent aussi en mode protégé) , rechargez les au moins avant 6 mois ou vous pouvez modifier le codes pour y mettre un témoin de charge batterie en entrée analogique, ou mettre une Zener pour bloquer le courant en dessous d'une certaine valeur, ou utiliser une carte BMS etc ...

Le Attiny consomme vraiment très peu , sa batterie peut tenir plus d'un an .

Je suis preneur des améliorations.




cablage et programmation d'un AtTiny






Installation de la carte ATTINY



Installation de la bibliothèque tinysnore ( deep sleep )





Choix de la carte et du programmateur , mettez bien la clock à 8Mhz
et choisissez votre modèle d'Attiny, la différence entre le at45 et le at85 c'est la taille de la mémoire 



Première programmation du microcontrôleur ATtiny : si la puce est programmée pour la première fois, allez dans Outils et faites « Graver la séquence d’initialisation ». Ceci n’est pas à refaire pour une reprogrammation de la puce.


Chargez le code "sleepy_blink_at45_20sU-30mnL.ino"  , branchez votre programmateur, vérifiez le port com et téléversez.

Vous pouvez au préalable modifier ce code pour faire des tests 

20sU correspond à 20 sec en fonctionnement
30mnL correspond à 30 mn en veille

Sachant que le sketch pour l'Esp, on envoie les valeurs de charge toutes les 7 sec (paramétrable), temps de démarrage du module compris on recevra toutes les 30 mn 2 valeurs séparées de 7 sec 

 digitalWrite(led, HIGH);
  delay(20000); // 20 seconds, using full power
  digitalWrite(led, LOW);
  snore(1780000); // Deep sleeps for 30 mn 



Vous pouvez utiliser ce module: https://fr.aliexpress.com/item/32647690484.html
très performant en wifi sur lequel vous installez EspEasy et des sondes de températures et autres sans programmation et compatibles avec la VM présentée dans ce tuto -->mqtt

Source principale à l'origine de ce projet: https://projetsdiy.fr un grand Merci !

Et bien que le sujet soit différent, une excellentissime source de développement Arduino, je cite : https://www.locoduino.org

Et bien sûr le forum Arduino Francophone.






Voilà c'est fini pour ce projet, amis apiculteurs, mes respects .















samedi 21 décembre 2019

2- AFFICHAGE LoRaWan ou Wifi

2-formatage des données par NodeRed et envoi dans InfluxDb puis affichage dans Grafana


Afin d'éviter une installation complexe de la base de donnée et du moteur graphique qui sont en langue anglaise, je vous propose d'installer une machine virtuelle qui est déjà paramétrée pour un usage domestique.


Elle dispose de 


MQTT - NODE-RED - INFLUXDB - GRAFANA

Cette machine peut être propulsée par des moteurs gratuits différents:

Hyper-V de Microsoft ( disponible sur Windows 10 nativement en version PRO)
VMWare Workstation Player  ( Windows Linux Mac)
VirtualBox  ( Windows Linux Mac)


Cette machine tourne sous Linux mais ne soyez pas effrayés, le système est prêt, les quelques commandes qui pourront être nécessaires seront décrites en détail.

Pourquoi une MV sous Linux:

C'est très fiable, très stable, très économe en ressources ( pas d'interface graphique) et gratuit.
C'est mobile et indépendant de votre système d'exploitation.



Installation d'Hyper-V




Installation VMWare



Installation VirtualBox

https://fr.wikihow.com/installer-VirtualBox

version 6.1


Le mieux sous Windows serait d'utiliser Hyper-V , mais pour le plus grand nombre d'utilisateurs, nous allons regarder comment utiliser la VM sous VirtualBox (en français).




Au premier démarrage de la VM il faut connaitre l'adresse ip qui lui a été affectée par le dhcp de votre box.

L’idéal serait d'aller sur la console d'administration de votre box, et d'ajouter cette machine en adresse statique afin qu'elle soit fixée.

Comme montre cette vidéo, connectez vous sur la console:

utilisateur: superadmin
mdp: superadmin

! c'est en QWERTY donc il faudra taper superqd,in

et  ip -4 qddr

Nous n'auront plus besoin ensuite d'aller sur la console, on utilisera Putty et les sessions seront en Azerty

Et comme tout est prêt vous pouvez vous y connecter avec votre navigateur à l'adresse que vous avez récupéré.

ex:

Node-Red http://192.168.1.27:1880

Grafana  http://192.168.1.27:3000 utilisateurs :  admin pass: admin  ou superadmin pass: superadmin

C'est important que l'adresse IP soit fixée dans votre bail DHCP car votre VM recevra les messages MQTT donc ce sera cette IP qu'il faudra indiquer dans vos sketchs Arduino

J'ai volontairement laissé des données dans la BDD influxDB afin d'avoir un aperçu de la chose. je vous indiquerai les commandes pour vider les bases.


lien téléchargement VM ICI

Ca pèse 5 Go

Créez un dossier sur votre disque dur ex: c:\VM , posez y l'installeur de VirtualBox et la VM téléchargée

Installez et testez.



Modifications à effectuer sur Node-red



il faut adapter votre ou vos topics en entrée à cette configuration




Remplacer esp003/balance3  par votre valeur qui par défaut dans le sketch etait: #define Probe01_topic "balance/poids" donc balance/poids







Si vous envoyez des données vers MQTT de cette VM vous devriez voir ces valeurs arriver dans Grafana



Guide utilisation sommaire de Grafana


Ce sera plus facile à montrer avec une petite vidéo

Accès en http://votreip:3000

Si vous vous connectez en admin admin , une nouveau mot de passe vous sera demandé.






Bien évidemment votre PC ne devra pas se mettre en veille et la VM toujours en fonction.
Pour de meilleures performance en fonction de votre PC vous pouvez affecter 1 coeur de plus à votre VM ( quand elle est arrêtée, paramètres système ...)


Téléchargez Putty: ici

Supprimer les données que j'ai laissées:

ouvrir putty et se connecter sur votre ip
puis passer ces commandes :






Votre Grafana est prêt à afficher vos données.

jeudi 12 décembre 2019

1-COMMUNICATION Utiliser le réseau longue portée LoRaWan pour récupérer ses données


*************************************************
DEBUTANTS:

Cet exercice fait référence à l'exercice précédent sur ce lien:



*************************************************

Si votre ruche n'est pas accessible via le WiFi, voici comment récupérer son poids et l'afficher sur votre ordinateur.

cet article comportera 3 parties:

1-communication LoRa vers Wifi Mqtt NodeRed

2-formatage des données par NodeRed et envoi dans InfluxDb puis affichage dans Grafana

3-optimisation de l’énergie



Ce qui devrait ressembler à peu près à ça:




Le principe est le même que dans l'article précédent, mais nous allons utiliser une "passerelle"  LoRaWan ----->  WiFi autonome

Vous devriez avoir réalisé la partie informatique de l'exercice précédent car nous utiliserons le MQTT et le NodeRed , nous replacerons l'esp WiFi par l'esp LoRa sinon,

Bonne nouvelle: je vous ai préparé une machine virtuelle toute prête à l'emploi qui contient la totalité des applications nécessaires:

MQTT - NODE-RED - INFLUXDB - GRAFANA

environ 5 Go à télécharger: fichier vhd sous linux debian 8

Nous n'avons besoin d'aucun abonnement , on fonctionne en HadHoc
La passerelle supporterai jusqu'à 253 balances 

Côté balance nous mettons un boitier LoRa qui transmet vers la passerelle LoRa , qui retransmets en Wifi sur votre réseau vers la passerelle MQTT.

les Esp32 Lora ont une portée théorique de 2 km à 10 km en mode sans obstacle mais à tester en fonction des antennes fournies et de la puissance indiquée dans le code.

Voici donc la liste des courses en 868 MHZ :



1 TTGO pour la passerelle avec écran OLED c'est mieux




Vous pouvez utiliser un TTGO Lora sans écran pour mettre côté balance



Si vous n'avez pas d'énergie à proximité de vos ruches il sera nécessaire d'alimenter par batteries, et pour ne pas être esclave de la recharge je vous proposerai en fin d'article un montage électronique qui vous permettra d'utiliser 3 batteries type 18650 et un attiny 25 ou 45 pour servir de relais de mise en route de votre boitier Lora/balance afin d'obtenir une valeur chaque demi-heure pour une durée de batteries de 6 mois.


A prévoir:


 1 seul suffira en 2n2222A pour relais alimentation



Pour programmer le ATTINY 45  

Pour économiser l'énergie , ne consomme que 7 micro ampères en veille

Essayez de trouver un 45 si possible , un 85 fera l'affaire.


1 bloc de 1 pour attiny et 
1 bloc de 2 pour l'Esp 


Indispensable pour la programmation ATTINY


Prévoyez 3 batteries et un chargeur. Les batteries avec protection sont un peu plus grandes que les sans protections, ce qui fait un peu forcer dans les boitiers support des 18650. Prenez des sans protection si vous voulez.


Ces liens sont donnés à titre indicatif, vous pouvez vous fournir au moins cher mais les Esp32 en TTGo sont recommandés par rapport au code optimisé pour eux.

Le transport des batteries en Li-ion est toujours très long du fait qu'elles sont acheminées avec précaution . Patience.

****

Lien vers les fichiers de code ino :  ICI


****

Câblage du module sans écran balance




ATTENTION

AVANT DE METTRE EN SERVICE LES MODULES LORA IL FAUT BRANCHER L'ANTENNE SINON CA POURRAIT ENDOMMAGER LE COMPOSANT

les modules supportent une alimentation de 3.3 v à 7 v, si on alimente la balance en 5 v il vaut mieux alimenter le boitier en 5v minimum soit par l'usb ou le câble fourni 

le montage consomme en émission environ 130 mA en pic



PROGRAMMATION DES MODULES


Il va être nécessaire d'installer de nouvelles bibliothèques et de nouvelles cartes.
il faut dans un premier temps ouvrir notre logiciel Arduino, puis aller dans préférence et ajouter les liens vers les cartes:

celle-ci doit être déjà présente mais pas nécessaire dans ce projet:

https://arduino.esp8266.com/stable/package_esp8266com_index.json

il faudra rajouter celles-ci:

https://dl.espressif.com/dl/package_esp32_index.json
https://docs.heltec.cn/download/package_heltec_esp32_index.json
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json



Ensuite il faut aller dans le menu "outils" type de carte "xxxxxx" gestionnaire de cartes ( la mise à jour peut être longue )
Dans le champ de recherche tapez "esp32" et installez ces 2 types de cartes



Allez dans le menu "croquis" inclure une bibliothèque , gérer les bibliothèques

tapez Heltec et installez la bibliothèque Heltec ESP32


Il faut vérifier que la bibliothèque PubsubClient soit installée sinon à faire avant le téléversement :


Programmation de la passerelle:


Chargez : passerelle-heltec_lora_32_1.09_ANON.ino

Modifiez les champs nécessaires à votre configuration et sauvegardez

wifi, port mqtt, topics etc

Dans le menu choisissez: WiFi Lora 32


et vérifiez le port sur lequel elle est branchée.

les autres options restent par défaut

le moniteur série sera paramétré sur 115200

Vous pouvez vérifier et téléverser votre code, la passerelle est prête.





Utilisez de préférence Putty sur com"X" pour visualiser les logs et l'IP connectée plutôt que le moniteur série.





Programmation d'un module balance:



Chargez : LoRaSenderhx711_idAA-newheltec_LORA_prod.ino

Changez les paramètres de:

nom du boitier : par defaut 0xaa  qui doit correspondre a un des noms que va accepter votre passerelle.

Facteur de calibration 

et tare de la balance.

Enregistrez, vérifiez et téléversez.




Chargez la balance ou injectez de la valeur



Données reçues et transférées :







prochain article: installation de la machine virtuelle pour recevoir, enregister et afficher vos données.
...........