Arduini mega ou ESP8266 ???

Bonjour,

Voilà mon interrogation du jour,

je suis sur mon prjet qui avance plutôt bien mais je me pose une question qui me semble existentiel mais qui doit être si simple pour vous.

Projet :

Gérer un aquarium, terrarium, etc. entièrement programmable

Question : que faut-il que je mette sur l'ESP8266 et que faut-il que je mette sur l'arduino még

J'ai un arduino méga avec wifi ESP8266 intégrer type (https://www.amazon.fr/ATmega2560-ESP8266-USB-TTL-NodeMCU-Compatible/dp/B07HML8DZD)
Je veux prendre des infos sur Openweathermap les mettre sur un site internet assez simple en majorité en html avec un thème style bootstrap et surement quelques jauges et graphiques type google charts

Tout ça pourrait se faire uniquement avec l'ESP8266 mais voilà j'ai aussi 5 capteurs (t° eau, t° air, humidité, niveau d'eau, etc.) 3 dalles leds (led UV, led RGB, led blanches avec des lever et coucher de soleil) des relais pour ventilation, pompe, etc. un ecran LCD, une carte SD MP3, un ampli

De plus je voudrais que tout ça soit gèrable par le site internet avec des sxitch pour les relais et un visuel pour les capteurs.

Pour moi sur l'arduino Méga je mets : LED, LCD, Carte SD MP3(pour diffuser du son et image pour l'interface graphique du LCD)

Mais tout ce qui est server web, API Openweather, capteurs il faut que je le mette sur l'ESP8266 ou sur l'Arduino Méga avec juste un #include <ESP8266WiFi.h>

Bonsoir

3eme voie : une carte à ESP32 bien dotée en GPIOs
(On peut ajouter des GPIO avec un expanseur I2C ou SPI)

mais il faudrait en savoir plus sur les capteurs, l'écran... etc... pour confirmer la faisabilité

le "#include ESP8266WiFI.h" n'a de sens que sur un ESP8266 pour lequel on développe en utilisant l'IDE Arduino

Pour gérer l'ESP8266 de la carte "Mega+ESP8266" pas de librairie particulière probablement , juste des commandes AT envoyées par un port série.

J'ai déjà le matériel donc un ESP32 me semble effectivement une solution mais pas forcément celle que je voudrais.

Voici mon cahier des charges :

  1. Récupération d'API sur le serveur d'Openwheathermap

  2. Site internet

Création d'un site internet pour récupérer les informations de openweathermap et les mettre en forme.
Créer un système pour pouvoir récupérer ces informations et pouvoir les modifier si besoin (On-Off sur les récupérations, si Off donner une information à la place)
Créer bouton pour gérer On-Off des relay (pompes à eaux, brumisateurs, chauffage, ventilateurs).
Mettre en place un mode paramètre pour gérer :

  • lumières (temps, dessus, arrière, fond, etc.)
  • les durées de chaques choses
    Mettre en place un système de lecture pour que l'on puisse voir les données en temps réel des capteurs.
    Voir code : code_site_internet

3.ESP8266

Récupérer les informations sur site internet et les fournir au code du Arduino Méga

4.Arduino Méga

Gère tout

5.LCD

Afficher sur LCD :

  • l'heure
  • la date
  • le mode (Nuit, Aube, Matin, Après-èmidi, Crépuscule)
  • La température de l'air
  • La température de l'eau
  • L'humidité de l'air
  • Le niveau d'eau
    Avec un parametre où on peut actionner tout avec des boutons On/Off
  • Ventilateurs Gros+Moyen
  • Ventilateurs petits
  • Pompe pluie
  • Pompe Myst
  • Pompe cascade
  • Brumisateurs

6.Carte SD

Pour mettre les icons au format : ????
Pour mettre les sons au format : wav

7.LED
A.LED du dessus
a.Blanc Froid
° En fonction du temps que donne Openweathermap
b.Blanc Chaud
° En fonction du temps que donne Openweathermap
c.Phyto
° En fonction du temps que donne Openweathermap
d.UV
° En fonction du temps que donne Openweathermap
Faire varier l'intensité suivant la quantité de nuage (int=100%-all)
Schéma de base :

Nuit :

  • UV int = 100%-all
  • Blanc froid = 10%-(all/10)
  • Blanc chaud = 10%-(all/10)

Aube :

  • UV de 100%-all à 50-all, if all>50 alors 0
  • Blanc Froid de 10%-(all/10) à 100%-all + 10 si all<10 alors 100%
  • Blanc chaud de 10%-(all/10) à 50-(all/2)
  • phyto de 0 à (100-all) + 10 all<10 alors 100%

Matin :

  • UV 50-all, if all>50 alors 0
  • Blanc Froid 100%-all + 10 si all<10 alors 100%
  • Blanc chaud de 50-(all/2) à 100%-all + 10 si all<10 alors 100%
  • phyto (100-all) + 10 all<10 alors 100%

Après midi :

  • UV 50-all, if all>50 alors 0
  • Blanc Froid de 100%-all + 10 si all<10 alors 100% à 50-(all/2)
  • Blanc chaud 100%-all + 10 si all<10 alors 100%
  • phyto (100-all) + 10 all<10 alors 100%

Crépuscule :

  • UV de 50-all if all>50 alors 0 à 100%-all, if all>50 alors 0
  • Blanc Froid de 50-(all/2) à 10%-(all/10)
  • Blanc chaud de 100%-all + 10 si all<10 alors 100% à 10%-(all/10)
  • phyto de (100-all) + 10 all<10 alors 100% à 0

B.LED de derrière
a.RGB
Faire un schéma Nuit, Aube, Matin, Après midi, Crépuscule si il fait Beau, Nuageux, Orage,

Voir fichier excel bruitage

C.LED de dessous
a.UV

Schéma de base :

Nuit :

  • UV int = 100%-all

Aube :

  • UV de 100%-all à 0

Crépuscule :

  • UV de 0 à 100%-all
  1. Capteurs
    A.Capteur de température et d'humidité dans l'air
    Si capteur temp < température site internet -> allumer chauffage
    Si capteur temp > température site internet -> allumer petits ventillateurs(x4)
    Attention : prévoir une différence de température de 3 degrès (ex:si prévision=20 et que capteur=23 alors OK, si prévision=20 et que capteur=24 alors allumer les ventillateurs)
    Si capteur hum < humidité site internet -> allumer brumisateurs
    Si capteur hum < humidité site internet -> allumer petits ventillateurs(x4)
    Attention : prévoir une différence d'humidité de 10% (ex:si prévision=60 et que capteur=69 alors OK, si prévision=60 et que capteur=71 alors allumer les ventillateurs)

B.Capteur d'humidité de sol
Si capteur hum_sol < humidité site internet -> allumer pompe pluie
Si capteur hum_sol < humidité site internet -> rien faire
Attention : prévoir une différence d'humidité de 20% (ex:si prévision=60 et que capteur=41 alors OK, si prévision=60 et que capteur=39 alors allumer pluie)

C.Capteur de température de l'eau
Température de base de l'eau : 29°C
Si capteur temp_eau < température de l'eau site internet -> allumer chauffage eau
Si capteur temp_eau < température de l'eau site internet -> rien faire
Attention : prévoir une différence de température de 3 degrès (ex:si capteur=26 alors OK, si capteur=25 alors allumer chauffage eau)

D.Capteur niveau d'eau
Voir le niveau minimum qu'il faut et faire envoyer un sms quand il y en a pas assez

E. Capteur d'ouverture de porte
Arréter tout ce qui est brumisateurs, pompe pluie, pompe myst, pompe cascade si le capteur est ouvert.

9.Horloge Temps réel
S'en servir pour :

  • Avoir l'heure sur le LCD, (Voir si il y a moyen de faire des verification d'heure une fois par jour en passant par esp8266)
  • Programmer les LED (Jour, Nuit, Durée de l'aube et du crépuscule),
    ° Début de l'aube : Voir sur le site internet, (=sunrise-Temps de l'aube)
    ° Temps de l'aube : Voir sur le site internet, (normalement 30 minutes)
    ° Durée du jour : De sunrise à sunset
    ° Durée de la nuit : De la fin du crépuscule au début de l'aube
    ° Durée de l'animation LED arrière
    ° Durée de l'animation LED dessous
  • Programmer les ventilateurs,
    ° En fonction du temps que donne Openweathermap
  • Programmer les pompes,
    ° En fonction du temps que donne Openweathermap
  • Programmer les brumisateur,
    ° En fonction du temps que donne Openweathermap
  1. Ampli :
    Utilisation de la carte SD pour les sons
    trouver sons pour chaque ambiance

  2. Relay :

  3. Gros ventilateur + Moyen ventilateur
    Si température air > de + de 10 °C de temp Openweathermap alors lance ventillateur moyen pour refroidir dedans et gros pour extraire air des composants

  4. Petits ventilateurs x 4
    Si vent compris entre 0 et 1 m/s alors pas de ventillation
    Si vent compris entre 1 et 2 m/s alors ventillation de 2 min toute les heures à 25 % de puissance
    Si vent compris entre 2 et 3 m/s alors ventillation de 2 min toute les heures à 50 % de puissance
    Si vent compris entre 3 et 4 m/s alors ventillation de 2 min toute les heures à 75 % de puissance
    Si vent suppérieur à 4 m/s alors ventillation de 2 min toute les heures à 100% de puissance

Attention décaler les temps de ventillation, de pluie, de myst et de brume

  1. Pompe pluie

Pendant le jour
Si hum compris entre 0 et 20 % alors pas de pluie
Si hum compris entre 20 et 40 % alors pluie de 2 min toute les heures
Si hum compris entre 40 et 60 % alors pluie de 4 min toute les heures
Si hum compris entre 60 et 80 % alors pluie de 6 min toute les heures
Si hum compris entre 80 et 100 % alors pluie de 8 min toute les heures

Attention décaler les temps de ventillation, de pluie, de myst et de brume

  1. Pompe Myst

Pendant le jour
Si hum compris entre 0 et 20 % alors pas de myst
Si hum compris entre 20 et 40 % alors myst de 2 min toute les heures
Si hum compris entre 40 et 60 % alors myst de 4 min toute les heures
Si hum compris entre 60 et 80 % alors myst de 6 min toute les heures
Si hum compris entre 80 et 100 % alors myst de 8 min toute les heures

Attention décaler les temps de ventillation, de pluie, de myst et de brume

  1. Pompe cascade

Pendant le jour
Si hum compris entre 0 et 20 % alors pas de cascade
Si hum compris entre 20 et 40 % alors myst de 15 min toute les heures
Si hum compris entre 40 et 60 % alors myst de 30 min toute les heures
Si hum compris entre 60 et 80 % alors myst de 45 min toute les heures
Si hum compris entre 80 et 100 % alors cascade tout le temps

  1. Chauffage eau

se gère tout seul

  1. Chauffage nappe

Voir capteur température d'air

  1. Brumisateur

Si hum compris entre 0 et 20 % alors pas de brumisation
Si hum compris entre 20 et 40 % alors brume de 2 min toute les heures
Si hum compris entre 40 et 60 % alors brume de 4 min toute les heures
Si hum compris entre 60 et 80 % alors brume de 6 min toute les heures
Si hum compris entre 80 et 100 % alors brume de 8 min toute les heures

Attention décaler les temps de ventillation, de pluie, de myst et de brume

liste exact des capteurs :

carte sd mp3 : https://fr.aliexpress.com/item/32827861742.html?spm=a2g0o.cart.0.0.25163c00PpSKoi&mp=1
niveau d'eau : Capteur de niveau d'eau de pluie électronique intelligent, Module de détection de profondeur de Surface liquide pour T1592 P pour | AliExpress
capteur filaire porte : Capteur de porte et fenêtre filaire MC38, interrupteur magnétique aléatoire avec fil allongé de 30mm, système d'alarme domestique pour arduino | AliExpress
humdité sol : Détection intelligente de l'hygromètre d'humidité du sol, Module de capteur d'humidité pour carte de développement arduino, bricolage Robot voiture intelligente | AliExpress
t° eau : Page Not Found - Aliexpress.com
t et humidité air : Capteur numérique de température et d'humidité pour Arduino, détecteur, DHT11, DHT22, AM2302B, AM2301, AM2302, AM2320, | AliExpress

relais : Relais OMRON SSR 5V 1 2 4 8 canaux, Module de relais à semi conducteurs de haut et bas niveau 250V 2A pour Arduino | AliExpress

OK

Avec la configuration choisie quelques commandes AT suffiront à amener l'ESP8266 à récupérer les données sur le site créé par ailleurs, pas besoin de librairie.
Quoi mettre dans l'ESP8266 : rien, laisser le firmware AT qu'il contient très probablement

autre solution : inventer un protocole pour la liaison Mega2560<>ESP et développer totalement une application spécifique pour l'ESP en utilisant l'IDE Arduino.

Attention: les cartes UNO+ESP8266 ou Mega2560+ESP sont souvent mal documentées, (définition souvent peu claire du rôle exact des switches, schéma souvent absent...)
On a eu pas mal de retour d'utilisateurs en difficulté ....très peu d'entre nous les utilisent et sont à même d'apporter une aide.

(je pensais 'ESP32' pour qu'il prenne également en charge 'le site', autre façon de faire, à lire le CDC c'est faisable)

Salut.

Je suis dans le même cas. Projet avec pas mal d'I/O requises. J'ai ma Mega qui communiquera par liaison série avec l'Esp8266 (avec la librairie Software Serial). Ca marche avec une Uno.

L'hybride Mega-Esp8266 n'est super pratique à utiliser avec une gestion de switchs pour téléverser selon la carte choisie ...

Super projet BrUnO14200 c'est vraiment du très bon travail.
Merci aussi al1fch la réponse me semble assez claire.

Pour ce qui est de l'utilisation de la carte type Mega2560+ESP effectivement c'est pas évident à prendre en main surtout quand comme moi ce n'est pas vraiment ta spécialité mais quand tu chope le truc le passage d'un mode à un autre n'est pas trop compliqué, c'est un peu rébarbatif surtout quand tu écris du code sur l'ESP et que tu dois à chaque fois débrancher pour changer de position et rebrancher pour voir si t'as une bonne réaction sur le moniteur série mais au final ya quand même moins de câble donc l'un dans l'autre...

Par contre ma question se porte surtout sur mes données Openweathermap. il vaut mieux que je les fasse passer d'abord par l'arduino ou que je les traite dans mon site internet.

Example:
A Tokyo il fait 25°C avec 75 % d'humidité et il fait nuit
dans mon bac il fait 20°C, il y a 50% d'humidité et il fait jour.

Pour faire les changements et allumer le chauffage, allumer les brumisateurs et baisser progressivement les led il vaut mieux que je fasse ça dans mon site internet qui envoie les requêtes à l'arduino via l'ESP8266 ou alors je traite l'API d'OWM via l'ESP par la méga et je me sers juste du site comme d'un "écran de contrôle". Je pense évidement que les 2 sont possibles(encore que...) mais lequel serait le plus simple.

Infos In :
OWM->Site->ESP->Méga (pour les infos d'OpenWeatherMap)
Infos Out :
Méga->ESP->Site (pour les infos du bac)

OU

Infos In :
OWM->ESP->Méga (pour les infos d'OpenWeatherMap)
Infos Out :
Méga->ESP->Site (pour les infos du bac)

C'est vrai que j'apprécie pas mal l'ESP32, donc j'aurais tendance à conseiller son utilisation. Mais, vu le nombre de capteurs, tu risques d'être rapidement limité (sauf à attendre la prochaine version qui aura parait-il plus d'IO).

Donc, pour une solution Mega + ESP8266, je verrais plutôt le contraire. Le Master serait l'ESP8266 (s'il est connecté à Internet, il n'a pas besoin de RTC) et les capteurs sur le Méga, qui serait interrogé régulièrement par l'ESP pour mettre à jour ses données et son site.

Tu peux aussi envisager le couple ESP32 + Mega

S'il y a des contraintes de place, il existe de nouveaux modèles de Mega de petite taille : Mega pro Mini, à des prix inférieurs à 10€

Pour Openweathermap, tu peux interroger le site et demander une réponse au format Json, puis le parser avec ArduinoJson, qui est compatible des ESP. Donc, je pense que ce serait l'ESP qui ferait ça en interne, sans passer par la Mega.

Bonjour,
amha : esp32 + modules d'extension
ce sera + simple et + élégant au niveau soft et au niveau câblage ; à savoir si ça a de l'importance pour toi

1000 fois d'accord avec trimarco232 c'est évident.

Il aurait été plus judicieux de demander un conseil avant l'achat, mais tu n'est pas le seul dans ce cas.

Maintenant le tout est de savoir où est la priorité (le temps ou l'argent) :

  • le temps de développement avec cette carte MEGA sera probablement plus important
  • peu de documentation et d'aide possible
  • le prix d'un ESP32 + expander d'IO du genre MCP23017 est largement inférieur
  • l'ESP32 peut stocker des fichiers HTML dans son filesystem (SPIFFS)
  • l'ESP32 dispose de librairies très évoluées, en particulier AsyncWebServer, capable de jouer avec des templates HTML.
    C'est juste une question de choix et de temps.

Non le coût n'est pas un problème en soit vu que là on parle de 10 € et de toute façon si je n'utilise pas un produit maintenant je l'aurais pour plus tard.

J'avoue que j'étais parti sur ce produit pour plusieurs raisons :

  • l'écran lcd me semblait plus simple à installer sur un arduino,
  • le nombre de I/O utilisé (lcd, capteurs, ligne de Led en grand nombre, carte SD et tous les relais)
  • pour tout vous dire au début du projet je n'étais pas forcément parti sur une liaison avec un site internet, et même pas forcément de connexion internet tout court (d'où le RTC d'ailleurs si ya plus de connexion internet ya plus de temps)

Enfin voilà la raison de cette achat

Donc pour vous il vaut mieux que je parte sur un ESP32 + expander d'IO

Je n'ai pas une idée claire du nombre de leds que tu veux utiliser, mais pense aux WS2812. Ce sont des leds addressables couleur, que l'on achète en bandes ou à l'unité.

Une bande de N leds ne nécessite que trois pins, quel que soit le nombre N : VCC, GND et commande.

Je sais bien mais j'ai 4 type de leds pour la dalle du dessus (Blanc Froid, Blanc Chaud, phyto(du bleu et du rouge) et UV), 10 m de RGB WS2811 pour la dalle de derrière et des Uv pour celle de dessous et toutes doivent être modifiés différemment suivant les heures du jour et de la nuit.
Elles sont toutes en 12V donc j'ai des alim dédiées pour elles mais ça fait déjà 6 pins quand même

nicolasguillore:
... pour tout vous dire au début du projet je n'étais pas forcément parti sur une liaison avec un site internet, et même pas forcément de connexion internet tout court (d'où le RTC d'ailleurs si ya plus de connexion internet ya plus de temps)...

Un peu pareil pour moi . A vrai dire je ne suis pas sûr de pouvoir m'en servir car mon système sera sans doute hors Wifi dans un premier temps .. mais au cas où je préfère prévoir que devoir bricoler mon PCB.

On est à 2 doigts de se créer un besoin "gadget" :smiley: ...

Perso je reste sur la Mega + module ESP8266 "à côté". Ca me permettra également de le déporter un peu pour éventuellement palier un manque de réseau sans avoir à déplacer "toute l'électronique" :wink:

Bonjour

Pour cette carte Mega+ESP8266 disposez vous d'un schéma correct (montrant en détail le câblage des switches et la connection Mega2560-ESP8266) ?

S'agit-il de ce schéma : https://robotdyn.com/pub/media/0G-00005806==MEGA+WiFi-R3-AT2560-ESP8266-32MB-CH340G/DOCS/Schematic==0G-00005806==MEGA+WiFi-R3-AT2560-ESP8266-32MB-CH340G.pdf

Je ne suis pas si sûr que ce soit un gadget dans mon cas parce que parce que ce projet n’en mest pas destiné, c’est un cadeau pour un ami en fait. Du coup vu que tout est basé sur une météo d’un site si il veut changer cet endroit sachant qu’il n’est pas du tout à l’aise avec l’informatique il ne pourra pas.
Il faut donc qu’il puisse le faire simplement sur un support facile d’accès.
Pour finir est tant qu’à faire un site est un lien avec le matériel autant faire ce qui est gadget. Là je suis d’accord mais en même temps c’est ce qui rend le projet fun.
Et je vous avoue c’est ce qui est génial à faire c’est un petit défi pour moi