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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  158  159  160  ..  264  265  266  267  268  269
Auteur Sujet :

[arduino] Topic Unique blabla @ Arduino

n°216866
rat de com​bat
attention rongeur méchant!
Posté le 28-07-2018 à 15:30:31  profilanswer
 

Reprise du message précédent :
Pourquoi un tel baudrate tout étrange et pas une valeur standard?

mood
Publicité
Posté le 28-07-2018 à 15:30:31  profilanswer
 

n°216867
MossieurPr​opre
I d͟o̩n᷃'̵t͖ give a shit
Posté le 28-07-2018 à 15:32:23  profilanswer
 

Parce que dans mes tests, ça m'a à un moment donné quelque chose de lisible :D
 
J'ai la même avec 9600 ou 115200.

n°216892
Turkleton
I don't quite understand you
Posté le 28-07-2018 à 18:47:50  profilanswer
 

Ce que tu as en sortie du Serial (la partie du haut, avec les checksum et tout ça) montre que ton ESP se plante. Je sais pas pourquoi par contre.
 
C'est quoi comme modèle ? T'en as un autre pour tester ?
 
EDIT : je vois dans les options de compilation que c'est un NodeMCU. Par contre c'est quoi ce /dev/...USBtoUART  :??: Tu le branches comment ? Ça pourrait peut-être venir de ça.
 
T'as essayé avec Blink ?

Message cité 1 fois
Message édité par Turkleton le 28-07-2018 à 18:53:04

---------------
If you think it could look good, then I guess it should
n°216905
gizmo15
Posté le 28-07-2018 à 21:39:43  profilanswer
 

j'en utilise un sans soucis.
Le seul "problème" que je peux avoir : lors du chargement du programme mais je relance et ca passe.
 

n°216913
MossieurPr​opre
I d͟o̩n᷃'̵t͖ give a shit
Posté le 28-07-2018 à 22:36:26  profilanswer
 

Turkleton a écrit :

Ce que tu as en sortie du Serial (la partie du haut, avec les checksum et tout ça) montre que ton ESP se plante. Je sais pas pourquoi par contre.
 
C'est quoi comme modèle ? T'en as un autre pour tester ?
 
EDIT : je vois dans les options de compilation que c'est un NodeMCU. Par contre c'est quoi ce /dev/...USBtoUART  :??: Tu le branches comment ? Ça pourrait peut-être venir de ça.
 
T'as essayé avec Blink ?


 
Oui, des fois j’ai « Exception » de lisible. Il est en NodeMCU parce que j’avais tenté pour ce test, mais normalement je le mets en Generic ESP8266. C’est un ESP12E d’Ai Thinker (Ou peut-être un fake ...). J’en ai recommandé un autre, je me demande aussi si il n’a pas un problème ...
 
 Pour le port, c’est un USB to serial que j’utilise. Le televersement se passe bien, par contre.

n°216917
Turkleton
I don't quite understand you
Posté le 28-07-2018 à 22:47:13  profilanswer
 

Ce modèle là
http://codelectron.com/wp-content/uploads/2016/11/esp8266.jpg
 
ou ce modèle là ?
https://www.watterott.com/media/images/popup/20160021-1.jpg
 
J'utilise sans souci le 2è modèle, mais j'imagine que si tu branches pas directement en USB c'est que tu as le 1er.
 
Et si tu n'utilises pas le Serial dans ton programme (genre en uploadant Blink), ça fonctionne ?
 
EDIT : Et as-tu essayé d'uploader en FTDI pour voir si c'est pareil ?

Message cité 1 fois
Message édité par Turkleton le 28-07-2018 à 22:49:09

---------------
If you think it could look good, then I guess it should
n°216918
MossieurPr​opre
I d͟o̩n᷃'̵t͖ give a shit
Posté le 28-07-2018 à 22:48:38  profilanswer
 

Turkleton a écrit :

Ce modèle là
http://codelectron.com/wp-content/ [...] sp8266.jpg
 
ou ce modèle là ?
https://www.watterott.com/media/ima [...] 0021-1.jpg
 
J'utilise sans souci le 2è modèle, mais j'imagine que si tu branches pas directement en USB c'est que tu as le 1er.
 
Et si tu n'utilises pas le Serial dans ton programme (genre en uploadant Blink), ça fonctionne ?


 
Yep, le premier.
 
Et le blink ne fonctionne pas :(

n°216919
Turkleton
I don't quite understand you
Posté le 28-07-2018 à 22:50:33  profilanswer
 

T'as répondu avant mon edit donc je repose la question : que donne l'upload en FTDI (si tu as moyen de le faire) ?
 
Je connais pas le 1er modèle, mais je pense que le tien n'est juste pas fonctionnel. Essaye le 2è, j'utilise quasiment plus que ça moi maintenant.


---------------
If you think it could look good, then I guess it should
n°216937
MossieurPr​opre
I d͟o̩n᷃'̵t͖ give a shit
Posté le 29-07-2018 à 10:21:44  profilanswer
 

Je n'ai pas de FTDI :/
 
Je vais déjà essayer avec le second que j'ai commandé ; je pense aussi que le mien a un coup dans le nez.
 
Le deuxième, c'est juste le premier soudé sur une board de développement ? J'imagine qu'on trouve dessus basiquement un 5 -> 3.3, et que les 2 switchs servent au reset et à passer l'ESP en mode programmation ?

n°216945
WipEout 20​97
Do you think we can fly
Posté le 29-07-2018 à 11:40:45  profilanswer
 

Il y a un circuit supplémentaire aussi, je pense que c'est pour la connexion USB, ça doit pas passer direct via le serial

mood
Publicité
Posté le 29-07-2018 à 11:40:45  profilanswer
 

n°216947
MossieurPr​opre
I d͟o̩n᷃'̵t͖ give a shit
Posté le 29-07-2018 à 12:26:39  profilanswer
 

Oui, il y a forcément aussi un USB to Serial ;) J'en prendrais un si je n'ai pas plus de succès avec le second ESP12.
 
Est-ce qu'on peut facilement retirer l'ESP de la plaque de développement une fois qu'on est prêt à mettre le montage en prod ?

n°216950
Turkleton
I don't quite understand you
Posté le 29-07-2018 à 12:43:36  profilanswer
 

Heu, ça j'ai jamais essayé, je peux pas te dire.


---------------
If you think it could look good, then I guess it should
n°217147
ragexen
Hasta la victoria siempre
Posté le 30-07-2018 à 17:56:44  profilanswer
 

Bonjour,
 
si on veut peut de pin, l'ESP tue l'arduino.
Mais si cherche avant tut un fonctionnement sur batterie, y aurait il une merveille qui m'aurait échappé ?

n°217173
Natopsi
☄️Just end it already!☄️
Posté le 30-07-2018 à 21:47:19  profilanswer
 

Sur ESP8266 avec NodeMCU il y a une fonction de sommeil profond, par contre elle nécessite de relier deux broches de l'ESP car l'une sert à le réveiller en titillant l'autre.


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°217200
Turkleton
I don't quite understand you
Posté le 31-07-2018 à 08:16:26  profilanswer
 

T'as aussi l'ESP thing de chez Sparkfun qui intègre directement le LiPo (y compris en chargement).


---------------
If you think it could look good, then I guess it should
n°217437
gizmo15
Posté le 01-08-2018 à 11:01:37  profilanswer
 

Bonjour à vous,
 
Petite question par rapport à cet exemple : https://github.com/mikalhart/TinyGP [...] xample.ino
 
Et plus particulièrement cette function :
 

Code :
  1. static void printInt(unsigned long val, bool valid, int len)
  2. {
  3.   char sz[32] = "*****************";
  4.   if (valid)
  5.     sprintf(sz, "%ld", val);
  6.   sz[len] = 0;
  7.   for (int i=strlen(sz); i<len; ++i)
  8.     sz[i] = ' ';
  9.   if (len > 0)
  10.     sz[len-1] = ' ';
  11.   Serial.print(sz);
  12.   smartDelay(0);
  13. }


 
Je comprends pas une partie du traitement qu'elle fait.
 
De ce que j'en comprends :
- init de la variable sz à 32 caractères maxi et met un contenu dedans
- si le gps est valid alors ca rentre en traitement
- sprintf, crée le message à afficher avec les données avec le corps en type long et ca le remplis avec le contenu de val passé en paramètre
 
Mais la partie qui compte la taille etc je comprends.
 
Elle est appelée comme ca :

Code :
  1. void loop()
  2. {
  3.   printInt(gps.satellites.value(), gps.satellites.isValid(), 5);
  4. }


 
J'ai essayé de faire directement :

Code :
  1. Serial.print(gps.satellites.value()));


 
Mais ca me renvoie 0 tout le temps...
 
Merci de votre aide :jap:

n°218460
dafunky
Posté le 07-08-2018 à 10:39:45  profilanswer
 

ragexen a écrit :

Bonjour,
 
si on veut peut de pin, l'ESP tue l'arduino.
Mais si cherche avant tut un fonctionnement sur batterie, y aurait il une merveille qui m'aurait échappé ?


 
Il te faut le wifi ou non? J'ai un peu cherché : si la conso est ta préoccupation, l'arduino mini est le plus optimisé des µcontrôleurs faciles d'accès (moyennant un câble FTDI pour lui charger le firmware, ce qui épargne la surconsommation électrique de l'interface série en fonctionnement H24).  
 
Ensuite il y a quelques astuces assez simples pour diviser encore par 10 la conso pour tourner autour du µ watt : sommeil léger, profond, baisse de la fréquence, de la tension en entrée, configuration des entrées/sorties.
 
Si tu veux descendre dans les nanowatts, il faudra ensuite passer sur des PIC, par exemple les XLP.
 
J'ai gagné pas mal d'autonomie sur l'arduino nano de ma porte de poulailler en activant le sommeil léger pour ne le réveiller qu'une fois par seconde environ. Je crois que j'ai quasiment doublé l'autonomie, sachant que la batterie est surtout sollicitée par le moteur qui monte et descend la porte.


Message édité par dafunky le 07-08-2018 à 10:41:06

---------------
xPLduino, la domotique DIY deluxe - - - - Sigma 85mm F1.4
n°218610
WipEout 20​97
Do you think we can fly
Posté le 07-08-2018 à 22:50:13  profilanswer
 

Il y a le pro micro en 8Mhz qui va bien aussi, vu qu'il est à base de 32u4 il ne nécessite pas de contrôleur USB externe ce qui économise l'énergie tout en ayant un port usb

n°218740
ragexen
Hasta la victoria siempre
Posté le 08-08-2018 à 17:43:56  profilanswer
 

J'ai bien avancé et je suis plutôt déprimé à l'arrivée..
Sachant que ma 1ère contrainte est d'acheter en France,
et que la 2ème est de limiter les fils/soudures (bref, il ne faut faut pas que ca se voit que c'est du bricolage aux yeux de ceux qui ne connaissent pas:/); on verra que ça flingue totalement les prix..
 
Il s'agit de faire une série d'enregistreurs de mesures (principalement température), à la limite on s’en fout du capteur qui sera derrière (modulo sa conso / tension)
 
Le Wifi n'est pas indispensable, en fonction des campagnes de mesures il pourrait être dispo, mais ca n'est pas le cas de base, je vais donc le zapper. Vu le prix des Wemos par exemple, je l'envisageais au début, mais vu que les conso des ESP ne sont pas non plus les plus favorables.. Au final, peut importe le contrôleur, le mieux est de tout couper avec un timer type TPL5110
 
C'est un usage qui a déjà été bien exploré, on retombe notamment sur le "cave pearl logger" et dérivés qui documente bien ce qu'il faut et nottament une base de mini pour ne pas s'embarquer le FTDI. Sauf qu'en France, je n'ai pas réussi à trouver de mini en dessous de 13€.
 
Quitte à être dans ces prix, je suis plutôt partie sur des produits d'Adafruit qui sont plutôt bien distribués, histoire de pouvoir varier les fournisseurs: ca donne du 32u4 ou du m0. Bien souvent, le m0 est moins cher que le 32u4 alors que plus puissant/mémoire, et surprenamment, la conso n'est pas bien différente.  
 
- Feather M0 proto :16€
- Shield datalogging SD+RTC: 10€  (hors shield, on peut tomber à 2*4€ mais ca rajoute des fils
- timer TPL5110: 5€
- interrupteur: 2€ (j'ai pas encore cherché, mais je sais que ca sera un max)
- batterie lipo (vu que le chargeur est sur la feather), il faut que j'affine la capacité, mais on sera à 10-15€
- boitier: 15€ (sauf à réussir à adapter dans un truc existant moins cher)
- carte SD: 10€ (pour qqc qui sera de toute façon bien trop grand pour ce que je vais stocker)
- capteur: 2-3€ pour de la température/RH sur un module (diviser par 2 sinon)
Et bing, on se retrouve à 75€ :/
J'en suis à me dire qu'on peut commencer à s'approcher d'un enregistreur du commerce..
 
A coté de celà, j'ai d'autre capteurs qui nécessitent du 5V et un fonctionnement permanent --> secteur obligatoire donc on peut s'asseoir sur l'économie d'énergie, bah ca me reviendra moins cher de partir sur une base Rpi zero + boitier officiel (reste à voir si je peux l'adapter à mon capteur) + module RTC + chargeur + SD.
 
En sourcing ali/ebay, ca serait tout autre...

n°218891
jemangedes​lolos
Posté le 09-08-2018 à 14:20:19  profilanswer
 

ragexen a écrit :

J'ai bien avancé et je suis plutôt déprimé à l'arrivée..
Sachant que ma 1ère contrainte est d'acheter en France,
et que la 2ème est de limiter les fils/soudures (bref, il ne faut faut pas que ca se voit que c'est du bricolage aux yeux de ceux qui ne connaissent pas:/); on verra que ça flingue totalement les prix..

 

Il s'agit de faire une série d'enregistreurs de mesures (principalement température), à la limite on s’en fout du capteur qui sera derrière (modulo sa conso / tension)

 

Le Wifi n'est pas indispensable, en fonction des campagnes de mesures il pourrait être dispo, mais ca n'est pas le cas de base, je vais donc le zapper. Vu le prix des Wemos par exemple, je l'envisageais au début, mais vu que les conso des ESP ne sont pas non plus les plus favorables.. Au final, peut importe le contrôleur, le mieux est de tout couper avec un timer type TPL5110

 

C'est un usage qui a déjà été bien exploré, on retombe notamment sur le "cave pearl logger" et dérivés qui documente bien ce qu'il faut et nottament une base de mini pour ne pas s'embarquer le FTDI. Sauf qu'en France, je n'ai pas réussi à trouver de mini en dessous de 13€.

 

Quitte à être dans ces prix, je suis plutôt partie sur des produits d'Adafruit qui sont plutôt bien distribués, histoire de pouvoir varier les fournisseurs: ca donne du 32u4 ou du m0. Bien souvent, le m0 est moins cher que le 32u4 alors que plus puissant/mémoire, et surprenamment, la conso n'est pas bien différente.

 

- Feather M0 proto :16€
- Shield datalogging SD+RTC: 10€ (hors shield, on peut tomber à 2*4€ mais ca rajoute des fils
- timer TPL5110: 5€
- interrupteur: 2€ (j'ai pas encore cherché, mais je sais que ca sera un max)
- batterie lipo (vu que le chargeur est sur la feather), il faut que j'affine la capacité, mais on sera à 10-15€
- boitier: 15€ (sauf à réussir à adapter dans un truc existant moins cher)
- carte SD: 10€ (pour qqc qui sera de toute façon bien trop grand pour ce que je vais stocker)
- capteur: 2-3€ pour de la température/RH sur un module (diviser par 2 sinon)
Et bing, on se retrouve à 75€ :/
J'en suis à me dire qu'on peut commencer à s'approcher d'un enregistreur du commerce..

 

A coté de celà, j'ai d'autre capteurs qui nécessitent du 5V et un fonctionnement permanent --> secteur obligatoire donc on peut s'asseoir sur l'économie d'énergie, bah ca me reviendra moins cher de partir sur une base Rpi zero + boitier officiel (reste à voir si je peux l'adapter à mon capteur) + module RTC + chargeur + SD.

 

En sourcing ali/ebay, ca serait tout autre...

 

C'est la limite du bricolage. Si tu as besoin de 12 modules différents ça commence a chiffrer. Quand tu veux un truc très specifique, pourquoi ne pas faire ton propre PCB?

 

A part pour les pcb et l'esp8266, je suis sur que tu peux significativement baisser ton cout de revient.

 

Un micro basse conso meme en petite quantité c'est pas 16€ comme le feather M0 mais 2-4€. Un TPL5110 c'est quelque centimes. Si c'est compatible avec le volume de données a logger, une flash ou une FRAM ça coute moins cher qu'une carte SD et ça economise une embase. Il existe aussi des capteurs de temperature avec EEPROM qui te permet de ralentir les acquisitions avec ton micro et donc les periodes de reveil. Ça te permet de te passer completement de stockage externe. Faire ton propre circuit ça te permet egalement de choisir un boitier adapté, plus petit et donc souvent moins cher. Je me fais un petit capteur de temperature basse conso sur batterie en wifi avec un BME280 pour commander judicieusement l'ouverture de mes fenetres ( entre autre...sinon j'aurais utilisé autre chose que du wifi) suivant la temperature exterieure. J'ai pas fait les calculs mais je suis certain d'etre en dessous des 40-50€ avec tous les composants achetés sur Farnell Mouser Digikey hors PCB et ESP8266. Les batteries viennent d'Amazon et le boitier c'est un machin en polycarbonate IP68 a moins de 5€ sur Farnell.

n°219031
ragexen
Hasta la victoria siempre
Posté le 10-08-2018 à 11:51:30  profilanswer
 

Clairement..
Je vais gratter un peu en affinant les fournisseurs, mais c'est la non-utilisation du fer à souder qui bloque..
C'est pour une administration publique qui n'a rien à voir avec l'électronique.. j ai déjà dû me battre pour pouvoir "jouer aux Lego", ça ne passera pas à un niveau plus brut, même si moins cher

n°219682
Nitescent
Posté le 15-08-2018 à 23:49:30  profilanswer
 

J'arrête pas de bloquer sur des conneries.  [:nitescent:5]  
J'ai tout le temps des tonnes de galères dès que je veux envoyer quelques commandes simples par le port série :/
Soit je suis encore nul en programmation (probable), soit y'a des trucs pas très stables dans la communication série (moins probable).  [:transparency]  
 
 
Mon code est beaucoup plus long avec beaucoup plus de fonctions normalement, là j'ai nettoyé au maximum pour ne garder que ce qui pose problème.  
Tout fonctionne bien sans ordinateur, avec la télécommande radio je contrôle : 4 relais, 3 moteurs pas à pas, 2 MOSFETs et 2 servomoteurs.
 
Maintenant j'essaye d'écrire la partie du code pour le contrôler par l'ordinateur.
 
J'essaye d'activer un relais en envoyant la lettre "a" dans le Moniteur série.
 
 

Code :
  1. String ordre = "0";
  2. int pin_relais1 = 6;
  3. boolean relais1 = LOW;
  4. void setup()
  5. {
  6.   pinMode(pin_relais1,OUTPUT);
  7.   digitalWrite(pin_relais1, LOW);
  8.   // Initialisation port série
  9.   Serial.begin(9600);
  10.   Serial.println("Initialisation" );
  11.   Serial.println("\n" );
  12.   delay(500);
  13. }
  14. void loop()
  15. {
  16.   // Lecture de l'ordre par le port série
  17.   if (Serial.available()>0)
  18.   {
  19.     ordre = Serial.readString();
  20.     Serial.print("Ordre : " ); Serial.println(ordre);
  21.   }
  22.   if(ordre == "a" )
  23.   {
  24. //    relais(1);
  25.     Serial.println("test relais 1" );
  26.     clear_serial();
  27.     ordre = "0";
  28.   }
  29.   Serial.print("Fin de boucle, ordre : " ); Serial.println(ordre);
  30.   Serial.println("\n" );
  31.   ordre = "0";
  32.   delay(500);
  33. }
  34. ////////////////////////////////////////////////////////////////////////////////
  35. //  Fonctions
  36. ////////////////////////////////////////////////////////////////////////////////
  37. // Fonction relais
  38. int relais(int x)
  39. {
  40.   if (x == 1)
  41.   {
  42.     relais1 = !relais1;
  43.     digitalWrite(pin_relais1, relais1);
  44.   }
  45.   delay(100);
  46. }
  47. // Pour vider le buffer du port série
  48. int clear_serial()
  49. {
  50.     while(Serial.available() > 0)
  51.     {
  52.       char t = Serial.read();
  53.     }
  54.     return 0;
  55. }


 
 
Si l'appel de la fonction relais(1) est commenté, ma boucle se déroule normalement, j'ai tous les prints dans le Moniteur série :
 
"Initialisation"
"Fin de boucle, ordre : 0"
"Fin de boucle, ordre : 0"
-> a
"Ordre : a"
"test relais 1"
"Fin de boucle, ordre : 0"
"Fin de boucle, ordre : 0"
-> a
"Ordre : a"
"test relais 1"
"Fin de boucle, ordre : 0"
"Fin de boucle, ordre : 0"
etc etc
 
Je peux envoyer l'ordre autant de fois que je veux, ça marche bien.
 
Par contre, quand je décommente la fonction relais(1); tout part en sucette.  
Les premiers print se font normalement, mais dès que j'envoie l'ordre "a", plus rien.
Le relais 1 se ferme, mais les prints dans le moniteur série ne se font plus.
 
"Initialisation"
"Fin de boucle, ordre : 0"
"Fin de boucle, ordre : 0"
"Fin de boucle, ordre : 0"
-> a
et tout s'arrête dans le moniteur série.
 
Le relais continue de s'inverser si je renvoie l'ordre, mais plus aucun print.
Mais le plus embêtant c'est qu'en fermant le moniteur série, si j'essaye de le réouvrir j'ai l'erreur :  
Erreur d'ouverture du port série <COM5> (Port busy)
Impossible de reprogrammer également. Et comme je le fais à distance à travers TeamViewer, je dois redémarrer l'ordinateur à chaque test  [:rive nord:1]  
 
Mon code n'est surement pas optimisé du tout, et c'est peut être un truc tout con, j'essaye de faire le plus simple et lisible pour mon lvl.
Mais là franchement je ne vois pas du tout ce qui pose problème avec ma fonction relais() de deux lignes  [:bakk7]  
 
Si vous voyez ce qui ne va pas...  :jap:

n°219688
jimbofarra​r
Poreux de la cafetière
Posté le 16-08-2018 à 00:53:44  profilanswer
 

La classe String c'est le mal !
De plus c'est totalement inutile pour ne lire qu'un seul caractère.
 
 

Code :
  1. int ordre = 0;
  2.     byte pin_relais1 = 6;  // un int occupe 2 octets en mémoire
  3.     boolean relais1 = LOW;
  4.     void setup()
  5.     {
  6.       pinMode(pin_relais1,OUTPUT);
  7.       digitalWrite(pin_relais1, LOW);
  8.       // Initialisation port série
  9.       Serial.begin(9600);
  10.       Serial.println("Initialisation" );
  11.       Serial.println("\n" );
  12.       delay(500);
  13.     }
  14.     void loop()
  15.     {
  16.       // Lecture de l'ordre par le port série
  17.       if (Serial.available()>0)
  18.       {
  19.         ordre = Serial.read();  //  
  20.         Serial.print("Ordre : " ); Serial.println(ordre);
  21.       }
  22.       if(ordre == 'a' )  // 'a' retourne le code ascii du caractère a
  23.       {
  24.         relais(1);
  25.         Serial.println("test relais 1" );
  26.         clear_serial();
  27.         ordre = 0;
  28.       }
  29.       Serial.print("Fin de boucle, ordre : " ); Serial.println(ordre);
  30.       Serial.println("\n" );
  31.       ordre = 0;
  32.       delay(500);
  33.     }
  34.     ////////////////////////////////////////////////////////////////////////////////
  35.     //  Fonctions
  36.     ////////////////////////////////////////////////////////////////////////////////
  37.     // Fonction relais
  38.     void relais(byte x)  // void puisque la fonction ne retourne rien et x en byte pour n'occuper qu'un octet en RAM
  39.     {
  40.       switch(x)  // switch case est plus clair qu'une suite de if, else if
  41.       {
  42.         case 1:
  43.         relais1 = !relais1;
  44.         digitalWrite(pin_relais1, relais1);
  45.         break;
  46.       }
  47.       delay(100);
  48.     }
  49.     // Pour vider le buffer du port série
  50.     int clear_serial()
  51.     {
  52.         while(Serial.available() > 0)
  53.         {
  54.           char t = Serial.read();
  55.         }
  56.         return 0;
  57.     }


 
 
Edit : le résultat
 

Code :
  1. Initialisation
  2. Fin de boucle, ordre : 0
  3. Fin de boucle, ordre : 0
  4. Fin de boucle, ordre : 0
  5. Fin de boucle, ordre : 0
  6. Ordre : 97
  7. test relais 1
  8. Fin de boucle, ordre : 0
  9. Fin de boucle, ordre : 0
  10. Fin de boucle, ordre : 0


Message édité par jimbofarrar le 16-08-2018 à 00:55:36

---------------
Bien des Shubs et des Zouls furent calcinés dans les profondeurs de l'énorme Sloar, en vérité, je vous le dis !
n°219691
Nitescent
Posté le 16-08-2018 à 01:46:02  profilanswer
 

Ah merci beaucoup :)
 
Il y a plein de subtilités dans ce genre que je ne maitrise pas encore.
 
Pour le moment mon bordel est en train de tourner avec un petit code bricolé dans Visual Basic,  
je teste les corrections demain :)

n°219832
Nitescent
Posté le 16-08-2018 à 21:36:11  profilanswer
 

Voilà j'ai fait toutes les modifications,
ça a pas mal simplifié le programme et ça m'a fait gagner de la mémoire. :)

 

Par contre ça déconne toujours :/

 

Quand la ligne qui appelle la fonction est commentée ça marche, je peux envoyer tous les ordres que je veux et j'ai bien les retours série.
Mais dès que j'exécute la fonction, la communication série plante.

 

Ça continue de fonctionner, je peux activer tous les relais tant que je ne ferme pas le moniteur, mais je n'ai plus aucun retour et si je le ferme je ne peux plus l'ouvrir,
j'ai l'erreur "Port busy".

 


Même en copiant collant ton morceau de code corrigé et tout simple ça ne marche pas.

 

Qu'est-ce qui pourrait faire que ça plante comme ça quand on appelle une fonction  [:transparency]  [:transparency]  [:transparency]

 


(Il n'y a pas un moyen plus simple de réinitialiser les connexions sur les ports série sans redémarrer l'ordinateur à chaque fois? Et sans débrancher les prises usb comme je suis à distance)


Message édité par Nitescent le 16-08-2018 à 21:36:41
n°219836
Nitescent
Posté le 16-08-2018 à 21:57:43  profilanswer
 

Bon ok, je viens de faire un test tout con.
 
J'ai commenté l'activation du relais dans ma fonction, et j'ai mis un print à la place.
Maintenant ça fonctionne, donc c'est pas un problème logiciel mais matériel quand le relais est activé.
Ce qui ne m'arrange pas vu que je suis à distance :/
 
 
J'ai une alim de PC transformée en alim de labo, elle alimente en 5V les relais ainsi qu'un hub USB relié à l'ordinateur.
L'arduino est branché sur ce hub USB, et donc alimenté par le port USB.
Et c'est le hub USB qui fait la sélection du 5V à envoyer dans les ports USB, comme n'importe quel hub USB avec une alimentation externe...
 
 
Mais là apparemment c'est quand j'active un relais que ça fait une espèce d'interférence et le bloque le retour sur le port série. Sans empêcher la réception de nouveaux ordres
 
Quelqu'un a une idée de ce qu'il se passe?  [:pingouino]

n°219838
Nitescent
Posté le 16-08-2018 à 22:15:13  profilanswer
 

OK j'ai trouvé :o
 
Si j'active les moteurs pas à pas alimentés en 12V par la même alim, pas de problème.
si j'active les servomoteur alimentés avec le même 5V que les relais et le hub USB, pas de problème.
(Tout ce petit monde a bien la masse en commun)
 
Ça déconne uniquement quand j'active le relais 1, et sur ce relais est branchée la monture de mon télescope.
 
Cette monture est reliée à l'ordinateur par un câble spécial qui ouvre une connexion série sur le port COM3.
Mon arduino est fixée sur le port COM5, mais apparemment à l'alimentation de la monture ça interfère sur l'arduino...
(La monture est branchée sur un port USB directement sur l'ordinateur, et non sur le hub USB)
 
Du coup est-ce que quelqu'un a une nouvelle idée? :o
 :jap:

n°219839
Aline BOQS
fan de son cabri au lait.
Posté le 16-08-2018 à 22:26:13  profilanswer
 

[:parisbreizh]  

Spoiler :

:D


---------------
-=* Feedback de Liline *=- _._ -=* Ptit bazar à Liline *=-  
n°219846
Nitescent
Posté le 17-08-2018 à 00:53:13  profilanswer
 

Pour remettre dans le contexte :

 

Le schéma de mon observatoire :
https://reho.st/medium/self/a4efe50682e4a3b987cbc90480e9ab8a503f5749.jpg

 

La dernière fois que je suis rentré chez mes parents j'ai fabriqué la partie PowerBox et l'alim de PC pour simplifier tout le câblage.
Avant j'avais 6 ou 7 petites alimentations pour chaque truc, avec des tonnes de câbles qui montaient sur le télescope.
Tout regrouper sur un Arduino ça permet une plus grande liberté dans la programmation et l'automatisation aussi, maintenant je peux tout modifier comme je veux.

 

Par contre je n'ai eu que 4 jours pour tout faire et tout installer, donc maintenant que je suis de nouveau loin de chez moi je fais la partie programmation à distance. :o

 

Le contrôle à distance fonctionne toujours, j'ai bricolé un programme Visual Basic vite fait pour contrôler ma "PowerBox"

 

https://reho.st/medium/self/fb27ead9bc560d250365d1bfd74292d7b4232f41.jpg

 

https://reho.st/medium/self/b2846adeb9221b7f68ce00633c06dc9057cf1852.png

 

https://reho.st/medium/self/20fc992f161e4a6428886b49c5214ad7ea306d14.png

 

On peut voir la boite fixée sur le côté du télescope, elle alimente la monture, l'appareil photo, le moteur de mise au point, un servomoteur qui vient mettre un masque devant le télescope pour faciliter la mise au point, et elle intègre un hub USB pour brancher l'appareil photo, la webcam de guidage et l'arduino.

 

Contre le mur on voit l'alim de PC qui alimente tout maintenant, le modem 4G, et l'ordi qui contrôle le tout à gauche.
Derrière l'écran il y a l'autre Arduino qui contrôle le toit de l'abri, le bouchon du télescope, un relais pour démarrer l'ordinateur quand on branche le courant dans la maison (ou en prenant le controle d'un Raspberry Pi bientot) et un capteur effet hall pour être sûr que le télescope est bien replié avant de refermer le toit :)

 


La nuit dernière j'ai suivi une comète sur 4h : (attention animation de 50Mo)
http://romainlucchesi.com/autre/comete.gif

 


Je me disais que c'était impossible, mais peut être que petit à petit, un jour, je me retrouverai à automatiser à 100% la prise de photo.
Avec une liste d'objets donnée à l'avance, tout pourrait se lancer automatiquement en fonction des données renvoyées par une station météo et les objets observables :)

 

Mais ça risque d'être compliqué...
Tant que c'est du bricolage ou des petits programmes arduino ça va à peu près, mais dès que je commence à sortir de ça, genre le Visual Basic avec de la syntaxe incompréhensible ça devient dur :o


Message édité par Nitescent le 17-08-2018 à 00:54:33

---------------
Photos astro sur Flickr | Observatoire astronomique à distance Youtube
n°219848
Aline BOQS
fan de son cabri au lait.
Posté le 17-08-2018 à 01:21:09  profilanswer
 

Ok, ce qui suit est HS, désolé.
 
Je suis littéralement épaté par ton installation, tes plans, mais ce boulot de malade que tu as fait  :ouch:  
 
Et le gif avec la comète :  :love:  Je sais que le ciel nocturne ressemble à ce que tu montres, mais quand je compare
avec ce que je vois depuis chez moi = ça n'a rien à voir. Je sais pourquoi, bien entendu (Astronogeek et consorts).
 
Voilà, c'était juste mon petit coup de chapeau, fin de mon HS.


---------------
-=* Feedback de Liline *=- _._ -=* Ptit bazar à Liline *=-  
n°219873
HaiDZ
On en a gros !
Posté le 17-08-2018 à 11:38:32  profilanswer
 

Pouaaaa   [:theredled]

n°220726
Kyjja
Liquefaction imminente
Posté le 22-08-2018 à 23:53:44  profilanswer
 

Nitescent, le mec qui va pouvoir vendre une solution commerciale.

 

Bon, histoire de contraster, je vais vous exposer mes questions de gros débile.
Pour un truc qui consomme peu et envoie des infos par wifi, c'est toujours l'ESP8266 qu'il faut prendre ? Je voudrais placer des ESP avec sonde d'humidité dans différents pots de plantes vertes pour voir quand ça commence à être trop sec parce que je suis une grosse feignasse.

 

Genre ça => https://www.instructables.com/id/ES [...] duino-IDE/

 

Avec un réveil et mesure genre toutes les heures (parce que je ferais tourner ça sur batterie), le tout loggué quelque part pour que ce soit consultable sur une page en 192.168.x.x, m'voyez. De mémoire y a pléthore de modèle d'ESP, et y a peut-être un truc plus adapté à mon usage qui est sorti :o


Message édité par Kyjja le 23-08-2018 à 00:14:11

---------------
HWBot | Conso GPU | Who's who PSU | Mes BD \o/ | GReads | MSpaint
n°220728
_pollux_
Pan ! t'es mort
Posté le 23-08-2018 à 00:29:22  profilanswer
 

Ça va être chaud d'avoir un truc qui tient dans le temps en partant juste d'un esp. Parce que pour qu'il consomme vraiment peu, il faut le mettre en "veille" et que tu ne peux pas le réveiller autrement que par un contact prévu pour il me semble.


---------------
Le topic du sport électronique@hfr : watch the l33t !
n°220758
Kyjja
Liquefaction imminente
Posté le 23-08-2018 à 09:56:14  profilanswer
 

Oh, je pensais qu'on pouvait le sortir des modes sleep en envoyant un signal wifi  :(


---------------
HWBot | Conso GPU | Who's who PSU | Mes BD \o/ | GReads | MSpaint
n°220760
Natopsi
☄️Just end it already!☄️
Posté le 23-08-2018 à 10:21:30  profilanswer
 

L'ESP peut s'auto-réveiller lui même si tu connecte entre elles deux broches:
https://www.losant.com/blog/making- [...] deep-sleep


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°220767
decamerone
Posté le 23-08-2018 à 11:06:59  profilanswer
 

Le contenu de ce message a été effacé par son auteur

n°220798
Kyjja
Liquefaction imminente
Posté le 23-08-2018 à 13:08:44  profilanswer
 

Apparemment ouais (ils parlent d'un petit exemple où l'ESP est en veille et se réveille toutes les 20s pour lire et envoyer une température).

 
Code :
  1. /**
  2.    An example showing how to put ESP8266 into Deep-sleep mode
  3. */
  4. #include <ESP8266WiFi.h>
  5. #include <ESP8266HTTPClient.h>
  6. #include <Losant.h>
  7. // WiFi credentials.
  8. const char* WIFI_SSID = "wifi-ssid";
  9. const char* WIFI_PASS = "wifi-pass";
  10. // Losant credentials.
  11. const char* LOSANT_DEVICE_ID = "device-id";
  12. const char* LOSANT_ACCESS_KEY = "access-key";
  13. const char* LOSANT_ACCESS_SECRET = "access-key";
  14. WiFiClientSecure wifiClient;
  15. LosantDevice device(LOSANT_DEVICE_ID);
  16. void connect() {
  17.   // Connect to Wifi.
  18.   Serial.println();
  19.   Serial.println();
  20.   Serial.print("Connecting to " );
  21.   Serial.println(WIFI_SSID);
  22.   WiFi.begin(WIFI_SSID, WIFI_PASS);
  23.   // WiFi fix: https://github.com/esp8266/Arduino/issues/2186
  24.   WiFi.persistent(false);
  25.   WiFi.mode(WIFI_OFF);
  26.   WiFi.mode(WIFI_STA);
  27.   WiFi.begin(WIFI_SSID, WIFI_PASS);
  28.   unsigned long wifiConnectStart = millis();
  29.   while (WiFi.status() != WL_CONNECTED) {
  30.     // Check to see if
  31.     if (WiFi.status() == WL_CONNECT_FAILED) {
  32.       Serial.println("Failed to connect to WiFi. Please verify credentials: " );
  33.       delay(10000);
  34.     }
  35.     delay(500);
  36.     Serial.println("..." );
  37.     // Only try for 5 seconds.
  38.     if (millis() - wifiConnectStart > 15000) {
  39.       Serial.println("Failed to connect to WiFi" );
  40.       return;
  41.     }
  42.   }
  43.   Serial.println("" );
  44.   Serial.println("WiFi connected" );
  45.   Serial.println("IP address: " );
  46.   Serial.println(WiFi.localIP());
  47.   Serial.println();
  48.   Serial.print("Connecting to Losant..." );
  49.   Serial.print("Authenticating Device..." );
  50.   HTTPClient http;
  51.   http.begin("http://api.losant.com/auth/device" );
  52.   http.addHeader("Content-Type", "application/json" );
  53.   http.addHeader("Accept", "application/json" );
  54.   /* Create JSON payload to sent to Losant
  55.        {
  56.          "deviceId": "575ecf887ae143cd83dc4aa2",
  57.          "key": "this_would_be_the_key",
  58.          "secret": "this_would_be_the_secret"
  59.        }
  60.   */
  61.   StaticJsonBuffer<200> jsonBuffer;
  62.   JsonObject& root = jsonBuffer.createObject();
  63.   root["deviceId"] = LOSANT_DEVICE_ID;
  64.   root["key"] = LOSANT_ACCESS_KEY;
  65.   root["secret"] = LOSANT_ACCESS_SECRET;
  66.   String buffer;
  67.   root.printTo(buffer);
  68.   int httpCode = http.POST(buffer);
  69.   if (httpCode > 0) {
  70.     if (httpCode == HTTP_CODE_OK) {
  71.       Serial.println("This device is authorized!" );
  72.     } else {
  73.       Serial.println("Failed to authorize device to Losant." );
  74.       if (httpCode == 400) {
  75.         Serial.println("Validation error: The device ID, access key, or access secret is not in the proper format." );
  76.       } else if (httpCode == 401) {
  77.         Serial.println("Invalid credentials to Losant: Please double-check the device ID, access key, and access secret." );
  78.       } else {
  79.         Serial.println("Unknown response from API" );
  80.       }
  81.       Serial.println("Current Credentials: " );
  82.       Serial.println("Device id: " );
  83.       Serial.println(LOSANT_DEVICE_ID);
  84.       Serial.println("Access Key: " );
  85.       Serial.println(LOSANT_ACCESS_KEY);
  86.       Serial.println("Access Secret: " );
  87.       Serial.println(LOSANT_ACCESS_SECRET);
  88.       return;
  89.     }
  90.   } else {
  91.     Serial.println("Failed to connect to Losant API." );
  92.     return;
  93.   }
  94.   http.end();
  95.   device.connectSecure(wifiClient, LOSANT_ACCESS_KEY, LOSANT_ACCESS_SECRET);
  96.   while (!device.connected()) {
  97.     delay(1000);
  98.     Serial.print("." );
  99.   }
  100.   Serial.println("Connected!" );
  101.   Serial.println("This device is now ready for use!" );
  102. }
  103. void reportTemp(double degreesC, double degreesF) {
  104.   StaticJsonBuffer<200> jsonBuffer;
  105.   JsonObject& root = jsonBuffer.createObject();
  106.   root["tempC"] = degreesC;
  107.   root["tempF"] = degreesF;
  108.   device.sendState(root);
  109. }
  110. void setup() {
  111.   Serial.begin(115200);
  112.   Serial.setTimeout(2000);
  113.   // Wait for serial to initialize.
  114.   while (!Serial) { }
  115.   Serial.println("Device Started" );
  116.   Serial.println("-------------------------------------" );
  117.   Serial.println("Running Deep Sleep Firmware!" );
  118.   Serial.println("-------------------------------------" );
  119.   connect();
  120.   int temp = analogRead(A0);
  121.   double degreesC = (((temp / 1024.0) * 3.2) - 0.5) * 100.0;
  122.   double degreesF = degreesC * 1.8 + 32;
  123.   Serial.println();
  124.   Serial.print("Temperature C: " );
  125.   Serial.println(degreesC);
  126.   Serial.print("Temperature F: " );
  127.   Serial.println(degreesF);
  128.   Serial.println();
  129.   reportTemp(degreesC, degreesF);
  130.   Serial.println("Going into deep sleep for 20 seconds" );
  131.   ESP.deepSleep(20e6); // 20e6 is 20 microseconds
  132. }
  133. void loop() {
  134. }
 

Du coup ça devient vachement interessant pour faire tourner ça sur des accus.

 

Vous savez si y a une différence de conso entre les différents ESP ? (Quoique à vu de nez, à part quelques passifs ils semblent grosso modo identiques au form factor près).
Du coup je vais piocher des ESP-01 chez les tinois, et des régulateurs (step up ou step down, dunno ce que je met en batterie).


Message édité par Kyjja le 23-08-2018 à 13:19:45

---------------
HWBot | Conso GPU | Who's who PSU | Mes BD \o/ | GReads | MSpaint
n°220808
Natopsi
☄️Just end it already!☄️
Posté le 23-08-2018 à 14:18:51  profilanswer
 

Attention avec les ESP-01, pas sur que t'arrive à faire la connexion pour le deep sleep.


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°220819
Kyjja
Liquefaction imminente
Posté le 23-08-2018 à 15:07:25  profilanswer
 

Pourquoi ? Laisse savoir les vraies infos frer.  [:dannyocean:3]


---------------
HWBot | Conso GPU | Who's who PSU | Mes BD \o/ | GReads | MSpaint
n°220824
Natopsi
☄️Just end it already!☄️
Posté le 23-08-2018 à 15:15:20  profilanswer
 

Si par ESP01 tu parle du mini module à pas cher avec 8 pattes, le GPIO16 n'est pas sorti donc impossible de le relier au RST pour qu'il fasse le réveil.
Ou alors il faut que tu fasse un circuit externe qui titille le reset à intervalle régulier.


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°220825
Natopsi
☄️Just end it already!☄️
Posté le 23-08-2018 à 15:21:14  profilanswer
 

Après si tu te sent de tirer un micro fil émaillé entre le RST et la pin 13 du QFN ça doit être gérable :o


---------------
ACH/VDSHFRCoin◈1435mm⚡
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  158  159  160  ..  264  265  266  267  268  269

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-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR