Détecteur d’orage avec un Arduino Uno et un AS3935 (V2)
J’avais déjà fait un article pour le détecteur d’orage à base d’AS3935 (voir ici) mais force était de constater qu’il ne marchait pas bien. Et j’ai rapidement compris où était le problème : les nodemcu gèrent très mal les interruptions ! J’ai eu les mêmes constat avec le pluviomètre, et c’était le même problème ici. Voici comment j’ai procédé.
Les interruptions
J’avais déjà galéré avec le pluviomètre et des nodemcu avant de jeter l’éponge et de repasser sur un Uno. Et une discussion sur le commentaire de l’article initial de détecteur d’orage m’a fait tilt ! C’est le même problème ici, les interruptions des nodemcu fonctionnent mal, et c’est pourquoi je ne recevais jamais de résultat. J’ai donc entrepris de repartir de zéro pour un résultat probant !
Montage
J’ai repris les bases du montage existant mais sur un Arduino Uno. OK, mais comment le faire communiquer ? J’ai réutilisé un module RJ45 (voir ici et ici) pluggé sur un module grove (voir ici) pluggé lui même sur l’Arduino.
On empile les couches mais les platines grove sont mes amies : faciles à câbler, même pour une led, ca évite le bordel de fil à l’intérieur !
Le module AS3935 est cabler sur 4 fils via un cable grove + 2 fils volants (IRQ + 3V).
Câblage AS3935 :
- VCC (V) – 3V (câble grove)
- GND(G) – GND (câble grove)
- SCL (CL) – i2 (câble grove)
- SDA (DA) – i2c (câble grove)
- MI – /
- IRQ – D4
- SI – 3V
- CS – /
J’ai aussi ajouté 3 LED :
- led verte : clignote 1 fois par min en checkant que le serveur est up, clignote quand un message est envoyé
- led rouge : s’allume si problème de transmission réseau
- led bleue : s’allume si un éclair est détecté, reste allumée pendant 30 min
Pour tester l’ensemble, j’ai cherché des astuces sur internet. Je ne voulais pas investir dans un simulateur d’orage et j’ai donc trouvé la solution : il faut utiliser un allume gaz, très près du détecteur et cela suffit à le faire déclencher !
Après quelques appuis, il déclenche. Voici ce que donne le moniteur série. On remarquera l’appel au webservice et l’envoi des données au site (et oui ca permet de tester toute la chaine !)
Starting network
192.168.1.77
192.168.1.1
AS3935 Franklin Lightning Detector
Schmow-ZoW, Lightning Detector Ready!
Are disturbers being masked: YES
Are we set for indoor or outdoor: Indoor.
Noise Level is set at: 2
Watchdog Threshold is set to: 2
Spike Rejection is set to: 2
The number of strikes before interrupt is triggerd: 1
Disturber.
Disturber.
Lightning Strike Detected!
Approximately: 24km away!
Lightning Energy: 6191
connected
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 30 Aug 2020 12:29:19 GMT
Content-Type: teDisturber.
xt/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
60
data added to storm.txtdata added to datas/2020/08/20200830_storm.txtAdd data successfull <br />
0
Le code
Je me suis basé cette fois si sur la librairie de Sparkfun (SparkFun_AS3935.h), disponible dans le gestionnaire de librairies Arduino. On retrouve les options classiques de l’autre librairie mais je trouve qu’elle fonctionne mieux.
Rien de spécial dans le code, tout est très clair. J’ai laissé tous les paramètres par défaut et ai juste rajouter le code d’initialisation réseau, et d’appel du webservice.
Le code source complet est disponible comme d’habitude sur mon github.
Emplacement final
J’ai mis le montage dans une boite plexo rectangulaire fixée en haut de la montée d’escalier descendant à mon sous sol, juste sous les combles pour être au plus proche de l’extérieur et au plus long des perturbations.
Conclusion
J’ai pu tester ce montage et valider que celui ci fonctionnait ! Reste à attendre un vrai orage mais c’est prometteur.
On voit aussi que les interruptions sont mal gérées par les nodemcu et qu’il vaut mieux se rabattre vers des solutions qui font leurs preuves pour ce genre de projet !
Le site météo n’affiche pas encore les données d’orage, j’attends un vrai orage pour faire les tests et valider.
super article je souhaite me lancer dans la conception de ce module, je suis novice dans le domaine je voudrais juste savoir si je vais me confronter à de grosse difficulté.
Bonsoir,
Je n’ai pas éprouvé de difficultés particulières. Tout dépend votre niveua mais c’est assea accessible (cablage, code).
Par contre, la fiabilité n’est pas maximale, faut pas s’attendre à des miracles. Peut etre qu’avec une antenne externe ca serait mieux ?
Sinon le must c’est ca : https://www.blitzortung.org/en/cover_your_area.php
Mais ce n’est pas le même prix et il faut 2 à 3 ans d’attente pour acheter un module :-/
Mais si vous réalisez celui de mon article, et si vous etes assez isolé ca peut bien fonctionner !
Tenez nous au courant des les commentaires !
Bonsoir Je voudrais me lancer dans cette aventure détecteur orage local simple !! sans passer par grove !! et sans les donnees c ‘est possible ??? cordialement
Patrice
Bonjour,
Au final le module n’est pas fiable, il ne me remonte pas les bonnes choses j’ai laché l’affaire …
Si quelqu’un trouve une autre idée je serais preneur.
Sinon la solution fiable ce sont les boitiers de https://www.blitzortung.fr/
Bonjour,
À parement, il vaudrait mieux une connexion SPI à I2C.
https://learn.sparkfun.com/tutorials/sparkfun-as3935-lightning-detector-hookup-guide-v20#spi-only
L’IC gère mal l’I2C et d’après le Datasheet, le VCC peut être compris de 2.4 à 5.5V, et je l’ai trouvé bien plus stable avec du 5V que du 3.3V. Je suis en phase de test pour le moment…
intéressant, je suis preneur du résultat si ca marche bien !!