Bonjour,
Je suis novice sur arduino, et j'ai commencé à l'utiliser pour un projet en particulier.
Je pratique le modélisme ferroviaire, et mes trains sont pilotés via mon wifi. Il suffit d'envoyer aux locomotives des commandes en hexadécimal (ex: de la forme {0x00, 0x01}) pour qu'elles remplissent différentes tâches.
Mon but et d'arriver à créer un programme qui puisse envoyer des requêtes via une adresse IP et un port en fonction de la lecture de l'état de plusieurs capteurs.
Cela pourrait donner, en toutes lettres :
If (analogRead(A0)>1) {
Send {0x00, 0x01} to (192.168.1.20 ) via port (8266)
Quelqu'un pourrait-il m'aider ?
Cordialement,
Evan
Hi,
I'm new in the Arduino world, and I started using it for a particular project.
I actually do model railroading, and my trains are piloted through wifi. You just have to send locomotives commands in HEX (ex: shaped like {0x00, 0x01}) so the trains do what you want.
My goal is to succeed in creating a program that can send requests to locomotives depending on different sensor states (such as an ultrasonic sensor).
It could be something like that (in words) :
If (analogRead(A0)>1) {
Send {0x00, 0x01} to (192.168.1.20 ) through port (8266)
Could someone help me ?
Best regards,
Evan
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.
Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone
Désolé pour cette disonvenance, je traduis de suite
Du coup tu veux envoyer une commande entre quoi et quoi?
Il y a pas mal d'exemple de clientWifi ou ServerWifi as tu déjà regarder de ce coté?
Yes I did, I want to send a command from the arduino to a card similar to an ESP8266, just like the software "packet sender" would do, with IP and port.
I didn't find something in relation with sensors
@UKHeliBob a déplacé ton message dans la section française. Donc maintenant tu es en train d'écrire en anglais dans un forum français.
Désolé, je viens juste de m'inscrire et ne suis pas familier avec les règles du forum...
Du coup tu bloque sur quoi exactement?
pourquoi tu parle de capteur ?
Je veux que mes capteurs déclenchent l'envoi de requêtes, or je ne connais pas les commandes requises pour envoyer des données Hexadécimales vers un autre module avec son IP et son port.
Arduino est TOUT NOUVEAU pour moi, voilà pourquoi je m'adresse à des makers expérimentés
Désolé de te poser encore des questions, mais tes capteurs sont sur des Arduinos de quel type?
ils ont un shield Wifi ou Ethernet?
Que tu envois de l'hexa ou de l'ASCII, cela ne change pas grand chose.
Il faut déjà que tu puisse établir une connexion entre tes microcontrôleurs, ce que fait les exemples que je t'ai cité.
Mais il faut déjà savoir quel type de liaison tu as entre eux (Wifi, Bluetooth, Ethernet, autre)
Salut, je me suis permis d'éditer ton message pour y remettre la première version en français.
Je prévois de mettre un shield wifi sur mon arduino uno (je ne l'ai pas encore, je me renseigne simplement).
En UDP, la l'arduino n'a pas besoin de confirmation de reception du message il me semble, ce pourquoi il me paraissait simple d'envoyer une requête
Je ne comprends pas. Que veux tu dire exactement ?
Quel est le support physique ? les rails ? ou alors tu veux mettre un ARDUINO dans la loco ?
Merci, c'est aimable de votre part
Oui, mais en contre partis, rien ne te dis qu'il a reçu ta requete
UDP ou TCP, c'est secondaire selon moi.
Pourquoi tu veux absolument envoyé de l'hexa, plutôt dire du binaire, car l'Hexa n'est qu'une représentation d'une valeur binaire, il n'y a pas de différence entre l'Hexa, binaire ou nombre entier.
Le serveur est imposé?
Dans la loco se trouve un module similaire à un esp8266.
Les rails alimentent la carte, et à sa mise sous tension, la loco se connecte au wifi.
Dès lors, elle peut recevoir des requêtes sous forme hexadécimale qui contrôlent le moteur.
Elles fonctionnent par exemple avec un envoyeur/receveur UDP tel que packet sender
Donc ton serveur est imposé.
Dans ce cas, il faudra effectivement envoyé une trame UDP avec une valeur binaire dans le payload.
Je ne me rappel plus le nom des exemples fournis avec Arduino, un truc comme EthernetClient
Oui, je ne peux accéder au software sur la carte de la loco (c'est une carte pour loco du commerce)
Elle ne fonctionne qu'avec de l'UDP sur le port 8266, avec une adresse ip fixe
Cette commande me dit quelque chose...
Elle correspond à quoi comme exécution?
Pourquoi ne pas utiliser directement un ESP8266 ou ESP32 ?
A ma connaissance, envoyer des requêtes HTTP, c'est OK avec un couple UNO/shield WIFI, mais UDP, jamais entendu parler.
Mais étant donné que je suis réfractaire à ce genre de solution je peux me tromper.