Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Bonjour ! Dans ce tutoriel vous découvrirez comment connecter n'importe quel appareil compatible Arduino, équipé du WiFi, aux API REST ! Cela utilise l'application Web GitKraken Glo Board pour créer des tableaux, des colonnes et des cartes pour organiser les choses !
Une certaine connaissance du fonctionnement de l'API publique est nécessaire. Ce projet est destiné à utiliser l'API de GitKraken Glo pour suivre le temps que vous passez sur les tâches de vos listes de tâches.
Par exemple, vous devez effectuer ces tâches:
- Boire du café
Vous appuyez sur Démarrer lorsque vous commencez, lorsque vous avez terminé, vous appuyez sur Terminé, et voilà, le temps que vous passez est commenté.
Étape 1: Construire
Pour construire, vous pouvez penser à tout. Un petit chronomètre serait bien, mais je n'ai rien fait de petit.
Donc, les boutons poussoirs en carton et d'arcade étaient la voie à suivre!
La carte que j'ai utilisée est une ESP8266 WeMos D1 Mini. C'est moins cher qu'un Arduino et dispose du WiFi à bord !
L'écran est un Nokia 5110 LCD.
m
Liste des pièces sur AliExpress:
- Nokia 5110
- 2 boutons d'arcade
- ESP8266
- Fils de cavalier
- Boîte en carton
Mais vous pouvez le trouver n'importe où ou sur d'autres sites Web comme Amazon ou eBay.
Facture globale: 5€86
Connexions des broches:
ESP8266 WeMos D1 Mini Nokia 5110 LCD
- D2 (GPIO4) ↔ 0 RST
- D1 (GPIO5) ↔ 1 CE
- D6 (GPIO12) ↔ 2 CC
- D7 (GPIO13) 3 DIN
- D5 (GPIO14) ↔ 4 CLK
- 3V3 5 VCC
- D0 (GPIO16) 6 BL
- G (GND) ↔ 7 GND
ESP8266 WeMos D1 Mini ↔ Boutons d'arcade
D3 (GPI18) Bouton gauche
D4 (GPI17) Bouton droit
L'autre broche du bouton étant connectée à la masse (GND).
Étape 2: Coder
Donnez-moi juste le code
Vous pouvez trouver le code source complet ici:
github.com/antoiech/glo-stopwatch
Pour que cela fonctionne pour vous, vous devrez modifier ces variables:
// Mettez vos identifiants WiFi iciconst char* ssid = "--your--ssid--"; const char* mot de passe = "--votre--mot de passe--"; //Mettez votre jeton d'accès personnel (https://support.gitkraken.com/developers/pats/) const char *bearer = "Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
Vous aurez également besoin de 2 bibliothèques Adafruit:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/Adafruit-PCD8544-Nokia…
Et cet Arduino Json génial:
arduinojson.org/
Explications
Dans le code source, vous découvrirez:
- comment se connecter à un point de terminaison
- comment faire une requête POST ou GET
- comment sérialiser une réponse JSON pour obtenir des objets et des tableaux
- comment afficher du texte et des images sur un écran LCD Nokia 5110
Si vous souhaitez en savoir plus sur cette API:
support.gitkraken.com/developers/overview/
Ces requêtes pourraient fonctionner à distance avec n'importe quelle API utilisant les requêtes POST et GET:)
Étape 3: Connectez-vous à un site Web
Ce pseudo-code vous explique comment vous connecter à un site Web HTTPS. Ses premières étapes sont les mêmes qu'avec un
WiFiClient client
mais avec une étape de vérification. Vous devez accéder au point de terminaison de l'API que vous souhaitez vérifier et vérifier l'empreinte SHA1 du certificat. Copiez-collez-le sous forme de chaîne dans votre code et appelez client.verify(fingerprint, hosturl).
Client WiFiClientSecure;
//Connectez-vous au WiFi WiFi.mode(WIFI_STA); WiFi.begin(ssid, mot de passe); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } if (!client.connect(host, httpsPort)) { Serial.println("la connexion a échoué"); revenir; } if (client.verify(empreinte digitale, hôte)) { Serial.println("le certificat correspond"); } else { Serial.println("le certificat ne correspond pas"); }
Étape 4: Faire des requêtes POST / GET
PUBLIER
Voici la syntaxe pour faire une requête POST:
Chaîne PostData = "{"; PostData +="\"texte\":\"mon message\""; PostData += "}"; Serial.print(PostData); client.print(String("POST ") + url + " HTTP/1.1\r\n" + "Hôte: " + hôte + "\r\n" + "Autorisation: " + porteur + "\r\n" + "User-Agent: BuildFailureDetectorESP8266\r\n" + "cache-control: no-cache\r\n" + "Content-Type: application/json \r\n" + "Content-Length: " + PostData. length() + "\r\n" + "\r\n" + PostData + "\n"); Serial.println("demande envoyée");
les PostData sont les données que vous envoyez en tant que JSON, dans ce cas:
{
"texte": "mon message" }
La variable url est l'url du point de terminaison, l'hôte, l'url du site Web, le porteur est le jeton d'accès à l'API.
AVOIR
Voici le pseudo-code d'une requête GET:
client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Hôte: " + hôte + "\r\n" + "Autorisation: " + porteur + "\r\n" + "User-Agent: BuildFailureDetectorESP8266\r\n" + "Connexion: keep-alive\r\n\r\n"); Serial.println("demande envoyée"); while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { Serial.println("en-têtes reçus"); Pause; } } Ligne de chaîne = client.readStringUntil('\n');
Le résultat de cette commande sera stocké dans la variable de ligne.
Étape 5: LCD JSON & NOKIA
Pour réaliser un projet similaire, vous devrez afficher des images, des textes et des symboles sur l'écran LCD du Nokia 5110. Vous pouvez consulter ce didacticiel détaillé de lastminuteengineers.
Pour gérer JSON dans Arduino C++, utilisez le site Web ArduinoJson qui vous dira tout !
N'hésitez pas à poster des questions si vous en avez, ou à poster ce que vous avez fait avec ce code source / tutoriel.