Controle Automower par WIFI - ESP8266 (pour G2 uniquement)
Publié : ven. juin 30, 2017 6:08 pm
Bonjour,
Je présente ici mon petit projet de monitoring/pilotage à distance de nos Automower G2 (220, 230, 260, ...) par liaison WIFI.
PDC a déjà développé une solution élégante et fonctionnelle il y a plusieurs années mais le temps nécessaire à sa mise en uvre devient un soucis (pour lui). Sa solution sur base de Fonera est plus aboutie et propose plus de fonctions que celle que j'expose ici.
Je compte la développer par la suite et lui apporter de nouvelles fonctionnalités avec l'aide d'autres membres je l'espère.
ATTENTION : les mises en garde habituelles sont de mise !!!
Il faut intervenir dans le robot
Il ne faut pas se tromper quand on câble des circuits alimentés
Il ne faut surtout pas se tromper quand on câble les interfaces de communication avec le robot
-> bref, de la patience et un minimum de maîtrise en électronique sont indispensables.
But du projet :
1) récolter des données de fonctionnement du robot à distance. Le but est d'utiliser le programme développé par PDC (TweakAutomower)
2) pouvoir commander le robot à distance.
3) utiliser une solution peu couteuse
4) utiliser une liaison WIFI (ce qui sous-entend que la couverture WIFI de la maison porte suffisamment loin dans le jardin!)
Matériel requis :
1) une borne d'accès WIFI fonctionnelle dans votre maison
2) un robot prêt à être ouvert
3) un module ESP8266-12 c.à.d un circuit intégré à microcontrôleur avec connexion WiFi (valeur 3,6)
[img https://img4.hostingpics.net/pics/678165ESP826612.jpg]
4) un câble et connecteurs faits maison
Principe :
L'ESP8266-12 utilisé dans ce projet est un modèle "NodeMCU" cela signifie que le microcontrôleur (qui a en fait la taille d'une pièce de 2) est monté sur un circuit imprimé qui permet la connexion immédiate de tous les éléments nécessaires : liaison directe vers PC par USB pour sa programmation, alimentation, entrées/sorties série pour connexion au robot.
Ce module comporte une puce WIFI intégrée ainsi qu'une antenne (portée chez moi...au delà des 100m!).
Les connexions câblées sont réduites au minimum et se font toutes sur le connecteur blanc de la carte mère (merci à Jo pour son dessin éternel) :
Connecteur blanc ESP8266
---------------------- -----------
1) RX TX = D8 (GPIO15)
2) TX RX = D7 (GPIO13)
7) GND GND
9) 3.3v 3.3v
[img https://img4.hostingpics.net/pics/90490 ... hemajo.jpg]
Mise en uvre :
1) Programmation de l'ESP8266-12
Pour faire court, l'ESP8266 est programmable dans l'environnement IDE d'Arduino.
- soit vous connaissez : "oh oui, facile, je maîtrise"
- soit vous êtes intéressé : [url https://www.arduino.cc/en/Main/Software] et [url https://learn.sparkfun.com/tutorials/es ... uino-addon]
- soit vous êtes désespéré : contactez moi
Attention la programmation du module est une étape importante. Il est vital qu'il n'envoie pas d'informations erronées au robot sous peine de bloquer la carte mère.
J'ai donc développé des protections software.
2) WIFI : je pars du principe que le module ESP8266 utilise une adresse IP fixe. Je programme donc cette adresse directement dans le module ainsi que les données de connexion (SSID, mot de passe).
La programmation inclu un monitoring de la liaison WIFI, un redémarrage de celle-ci en cas de perte (éloignement, obstacles, etc...).
Le module ESP8266 n'offrant, à mon goût, pas une grande stabilité WIFI à long terme je redémarre le module automatiquement toutes les 10 minutes (ce qui crée une interruption de connexion de moins de 2 secondes)
3) Connexions à l'intérieur du robot :
2 petits connecteurs faits maison connectent la carte mère à l'ESP8266.
J'ai placé l'ESP-8266 tout près du réglage de coupe. Comme vous le constatez, c'est minuscule.
[img https://img4.hostingpics.net/pics/668346Placement.jpg]
Utilisation :
Une fois installé le module se connecte au WIFI de la maison.
A l'aide de logiciel "TweakAM" de PDC il est alors possible de récolter, consulter et même diriger le robot à distance.
(section développée par PDC ici : [url http://automowerfans.free.fr/fans/pdc/wlan/index.html]. Tout est pareil à partir de l'installation de TruePort).
Le ramener à la maison, le remettre en mode AUTO, vérifier sa charge et sa température, changer sa durée de charge, etc...se fait depuis votre divan.
Développements supplémentaires intégrés dans ma version "personnelle":
J'ai ajouté plusieurs éléments à ce set-up de base :
1) un monitoring indépendant de la tension de la batterie et de sa température
Ayant suivi les pas de PDC ma 230 est maintenant équipée de batteries Li-Ion. Je voulais absolument pouvoir monitorer de manière totalement dissociée du robot ces 2 paramètres de fonctionnement.
Température : j'ai ajouté une sonde de t° digitale "DS18B20" à l'ESP-8266 (entourée de rouge sur le pack de batterie)
Tension : je mesure la tension directement à partir de l'ESP-8266 via un diviseur de tension (pont diviseur)
Ces 2 données sont mesurées toutes les 30s (ou à le demande) et envoyées vers un site Internet Of Things gratuit qui me permet de les visualiser partout dans le monde et sur une appli
[img https://img4.hostingpics.net/pics/632468Thingerio.jpg]
2) Intégration dans mon système domotique
J'utilise un système "HomeMatic" ([url http://www.homematic.com/]) chez moi pour contrôler mes chauffages et ma chaudière.
J'ai donc intégré un script créé sur le forum HomeMatic qui me permet de contrôler mon Automower à partir de la même application, tout le temps, partout.
[img https://img4.hostingpics.net/pics/742323HomeMatic.jpg]
Futurs développements :
Je reste persuadé (tout comme pdc) que ce type de contrôle à distance par WIFI offre toutes les garanties de sécurité afin de ne pas envoyer de mauvaises commandes au robot.
Cependant, et en association avec Razmoket, nous travaillons à ajouter une couche de contrôle supplémentaire. Ce sera pour ... le futur
Une seconde étape sera pour moi (toute aide est la bienvenue) de faire tourner un mini serveur web sur l'ESP-8266.
De cette façon n'importe quel "engin" connecté (PC, tablette, GSM, etc...) pourrait simplement se connecter via une page web et commander le robot par simple pression des touches prédéfinies.
Crédits :
Une fois encore PDC a été d'une aide précieuse !
Je vous renvoie également vers ce lien pour ce qui concerne l'intégration Homematic : [url https://homematic-forum.de/forum/viewtopic.php?t=7295]
Je présente ici mon petit projet de monitoring/pilotage à distance de nos Automower G2 (220, 230, 260, ...) par liaison WIFI.
PDC a déjà développé une solution élégante et fonctionnelle il y a plusieurs années mais le temps nécessaire à sa mise en uvre devient un soucis (pour lui). Sa solution sur base de Fonera est plus aboutie et propose plus de fonctions que celle que j'expose ici.
Je compte la développer par la suite et lui apporter de nouvelles fonctionnalités avec l'aide d'autres membres je l'espère.
ATTENTION : les mises en garde habituelles sont de mise !!!
Il faut intervenir dans le robot
Il ne faut pas se tromper quand on câble des circuits alimentés
Il ne faut surtout pas se tromper quand on câble les interfaces de communication avec le robot
-> bref, de la patience et un minimum de maîtrise en électronique sont indispensables.
But du projet :
1) récolter des données de fonctionnement du robot à distance. Le but est d'utiliser le programme développé par PDC (TweakAutomower)
2) pouvoir commander le robot à distance.
3) utiliser une solution peu couteuse
4) utiliser une liaison WIFI (ce qui sous-entend que la couverture WIFI de la maison porte suffisamment loin dans le jardin!)
Matériel requis :
1) une borne d'accès WIFI fonctionnelle dans votre maison
2) un robot prêt à être ouvert
3) un module ESP8266-12 c.à.d un circuit intégré à microcontrôleur avec connexion WiFi (valeur 3,6)
[img https://img4.hostingpics.net/pics/678165ESP826612.jpg]
4) un câble et connecteurs faits maison
Principe :
L'ESP8266-12 utilisé dans ce projet est un modèle "NodeMCU" cela signifie que le microcontrôleur (qui a en fait la taille d'une pièce de 2) est monté sur un circuit imprimé qui permet la connexion immédiate de tous les éléments nécessaires : liaison directe vers PC par USB pour sa programmation, alimentation, entrées/sorties série pour connexion au robot.
Ce module comporte une puce WIFI intégrée ainsi qu'une antenne (portée chez moi...au delà des 100m!).
Les connexions câblées sont réduites au minimum et se font toutes sur le connecteur blanc de la carte mère (merci à Jo pour son dessin éternel) :
Connecteur blanc ESP8266
---------------------- -----------
1) RX TX = D8 (GPIO15)
2) TX RX = D7 (GPIO13)
7) GND GND
9) 3.3v 3.3v
[img https://img4.hostingpics.net/pics/90490 ... hemajo.jpg]
Mise en uvre :
1) Programmation de l'ESP8266-12
Pour faire court, l'ESP8266 est programmable dans l'environnement IDE d'Arduino.
- soit vous connaissez : "oh oui, facile, je maîtrise"
- soit vous êtes intéressé : [url https://www.arduino.cc/en/Main/Software] et [url https://learn.sparkfun.com/tutorials/es ... uino-addon]
- soit vous êtes désespéré : contactez moi
Attention la programmation du module est une étape importante. Il est vital qu'il n'envoie pas d'informations erronées au robot sous peine de bloquer la carte mère.
J'ai donc développé des protections software.
2) WIFI : je pars du principe que le module ESP8266 utilise une adresse IP fixe. Je programme donc cette adresse directement dans le module ainsi que les données de connexion (SSID, mot de passe).
La programmation inclu un monitoring de la liaison WIFI, un redémarrage de celle-ci en cas de perte (éloignement, obstacles, etc...).
Le module ESP8266 n'offrant, à mon goût, pas une grande stabilité WIFI à long terme je redémarre le module automatiquement toutes les 10 minutes (ce qui crée une interruption de connexion de moins de 2 secondes)
3) Connexions à l'intérieur du robot :
2 petits connecteurs faits maison connectent la carte mère à l'ESP8266.
J'ai placé l'ESP-8266 tout près du réglage de coupe. Comme vous le constatez, c'est minuscule.
[img https://img4.hostingpics.net/pics/668346Placement.jpg]
Utilisation :
Une fois installé le module se connecte au WIFI de la maison.
A l'aide de logiciel "TweakAM" de PDC il est alors possible de récolter, consulter et même diriger le robot à distance.
(section développée par PDC ici : [url http://automowerfans.free.fr/fans/pdc/wlan/index.html]. Tout est pareil à partir de l'installation de TruePort).
Le ramener à la maison, le remettre en mode AUTO, vérifier sa charge et sa température, changer sa durée de charge, etc...se fait depuis votre divan.
Développements supplémentaires intégrés dans ma version "personnelle":
J'ai ajouté plusieurs éléments à ce set-up de base :
1) un monitoring indépendant de la tension de la batterie et de sa température
Ayant suivi les pas de PDC ma 230 est maintenant équipée de batteries Li-Ion. Je voulais absolument pouvoir monitorer de manière totalement dissociée du robot ces 2 paramètres de fonctionnement.
Température : j'ai ajouté une sonde de t° digitale "DS18B20" à l'ESP-8266 (entourée de rouge sur le pack de batterie)
Tension : je mesure la tension directement à partir de l'ESP-8266 via un diviseur de tension (pont diviseur)
Ces 2 données sont mesurées toutes les 30s (ou à le demande) et envoyées vers un site Internet Of Things gratuit qui me permet de les visualiser partout dans le monde et sur une appli
[img https://img4.hostingpics.net/pics/632468Thingerio.jpg]
2) Intégration dans mon système domotique
J'utilise un système "HomeMatic" ([url http://www.homematic.com/]) chez moi pour contrôler mes chauffages et ma chaudière.
J'ai donc intégré un script créé sur le forum HomeMatic qui me permet de contrôler mon Automower à partir de la même application, tout le temps, partout.
[img https://img4.hostingpics.net/pics/742323HomeMatic.jpg]
Futurs développements :
Je reste persuadé (tout comme pdc) que ce type de contrôle à distance par WIFI offre toutes les garanties de sécurité afin de ne pas envoyer de mauvaises commandes au robot.
Cependant, et en association avec Razmoket, nous travaillons à ajouter une couche de contrôle supplémentaire. Ce sera pour ... le futur
Une seconde étape sera pour moi (toute aide est la bienvenue) de faire tourner un mini serveur web sur l'ESP-8266.
De cette façon n'importe quel "engin" connecté (PC, tablette, GSM, etc...) pourrait simplement se connecter via une page web et commander le robot par simple pression des touches prédéfinies.
Crédits :
Une fois encore PDC a été d'une aide précieuse !
Je vous renvoie également vers ce lien pour ce qui concerne l'intégration Homematic : [url https://homematic-forum.de/forum/viewtopic.php?t=7295]