Bonjour,
Je cherche à créer un objet qui m'afficherait le nom des bateaux qui passent à proximité de ma maison.
C'est mon premier projet Arduino, je n'ai probablement pas les bons réflexes.
J'avais codé un programme en Python qui était fonctionnel, j'ai voulu l'adapter à l'Arduino, mais je n'arrive pas à me connecter au Websocket.
Voici mon code:
#include <WiFiS3.h>
#include <WebSocketsClient.h>
const char* ssid = "mon_ssid";
const char* password = "mon_password";
const char* apiKey = "mon_apikey";
const char* bbox = "[[[47.01, -2.00], [49.02, -1.12]]]";
WebSocketsClient webSocket;
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password); // Connexion au WiFi
// Attendez la connexion
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("En attente de connexion WiFi...");
}
Serial.println("Connecté au WiFi");
// Configuration du WebSocket avec l'URL
webSocket.begin("stream.aisstream.io", 443, "/v0/stream");
webSocket.onEvent(webSocketEvent);
}
void loop() {
webSocket.loop();
}
void webSocketEvent(WStype_t type, uint8_t* payload, size_t length) {
switch(type) {
case WStype_DISCONNECTED:
Serial.println("Déconnecté !");
// Essayez de se reconnecter
webSocket.begin("stream.aisstream.io", 443, "/v0/stream");
break;
case WStype_CONNECTED:
Serial.print("Connecté à : ");
Serial.println((char*)payload); // Affiche l'URL ou le message de connexion
sendSubscriptionMessage(); // Envoi le message d'abonnement
break;
case WStype_TEXT:
if (length > 0) {
Serial.print("Texte reçu : ");
Serial.println((char*)payload); // Convertir le payload en chaîne de caractères
} else {
Serial.println("Aucun texte reçu.");
}
break;
case WStype_ERROR:
Serial.println("Erreur !");
break;
}
}
void sendSubscriptionMessage() {
String subscriptionMessage = "{";
subscriptionMessage += "\"APIKey\": \"" + String(apiKey) + "\",";
subscriptionMessage += "\"BoundingBoxes\": " + String(bbox) + ",";
subscriptionMessage += "}";
webSocket.sendTXT(subscriptionMessage); // Envoie le message sous forme de texte
Serial.println("Message d'abonnement envoyé : ");
Serial.println(subscriptionMessage);
}
Je ne reçois que le message "Déconnecté !"
Quelqu'un aurait-il des pistes pour m'aider à résoudre le problème ?
Merci !!