ENIB 2025 : P'tit bolide : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(description (résumé))
(description (résumé))
Ligne 6 : Ligne 6 :
  
 
[[Fichier:P'tit bolide au sol.jpg|200px]]
 
[[Fichier:P'tit bolide au sol.jpg|200px]]
 +
 +
[[Fichier:Premier prototype Ptitbolide.png|200px]]
  
 
==Introduction==
 
==Introduction==

Version du 21 janvier 2025 à 10:10

Titre de la fiche expérience :

description (résumé)

PaperToy2 schema.png

P'tit bolide au sol.jpg

Premier prototype Ptitbolide.png

Introduction

éventuelle vidéo

outil et matériel

fichiers à joindre

""" code, ficher d'impression 3D, de découpe laser ou vinyle, ...

  1. include <ESP8266WiFi.h>
  2. include <ESP8266WebServer.h>
  3. include <Servo.h> // Inclusion de la bibliothèque Servo


// Informations réseau (réseau Wi-Fi existant) const char* mySSID = "Formation"; // SSID de votre réseau Wi-Fi const char* mySecKey = "Apdgo29200!"; // Clé Wi-Fi de votre réseau


// Déclaration du serveur Web ESP8266WebServer myWeb(80);


// Pin pour contrôler les servos const int servoPin1 = D4; // Pin pour le premier servo-moteur const int servoPin2 = D1; // Pin pour le deuxième servo-moteur


// Déclaration des objets Servo Servo myServo1; // Objet Servo pour contrôler le premier servo Servo myServo2; // Objet Servo pour contrôler le deuxième servo


// Variables pour stocker la position des servos int servoPosition1 = 90; // Position par défaut du premier servo int servoPosition2 = 90; // Position par défaut du deuxième servo


// Fonction pour générer la page HTML String webPage01() {

   String p = "\n";
    p += "Commande des Servos\n";
    p += "\n";
    p += "\n";
    p += "\n";


    p += "
\n"; p += "

Commandes Servo 1 (Pin D4)

\n"; // Affichage de la position actuelle du premier servo p += "

Position actuelle du servo 1 : " + String(servoPosition1) + "°

\n"; // Curseur pour ajuster l'angle du premier servo p += "\n"; p += "

Commandes Servo 2 (Pin D1)

\n"; // Affichage de la position actuelle du deuxième servo p += "

Position actuelle du servo 2 : " + String(servoPosition2) + "°

\n"; // Curseur pour ajuster l'angle du deuxième servo p += "\n"; p += "
"; return p;

}


// Fonction pour gérer les commandes et envoyer la page web void runPage01() {

   // Commandes pour contrôler le premier servo-moteur
   if (myWeb.hasArg("servo1")) {
       servoPosition1 = myWeb.arg("servo1").toInt();  // Récupère l'angle du premier servo
       myServo1.write(servoPosition1);  // Déplace le premier servo à l'angle spécifié
   }


   // Commandes pour contrôler le deuxième servo-moteur
   if (myWeb.hasArg("servo2")) {
       servoPosition2 = myWeb.arg("servo2").toInt();  // Récupère l'angle du deuxième servo
       myServo2.write(servoPosition2);  // Déplace le deuxième servo à l'angle spécifié
   }


   // Envoi de la page web
   myWeb.send(200, "text/html", webPage01());

}


// Fonction d'initialisation void setup() {

   // Initialisation de la liaison série
   Serial.begin(115200);
   delay(100);
   Serial.println("----------------------");
   Serial.println("Exemple de serveur WEB");
   Serial.println("----------------------");


   // Connexion au réseau Wi-Fi existant
   Serial.print("Connexion au réseau Wi-Fi : ");
   WiFi.begin(mySSID, mySecKey);


   // Attendre que l'ESP8266 se connecte au réseau Wi-Fi
   int attempts = 0;
   while (WiFi.status() != WL_CONNECTED && attempts < 30) {  // Attendre 30 secondes max
       delay(500);
       Serial.print(".");
       attempts++;
   }


   if (WiFi.status() == WL_CONNECTED) {
       Serial.println("\nConnexion Wi-Fi réussie!");
       Serial.print("Adresse IP du serveur Web : ");
       Serial.println(WiFi.localIP());
   } else {
       Serial.println("\nErreur de connexion Wi-Fi !");
   }


   // Initialisation des servos
   myServo1.attach(servoPin1);  // Attache le premier servo à la broche D4
   myServo2.attach(servoPin2);  // Attache le deuxième servo à la broche D1


   // Définir la page d'accueil du serveur web
   myWeb.on("/", runPage01);
   myWeb.begin();

}


// Fonction appelée en boucle void loop() {

   // Traitement des requêtes web
   myWeb.handleClient();

} """

=#include <ESP8266WiFi.h>

  1. include <ESP8266WebServer.h>
  2. include <Servo.h> // Inclusion de la bibliothèque Servo


// Informations réseau (réseau Wi-Fi existant) const char* mySSID = "Formation"; // SSID de votre réseau Wi-Fi const char* mySecKey = "Apdgo29200!"; // Clé Wi-Fi de votre réseau


// Déclaration du serveur Web ESP8266WebServer myWeb(80);


// Pin pour contrôler les servos const int servoPin1 = D4; // Pin pour le premier servo-moteur const int servoPin2 = D1; // Pin pour le deuxième servo-moteur


// Déclaration des objets Servo Servo myServo1; // Objet Servo pour contrôler le premier servo Servo myServo2; // Objet Servo pour contrôler le deuxième servo


// Variables pour stocker la position des servos int servoPosition1 = 90; // Position par défaut du premier servo int servoPosition2 = 90; // Position par défaut du deuxième servo


// Fonction pour générer la page HTML String webPage01() {

   String p = "\n";
    p += "Commande des Servos\n";
    p += "\n";
    p += "\n";
    p += "\n";


    p += "
\n"; p += "

Commandes Servo 1 (Pin D4)

\n"; // Affichage de la position actuelle du premier servo p += "

Position actuelle du servo 1 : " + String(servoPosition1) + "°

\n"; // Curseur pour ajuster l'angle du premier servo p += "\n"; p += "

Commandes Servo 2 (Pin D1)

\n"; // Affichage de la position actuelle du deuxième servo p += "

Position actuelle du servo 2 : " + String(servoPosition2) + "°

\n"; // Curseur pour ajuster l'angle du deuxième servo p += "\n"; p += "
"; return p;

}


// Fonction pour gérer les commandes et envoyer la page web void runPage01() {

   // Commandes pour contrôler le premier servo-moteur
   if (myWeb.hasArg("servo1")) {
       servoPosition1 = myWeb.arg("servo1").toInt();  // Récupère l'angle du premier servo
       myServo1.write(servoPosition1);  // Déplace le premier servo à l'angle spécifié
   }


   // Commandes pour contrôler le deuxième servo-moteur
   if (myWeb.hasArg("servo2")) {
       servoPosition2 = myWeb.arg("servo2").toInt();  // Récupère l'angle du deuxième servo
       myServo2.write(servoPosition2);  // Déplace le deuxième servo à l'angle spécifié
   }


   // Envoi de la page web
   myWeb.send(200, "text/html", webPage01());

}


// Fonction d'initialisation void setup() {

   // Initialisation de la liaison série
   Serial.begin(115200);
   delay(100);
   Serial.println("----------------------");
   Serial.println("Exemple de serveur WEB");
   Serial.println("----------------------");


   // Connexion au réseau Wi-Fi existant
   Serial.print("Connexion au réseau Wi-Fi : ");
   WiFi.begin(mySSID, mySecKey);


   // Attendre que l'ESP8266 se connecte au réseau Wi-Fi
   int attempts = 0;
   while (WiFi.status() != WL_CONNECTED && attempts < 30) {  // Attendre 30 secondes max
       delay(500);
       Serial.print(".");
       attempts++;
   }


   if (WiFi.status() == WL_CONNECTED) {
       Serial.println("\nConnexion Wi-Fi réussie!");
       Serial.print("Adresse IP du serveur Web : ");
       Serial.println(WiFi.localIP());
   } else {
       Serial.println("\nErreur de connexion Wi-Fi !");
   }


   // Initialisation des servos
   myServo1.attach(servoPin1);  // Attache le premier servo à la broche D4
   myServo2.attach(servoPin2);  // Attache le deuxième servo à la broche D1


   // Définir la page d'accueil du serveur web
   myWeb.on("/", runPage01);
   myWeb.begin();

}


// Fonction appelée en boucle void loop() {

   // Traitement des requêtes web
   myWeb.handleClient();

}

Sources et documentation complémentaire

Elémlent de présentation

je met ici le document de présentation de mon projet

ne pas modifier sous cette ligne