Ah oui, ils branchent l'adaptateur en direct, mais en disant qu'il doit être "compatible 3,3v".Jean-Marie a écrit :L'adaptateur USB-serial TTL sort du 5V mais aussi du 3.3V. J'ai bien sûr alimenté le ESP8266 avec le 3.3V mais j'ai hésité pour Tx/Rx car je n'ai pas de documentation prouvant que le Tx de l'adaptateur a un niveau logique en 3.3V. J'ai eu plus confiance en lisant cette page web.
Puisque ça marche, ça doit être bon.
En tous cas pour brancher sur le Uno il faudra absolument un convertisseur de niveau.
Je vais regarder. Il y a bien une traduction du bouquin dont je t'ai parlé, mais même en français c'est ardu :Je sais envoyer ou recevoir des données par liaison série en langage C ou en assembleur mais je n'y connais rien à ce vocabulaire de "socket", "port réseau", "Telnet" ou "serveur web". Aurais-tu une bonne adresse où me familiariser un peu avec ces notions ?
http://www.advancedlinuxprogramming-fr. ... us#sockets
Ah non, mais alors rassure-toi, moi non plus je n'y connais rien : Quand ils disent "advanced" c'est juste qu'il faut déjà connaître le langage C.Merci pour l'info. En ce qui concerne Linux, je suis seulement en train d'apprendre le niveau "basic". Peut-être un jour serai-je à même d'aborder le niveau "advanced".
Ce bouquin est intéressant, parce que quand on veut faire des montages sur le Raspberry Pi on rencontre vite des problèmes. Je m'explique:
- d'un côté on a notre programme qui gère les entrées-sorties électroniques. Comme sur un Arduino, c'est une boucle sans fin. Au lieu de loop() on met while(1).
- de l'autre côté, on a Linux, ses applications, son serveur web, son interface graphique, etc.
Ce sont des "processus" différents, et on aimerait bien pouvoir échanger des données de l'un à l'autre. Si on commande un moteur, ou une horloge dont l'affichage change toutes les secondes, on ne va pas s'arrêter pour attendre que l'utilisateur presse une touche. On va donc utiliser un signal (un "sémaphore") pour indiquer qu'un processus veut parler à un autre. Puis on va échanger des données par un canal ("pipe") ou une zone de mémoire partagée, ou, si l'autre processus est situé sur une autre machine, un "socket".
Un serveur web est un très très bon exemple de socket. On a un programme, qui s'appelle Apache, et qui doit communiquer avec des machines à l'autre bout du monde. Il crée donc un socket, c'est à dire une "prise" sur laquelle on va pouvoir se brancher pour établir une communication. Si tu as Apache sur ton PC, tu peux taper
Et ça y est, la communication avec le socket est établie.telnet 127.0.0.1 80
Apache écoute sur le port 80. Sur un serveur, il y a une adresse IP mais plein de services (http, FTP, telnet, SSH, samba, que sais-je). Pour savoir sur quel service on se connecte, on utilise le numéro de "port".
Donc ça y est, on est bien connecté sur Apache, on peut donc discuter avec lui. Si on tape:
Code : Tout sélectionner
GET / HTTP/1.1
HOST:Framboise
Apache va répondre en envoyant la page d'accueil en html. Puis il va te raccrocher au nez, ben oui, il n'a pas que ça à faire, il y a des milliards d'internautes qui attendent la place.
Bien. Maintenant revenons à nos ESP.
Imaginons un Arduino au fond du jardin, qui écoute sur le port 8888 (ou n'importe quel port libre). Sur le Raspberry Pi, on va ouvrir un socket, et envoyer sur ce socket un message en texte (genre "allume GPIO 1") et sur l'Arduino le programme répondra "OK".
Dans le bouquin ils expliquent les commandes read et write pour lire et écrire sur un socket, et aussi comment lire ou écrire un buffer de texte mais ça tu connais mieux que moi.
Veloce