tiny wx station Ayant acquis une certaine expérience lors de la réalisation de mon projet de station météo décrite dans l'article Station météo APRS LoRa, et ayant quelques modules LoRa RFM95W, j'ai décidé de faire un test de faisabilité pour une mini station météo très faible consommation.

Les premiers résultats étant très encourageants, j'ai poursuivi mon projet jusqu'à obtenir un projet mature.

Caractéristiques :

- Transmission en LoRa via le réseau APRS
- très faible consommation en veille, 6-7uA ! 
- utilisation d'un module LoRa RFM95W
- utilisation d'un module BOSCH BME280
- microcontrôleur Arduino pro-mini

Réalisation:

J'ai utilisé un circuit imprimé développé par l'université de Pau pour leur projet "Low-cost LoRa IoT framework" et dont les fichiers Gerber sont disponibles ici

Le capteur BME280 est connecté sur les pins A4 SDA et A5 SCL de l'Arduino pro-mini

Le module LoRa RFM95W est soudé directement sur le circuit imprimé.

Afin d'obtenir une consommation minimale, l'Arduino pro-mini 3,3 V / 8 MHz a été choisi car il ne possède que le strict minimum.
Après suppression des 2 diodes LED et du régulateur de tension 3,3V, on obtient un module très faible consommation :
- 0,1 micro-Ampère en veille profonde avec réveil par une interruption.
- 4,5 micro-Ampère en veille avec réveil par le watchdog, mode qui est utilisé dans le cas présent.

L'alimentation se fait à l'aide d'un jeu de piles AA, Li-Ion ou autre en fonction du besoin, en tout état de cause aux environs de 3,3V !

Logiciel :

Ecrit à l'aide de VSC et PlatformIO.
Les bibliothèques utilisées sont déclarées dans le fichier platformio.ini et ont été choisies en raison de leur faible taille et simplicité d'utilisation.

Une fonction "longSleep" appelée dans la boucle principale réveille le module à l'aide du timer du watchdog et décrémente un compteur.
Lorsque le compteur atteint la valeur voulue TXPERIOD, on déclenche une mesure de la tension batterie et du capteur BME280 et on transmet en LoRa sur la fréquence voulue à destination du réseau APRS.
Le watchdog du microcontrôleur est très peu précis et il ne faut s'attendre à aucune précision de la période de réveil, ce qui n'est pas important dans le cas présent.

Certains types de batteries peuvent se dégrader si on descend sous une certaine tension. (Li-Ion par exemple).
Lorsque la tension descend sous un seuil programmable et dans le but de sauvegarder la batterie, le logiciel passe l'Arduino en veille profonde et seul le module LoRa continue à consommer 3,5 uA. Il est temps de changer la batterie !

Le logiciel est disponible en téléchargement sur mon Github.

Configuration :

La latitude et longitude sont saisies au format APRS. On peut les obtenir facilement à l'aide de ma carte QRA LOCATOR

La fréquence TXFREQUENCY est saisie en Hz.

La puissance d'émission TXPOWER est saisie en dBm (max 20)

La période d'émission TXPERIOD est saisie en s (300 par défaut = 5 min)

L'Arduino pro-mini ne possédant pas d'interface USB, la programmation du module s'effectue à l'aide d'une interface USB-TTL via le connecteur latéral du module.

Utilisation :

Une fois le logiciel configuré et injecté dans l'Arduino pro-mini, il n'y a rien de particulier à faire.
Si le montage doit être installé à l'extérieur, il y a lieu de bien protéger l'ensemble contre les intempéries, notamment le module BME280. Voir à ce sujet mon article Station météo APRS

En fonctionnement, le montage consomme :
- en veille normale 7 à 8 micro-A
- en émission à puissance maximum, 82 mA
- en veille profonde lorsque la batterie est faible, 3,5 micro-A