Installation du client HTTP
publication: 3 août 2022 / mis à jour 4 août 2022
Appel à collaboration
Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.
Partagez-les ici sur ce site.
ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.
Vos montages peuvent aider d'autres développeurs.
Les montages des autres développeurs peuvent vous aider.
Pour proposer un article ou un montage, cliquez ici
Modification du fichier source ESP32forth.ino
ESP32Forth est fourni sous forme de fichier source, écrit en langage C. Ce fichier doit être compilé à l'aide de ARDUINO IDE ou tout autre compilateur C compatible avec l'environnement de développement ARDUINO.
Voici les portions de code à modifier:
#define ENABLE_SD_SUPPORT #define ENABLE_SPI_FLASH_SUPPORT #define ENABLE_HTTP_SUPPORT // #define ENABLE_HTTPS_SUPPORT
// ....... #define VOCABULARY_LIST \ V(forth) V(internals) \ V(rtos) V(SPIFFS) V(serial) V(SD) V(SD_MMC) V(ESP) \ V(ledc) V(http) V(Wire) V(WiFi) V(bluetooth) V(sockets) V(oled) \ V(rmt) V(interrupts) V(spi_flash) V(camera) V(timers)
OPTIONAL_RMT_SUPPORT \ OPTIONAL_OLED_SUPPORT \ OPTIONAL_SPI_FLASH_SUPPORT \ OPTIONAL_HTTP_SUPPORT \ FLOATING_POINT_LIST #ifndef ENABLE_HTTP_SUPPORT # define OPTIONAL_HTTP_SUPPORT #else # include <HTTPClient.h> HTTPClient http; # define OPTIONAL_HTTP_SUPPORT \ XV(http, "HTTP.begin", HTTP_BEGIN, tos = http.begin(c0)) \ XV(http, "HTTP.doGet", HTTP_DOGET, PUSH http.GET()) \ XV(http, "HTTP.getPayload", HTTP_GETPL, String s = http.getString(); \ memcpy((void *) n1, (void *) s.c_str(), n0); DROPn(2)) \ XV(http, "HTTP.end", HTTP_END, http.end()) #endif
vocabulary ledc ledc definitions transfer ledc-builtins forth definitions vocabulary http http definitions transfer http-builtins forth definitions vocabulary Serial Serial definitions transfer Serial-builtins forth definitions
Une fois le fichier source modifié, vous le compilez et le téléversez sur la carte ESP32.
Si tout s'est correctement déroulé, vous devez disposer d'un nouveau vocabulaire http
:
http vlist HTTP.begin HTTP.doGet HTTP.getPayload HTTP.end http-builtins
Test du client HTTP
Pour tester notre client HTTP, on peut le faire en interrogeant n'importe quel serveur web. Mais pour ce que nous envisageons ultérieurement, il faut disposer d'un serveur web personnel. Sur ce serveur, on crée un sous domaine:
- notre serveur est arduino-forth.com
- on crée un sous-domaine ws
- on accède à ce sous domaine avec l'URL http://ws.arduino-forth.com
Ce sous-domaine étant créé, il ne contient aucun script à exécuter. On crée la page index.php et on y met ce code:
It's OK
Pour vérifier que notre sous-domaine est fonctionnel, il suffir de l'interroger depuis notre navigateur web préféré:
Si tout se passe comme prévu, on doit avoir le texte It's OK qui s'affiche dans notre navigateur web préféré. Voyons maintenant comment réaliser cette même interrogation de serveur depuis ESP32Forth...
Voici le code FORTH écrit rapidement pour effectuer le test du client HTTP:
WiFi
\ connection to local WiFi LAN
: myWiFiConnect
z" Mariloo"
z" 1925144D91DE5373C3C2D7959F"
login
;
Forth
create httpBuffer 700 allot
httpBuffer 700 erase
HTTP
: run
cr
z" http://ws.arduino-forth.com/" HTTP.begin
if
HTTP.doGet dup ." Get results: " . cr 0 >
if
httpBuffer 700 HTTP.getPayload
httpBuffer z>s dup . cr type
then
then
HTTP.end
;
On active la liaison Wifi en exécutant myWiFiConnect
puis run
:
--> myWiFiConnect 192.168.1.23 MDNS started ok --> run Get results: 200 8 It's OK ok
Notre client HTTP a parfaitement interrogé le serveur web en affichant le même texte que celui récupéré à partir de notre navigateur web.
Ce petit test réussi ouvre la voie à d'énormes possibilités qui seront développées dans d'autres articles...
Legal: site web personnel sans commerce / personal site without seling