Tous les capteurs reliés au RPI par Wifi avec module ESP8266

Parce que les applications du Raspberry Pi sont illimités...

Modérateur : Francois

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mer. 25 mars 2015 09:19

Bonjour Jean-Marie.

Le SDK 1.0.0 d'Espressif vient de sortir avec la version 22 des commandes AT.
Quand j'ai un peu de temps, je génère les binaires.
Voir sur bbb.espressif.com la liste des améliorations du SDK et des commandes AT.
PDF des commandes AT version 22 : http://bbs.espressif.com/download/file.php?id=256

J'ai résolu mon problème des mails de surveillance des sujets.
Je n'utilise pas le Webmail du portail de mon fournisseur d'accès (Orange).
J'utilise comme application pour gérer mes mails le client Windows Live Mail, Live Mail Filtre les Spams mais Orange les filtre avant lui.
Dans mon cas sur le portail Orange plusieurs solutions:
Indiquer que les mails de la framboise ne sont pas des spams.
Dans le préférences du portail indiquer de ne pas gérer les spams (Liste rouge et liste verte chez Orange).
A+
SMBA38

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mer. 25 mars 2015 11:46

Hello Michel38

Super !!!
Je vois qu'il y a tout une série de nouvelles commandes qui viennent s'ajouter, y compris des configurations par défaut. Cela élargit pas mal les possibilités.

De mon côté, je suis en train d'examiner les possibilités d'utiliser le TS555 (555 en technologie CMOS) avec un transistor MOSFET. Jusqu'ici, cela me paraît tout à fait faisable. J'étais en train d'installer un petit montage sur breadboard (avec un 555 et un transistor ordinaire) pour vérifier la logique de fonctionnement. En effet, habituellement, le 555 est utilisé en monostable pour commander un éclairage ou autre pendant un certain temps. Ici c'est le contraire: à la fin de la transmission des données à la centrale, le µC doit donner l'ordre au 555 de se mettre en route, ce qui doit couper l'alimentation du µC et de l'ESP pendant un temps réglable par potentiomètre jusqu'à plusieurs heures. Cela nécessite un condensateur de forte capacité et de type "low leakage". Heureusement, j'en ai récupéré quelques uns sur des cartes-mères de PC. On trouve facilement des condensateurs de 4 à 6000 µF. J'en ai un de 4700µF sur ma breadboard. Avec une résistance de charge de 10 MΩ, le délai devrait être ~14 heures. En réalité il sera certainement plus long car il y a des pertes. Donc, cela pourrait être tout à fait adapté à un capteur qui ne doit envoyer sa mesure que de temps en temps. Par exemple, si tu surveilles l'humidité du sol d'une plante, cela ne sert à rien d'envoyer une mesure toutes les 10 secondes. Deux fois par jour me paraît suffisant. Si tu veux un capteur qui transmet sa mesure à une assez grande fréquence, une solution sur batterie n'est tout simplement plus adaptée. Il faut une alimentation permanente (ce qui n'empêche pas un système de sleep entre les mesures).
Avec un montage un peu différent, le capteur peut être déclenchée par une action externe. Par exemple l'ouverture d'une porte ou d'une fenêtre peut nécessiter l'envoi d'un signal à la centrale. Dans ce cas, cette action déclenche le Timer qui rend passant un MOSFET de type N. Lorsque l'envoi du signal a réussi, le µC envoie un Reset au Timer qui coupe alors l'alimentation.

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mer. 25 mars 2015 14:26

Bonjour Jean-Marie.

Tes tests avec de l'électronique de commande ont l'air intéressants, j'attends la version définitive pour me lancer.
Avec Nodemcu et Lua, il faut environ 3 secondes entre un reboot et le premier accès au réseau en WIFI.
C'est le temps qu'il faut pour initialiser la connexion.
Avec les commandes AT ça doit être du même ordre.

Pour ma part, je pense faire plus simple avec Nodemcu et Lua.
Je pense faire un boîtier à plusieurs boutons pour télécommander mon portail et mon alarme.
Quand j'appuie sur un bouton l'esp8266 est alimenté et je récupère sur le GPIO Analogique ADC une valeur qui dépend de la résistance de rappel qui est activée par le bouton.
Mais il me faut des petits boutons bipolaires et j'ai du mal à trouver ces boutons pas trop chers.
Si tu as une idée, je suis preneur.

Par contre, il faut que je garde plusieurs secondes le doigt sur le bouton.
Je pense ajouter une LED pour indiquer quand la commande st terminée.

Voici la version 22 des commandes AT avec le SDK 1.0.0. du 20 mars 2015 :
at SDK 1.0.0 v22.zip
(167.74 Kio) Téléchargé 67 fois
Pour Flasher:
AT SDK 1.0.0 v22.JPG
AT SDK 1.0.0 v22.JPG (52.02 Kio) Vu 3411 fois
J'ai un peu testé cette version, un AT+RST affiche les messages de BOOT (avant messages visibles à 74880 bauds) la vitesse est configurée à 115200 bauds.

Code : Tout sélectionner

AT+RST
OK

 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 1320, room 16 
tail 8
chksum 0xb8
load 0x3ffe8000, len 776, room 0 
tail 8
chksum 0xd9
load 0x3ffe8308, len 412, room 0 
tail 12
chksum 0xb9
csum 0xb9

2nd boot version : 1.3(b3)
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size : 4Mbit
jump to run user1

r[18][02]Ž[1B]Ñ
ready
AT+GMR
AT version:0.22.0.0(Mar 20 2015 10:04:26)
SDK version:1.0.0
compile time:Mar 20 2015 11:00:32

OK
 
Il existe plusieurs possibilités de compilation:
Une version normale, une version avec la possibilité de mise à jour OTA(On The Air).
Un exemple de serveur WEB.

C'est la version avec OTA que qui est dans le fichier .zip.

Bons tests.

A+
SMBA38.
Modifié en dernier par smba38 le jeu. 26 mars 2015 18:24, modifié 1 fois.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » mer. 25 mars 2015 19:28

Hello SMBA38

Un grand merci pour les fichiers compilés.
Je continue à me demander pourquoi il est si difficile de trouver ces fichiers compilés alors que j'imagine que cela ne te pose pas de gros problèmes de compiler les sources. Lorsque tu veux mettre à jour le firmware de ton GPS ou de ton appareil photo, tu télécharges un fichier et tu suis les instructions pour le flasher dans l'appareil. Heureusement, on ne te demande pas de compiler une dizaine de fichiers puis de les linker avant de les flasher.
Je pense faire un boîtier à plusieurs boutons pour télécommander mon portail et mon alarme.
Quand j'appuie sur un bouton l'esp8266 est alimenté et je récupère sur le GPIO Analogique ADC une valeur qui dépend de la résistance de rappel qui est activée par le bouton.
Mais il me faut des petits boutons bipolaires et j'ai du mal à trouver ces boutons pas trop chers.
Si tu as une idée, je suis preneur.

Par contre, il faut que je garde plusieurs secondes le doigt sur le bouton.
Je pense ajouter une LED pour indiquer quand la commande st terminée.
Ce serait pas mal que tu fasses un petit schéma de principe pour expliquer ce que tu veux faire exactement car actuellement, j'ai un peu de mal à savoir combien de boutons il te faut, ce qu'ils doivent actionner, pourquoi tu ne peux pas les lâcher et ce que tu entends exactement par "bipolaire".

J'ai fait quelques essais avec un Timer 555 ordinaire. Sa consommation ne conviendrait pas pour une utilisation sur batterie mais son principe de fonctionnement est exactement semblable à la version CMOS à basse énergie. Avec une résistance de 4,7 MΩ et un condensateur de 10 µF, un impulsion basse sur la pin Trigger déclenche une sortie haute pendant exactement 60 secondes. Le calcul théorique donnait 51,7 secondes. Une impulsion basse sur Reset interomp immédiatement le timer.
En remplaçant le condensateur par un 10 MΩ (9,876 mesuré), la réponse est de 129 secondes (valeur calculée: 107 secondes).

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mer. 25 mars 2015 19:59

Bonsoir Jean-Marie.

Pour compiler c'est assez simple.
On peut télécharger une machine virtuelle fournie par expressif (un linux avec la toolchain qui va bien).
Pour pouvoir utiliser la machine virtuelle, il faut installer l'application gratuite Virtualbox.
ensuite pour chaque nouvelle version:
On télécharge le fichier .zip depuis bbs.espressif.com et on le décompresse.
On se positionne dans le répertoire app on lance make pour compiler et gen.misc.sh pour créer les binaires.
Au total ça prend 5 minutes le plus long c'est écrire le message sur le forum.

Je pense que les développeurs aiment bien faire de la rétention d'information.
La devise du développeur est pourquoi faire simple quand on peut faire compliqué (j'ai fait du développement durant 40 ans) .

On peut trouver les binaires sur le WEB mais c'est difficile de trouver rapidement les derniers binaires.
Depuis la version 21 les commandes AT sont définies dans une bibliothèque du SDK.
On peut ajouter ses propres commandes AT ( Avec du développement en C).
Les nouvelles versions corrigent des bugs et proposent de nouvelles fonctionnalités qui ne manquent pas d'avoir des bugs.

Pour le schéma de ma télécommande je le prépare.

A+
SMBA38

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » mer. 25 mars 2015 22:25

RE bonsoir Jean-Marie.

Voici le schéma de principe de ma télécommande à base de boutons bipolaires.
boutons.JPG
boutons.JPG (26.99 Kio) Vu 3391 fois
Avec des boutons bipolaires je peux avec le même bouton:
Alimenter l'esp8266 le temps de me connecter en Wifi sur un serveur Raspberry (ou sur un esp8266 programmé en Lua) qui pilote mon portail et ma télécommande.
Je dois laisser le doigt enfoncé au moins trois secondes.

Sur le second contact, je constitue un diviseur de tension qui me permet de déterminer quel est le bouton (ou les boutons) enfoncé en testant la tension sur l'entrée analogique de l'ESP-12.

Je pense ajouter une diode pour valider l'envoi, cette diode est allumée si le serveur acquitte la réception du message de l'esp8266.

J'ai pompé l'idée sur http://modelleisenbahn.triskell.org/spip.php?article59

C'est bestial mais comme l'électronique n'est pas mon fort ça me convient.
On préserve l'alimentation, l'esp8266 n'est alimenté que le temps nécessaire.
cette solution permet d'utiliser une seule entrée pour plusieurs commandes.

A+
SMBA38.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » jeu. 26 mars 2015 11:03

Hello SMBA

Oui, l'échelle de résistances associée à une conversion analogique-digitale est une solution pour différencier plusieurs input en n'utilisant qu'une seule pin. Par contre, n'est-ce pas un peu te compliquer la vie ? En effet, tu travailles avec des ESP-12 qui comportent de multiples GPIO. Il me semble donc plus simple d'attribuer chaque commande à sa propre pin. D'autant plus que l'ADC des ESP8266 mesure les tensions entre 0V et 1V, c'est à dire sur une plage somme toute fort étroite.

Pour la facilité du système, je verrais bien comme toi un bouton-poussoir par commande mais ce serait plus sympa de prévoir simplement une courte pression pour lancer l'alimentation, exécuter la commande choisie et couper l'alimentation après coup.

Les boutons-poussoirs à simple pôle sont très bon-marchés : 1,11€ pour 5 boutons, envoi compris
15.jpg
15.jpg (21.26 Kio) Vu 3369 fois
Dès qu'on passe à un bouton à double pôle, on est très vite dans les 3€ pièce.

une solution intermédiaire pourrait être d'ajouter un bouton simple pôle pour l'alimentation: on presse momentanément sur ce bouton pour mettre l'alim en marche, ce qui éclaire en même temps une led. Dès que la led est éclairée, on appuie momentanément sur le bouton de la commande. Dès que celle-ci est effectuée, l'alimentation se coupe et la led témoin s'éteint. Si elle reste alumée, c'est que la commande n'a pas pu être effectuée. Il faudrait donc prévoir un bouton supplémentaire pour un reset du système.

J'attend tes réactions avant qu'on ne s'engage plus précisément dans une voie.

smba38
Modérateur
Messages : 193
Enregistré le : mar. 24 févr. 2015 09:28
Localisation : Bourgoin

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par smba38 » jeu. 26 mars 2015 19:10

Coucou Jean-Marie.

Finalement la nuit porte conseil.
J'ai des petits boutons genre va et vient à 3 fils.
Je n'ai besoin que de 3 contacts dans ma télécommande.
J'utilise trois GPIO, je n'utilise plus l'ADC.
Que penses tu de ce schéma.
boutons 2.JPG
boutons 2.JPG (24.96 Kio) Vu 3364 fois
Par contre les GPIO sont toujours sous tension .
L'esp8266 n'est alimenté que si un bouton est enfoncé.
Le contact à traiter est celui relié à la masse.

J'ai publié un article sur MQTT sur Framboise314
http://www.framboise314.fr/linternet-de ... avec-mqtt/


A+
SMBA38.

Avatar du membre
Jean-Marie
Raspinaute
Messages : 240
Enregistré le : sam. 24 janv. 2015 18:01
Localisation : Arlon, Belgique
Contact :

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Jean-Marie » jeu. 26 mars 2015 21:13

Hello SMBA38,

Toutes mes félicitations pour ton article sur l'IoT avec MQTT. Je n'ai pas encore eu le temps de le lire en détail et cela risque de prendre un certain temps car demain à la mi-journée je m'absente jusqu'à mardi soir.

En ce qui concerne ton schéma, je ne sais pas si l'ESP peut supporter des pins d'input à 3.3V alors que le chip n'est pas alimenté. Je ne trouve pas cette information dans les spécifications. Jusqu'ici, je n'ai travaillé qu'avec des microcontrôleurs AVR. Voici les caractéristiques électriques maximales supportables sur un Atmega328, mais c'est valable pour tous les AVR:
16.jpg
16.jpg (50.1 Kio) Vu 3359 fois
On y voit que les GPIO ont une tolérance de 0.5V au-delà de GND ou de VCC. Si l'ESP est du même type, tu es certain d'endommager le chip en alimentant les GPIO sans alimenter le chip. Il m'est arrivé une seule fois (heureusement) de détruire un Atmega8 en alimentant les pins de programmation alors que l'alimentation générale était coupée. Donc, ton montage me fait peur à ce sujet.
Mais il n'y aurait peut-être pas grand chose à modifier à ton schéma. Au repos, au lieu d'être connectés aux GPIO, les 3 poussoirs sont connectés à la pin d'alimentation de l'ESP. Si tu enfonces un bouton, tu transmets le 3.3V sur le GPIO correspondant tout en conservant l'alim générale. La commande exécutée est donc celle qui a son GPIO à la valeur haute.
En fait, cela revient à alimenter séparément l'ESP et à lancer une commande en changeant l'état logique de la pin concernée.
Evidemment, l'ESP reste constamment sous tension. S'il est raccordé au réseau 220V, ce n'est pas trop grave. Mais sur batterie, c'est inacceptable. Il est alors indispensable d'intercaler entre l'alim et les poussoirs un système qui se coupe dès que la commande est exécutée. C'est justement sur ce sujet que je travaille.

Veloce
Messages : 79
Enregistré le : sam. 24 janv. 2015 20:12

Re: Tous les capteurs reliés au RPI par Wifi avec module ESP

Message par Veloce » jeu. 26 mars 2015 21:31

Salut Jean-Marie,

J'ai lu avec intérêt tes expériences pour réveiller un montage avec un timer.
C'est intéressant et original, bravo.

Par contre j'ai peur que la solution à base de gros condensateur ne soit pas assez précise.
Est-ce que tu ne peux pas faire la même chose avec une horloge temps réel ?
Je sais qu'on peut programmer une alarme pour qu'une patte soit allumée à une heure précise.
La patte reste à 1 jusqu'à ce qu'on l'éteigne par programme. Je pense par exemple à la DS1337,
qui doit coûter dans les 3,70 EUR.

Et ces composants ne consomment pas beaucoup, la pile-bouton dure plusieurs années.

Veloce ;)

Répondre

Retourner vers « Et tout le reste »