ENIB 2025 : P'tit bolide : Différence entre versions
(→fichiers à joindre) |
(→étapes de fabrication) |
||
Ligne 163 : | Ligne 163 : | ||
""" | """ | ||
− | = | + | =#include <ESP8266WiFi.h> |
− | + | #include <ESP8266WebServer.h> | |
+ | #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 = "<html lang=fr-FR><head>\n"; | ||
+ | p += "<title>Commande des Servos</title>\n"; | ||
+ | p += "<meta charset='UTF-8'>\n"; | ||
+ | p += "<style>\n"; | ||
+ | p += "body { background-color: #000088; color: white; font-size: 25px; }\n"; | ||
+ | p += "input { width:25%; margin:10px; font-size:20px; border-radius: 5px; }\n"; | ||
+ | p += "</style>\n"; | ||
+ | p += "<script>\n"; | ||
+ | p += "function updateServoPosition1(val) {\n"; | ||
+ | p += " document.getElementById('servoValue1').innerText = val + '°';\n"; | ||
+ | p += " window.location = window.location.pathname + '?servo1=' + val;\n"; | ||
+ | p += "}\n"; | ||
+ | p += "function updateServoPosition2(val) {\n"; | ||
+ | p += " document.getElementById('servoValue2').innerText = val + '°';\n"; | ||
+ | p += " window.location = window.location.pathname + '?servo2=' + val;\n"; | ||
+ | p += "}\n"; | ||
+ | p += "</script>\n"; | ||
+ | |||
+ | |||
+ | p += "<body><center>\n"; | ||
+ | p += "<h3>Commandes Servo 1 (Pin D4)</h3>\n"; | ||
+ | |||
+ | |||
+ | // Affichage de la position actuelle du premier servo | ||
+ | p += "<p>Position actuelle du servo 1 : <span id='servoValue1'>" + String(servoPosition1) + "°</span></p>\n"; | ||
+ | |||
+ | |||
+ | // Curseur pour ajuster l'angle du premier servo | ||
+ | p += "<input type='range' min='0' max='180' value='" + String(servoPosition1) + "' onchange='updateServoPosition1(this.value)'>\n"; | ||
+ | |||
+ | |||
+ | p += "<h3>Commandes Servo 2 (Pin D1)</h3>\n"; | ||
+ | |||
+ | |||
+ | // Affichage de la position actuelle du deuxième servo | ||
+ | p += "<p>Position actuelle du servo 2 : <span id='servoValue2'>" + String(servoPosition2) + "°</span></p>\n"; | ||
+ | |||
+ | |||
+ | // Curseur pour ajuster l'angle du deuxième servo | ||
+ | p += "<input type='range' min='0' max='180' value='" + String(servoPosition2) + "' onchange='updateServoPosition2(this.value)'>\n"; | ||
+ | |||
+ | |||
+ | p += "</center></body></html>"; | ||
+ | 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== | ==Sources et documentation complémentaire== |
Version du 20 janvier 2025 à 14:44
Titre de la fiche expérience :
Sommaire
description (résumé)
éventuelle photo de l'équipe
Introduction
éventuelle vidéo
outil et matériel
fichiers à joindre
""" code, ficher d'impression 3D, de découpe laser ou vinyle, ...
- include <ESP8266WiFi.h>
- include <ESP8266WebServer.h>
- 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 += " "; return 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 += "
}
// 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>
- include <ESP8266WebServer.h>
- 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 += " "; return 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 += "
}
// 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