Centrale de commande connectee sur ESP8266


Recommended Posts

Bonjour,

 

Je pense me lancer dans un projet d'automatisme (application, une centrale de commande de culture hydroponique).

 

Je pensais d'abords faire ca avec un arduino, mais ayant besoin d'une connectivite internet pour pouvoir la commander et d'autre details (synchro horloge via ntp), plutot que partir sur un arduino +shield ethernet/wifi, pourquoi ne pas essayer de faire ca directement sur une puce ESP8266 (pour ceux qui ne connaissent pas c'est dedie a la connection wifi et c'est justement un des microcontrolleur qui peut etre utilise pour le shield arduino wifi).

 

Sur le papier par rapport a un arduino j'aurai directement la connection wifi (cout bien inferieur), et la puce est cadence a plus grande frequence et a plus de memoire. Le probleme etant moins d'entrees/sorties et une plus grande complexite (a mon avis) a integrer les senseurs/actuateurs. Mais j'ai vu qu'il y a une lib 1-wire, i2c ... (j'utilise le firmware nodemcu) donc il y a surement de quoi faire de bonne choses.

 

Question Y-a-t-il des gens qui bidouillent ce genre de microcontroleur et qu'en pensez vous (faisable ?), tout commentaire est le bienvenu avant que je me lance.

 

J'ai ressorti ma vieille carte de dev nodemcu ou j'avais commence a travailler sur des object iot , le code actuel me permet de creer un reseau wifi temporaire, je me connecte dessus avec mon telephone portable et j'affiche une page web a une adresse predefinie (10.0.0.1) qui liste les wifi disponibles et permet de rentrer les infos de mon reseau wifi local (ssid et password), une fois cela fait la carte teste la connectivite et si c'est bon se met en mode parametré et aux reboots suivants sera connecte a mon reseau wifi local en DHCP (enormement d'objets connectes utilisent cette methode pour s'initialiser) 

 

L'etape suivante sera de tester mon senseur temperature (un DS18B20 a priori, pas cher et des version submersibles facile a trouver sur les sites chinois) et afficher une temperature
Ensuite integrer les autres senseurs (hygro, ph , ec .... question : vous en voyez d'autres ?) et les actuateurs (relais pour commander lampe et pompes)


La partie logicielle sera de mettre en place un systeme gerant un planning et les imprevus possibles, connecte a un serveur NTP pour synchroniser la date si besoin.

Pour la mise en place du parametrage de l'automate, je pense que mettre un site web sur l'esp dois etre infaisable, voir tres dur, je m'orienterai donc plutot du cote de la centrale a une gestion de message reseau pour recuperer les donnees et les commandes utilisateurs et du cote reseau local d'une machine tournant sous linux avec apache et un petit site pour interagir avec la bete.

 

Voila tout commentaire de toute nature est le bienvenu, a vrai dire la seule inconnu que j'ai la dedans c'est la faisabilite, ma connaissance de l'ESP8266 etant tres basique (je met le cote securite a l'ecart pour le moment, je sais que c'est une faiblesse de cette puce)

Histoire de mettre une image a ce long texte la sequence de demarrage actuelle (reset usine de la puce puis connection a mon wifi apres mon interaction manuelle, et passage en mode utilisateur)

 

Sequence de demarrage

 

Merci ;)

 

Edited by john_doe
Link to post
Share on other sites
Il y a 8 heures, Gen a dit :

Yop

 

Projet ambitieux, mais je pense que tu vas être short mémoire si tu veux y mettre tout ce que tu y prévois

 

++

GEN

 

Si c'est le cas, j'ai la possibilite de deporter la logique automate du cote de la machine linux gerant le site web de configuration, d'ailleurs en y reflechissant c'est peut etre plus malin de faire ca :

- plus besoin de synchro l'horloge de l'esp8266, c'est l'os qui a l'horaire

- on peut sauvegarder sur le disque dur l'historique du status des senseurs

- plus aucune limite a la complexite du code de l'automate (a part le cpu/espace disque/memoire de la machine linux) et je reviens sur ce que je sais faire le mieux (je bosse dans le software sur linux)

 

L'esp8266 se bornerai a avoir un serveur (udp par exemple) minimaliste ou j'enverrai des messages simples pour setter les actuateurs, et recuperer l'etat des senseurs, la difficultee serai alors de garantir que l'etat de l'esp8266 serai connu en quasi temps reel (disons l'ordre de la seconde) et gerer les cas d'erreurs de connectivite.

L'esp8266 defini comme tel serai meme un terminal domo minimaliste et generique (ou pourrai imaginer l'utiliser comme capteur temperature pour une piece ou un interrupteur connecte, l'esp8266 dedie a la commande du systeme hydroponique etant juste un terminal avec plus de capteurs/actuateurs) 

 

Cordialement.

Edited by john_doe
Link to post
Share on other sites

yop

 

Okidoo.

 

Mais utiliser un ordinateur pour gérer tout ton système, tu n'as pas l'impression que c'est une peu excessif ? Utilises alors un contrôleur tout simplement, non ?

 

++

GEN

Link to post
Share on other sites
Il y a 8 heures, Gen a dit :

yop

 

Okidoo.

 

Mais utiliser un ordinateur pour gérer tout ton système, tu n'as pas l'impression que c'est une peu excessif ? Utilises alors un contrôleur tout simplement, non ?

 

++

GEN

 

Effectivement, mais je me rattache a ce que je connais bien (je voyais une api web quelque part pour tout ca), apres il y a surement des solution minimaliste pour faire tourner un serveur web (que je ne connais pas, mais il y a surement des nano ordinateurs capable de faire ca) et des scripts pour l'automate (je pensais faire ca en python que j'utilise pas mal).

Un ordinateur sera une solution au moins temporaire (j'en ai un qui tourne en 24/7 chez moi de toute facon)

 

J'ai d'ailleurs vu qu'il y avait du neuf sur l'esp8266 depuis la derniere fois que j'avais regarde (il y a longtemps en fait) ... esp easy , et micropython (python, tiens tiens ...) je dois regarder ca avant de decider de travailler avec nodemcu sur l'esp8266 (ou passer sur micropython qui m'a tente en lisant rapidement ses possibilites)

 

Le nombre de materiel et de solutions donne le tournis, et ce choix est crucial.

 

Cordialement.

 

 

 

Link to post
Share on other sites

yop

 

je comprend, cependant si tu maîtrises linux et python, pourquoi ne pas utiliser un raspberry? C'est un mini-ordinateur avec un prix super démocratique. (entre 30 et 50€)

 

++

GEN

  • Like 1
Link to post
Share on other sites
Le 16/11/2018 à 09:11, Gen a dit :

yop

 

je comprend, cependant si tu maîtrises linux et python, pourquoi ne pas utiliser un raspberry? C'est un mini-ordinateur avec un prix super démocratique. (entre 30 et 50€)

 

++

GEN

 

Oui un raspberry serai parfait pour ca.

 

J'ai commence a jouer avec l'esp8266 sous micropython et je suis assez bluffé (facilité d'installation, et je retombe sur des trucs que je connais bien), en 5 minutes, montage avec le module temperature de l'arduino (le ds8b20 sur 1-wire) et ca marche, mon PC recup la temperature via mon reseau local. Je vais sans doute me lancer la dedans avec micropython.

Je vais jouer avec le dht11 et apres commencer a reflechir a la communication entre la puce et le pc (linux/python)  (et donc le raspberry a terme)

 

181118062957716867.png

 

J'ai commande quelques sondes ds18b20 etanches sur un site chinois, je pense utiliser des cable jack 3.5 stereo (donc 3 fils : masse, vcc et signal) pour les connecter a l'esp8266 (qui aura donc des entrees jack pour les sondes de temperatures) , ca aura l'avantage de pouvoir facilement changer leur longueur (si trop court on utilise une rallonge jack)

 

Cordialement.

Edited by john_doe
Link to post
Share on other sites
  • 2 weeks later...

Hello,

 

Il faut que je regarde l'ESP32 effectivement aussi, toutes le solutions sont envisageable, j'ai commence a jouer avec l'ESP8266 pour voir ce qu'on peut en tirer, j'adore le micropython et pour le moment, meme si j'ai quelques soucis d'adaptation a ses specificites, j'arrive a faire ce que je veux.

 

Pour rappel, je pense faire de l'ESP8266 une simple station avec des capteurs et actuateurs, et le programme principal (ainsi que la GUI de configuration) seront sur un mini pc. J'ai recupere un vieux Zotac (qui est surpuissant pour le besoin mais qui me servira pour les developpements) avec 2 port RJ45 et wifi en mode hotspot (pour un reseau wifi dedie domo et donc plus de securite, le zotac faisant office de point unique pour basculer sur mon reseau domestique), tout est installe et parametre sous ubuntu, mais pour le moment je connecte directement l'esp8266 sur mon wifi domestique.

 

Cote ESP je travaille sur l'appli qui va interagir avec le mini pc (voir screen ci dessous)

 

- il travaille en mode serveur (pour recevoir des ordres et requetes du mini pc), on vois sur le screen ci dessous un message GCF (get conf) pour recuperer la configuration de l'esp, ca me servira a parametrer l'automate via http et envoyer des commandes

- j'ai fais mumuse avec les asyncio (pour faire du pseudo-multiprocess) et il est capable d'envoyer un message en mode client aussi (c'est les message STT periodiques), ca servira a envoyer periodiquement l'etat des senseurs vers le mini pc (qui le stockera en database sql et agira en fonction de leurs valeurs)

- le Pin(2) que l'on vois est un test sur les interruptions, mon idee etait de mettre en place un reset usine comme je l'avais fait avec nodemcu (presser 5 seconde sur un interrupteur pour revenir a la configuration initiale, c'est a dire pouvoir se connecter avec son telephone sur l'esp et changer le ssid et le mot de passe)

 

Pour les echanges entre l'esp et le mini pc, je suis parti sur un dump de classe de type json pour pouvoir reutiliser le code des deux cotes et travailler direct avec des classes.

 

181202073617867133.png

 

 

 

 

 

 

 

Link to post
Share on other sites
  • 3 months later...

Salut, 

 

Je pilote ma box avec 2 nodemcu (ESP8266).

Le premier gère les relais le second gère les sondes.

Je passe par ESPEASY installer sur les nodemcu. Ils renvoient les infos à la Box en MQTT.

Les scénarios et l'historique des mesures des sondes sont controllé depuis la box domotique.

 

J'avais d'abord essayer de gérer mes box avec un raspberry, mais j'ai abandonné. Avec ESP EASY, C'est bien plus simple

 

Voila ce que ca donne

 

 

Capture.JPG.59f3e7926986dd344467e622e8c390b9.JPG

Link to post
Share on other sites
  • 1 month later...