BLOC 6 voies

Discutions générales sur le DSPiy et tout ce qui s'y rattache
Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3052
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » jeu. 13 juin 2024 14:50

je découvre des choses sur l'ESP32...
https://www.upesy.fr/blogs/tutorials/me ... duino-code

L’ADC2 ne peut pas être utilisé avec le WiFi activé car il est utilisé en interne par le driver WiFi. Puisqu’il y a de grandes chances d’utiliser le WiFi sur un microcontrôleur prévu pour l’utiliser, il n’y a que l’ADC1 et ses 8 canaux qui peuvent être utilisés.

Comme tu auras du wifi, tu ne peux utiliser que ADC1 qui est sur les pins 32 à 39 de l'ESP32. Donc crotte de nom d'un chien ! ça n'en laisse que 6 accessibles sur ta carte.

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3708
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » jeu. 13 juin 2024 15:02

Ou utiliser un second ESp32 pour les AD et un troisième comme Broker MQtt .... :sivousme:

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3052
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » jeu. 13 juin 2024 16:10

thierryvalk a écrit :Ou utiliser un second ESp32 pour les AD et un troisième comme Broker MQtt .... :sivousme:

c'est une idée :mrgreen:
il vaut même mieux utiliser un simple arduino pour les ADC, selon Upesy :
"L’ADC n’est pas un point fort de l’ESP32 car il possède de nombreux défauts. Préférez celui de l’Arduino ou utiliser un ADC externe si vous voulez faire des mesures précises"

Je ne connaissais pas ADC avec ESP et on ne peut pas dire que ce soit simple ! Sur ma breadbord pas de lecture stable, trop sensible. L'ESP32-S2 est censé convertir sur 12bits mais il va jusqu'à 8191 et impossible de savoir sur quelle plage de tension il mesure vraiment. Je cherche :snif:

edit : trouvé dans la doc Espressif. Ca change selon les versions d'ESP
l'esp32 est sur 12bits. Avec l'atténuation par défaut de 11dB, il mesure une plage de 150 à 3100 mV
l'esp32-S2 est sur 13bits. Avec l'atténuation par défaut de 11dB, il mesure une plage de 0 à 2500 mV
l'esp3-S3 est sur 13bits. Avec l'atténuation par défaut de 11dB, il mesure une plage de 0 à 3100 mV
pfff... ils ne pouvaient pas faire plus simple!
https://espressif-docs.readthedocs-host ... i/adc.html

GoodNoize
Messages : 770
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » jeu. 13 juin 2024 16:15

C'est vraiment naze en faite un esp32 :mrgreen: :mrgreen:
Faut prendre un arduino mega pour avoir 16ADC (et en avoir plus que 8 après lecture de la notice :gene: )

-> ADC externe en I2C, quitte à utiliser de l'I2C autan mettre un LM75:

->Lui coller un I2C :
Niveau montage :nono: De ce que j'ai lu, le "sensor" sur un LM75A c'est le boitier du chip.
Il faut coller le petit PCB a l'envers avec le chip plaqué contre le dissipateur. Boooof

->Faire un montage binaire avec un diviseur, étalonné pour que la Pin soit LOW ou HIGH quand la thermistance attend une certaine valeur.

Je pense surtout virer la Thermistance de l'alim et faire confiance à SMPS POWER GOOD.
Voilà c'est réglé ::d

GoodNoize
Messages : 770
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » jeu. 13 juin 2024 16:17

Je ne connaissais pas ADC avec ESP et on ne peut pas dire que ce soit simple

Oulaaaa, ça rasure pas :aille:

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3052
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » jeu. 13 juin 2024 16:18

j'ai édité plus haut

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3708
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » jeu. 13 juin 2024 17:04

Le LM75AD pourrait être bien pour la température ambiante, mais demande 2 GPIO.
il y a aussi les multiplexeurs analogiques, mais bof.

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3708
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » jeu. 13 juin 2024 21:59

Il y a aussi la solution du bus à 1 fil de Dallas, c’est vieux, mais moins que l’I2C et semble toujours exister : DS1820 ou DS18B20

GoodNoize
Messages : 770
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » ven. 14 juin 2024 06:20

Sur mon schéma j'ai réservé SCL et SDA
Pour mettre un bornier en prévision d'un capteur I2C. Les Pins sont dispo.
https://www.dspiy.be/forum/download/fil ... d=2164&t=1

j'ai édité plus haut


ahh super :)

GoodNoize
Messages : 770
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » ven. 14 juin 2024 10:57

L’ADC de l’ESP32 n’est pas très linéaire (la courbe de réponse de l’ADC n’est pas une droite linéaire), surtout aux extrémités de sa plage d’utilisation (vers 0V et 3.3V)

https://www.upesy.fr/cdn/shop/files/doc ... ?width=576

Si on détermine le diviseur de tension pour que autour de 80° on travaille pas trop bas, genre 0.5/1V

Sur le datasheet CTN des valeurs indicatives sont données
Pour mon modèle si on tiens pas compte des +/- 1% :
100° => 680 Ω
80° => 1.26 kΩ
16° => 15 kΩ
0° => 32 kΩ

680Ω et R = 4.5kΩ => 0.43 V dans l'ADC à 100°
1.26 kΩ et R = 4.5kΩ => 0.7 V dans l'ADC à 80°
15 kΩ et R = 4.5kΩ => 2.5 V dans l'ADC à 16°
32 kΩ et R = 4.5kΩ => 2.9 V dans l'ADC à 0°

Pour atteindre 3V1 (seuil max ADC) il faut que CTN = 70k soit environs -15°.

ça me fait penser qu'il serai pas mal de mettre une sécu dans le code pour la température basse.
0° recommandé par Hypex pour la SMPS.
Pour des gars du Nord, c'est timide. Ils mettent des bougie de chauffe dans les blocs ? :mrgreen:

ThomasBuzet
Messages : 24
Enregistré le : mar. 4 juin 2024 05:14
Localisation : Haute-Garonne

Re: BLOC 6 voies

Messagepar ThomasBuzet » ven. 14 juin 2024 17:52

Ils abandonnent Hypex pour du classe À/B avec fonction préchauffage 1h avant ;)

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3708
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » ven. 14 juin 2024 17:59

Non mais, dans le nord il ne fait pas si froid. Par exemple aujourd'hui 15°C à midi c’est pas mal . :ghee:

GoodNoize
Messages : 770
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » lun. 17 juin 2024 22:46

Hello j'ai essayé de faire une synthèse de ce que je veux que mon code exécute, avant de me lancer dans le dur.
Et au final, je le suis déja :hehe:
J'ai mélangé du Français, le langage C que j'ai "compris", en essayant de garder la structure Arduino et au final même moi je trouve ça illisible.
Je vous épargne le massacre.

Un truc un peuuuuu plus digeste :


>Définir mode d'alimentation : Externe (pas pour proto)
>Dénominations des entrées sorties avec #define
>Définition des variables et changement d'état : bouton, trigger (State)
Définir l'état du BP comme LOW au démarrage

> Inclure constante CTN : Beta, Résistance, Résistance diviseur etc... Pour formule de correction Steinhart-Hart

> Setup des PIN : output, input, pullup, ADC

LOOP :

> Priorité SMPS et thermique :
Si SMPS_POWER GOOD est LOW (défaut)
=> on éteint l'alim : SMPS_STBY = HIGH et LED_BOUTON Clignote interrompu mixte (ampli OFF en défaut)

Si TH_n > 80° (AnalogRead)
=> on éteint l'alim : SMPS_STBY = HIGH et LED_BOUTON Clignote régulier (ampli OFF en défaut)

SI SMPS_POWER GOOD = High et TH_n <80° ,
On peut passer à la suite

> Bouton :
BP au démarrage = LOW => SMPS_STBY = HIGH et LED_BOUTON off (ampli OFF)
Si le BP change d'état (bouton state) pour HIGH => SMPS_STBY = LOW et LED_BOUTON Allumé continu (ampli ON)
Tempo glitch et rebond
Tempo pour éviter un ON/OFF/ON/OFF par un agacé sous coke
Si le BP change d'état pour LOW => SMPS_STBY = HIGH et LED_BOUTON off (ampli OFF)
Bouton prioritaire sur le Trigg à gérer

> Trigger :
Si TRIGG_IN = LOW => SMPS_STBY = LOW et LED_BOUTON Allumé continu (Ampli ON))
Tempo glitch
Si le BP change d'état pour LOW => SMPS_STBY = HIGH et LED_BOUTON étain (ampli OFF)

>Moniteur :
Afficher changement d'état du bouton
Afficher changement d'état du trigg
Afficher état SMPS_POWER GOOD
Afficher les températures

EDIT : Etat du bouton BP au démarrage : LOW donc SMPS_STBY = High (ampli OFF par défaut).

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3052
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mar. 18 juin 2024 10:16

c'est ni l'un ni l'autre, donc c'est indigeste :mrgreen:

Je te conseille de commencer par te mettre à la place de l'utilisateur et décrire ce que tu veux en français qu'un enfant de 12ans peut comprendre.
Evite de te projeter dans des termes informatiques ou dans la solution technique envisagée. La solution découlera de l'analyse du problème, pas l'inverse.

Je te conseille aussi d'éviter le mot "défaut" qui est souvent utilisé comme "valeur par défaut". Préfère "anomalie" ou "erreur".

Exemple d'expression de besoin (cahier des exigences): avec en itallique les questions que tu dois préciser

L'ampli possède à l'arrière un bouton de mise sous tension.
Il a en façade un bouton et une led qui est dans le bouton. (une seule led ?)
Il y aura aussi une interface http que je pourrai visiter par un browser depuis mon pc ou mon téléphone imachin ou google chose.
L'ampli peut être en veille ou allumé selon l'état de la SMPS qui l'alimente.

Lorsque je met l'ampli sous tension avec le bouton à l'arrière, l'ampli s'allume direct (ou se met en veille et attend l'appui sur le bouton pour démarrer ?). La led fait quoi ?

Lorsque j'appuie sur le bouton, l'ampli s'allume, cad envoyer à la smps l'ordre de se réveiller.
La led s'allume en continu.

Lorsque je rappuie sur le bouton, je veux que l'ampli se mette en veille. Cad envoyer à la SMPS l'ordre de se mettre en veille.

Lorsque le trigger change d'état en passant de ...

Lorsque que le trigger est présent et que j'appuie sur le bouton ...

Lorsque une carte ampli chauffe trop, ...

Lorsque la SMPS tombe en anomalie, ...

Interface html:

L'interface sera faite plus tard et j'y réfléchirai le moment venu.

ou

Je veux afficher dans une(des ?) page html les informations....
Elles seront rafraichies à la demande en cliquant un bouton (automatiquement toutes les n secondes? )
Pour voir du http, l'ampli sera connecté au wifi de la maison. (et si l'ampli est déplacé à un endroit sans wifi ? )

La ou les pages html auront l'allure de ... (décrire une interface web avec le contenu et la navigation ou la simuler ou au minimum l'avoir bien en tête si on connait déjà htmpl/css/js c'est un travail !)



Quand on maitrise la technique, on peut se permettre de modifier les exigences à la volée pendant la réalisation. Quand on n'en est pas encore là, il faut se clarifier les idées avant pour au minimum pouvoir se faire comprendre. Le "professionnel" pourra expliquer ce qui est possible ou pas et proposer des alternatives pertinentes.
Tu dois avoir l'habitude avec tes clients ;)

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3708
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: BLOC 6 voies

Messagepar thierryvalk » mar. 18 juin 2024 11:11

J’utiliserais une variable nommée par exemple ETAT

ETAT pourrait avoir les valeurs suivantes :
POWER_OFF : à la mise sous tension du système ou si arrêt par action manuelle.
SMPS_NO_GOOD : si SMPS_POWER_GOOD est à l’état haut
TH_High : si une température mesurée est trop haute.
All_GOOD : si tout est ok

Vu que la variable ETAT sera un int, elle aura des valeurs numériques.
Pour selon on utilise des define.
Par exemple
#define POWER_OFF 0
#define SMPS_NO_GOOD 1
#define TH_High 2
#define All_GOOD 3

Pour LOOP :
Si SMPS_POWER GOOD est LOW //en erreur
Alors ETAT= SMPS_NO_GOOD

Si TH> T_Max
Alors ETAT= TH_High

Si BP et si ETAT= POWER_OFF
Alors mise sous tension et ETAT= ALL_GOOD //si ce n’est pas le cas, le loop suivant mettra l’état réel.
SI BP et si ETAT= ALL_GOOD
Alors mise hors tension et ETAT = POWER_OFF

Idem pour Trigger, et là aussi voir éventuellement mettre des tempos question de ne mettre l’alim ON puis off un quart de seconde après ou l’inverse qui est plus problématique.

Si ETAT= TH_High
Alors mise hors tension et affichage LED

Si ETAT= SMPS_NO_GOOD
Alors mise hors tension et affichage LED

Ensuite voir pour une remise en route possible :
Per exemple :
Si EAT= TH_High et si TH< T_MAX -hystérésis
Alors ETAT= POWER_OFF

Pour la gestion de l’affichage LED, tu pourrais faire de même que pour état.
LED OFF, ON, clignotante.
Et là aussi gérer son affichage dans LOOP.

GoodNoize
Messages : 770
Enregistré le : mar. 27 nov. 2018 17:18
Localisation : Jura

Re: BLOC 6 voies

Messagepar GoodNoize » mar. 18 juin 2024 13:15

J'ai tout mélangé :aille: :nono:
Mine de rien c'est pas facile comme exercice :gene:

Je reprends ta trame :

L'ampli possède un bouton de mise sous tensions à l'arrière du boitier qui coupe toute alimentation électrique 230AC.
, en façade un bouton poussoir avec une seule LED
, un capteur de température par ampli (6 unités)
, un trigger externe de 5/12VDC via connectique jack 3.5 mono

Je veux pouvoir accéder sans fils à certaines données (voir plus bas).
L'ampli peut être en veille ou allumé selon l'état de la SMPS
La SMPS dispose d'une sortie pour indiquer si elle est est dans un état anormal

Lorsque que je mets l'ampli sous tensions avec le bouton arrière, l'ESP32 démarre. L'ampli reste en veille, la LED en façade est éteinte.

Quand j'appuis sur le bouton, l'ampli s'allume cad la SMPS se réveille, la LED s'allume en continue
Quand je réappuies sur le bouton, l'ampli s'éteint, la LED s'éteint
Je ne veux pas que l'on puisse allumer et éteindre l'ampli de manière intempestive par de multiples appuis sur le bouton.
Quand l'ampli vient de s'éteindre, on doit attendre 5 secondes pour pouvoir le rallumer.

Lorsque qu'une tension comprise entre 5 et 12V entre dans le trigger, l'ampli s'allume. La LED s'allume en continue
Lorsque la tension passe de 5/12V à flottant dans le trigger, l'ampli s'éteint. La LED s'éteint.
Je veux que le bouton en façade soit prioritaire sur le trigger :
- Si pas de tension au trigger, je veux quand même pouvoir allumer l'ampli avec le bouton
- Si il y a une tension au trigger, je veux quand même pouvoir éteindre l'ampli avec le bouton

Si un des amplis atteint une température Th>85°, on éteint la SMPS, la LED clignote régulièrement (ON-OFF-ON-OFF)
Jusqu'à ce que la température redescende sous 60°
Une fois la température ok, la SMPS se rallume, la LED s'allume en continue.

Si la SMPS renvoi un message d'erreur, on l'éteint. La LED clignote en saccadé (ON-OFF-ON------ON-OFF-ON----- ON-OFF-ON).
L'ampli se bloque, on ne peux rien faire a part couper la mise sous tension générale ou attendre un retour à la normale.
Je sais pas trop ce qu'il faut faire. Si SMPS_NO_GOOD c'est soit qu'elle chauffe, soit un pbm plus grave.


Interface serial monitor ? via wifi ou Bluetooth ET PC, le plus simple possible
Pouvoir consulter la température de chaque ampli lorsque le boitier est fermé (MAJ toute les 5 secondes)
Pour monitoring et calibration des capteurs de température.

Voir si l'ampli est allumé ou éteint cad l'état de la consigne envoyé à la SMPS
Voir si la SMPS envoie un message d'erreur
Voir si une tension arrive sur le trigger

Oh le pavé !!! 8/ 8/
Quand j'en serai la et bin on discutera HTTP, commande ON/OFF à distance etc

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3052
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mar. 18 juin 2024 15:02

Thierry écrit le pseudo code comme quelqu'un qui a déjà la solution en tête :mrgreen:

c'est vrai que c'est une machine a états qu'on décrit avec des événements à prendre en compte.

Se forcer à écrire les specs c'est se forcer à y réfléchir et a ne pas oublier des cas.

Quand l'ampli vient de s'éteindre, on doit attendre 5 secondes pour pouvoir le rallumer.

t'es sur pour ça ? c'est long 5sec
Si tu implémente ça il faut signaler d'une manière ou d'une autre a l'utilisateur qu'il doit attendre

[Lorsque qu'une tension comprise entre 5 et 12V entre dans le trigger, l'ampli s'allume.

ambigu. tu veux parler de l'événement "entrée" ou de la présence de la tension ? la différence entre une impulsion ou un signal continu ? je pense que c'est le second.

Lorsque la tension passe de 5/12V à flottant dans le trigger, l'ampli s'éteint. La LED s'éteint

le trigger est binaire: soit présent (tension > ? V) ou absent sinon.

- Si il y a une tension au trigger, je veux quand même pouvoir éteindre l'ampli avec le bouton

je rajouterai que dans ce cas là (trigger présent mais ampli éteint), la led doit signaler cet état qui sans etre anormal est particulier

Si un des amplis atteint une température Th>85°, on éteint la SMPS, la LED clignote régulièrement (ON-OFF-ON-OFF)
Jusqu'à ce que la température redescende sous 60C°
Une fois la température ok, la SMPS se rallume, la LED s'allume en continue.

Tu veux donc que l'ampli redémarre tout seul. En pleine fete ca peut etre très bizarre.
Moi j'exigerai une action manuelle pour le redémarrer quand les conditions l'autorisent.

Tout faire avec une seule led et ses clignottements qui signalent les cas d'erreur c'est jouable mais un peu scabreux. Il n'y a pas la place en facade pour une led anomalie ?

Interface serial monitor ? via wifi ou Bluetooth ET PC, le plus simple possible

l'interface série c'est ultra facile mais limité au fait d'avoir un pc branché dessus
l'interface bluetooth c'est pénible a développer parce qu'il faut faire une app smartphone
l'interface web c'est + facile parce qu'il suffit d'un browser. ca peut etre tres simple ou plus compliqué selon tes envies. Ce que tu demandes avec un refresh auto toutes les n secondes ou sur appui d'un bouton c'est très simple. Si tu veux une mise a jour en temps réel dès qu'une valeur change sur la carte, c'est plus complexe. Si tu veux écrire led CLIGNOTTE ou dessiner une led qui clignotte sur ta page c'est pas la meme difficulté.
Toujours possible de commencer simple et complexifier après.

Oh le pavé !!!
pas tant que ça ;) ca tient en moins d'une page et ça me parait bien complet. Tu y réfléchiras encore et complètera quand des trous dans la raquette apparaitront.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 3052
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: BLOC 6 voies

Messagepar alka » mar. 18 juin 2024 15:17

Si la SMPS renvoi un message d'erreur, on l'éteint. La LED clignote en saccadé (ON-OFF-ON------ON-OFF-ON----- ON-OFF-ON).
L'ampli se bloque, on ne peux rien faire a part couper la mise sous tension générale ou attendre un retour à la normale.
Je sais pas trop ce qu'il faut faire. Si SMPS_NO_GOOD c'est soit qu'elle chauffe, soit un pbm plus grave.

dans quel cas l'alerte spms_no_good disparait ? ça part tout seul ou il faut éteindre/rallumer en croisant les doigts ?


Retourner vers « DSPiy général »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités