IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Mode sleep in esp32


Sujet :

Embarqué

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Par défaut Mode sleep in esp32
    bonjour,
    je suis en train de travailler sur un projet concerne la communication entre deux cartes esp32 l'une émettrice et l'autre réceptrice.
    bon j'ai besoin de faire fonctionner le système seulement deux fois par jour c'est pourquoi j'ai configurer le mode sleep dans les deux cartes mais le problème réside dans la synchronisation(les deux ne réveillent pas au mème temps). des solutions SVP

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 283
    Par défaut
    Bonjour

    L'émetteur (ou le client en TCP/IP, puisque c'est des modules wifi) c'est en ordre, il peut se réveiller sur la base d'une horloge
    Le récepteur (ou le serveur en TCP/IP), doit conserver son module de communication actif et se réveiller sur l'arrivée d'une communication. Ensuite on peut affiner ce comportement avec un sleep complet avec une durée plus faible que l'émetteur, puis une attente de la réception.

    Bonne suite

    Delias

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Par défaut
    oui ça ce que je suis en train de faire, mais comment je vais configurer la communication comme réveille?? tant que il y a seulement 3 types de réveille (timer, gpio externe, touch pad).

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 254
    Par défaut
    Salut,
    Je viens de regarder la datasheet d'un ESP32 et je ne suis pas sur que tu puisses faire ça. Tu as peut être choisi un mauvais micro surtout si tu veux faire du lowpower.

    • Laisser le micro récepteur en "mode active" va le faire consommer ; ~100mA juste pour que la radio écoute (si tu alimentes ton ESP32 avec des piles au Lithium, elles seront à plat au bout de 35h, soit 1.5 jours à peu prés)
    • Mettre le micro en mode "Modem-sleep" ne t'avancera pas de beaucoup car la radio se coupe.
    • Idem pour les autres mode de veilles



    Dans l'idée de ce que propose Delias, il faudrait avoir une RTC sur les deux appareils et faire du Handshaking (donc créer une discussion).

    1. L'émetteur envoie la donnée suivie de l'heure actuelle de sa RTC disons 17h20 suivie de l'heure de la prochaine émission disons 23h20.

    2. Le récepteur reçoit la donnée (il fait ce qu'il a à faire) puis il prend l'heure qu'il a reçu de l'émetteur (17h20) pour mettre à jour sa RTC et il répond à l'émetteur "donnée reçue, prochain réveil 23h00 et 23h40, je coupe la radio et je dors"

    3. L'émetteur sait que le récepteur a bien reçu le message et qu'il sera à l'écoute 20min avant et 20min après la prochaine émission.

    4. On recommence l'étape 1 avec les nouveaux horaires.



    Tu vois l'idée ?
    A+

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 283
    Par défaut
    Bonjour

    L'idée est là mais il n'y a pas forcement besoin d'une RTC, enfin cela dépend de la qualité du timer interne de l'ESP.
    A la fin de la transmission, une des puces défini "prochaine transmission dans x heures". L'émetteur se met en veille pour cette durée, le récepteur pour cette durée moins la marge (à minimum 2x la dérive possible des timers), puis lors de son réveil, il se met en écoute et attend la transmission suivante. Dès que c'est transmis à nouveau un sleep.

    L'autre encore plus optimisé, c'est un sleep de la même durée pour les deux puces, et au réveil envoi d'un ping régulier et attente de réponse de l'autre, cela permet de compenser les dérives des timers et de resynchroniser les puces (mais cela nécessite une vrai discussion entre les deux puces).

    Pour la détection de l'activité de l'autre puce, si le wifi passe en réseau ad-hoc (donc sans base) le simple état "connecté" pourrait suffire à indiquer que l'autre puce est également réveillée.

    Le RTC ne sert pas à cela, mais peut être utile sur l'une des puces pour un calage de l'heure, voir un calibrage en continu du timer pour le dodo. Utile ou pas en fonction des contraintes de l'application.

    Prendre du Wifi c'est antinomique à vouloir faire de l'économie d'énergie. Et même sur les technologies sans-fil à faible énergie le point de connexion est généralement prévu en alimentation secteur car lui reste toujours actif.

    Bonne suite

    Delias

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Par défaut
    oui j'ai compris l'idée mais franchement j'ai aucune idée comment je vais développer le code pour pouvoir utiliser le RTC, si vous vous avez un exemple n'hesitez pas d me l'envoyer (sachant que j'utilise IDE arduino).
    autre question: est ce que possible d'utiliser le RTC d'une GPS au lieu d'acheter un module RTC.??

  7. #7
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 283
    Par défaut
    Relis bien mon message

    La RTC c'est optionnel!

    Delias

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Par défaut
    oui je sais qu'elle est optionnel dans votre proposition. mais moi j'ai répondu (Vincent PETIT). bon si vs avez un exemple de code ça va être mieux.

  9. #9
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 254
    Par défaut
    Citation Envoyé par sharkly Voir le message
    est ce que possible d'utiliser le RTC d'une GPS au lieu d'acheter un module RTC.??
    Oui bien sur et c'est même mieux si c'est celle du GPS.



    La RTC (l'horloge Temps réel) sert de réveil au récepteur pour qu'il sache a quelle heure, ou dans quelle plage horaire, il est sensé écouter. Il faut bien sur que la RTC de l'émetteur et celle du recepteur soit à la même heure (ça parait évident mais je le dit quand même) et c'est précisément pour ça que j'avais écrit ceci (en gras et souligné) :
    Citation Envoyé par Vincent PETIT
    2 Le récepteur reçoit la donnée (il fait ce qu'il a à faire) puis il prend l'heure qu'il a reçu de l'émetteur (17h20) pour mettre à jour sa RTC et il répond à l'émetteur "donnée reçue, prochain réveil 23h00 et 23h40, je coupe la radio et je dors"
    Maintenant si l'émetteur et le récepteur ont accès à des RTC dans des modules GPS, normalement (à vérifier pour être sur) elles sont synchronisées sur la même heure, celle du système GPS.

    Comme le précise Delias, on aurait très bien pu prendre un Timer interne du micro pour jouer le rôle de la RTC.

    Ce qu'il faut faire côté récepteur c'est regarder ce qui est possible de faire avec la RTC du GPS, parfois on peut la programmer en mode "réveil" afin qu'une broche change d'état une fois arrivée à l'heure qu'on a programmé. Si le micro est en mode veille il peut se réveiller dès qu'il verra la broche de la RTC changer d'état, puis le micro se mettra a écouter.


    Pour un exemple de code on ne peut pas le faire, il faudrait d'abord éplucher la doc constructeur du GPS ensuite il faudrait tous tes schémas pour savoir comment et sur quels ports d'entrées sorties tu as relié ça enfin il faudrait qu'on bosse nous aussi avec Arduino ce qui n'est pas mon cas, ni de Delias si je ne fais pas d'erreur.

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 283
    Par défaut
    Bonsoir à tous

    Pour placer le cadre
    Citation Envoyé par Vincent PETIT Voir le message
    ni de Delias si je ne fais pas d'erreur.
    Tout à fait et dans ce cas il nous faudrait même un ESP32 et non un Arduino de base (Uno, Nano, Mega)

    Là, je ne vois pas ce que je peux faire plus en détail. Je sais que je suis parfois brouillon, mais je t'ai indiqué plusieurs façons de faire, Vincent encore des autres, c'est à adapter à ton cas en fonction du cadre de ton projet. Relis nos réponses avec cela en tête, tout n'est pas pour la même façon de faire. Plus l'algo sera évolué plus grande sera l'économie d’énergie.
    La méthode simple juste en raccourcissant un peu le timer du receveur, verra le fonctionnement en attente active pendant quelques minutes par 12h. Avec un système super optimisé cela ne sera que de quelques secondes (voir moins) par 12h économisant d'autant les batteries.

    Bonne suite

    Delias

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 14
    Par défaut
    merci à vous.

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. Réponses: 1
    Dernier message: 10/05/2011, 11h52
  3. Réponses: 0
    Dernier message: 21/07/2009, 16h08
  4. sleep mode de vista ? comment le reveiller?
    Par noumian dans le forum Windows Vista
    Réponses: 4
    Dernier message: 03/01/2008, 10h42
  5. Sleep Mode
    Par unluckymannn dans le forum C
    Réponses: 10
    Dernier message: 31/03/2006, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo