Hello
Here we go, I’m making progress! In the meantime, I’ve investigated a bit more.
I’m using the command rotctld -m 1 -t 4533 -vvvvvvvv with Gpredict, and it works fine.
However, I’d like to avoid using Hamlib if possible, as I can already get the virtual rotor’s position up to its destination.
I’d like to directly retrieve the AZ and EL positions from Gpredict and integrate them into my code in the IDE for the ESP8266, which will control my motor (link: Dispositif de EAU de moteur d'inclinaison panoramique extérieur, télécommande, rotation horizontale et verticale, caméras de vidéosurveillance, budgétaire, entrée AC 220V - AliExpress 30).
For now, I’m forced to use rotctld.
73’s
my ide code
#include <ESP8266WiFi.h> // Inclure la bibliothèque Wi-Fi pour ESP8266 (nécessaire pour la connexion au réseau)
// Informations de connexion Wi-Fi
const char* ssid = “-------------”; // Nom de votre réseau Wi-Fi (remplacez par le SSID de votre réseau)
const char* password = “------------”; // Mot de passe de votre réseau Wi-Fi (remplacez par le mot de passe)
// Informations sur le serveur rotctld
const char* host = “192.168.1.176”; // L’adresse IP du serveur rotctld (ici, l’IP de votre PC qui exécute rotctld)
const int port = 4533; // Le port sur lequel rotctld écoute, par défaut 4533
WiFiClient client; // Créer une instance de client Wi-Fi (utilisé pour établir une connexion réseau)
void setup() {
// Initialiser la communication série pour afficher les informations sur le moniteur série
Serial.begin(115200); // Démarre la communication série à 115200 bauds (pour affichage sur le moniteur série)
delay(10); // Attendre 10 ms (petite pause pour s’assurer que tout est initialisé)
// Connexion au réseau Wi-Fi
Serial.print("Connexion à ");
Serial.println(ssid); // Affiche le nom du réseau Wi-Fi auquel nous essayons de nous connecter
WiFi.begin(ssid, password); // Démarre la connexion Wi-Fi avec le SSID et le mot de passe spécifiés
// Attendre que la connexion Wi-Fi soit établie
while (WiFi.status() != WL_CONNECTED) { // Boucle tant que la connexion n’est pas réussie
delay(500); // Attendre 500 ms entre chaque tentative
Serial.print(“.”); // Affiche un point pour indiquer que le programme tente toujours de se connecter
}
// Une fois connecté au Wi-Fi, afficher l’adresse IP obtenue
Serial.println(“”); // Ligne vide pour améliorer la lisibilité
Serial.println(“Wi-Fi connecté”); // Affiche un message de confirmation
Serial.print("Adresse IP : ");
Serial.println(WiFi.localIP()); // Affiche l’adresse IP locale de l’ESP8266 (utilisée dans le réseau Wi-Fi)
// Connexion au serveur rotctld (via l’IP et le port)
Serial.print("Connexion à ");
Serial.println(host); // Affiche l’adresse IP du serveur rotctld auquel l’ESP8266 essaie de se connecter
if (!client.connect(host, port)) { // Essaye de se connecter au serveur rotctld à l’adresse IP et au port spécifiés
Serial.println(“Échec de la connexion”); // Si la connexion échoue, affiche un message d’erreur
while (true); // Bloque le programme si la connexion échoue (infinite loop)
}
// Si la connexion au serveur est réussie, afficher un message
Serial.println(“Connecté à rotctld”); // Affiche un message pour indiquer que la connexion est réussie
}
void loop() {
// Envoyer la commande pour obtenir la position AZ/EL depuis rotctld
client.print(“p”); // Envoie la commande “p” suivie d’un saut de ligne, qui demande la position du rotor
// Lire la réponse du serveur rotctld
if (client.available()) { // Si le serveur a envoyé une réponse
String response = client.readStringUntil(‘\n’); // Lire la réponse envoyée par le serveur jusqu’à la nouvelle ligne (\n)
Serial.print("Position reçue AZ : "); // Affiche le message “Position reçue :”
Serial.println(response); // Affiche la réponse reçue (AZ/EL) dans le moniteur série
}
// Attendre 1 seconde avant de refaire une nouvelle requête pour obtenir la position
delay(5000); // Attendre 1000 ms (1 seconde) avant de refaire une nouvelle requête au serveur
}