Pour créer une solution simple permettant de récupérer les informations en provenance de la carte Arduino à partir du téléphone, j'ai écrit ce petit script en langage LUA.
Fichier attaché :
Nom du fichier :
server.zip
Taille du ficher :1 ko
Pour l'utiliser, il faut flasher le module ESP8266 avec le firmware LUA. Pour cela, je vous propose de télécharger le
zip de NODEMCU Flasher. Le programme de flashage est déjà compilé et se trouve dans le dossier Win64/Release. Pour l'utiliser, il suffit de respecter les connexions pour le
flashage du module et de cliquer sur le bouton Flash (le module est normalement automatiquement reconnu par le logiciel de flashage, lequel contient déjà le firmware de NODEMCU pour le langage LUA).
Pour développer avec le langage LUA, vous pouvez utiliser le programme
ESPlorer.
Pour que le programme s'exécute à la mise sous tension, il faudra le renommer en init.lua et le charger dans l'ESP8266 avec ESPlorer.
Le fonctionnement est simple :
- le uC Arduino se connecte en liaison série à l'ESP8266 et lui envoie les lignes de données à destination du téléphone (une ligne par verre bu par exemple et se terminant par \r\n). Je vous conseille d'envoyer les informations avec un format JSON sur une seule ligne afin de faciliter l'exploitation avec le téléphone.
- le téléphone récupère les informations en se connectant sur le point d'accès constitué par le module ESP8266 (SSID = "ESP8266-SHOOTERS", PWD="shooters") et en chargeant périodiquement la page web présente à l'adresse 192.168.4.1. Si la page contient le mot "rien", c'est qu'il n'y a rien de nouveau. Sinon on reçoit un fichier JSON. Il sera peut être judicieux au moment des tests de remplacer le mot "rien" par une ligne JSON permettant de savoir qu'il n'y a pas de nouvelle information (on aura ainsi du JSON dans tous les cas).
Exemple de ligne JSON :
{"quantite": 12, "temps": 20}
Qu'il faudra envoyer avec l'Arduino avec par exemple un
Serial.print("{\"quantite\": 12, \"temps\": 20}\r\n");
A noter que les \" permettent de placer des " dans la chaine du print (on dit qu'on échappe les caractères).