Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2566 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  277  278  279  280  281  282
Auteur Sujet :

[arduino] Topic Unique blabla @ Arduino

n°476283
fredo3
Posté le 09-10-2025 à 19:32:58  profilanswer
 

Reprise du message précédent :
Vais réduire le nombre de taches je crois pour éviter autant que possible le problème d'accès aux resources commune.
 
Les mutex, sémaphores and co c'est vraiment pas ma tasse de thé :s

mood
Publicité
Posté le 09-10-2025 à 19:32:58  profilanswer
 

n°476285
rat de com​bat
attention rongeur méchant!
Posté le 09-10-2025 à 19:36:41  profilanswer
 

Pourtant tu ne vas pas y échapper à moins d'avoir une seule tâche qui accède à une ressource X. :o Avec un RTOS déjà "tout prêt" ça doit pas être sorcier non plus?


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476299
Natopsi
☄️Just end it already!☄️
Posté le 09-10-2025 à 21:46:12  profilanswer
 

Si c'est de l'ESP faut faire gaffe car le RTOS est de toute façon présent pour gérer la partie MODEM Wifi / couche IP.
 
Après regarde du côté des fonctions qui permettent de chronométrer le temps passé par tâche.


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°476396
fredo3
Posté le 11-10-2025 à 14:19:28  profilanswer
 

Bon un autre problème. Ma tache de gestion du LAN qui déconne.
En gros elle est sensée se connecter en Ethernet en priorité, et si celui-ci est déconnecté, de basculer sur le wifi.
 
Alors, le cas de figure suivant marche:
- première connexion au wifi
- basculement vers l'Ethernet
 
Celui-ci aussi:
- première connexion à l'Ethernet
- basculement vers le Wifi
 
Par contre ce qui ne marche pas c'est:
- première connexion au wifi
- basculement vers l'Ethernet
- re-basculement vers le wifi
 
 
C'est où que ca khakhabouse dans mon code?
 

Code :
  1. void initNetwork(void *parameters){
  2.   while (true){
  3.     if (ETH.connected()){
  4.       if (WiFi.getMode() != WIFI_OFF){
  5.         WiFi.disconnect(true);
  6.         vTaskDelay(500 / portTICK_PERIOD_MS);
  7.         WiFi.mode(WIFI_OFF);
  8.         vTaskDelay(2000 / portTICK_PERIOD_MS);
  9.       }   
  10.     }
  11.     if (isWifiEnabled){
  12.       if (!ETH.connected()){ 
  13.         if (WiFi.status() != WL_CONNECTED){
  14.           Serial.println("Ethernet not connected. Wifi initialized." );
  15.           WiFi.setHostname(HOSTNAME);
  16.           WiFi.disconnect(true);
  17.           vTaskDelay(500 / portTICK_PERIOD_MS);
  18.           WiFi.mode(WIFI_STA);
  19.           WiFi.begin(wifiSSID, wifiPassword);
  20.           WiFi.setMinSecurity(WIFI_AUTH_WPA_PSK);
  21.           unsigned long startAttemptTime = millis();
  22.           while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < wifiTimeoutMs) {
  23.             vTaskDelay(1000 / portTICK_PERIOD_MS);
  24.           } 
  25.         }
  26.       }
  27.     }
  28.     vTaskDelay(5000 / portTICK_PERIOD_MS);
  29.   }
  30. }


Message édité par fredo3 le 11-10-2025 à 14:21:50
n°476399
froggycorp
Posté le 11-10-2025 à 14:57:09  profilanswer
 

C'est moi où tu n'as pas de ETH.disconnect() ? (ou je sais pas quoi)

 

Tu as regardé dans le cas 1 & 2 que cela ne ping plus sur l'adresse Wifi ou eth  et que cela ping bien sur l'autre adresse ?

 

remplace :

Code :
  1. while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < wifiTimeoutMs)
 

par :

Code :
  1. while ((WiFi.status() != WL_CONNECTED) && ((millis() - startAttemptTime) < wifiTimeoutMs))
 

Parce que je sais pas comment le gère le compilateur, mais c'est pas propre à mon sens.


Message édité par froggycorp le 11-10-2025 à 15:01:02
n°476400
fredo3
Posté le 11-10-2025 à 14:59:21  profilanswer
 

Bah le ETH.disconnect c'est moi qui le fait en enlevant le cable Ethernet :o

 

Parce que justement je veux que le Wifi sert de connexion de backup.

 
froggycorp a écrit :


remplace :

Code :
  1. while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < wifiTimeoutMs)
 

par :

Code :
  1. while ((WiFi.status() != WL_CONNECTED) && ((millis() - startAttemptTime) < wifiTimeoutMs))
 

Parce que je sais pas comment le gère le compilateur, mais c'est pas propre à mon sens.


Nan, marche toujours pô


Message édité par fredo3 le 11-10-2025 à 15:04:44
n°476401
froggycorp
Posté le 11-10-2025 à 15:01:36  profilanswer
 

(J'ai reddit) :D
Edithbis : en faite ta condition est toujours vrai si (WiFi.status() != WL_CONNECTED) == False


Message édité par froggycorp le 11-10-2025 à 15:05:10
n°476402
fredo3
Posté le 11-10-2025 à 15:05:25  profilanswer
 

J'ai reddit aussi :D

n°476403
fredo3
Posté le 11-10-2025 à 15:17:40  profilanswer
 

Ca commence à me déprimer :/

 

Entres les 3000 lignes de code, sans compter le GUI LVGL, les problèmes de thread et maintenant ça...
Et encore, j'ai pas testé le driver Modbus, il me manque la puce MAX3485 3.3V pour la connexion à l'appareil (j'ai que des MAX485 5V sous la main...).

 

Pourtant manque pas grand chose.

 

https://rehost.diberie.com/Picture/Get/f/438972

 

https://rehost.diberie.com/Picture/Get/f/438971

 

Message cité 1 fois
Message édité par fredo3 le 11-10-2025 à 15:26:56
n°476404
rat de com​bat
attention rongeur méchant!
Posté le 11-10-2025 à 15:21:56  profilanswer
 

fredo3 a écrit :

Ca commence à me déprimer :/

Bienvenue dans le merveilleux monde du codage...
 
A tout hasard, ta variable "isWifiEnabled" c'est quel type et surtout elle est bien déclarée comme volatile?


---------------
Ne laissez pas mourir vos sujets en cours de route!
mood
Publicité
Posté le 11-10-2025 à 15:21:56  profilanswer
 

n°476406
fredo3
Posté le 11-10-2025 à 15:25:26  profilanswer
 

rat de combat a écrit :


A tout hasard, ta variable "isWifiEnabled" c'est quel type et surtout elle est bien déclarée comme volatile?


Ah c'est juste un bool qui est à true constamment pour l'instant, par contre il n'est pas déclaré comme volatile. Ca sera l'état au bouton "Enable Wifi" qu'on voit sur la deuxième image.

 

Non non il passe bien par les instructions qu'il faut étant donné qu'il m'imprime bien le: "Ethernet not connected. Wifi initialized."


Message édité par fredo3 le 11-10-2025 à 15:26:30
n°476407
rat de com​bat
attention rongeur méchant!
Posté le 11-10-2025 à 15:27:20  profilanswer
 

et le WiFi.disconnect(true); ligne 17 il est censé être là bas? :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476408
fredo3
Posté le 11-10-2025 à 15:28:18  profilanswer
 

C'est copilote qui me l'a conseillé :D

 

Sans, ca ne change rien.


Message édité par fredo3 le 11-10-2025 à 15:28:40
n°476409
rat de com​bat
attention rongeur méchant!
Posté le 11-10-2025 à 15:34:56  profilanswer
 

Ouais, moi et l'IA...
 
Perso je relirais les docs des fonctions utilisées voir si y'a pas une subtilité et après faudra débugger avec du printf() à défaut de mieux je crains. :sweat:


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476410
fredo3
Posté le 11-10-2025 à 15:37:15  profilanswer
 

Je pense sincèrement que c'est un bug du firmware du ESP32-C6 (le companion chip wifi du ESP32-P4).

 

A la première connexion wifi il pond ça:

 
Citation :

Ethernet not connected. Wifi initialized.
sdio_mempool_create free:27804140 min-free:27794784 lfb-def:27262964 lfb-8bit:27262964

 

Version on Host is NEWER than version on co-processor
RPC requests sent by host may encounter timeout errors
or may not be supported by co-processor

 

Alors qu'à la reconnexion, non, nada aucun signe de vie.


Message édité par fredo3 le 11-10-2025 à 15:37:45
n°476412
fredo3
Posté le 11-10-2025 à 15:39:07  profilanswer
 

Bon c'est pas grave, je laisse comme c'est. Merci quand même :jap:

 

Au pire un reboot arrange l'affaire, ca prends 5 secondes.

 

Bref, je passe à la tache suivante.


Message édité par fredo3 le 11-10-2025 à 15:39:18
n°476415
rat de com​bat
attention rongeur méchant!
Posté le 11-10-2025 à 15:52:29  profilanswer
 

Ils n'ont pas un forum Espressif ou un errata pour leur silicium?


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476416
froggycorp
Posté le 11-10-2025 à 15:56:45  profilanswer
 

Moi je testerais de pinger voir si effectivement le Wifi se co/deco bien. Si cela fonctionne pas sur la 3e config, cela sent une RAZ qui ne se fait pas et qui passerait sur les 2 premiers exemples mais planterait ensuite.
Et la 4e possibilités, cela donne quoi ?
Ethernet -> wifi -> ethernet ?

Message cité 1 fois
Message édité par froggycorp le 11-10-2025 à 15:58:45
n°476417
fredo3
Posté le 11-10-2025 à 16:11:25  profilanswer
 

froggycorp a écrit :

Moi je testerais de pinger voir si effectivement le Wifi se co/deco bien. Si cela fonctionne pas sur la 3e config, cela sent une RAZ qui ne se fait pas et qui passerait sur les 2 premiers exemples mais planterait ensuite.


Pas de pong. C'est bien déconnecté.

 
froggycorp a écrit :


Et la 4e possibilités, cela donne quoi ?
Ethernet -> wifi -> ethernet ?


Ca ca fonctionne bien.

rat de combat a écrit :

Ils n'ont pas un forum Espressif ou un errata pour leur silicium?

 

Oui à voir sur leur forum :jap:

Message cité 1 fois
Message édité par fredo3 le 11-10-2025 à 16:11:42
n°476419
fredo3
Posté le 11-10-2025 à 16:34:17  profilanswer
 

Bon ca marche, vous aviez raison de pinger.

 

Il ne faut pas faire appel à WiFi.mode(WIFI_OFF);
Visiblement il ne se réveille plus part la suite.

 

Et bizarrement il passe par l'event "WL_DISCONNECTED" alors qu'il a toujours une ip le Wifi, ce qui m'a faussé une variable et donc me cause un faux affichage.

 


Du coup même avec ETHERNET allumé, le Wifi reste joignable.

 

Ca me va.

 

Merci :jap:


Message édité par fredo3 le 11-10-2025 à 16:36:04
n°476422
froggycorp
Posté le 11-10-2025 à 17:40:12  profilanswer
 

fredo3 a écrit :


Pas de pong. C'est bien déconnecté.


 
C'est bien 2 ip différentes ? ;)

n°476423
fredo3
Posté le 11-10-2025 à 17:57:11  profilanswer
 

Oui
 
https://rehost.diberie.com/Picture/Get/f/439012

n°476434
rat de com​bat
attention rongeur méchant!
Posté le 11-10-2025 à 21:14:25  profilanswer
 

D'ailleurs par curiosité :o , c'est quoi le but final? Ces REX12D semblent être des espèces de disjoncteurs "intelligents", c'est pour une installation solaire?


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476437
fredo3
Posté le 12-10-2025 à 09:45:34  profilanswer
 

J'ai pleins de spots de lumière 24VDC chinois dans le jardin de mes parents.
L'écran et les disjoncteurs REX c'est pour le tableau électrique. Ca sera également intégré à Home Assistant (interrupteur, conso et status).

 

Dans un deuxième temps je remplacerai l'électronique des spots par des ESP32-C6 et LED bi-color 4000K + 1800K (Luminus CTM-9-4018-90-36-TWD6-F3-3).
Ces ESP32-C6 seront reliés en réseau Wifi Mesh (lib painlessmesh). De ce côté là tout va bien, le firmware et hardware est déjà fait. Un peu trop de perte de paquets à mon goût quand même mais je vais faire évoluer le protocole.
Le tout avec intégration automatique dans Home Assistant:

 

https://rehost.diberie.com/Picture/Get/f/439134

 


Ca c'est la page hébergée sur la passerelle Wifi <-> Mesh sous ESP32-S3 par contre, bizarrement avec un C6 ca ne marche pas bien.
https://rehost.diberie.com/Picture/Get/f/439132
https://rehost.diberie.com/Picture/Get/f/439135

 

Voilà voilà,
Un chouette projet je trouve.

 

Au début les disjoncteurs électroniques je voulais les faire moi-même avec des petits écrans 2" chacun, mais j'ai trouvé les REX et son module de communication Modbus tellement bien fait et compact que finalement j'ai laissé tomber cette idée, surtout pour un appareil aussi "critique".

Message cité 1 fois
Message édité par fredo3 le 12-10-2025 à 11:32:55
n°476461
froggycorp
Posté le 12-10-2025 à 20:56:20  profilanswer
 

Tu as quelle distance entre chaque node ?
 
---------
 
Cette histoire me fait penser à un truc qui a rien à vouar. L'esp32 a 2 core (enfin ceux que j'ai), le serveur http, il tourne via freertos ou il tourne sur le core 1 ?

n°476474
fredo3
Posté le 13-10-2025 à 08:43:01  profilanswer
 

Ah j'ai pas testé la distance max entre noeud.

 

Par ailleurs je pense avoir réglé hier mon problème de thread.
Je fait tourner désormais la tache d'update de l'affichage et LVGL sur 2 cores différents (xTaskCreatePinnedToCore).
Probablement qu'avant ca restait bloqué car le scheduler mettait les deux taches sur le même core.


Message édité par fredo3 le 13-10-2025 à 09:41:52
n°476813
fredo3
Posté le 16-10-2025 à 19:02:32  profilanswer
 

Ce qui est chiant avec les lib Arduino :ange:...  c'est que forcément elles ne sont pas thread safe!  [:hurle]  
 
J'ai dû utiliser des queues, merci copilote :D, pour remédier à ce problème avec PubSubClient (mqtt).
 
J'aurais dû partir sur de l'ESP-IDF tout de suite je pense :/

n°476818
rat de com​bat
attention rongeur méchant!
Posté le 16-10-2025 à 19:48:38  profilanswer
 

fredo3 a écrit :

J'ai pleins de spots de lumière 24VDC chinois dans le jardin de mes parents.

Fais gaffe quand même qu'un pilote ne confond pas avec la piste de l'aéroport du coin. :whistle:  :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476820
fredo3
Posté le 16-10-2025 à 19:59:46  profilanswer
 

:D

 

C'est juste sous 7 arbres, 2 spot chacune. Rien de plus.


Message édité par fredo3 le 16-10-2025 à 20:05:15
n°476821
rat de com​bat
attention rongeur méchant!
Posté le 16-10-2025 à 20:05:15  profilanswer
 

Ca me fait vachement penser à je ne sais plus quelle BD Tintin où des spots dans les arbres servent à marquer le point de larguage depuis avion de ... faux billets. Méfies toi. :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476849
froggycorp
Posté le 17-10-2025 à 10:54:13  profilanswer
 

Hola,
 
Je zieutais du cote de la norme bluetooth BLE, a priori le module phare c'est le NRF52, mais quand je vois le prix, cela vend pas du rêve. Est-ce que quelqu'un a testé la norme avec des modules plus abordables ?

n°476905
fredo3
Posté le 17-10-2025 à 21:18:21  profilanswer
 

Yes, driver semaphorisé avec succès  :sol:

 

Manque plus que le transceiver RS485 3.3V à 0.66€ qui n'est toujours pas arrivé  [:tinostar]

 
froggycorp a écrit :

Hola,

 

Je zieutais du cote de la norme bluetooth BLE, a priori le module phare c'est le NRF52, mais quand je vois le prix, cela vend pas du rêve. Est-ce que quelqu'un a testé la norme avec des modules plus abordables ?


En effet ca tourne autour des 35-40€.

 

Si t'as besoin de volume, bah il y a toujours moyen que tu te fasses ton propre PCB, la NRF52 n'est pas cher sur JLCPCB.
https://jlcpcb.com/parts/componentS [...] hTxt=NRF52


Message édité par fredo3 le 17-10-2025 à 21:21:11
n°476919
froggycorp
Posté le 18-10-2025 à 08:50:58  profilanswer
 

35-40€, c'est CHER et c'est les kits de dev (à 50€ sur AE même)
J'ai besoin d'un ou deux pour tester. La version à souder est à 5.59€ https://fr.aliexpress.com/item/1005002481454577.html mais c'est une image 3D :D

 

Doit bien exister du moins cher


Message édité par froggycorp le 18-10-2025 à 08:51:41
n°476923
fredo3
Posté le 18-10-2025 à 10:26:30  profilanswer
 

https://www.adafruit.com/product/4077
 
https://www.adafruit.com/product/4078
 
Mais bon, les fdp et douane...
 
 
EDIT:
https://www.amazon.fr/Ebyte-E73-2G4 [...] B07P8S65RX
 
Dans les commentaires:
Attention pas de quartz 32khz
 
 
EDIT2:
https://www.mouser.fr/ProductDetail [...] TcfQ%3D%3D
 
Par contre ca sera pas évident à souder :o


Message édité par fredo3 le 18-10-2025 à 10:49:40
n°476926
froggycorp
Posté le 18-10-2025 à 11:50:37  profilanswer
 

Non mais le prix ...
Je m'étais dit "tiens, je vais virer mon RFM69 par du bluetooth BLE pour gagner eventuellement en consommation vu les débits théoriques", comme j'ai 10m entre les 2, ca aurait fonctionné ou à minima à tester.
Sauf qu'à ce prix là, je me contenterais de 300Kb/s à 30mA au lieu de 1Mb/s à 10mA

n°476952
fredo3
Posté le 18-10-2025 à 19:53:46  profilanswer
 

J'arrive pas à faire marcher la puce audio de mon ESP32-P4 (ES8311 I2S/DAC).

 

Pourquoi je ne suis pas partir directement sur un Pi, je suis con.


Message édité par fredo3 le 18-10-2025 à 19:53:52
n°476953
froggycorp
Posté le 18-10-2025 à 20:06:39  profilanswer
 

Sinon un buzzer passif ? :D

n°476954
rat de com​bat
attention rongeur méchant!
Posté le 18-10-2025 à 20:11:42  profilanswer
 

Le BLE doit être un poil complexe j'imagine, d'où le prix des modules? Perso quelque € pour du RF ça ne me choque pas. :o  
 
Pour ton histoire I2S, il faut la bonne fréquence et la bonne voie (droite/gauche), tu as fait attention à ça? Sinon donne plus de détails, "marche pas" c'est peu précis. :o


---------------
Ne laissez pas mourir vos sujets en cours de route!
n°476955
fredo3
Posté le 18-10-2025 à 20:12:18  profilanswer
 

froggycorp a écrit :

Sinon un buzzer passif ? :D


Oui ca sera l'alternative :/

n°476957
fredo3
Posté le 18-10-2025 à 20:14:37  profilanswer
 

rat de combat a écrit :

Pour ton histoire I2S, il faut la bonne fréquence et la bonne voie (droite/gauche), tu as fait attention à ça? Sinon donne plus de détails, "marche pas" c'est peu précis. :o

 

Franchement je sais plus où j'en suis moi-même :D
Ca fait 2h que je me débat avec copilot [:tinostar]

 

J'utilise la lib Audio.h pour la gestion de l'I2S et tout.


Message édité par fredo3 le 18-10-2025 à 20:15:47
n°476958
rat de com​bat
attention rongeur méchant!
Posté le 18-10-2025 à 20:16:31  profilanswer
 

Tu as regardé le signal avec un scope / analyseur logique? Sigrok sait décoder le I2S de mémoire aussi.

 

Edit: Et plutôt que de brûler du carbone pour de l'"IA", tu as bien lu la doc de ton DAC histoire de savoir comment il "marche"?

 

Edit2: Désolé, j'étais un peu lourd la. :o N'empêche qu'un coup d'oeil dans la doc est important histoire de bien paramétrer une lib existante p.ex.


Message édité par rat de combat le 18-10-2025 à 20:20:59

---------------
Ne laissez pas mourir vos sujets en cours de route!
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  277  278  279  280  281  282

Aller à :
Ajouter une réponse
 

Sujets relatifs
* Réparations de vos appareils électroniques & electromenager * 
Plus de sujets relatifs à : [arduino] Topic Unique blabla @ Arduino


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)