| |||||
FORUM HardWare.fr

Electronique, domotique, DIY

Nano-ordinateur, microcontrôleurs, FPGA

[arduino] Topic Unique blabla @ Arduino| Dernière réponse | |
|---|---|
| Sujet : [arduino] Topic Unique blabla @ Arduino | |
| Natopsi | Sinon une W25Q128, là t'as même la place pour le Jingle Bells en MP3 [:yobou:5] |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| Natopsi | Sinon une W25Q128, là t'as même la place pour le Jingle Bells en MP3 [:yobou:5] |
| crazytiti | Ou mettre une eeprom en I2C.
Il existe des 512ko je crois, ça fait de quoi rentrer 20 pages de texte A4 brut. |
| rat de combat | Un nom qui sonne très "euh" pour quelqu'un qui parle allemand. :o
Je ne connais pas ce logiciel, mais en théorie oui bien sûr, on peut stocker une séquence dans l'EEPROM de l'Arduino (EEPROM pas très grand) ou la "téléverser" dans la RAM (jusqu'à la prochaine coupure d'alim, RAM pas très grande non plus) ou stocker sur une carte SD. Après, comme toujours, il faut que le code supporte ça. :o |
| calagan57 | Hello!
Je viens de découvrir le soft "vixenlights" qui fonctionne à base d'arduino pour animer des guirlande etc... :love: http://www.vixenlights.com/ http://www.vixenlights.com/wp-cont [...] 3-Logo.png Moi je voudrais m'en servir pour des animation sur modèle réduit donc des LED SMD :jap: Par contre on a besin d'avoir le PC constamment connecté? On ne peut pas "injecter" la séquence dans l'arduino pour qu'il soit autonome? merci à vous! :hello: |
| Sebwap |
|
| rat de combat | Le Pico se programme avec l'environnement Arduino? |
| Sebwap |
|
| SuperSic |
|
| Sebwap | ça parle de Raspberry Pico par ici ? :) |
| rat de combat | Ah oui, de sérieuses recherches. :jap: L'I2C commun n'est possible de toute façon que si chaque capteur à une adresse différente ce dont je suppose que ce n'est pas le cas. Sinon on pourrait brancher chaque capteur/cylindre sur des broches différentes d'un µC et faire du I2C en software, en master c'est vraiment pas sorcier, sans dire que pour Arduino il doit y avoir tout prêt à l'emploi. Donc des câbles entre chaque cylindre et un Arduino ou similaire qui lui sera relié en sans fil à un autre module branché sur le PC dans l'autre pièce. On pourrait partir sur des nRF24L01+ pour la liaison sans fil, contrairement au BT il n'y a pas de connection/déconnection à faire, les latences peuvent être très faibles. Perso je partirais sur un truc comme ça, car je pense toujours que mettre un ESP par cylindre c'est chercher les ennuis (et puis y'a les histoires de latence dont tu parles). EDIT: Y'a des multiplexeurs de bus I2C aussi, PCF-quelque chose je crois :o , si ça peut servir... |
| blacksad |
[HS]
|
| M600 | Le soucis c’est l’implémentation, pas MQTT dans ce cas la. Ton consommateur final n’a pas à traiter une connexion MQTT mais doit servir de terminal de consultation.
L’ingestion, le traitement et la visualisation est a faire sur un serveur ou ton telephone va seulement prendre une page web. Si tu tiens a avoir le traitement sur le telephone, pourquoi pas. Mais c’est pas un soucis MQTT que d’avoir des interruptions réseau. :) |
| Lermite | Ben, chez moi, c'est quand même un peu tordu:
Le serveur est géré par Mosquitto tournant sur le PC qui me fait office de serveur. Sur téléphone tourne MQTT Client avec Automate qui gère l'interface, mais aussi teste régulièrement le MQTT et kille puis relance MQTT Client si besoin, een l'occurrence s'il échoue à se reconnecter aaprès un changement de réseau (Wifi -> 4G par exemple, ou en sortie du mode avion). Rien que le flow qui maintient le MQTT opérationel: https://i.ibb.co/LdWskPd/MQTT-maint [...] nnel-2.png |
| M600 | MQTT une usine? N’essayez jamais Kafka et autres MQ style RabbitMQ/IBM MQ [:tinostar]
MQTT c’est le niveau zéro des Pub/Sub qui existe et c’est conçu pour cette tache (iot) :D |
| Lermite | J'ai opté pour le MQTT sur mon Shelly Uni.
C'est effectivement une usine à gaz mais qui permet que les données ne quittent pas mon LAN, alors que par défaut, le Shelly Uni fonctionne avec le cloud, ce qui impliquait que mes données transitent par un datacenter de Google à Bruxelles :heink: :pfff: |
| rat de combat | MQTT = usine à gaz à mon avis. :o Curieuse demande par ailleurs, c'est quoi comme recherche si c'est pas indiscrèt? :o I2C à toute petite vitesse (quelque kHz) ça marche sur pas mal de distance, perso j'ai environ 20m de câbles (non blindés, non torsadés en plus) avec je crois 5kHz (projet perso!!). Mais en effet ça peut merder et si le bus est bloqué il faut tout réinitialiser... Par contre est-ce que les capteurs sont tous identiques / ont la même adresse ou pas? Perso je dirais, avec les éléments que tu donnes et ma faible expérience perso, I2C depuis les capteurs jusqu'à un seul ESP32/Arduino/RaPI ou similaire ou une combinaison de tout ça et puis un truc similaire dans l'autre pièce branché au PC. Par contre tes capteurs il faudra les interroger systématiquement, à moins que ce soit des capteurs qui font maître I2C mais je ne pense pas que ça existe?? Après la partie I2C se fera au niveau du bidule (ESP ou autre) dans la pièce humide qui lui pourra envoyer les données quand bon lui semble / quand nécessaire. Partir sur un truc avec un ESP32 par capteur, soit un "mesh" sans fil c'est chercher les ennuis je pense car il faut voir l'arbitrage, les collisions "on air" etc. EDIT: En fait non, pas pour le Wifi en tout cas, c'est géré par la norme/le protocole. :o Sinon il y a aussi les fameux nRF24L01+, mais c'est pas si évident que ça à utiliser et surtout les modules sur Ali etc c'est pas toujours gagné, au contraire (déviations au niveau de la fréquence donc pas de liaison ou liaison instable). |
| Turkleton | Ha oui effectivement, j'ai oublié de dire que mon serveur NodeJS et mes ESP utilisent le protocole MQTT pour communiquer, et c'est très bien comme ça :jap: |
| blacksad | Dans cette configuration, on est d'accord qu'il faut que j'ajoute un routeur Wifi ?
Je ne peux pas faire ça avec juste mon PC et mes modules ESP32 ? |
| M600 | MQTT et/ou InfluxDB en wifi. eg: |
| blacksad | En fait : - j'ai 6 cylindres placés dans une cuve de ~2m de diam, remplie d'eau. - les cylindres sont répartis dans la cuve - chaque cylindre est fermé hermétiquement, il y a un passe-cloison pour l'alimentation electrique. - il n'y a pas beaucoup de place dans les cylindres. - on veut pouvoir ajouter/enlever des cylindres facilement - dans chaque cylindre, il y a un capteur de CO2 et un capteur Humidité/Température qui communiquent tous les deux en I2C, et dont je veux récupérer les données. - la cuve est dans une pièce hermétique thermostatée, très humide - le PC qui centralise les données des capteurs est dans une pièce attenante (~5-10m à vol d'oiseau). - la cloison entre les deux pièces est perméable aux ondes a priori, pas d'effet de cage de Faraday (je vérifie ça in situ la semaine pro) Partant de là, j'avais envisagé au départ un Arduino par cylindre, reliés au PC central en RS485, mais : - Arduino + module MAX485 ça prend pas mal de place - Faut faire passer le fil RS485 partout, y compris traverser la cloison, possible (il y a un passe cloison) mais chiant. - J'ai déjà fait un truc similaire et j'ai eu des galères, certains modules MAX485 étaient daubés, l'adaptateur USB-RS485 me faisait des erreurs aléatoires (matos chinois apachèr, budget limité, recherche frônçaise môssieur), et de manière générale je ne maîtrise pas assez les histoires de câbles (impédance, résistances à mettre en bout de ligne, effet antenne, etc.) pour être capable de faire un truc vraiment correct. J'ai aussi envisagé un seul arduino qui communiquerait avec tous les capteurs, connecté en RS232 au PC, mais le fil I2C serait trop long, je sens que ça va merder aussi. Pis ya le pb de passer les cloisons des cylindres. Donc j'ai fini par me dire que le sans fil c'est ptet pas si mal. Le module ESP32 fait tout (communication et lecture capteurs), n'est pas cher, le nombre de cylindre est facilement adaptable, pas de fils à faire passer (ni à travers la paroi des cylindres, ni celle de la pièce thermostatée) Pour l'instant je n'ai pas vraiment besoin de remontée spontanée des modules des cylindres, ni même d'envoyer des commandes d'action PC->cylindre, mais si l'architecture marche bien pour ce projet, je l'utiliserai sans doute pour d'autres projets qui auront peut-être ce type de besoin. Voilà voilà vous savez tout :o |
| rat de combat | Attention, le Wifi est gourmand en énergie. Tes clients sont alimentés par batterie ou par câble? Dans le dernier cas et vu que tu dis "quelque mètres", pourquoi pas tirer des câbles? :o C'est beaucoup plus fiable... Si tu veux que tout le monde puisse parler spontanément on pourrait p.ex. partir sur une solution CAN, ça fait un minimum pro aussi. :o
Après tout dépend de l'usage exact (perso/pro, "critique" ou pas, ...) et si tu veux bricoler ou un truc tout fait. |
| blacksad | C'est un peu mon plan B, acheter un routeur wifi à pas cher.
Il n'y a actuellement pas de LAN (ni box, ni routeur, ni ethernet, ni Wifi) là où je veux mettre mes ESP32. Mais vu le peu de données à faire transiter, le Wifi me semblait un peu overkill, et je me disais qu'on devait pouvoir faire quelque chose avec du Bluetooth. |
| Turkleton | Perso j'utilise des ESP8266 en wifi, relié à un serveur NodeJS, j'ai jamais eu de souci pour recevoir des messages "spontanés" ;) |
| blacksad | Salut et bonne année au topic !
J'ai acheté plusieurs modules ESP32 (FireBeetle) pour faire de la connexion Bluetooth. Dans mon idée ça devait marcher comme ça : - 1 module est connecté à un PC et sert de "passerelle". Sur le PC tourne un programme Python qui communique avec le module via la liaison série. - Les autres modules sont connectés chacun à des capteurs/actionneurs (température, pression, relais, LED, etc.), chaque module étant alimenté séparément ; ils sont distants de quelques mètres les uns des autres et du module "passerelle". - Le but est de pouvoir, depuis le programme Python, récupérer les valeurs des capteurs et de déclencher des actions en fonction. Dans mes premiers tests, j'ai mis le module [passerelle] en Client et les modules [capteurs/actionneurs] en Server. Pour interagir avec un module [capteurs/actionneurs] je dois d'abord m'y connecter, lui envoyer un message, attendre la réponse et m'en déconnecter, mais ça veut dire que : 1. je ne peux pas recevoir de message "spontané" d'un module [capteurs/actionneurs] 2. il faut que j'attende le temps qu'il se connecte à chaque fois (~200ms, c'est trop long pour mon application). Ce que je veux faire me semble somme toute assez classique, mais je n'arrive pas à une solution satisfaisante avec ce que j'ai sous la main (à la fois connaissances et matériel). J'aimerai pouvoir établir une connexion avec tous mes modules [capteurs/actionneurs] simultanément et une bonne fois pour toutes. J'ai l'impression que je ne suis pas parti dans la bonne direction [:gratgrat] |
| rat de combat |
Tout à fait. La méthode du debounce en software est la bonne je pense. |
| Lermite | Merci pour ces précisions instructives mais si mes capas se sont finalement avérées pas assez efficaces dans le sens où j'avais encore des déclenchements intempestifs, j'ai résolu le problème via le code.
Au lieu de détecter l'appui par une interruption détectant le front montant, j'ai laissé tombé l'interruption pour tout gérer dans la boucle loop qui ne prend en compte un appui supposé que s'il est maintenu au moins 200 ms. Cette bidouille-ci semble fonctionner parfaitement et au pire je peux toujours ajuster la durée minimale de l'appui. L'interruption était de toute façon superflue pour détecter une action humaine très lente par rapport à la fréquence de scrutation de l'Arduino. |
| rat de combat | Il est beau ton sapin den Noel. :lol: Concernant ces condos: En effet ça aide, mais il faut être prudent: -Pour des signaux rapides un condensateur va plus ou moins pourir le signal, à voir selon la capacité et la fréquence (en gardant en tête les séries de Fourier, autrement dit un signal rectangulaire de fréquence f a une bande passante en théorie infinie, en pratique on peut compter 10*f). J'avais posté un tracé d'oscillo il y a quelque jours sur blabla où une capa de seulement 2,x nF pourrissait complètement une liaison série. -Un câble long fait antenne ce qui peut aussi créer des pics de tension, si on veut être prudent (selon la longeur et l'environnement, ...) il vaut mieux mettre une résistance et des diodes de protection supplémentaires (il existe des diodes doubles à faible capacité prévues pour ça) et éventuellement un condo (voir 1er point). |


