hello
.. je commence à comprendre le fonctionnement de ce forum et de ces balises ..
donc si l'un ou l'autre d'entre vous avez la curiosité de regarder le code pour me donner une piste de recherche .. grand merci
saisissez ou collez du code ici
// inclusion des bibliothèques utiles
#if defined ARDUINO_ARCH_ESP8266 // s'il s'agit d'un ESP8266
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#elif defined ARDUINO_ARCH_ESP32 // s'il s'agit d'un ESP32
#include "WiFi.h"
#include <WebServer.h>
#endif
#include <Servo.h> // s'il s'agit d'un ESP32, il faut installer une version spéciale
// de la bibliothèque servo:
// https://github.com/RoboticsBrno/ESP32-Arduino-Servo-Library
// modifiez ces deux constantes pour qu'elles contiennent les caractéristiques de
// votre réseau Wifi
#define ssid "***" // le nom (SSID) de votre réseau WiFi
#define password "*****" // votre mot de passe WiFi
// le servomoteur est contrôlé par les GPIO 4 de l'ESP8266
#define pinServo 4
#define pinServo1 2
//#define pinMoteur1 12
//#define pinMoteur2 14
#if defined ARDUINO_ARCH_ESP8266 // s'il s'agit d'un ESP8266
ESP8266WebServer server(80);
#elif defined ARDUINO_ARCH_ESP32 // s'il s'agit d'un ESP32
WebServer server(80);
#endif
Servo monServo; //création de l'objet servo
// La variable qui indique la position désirée pour le servomoteur (dépend du bouton coché sur la page web)
String positionSTR = "1"; // peut prendre les valeurs 1, 2, 3, 4, 5, 6 ou 7
//String sensSTR = "1"; // peut prendre les valeurs 0 (horaire) ou 1 (antihoraire)
//String vitesseSTR = "0"; // peut prendre les valeurs 0 (arrêt) , 1 (lent) ou 2 (rapide)
Servo monServo1; //création de l'objet servo
// La variable qui indique la position désirée pour le servomoteur (dépend du bouton coché sur la page web)
String positionSTR1 = "4"; // peut prendre les valeurs 1, 2 ou 3.
/* La fonction construitPage retourne un string qui contient toute notre page web */
String construitPage() {
String bouton1Str, bouton2Str, bouton3Str, bouton4Str, bouton5Str, bouton6Str, bouton7Str;
String bouton1Str1, bouton2Str1, bouton3Str1, bouton4Str1, bouton5Str1, bouton6Str1, bouton7Str1;
//String bouton1Str2, bouton2Str2, bouton3Str2, bouton4Str2, bouton5Str2;
// pour que le bon bouton demeure coché:
if (positionSTR == "1") {
bouton1Str = "checked";
}
if (positionSTR == "2") {
bouton2Str = "checked";
}
if (positionSTR == "3") {
bouton3Str = "checked";
}
if (positionSTR == "4") {
bouton4Str = "checked";
}
if (positionSTR == "5") {
bouton5Str = "checked";
}
if (positionSTR == "6") {
bouton6Str = "checked";
}
if (positionSTR == "7") {
bouton7Str = "checked";
}
if (positionSTR1 == "1") {
bouton1Str1 = "checked";
}
if (positionSTR1 == "2") {
bouton2Str1 = "checked";
}
if (positionSTR1 == "3") {
bouton3Str1 = "checked";
}
if (positionSTR1 == "4") {
bouton4Str1 = "checked";
}
if (positionSTR1 == "5") {
bouton5Str1 = "checked";
}
if (positionSTR1 == "6") {
bouton6Str1 = "checked";
}
if (positionSTR1 == "7") {
bouton7Str1 = "checked";
}
//if (vitesseSTR == "0") {
// bouton1Str2 = "checked";
//}
//if (vitesseSTR == "1") {
//bouton2Str2 = "checked";
//}
//if (vitesseSTR == "2") {
//bouton3Str2 = "checked";
//}
//if (sensSTR == "1") {
//bouton4Str2 = "checked";
//}
//if (sensSTR == "2") {
//bouton5Str2 = "checked";
//}
String page = "<html lang=fr-FR><head>";
page += "<title>Commande ENDEAVOUR</title>";
page += "<style> body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }</style>";
page += "</head><body><h1>COMMANDE ENDEAVOUR</h1>";
page += "<form action='/' method='POST'>";
page += "<h3>Position Derive:</h3>";
page += "<p><INPUT type='radio' name='position' value='1' " + bouton1Str + ">0";
page += "<INPUT type='radio' name='position' value='2' " + bouton2Str + ">30";
page += "<INPUT type='radio' name='position' value='3' " + bouton3Str + ">60";
page += "<INPUT type='radio' name='position' value='4' " + bouton4Str + ">90";
page += "<INPUT type='radio' name='position' value='5' " + bouton5Str + ">120";
page += "<INPUT type='radio' name='position' value='6' " + bouton6Str + ">150";
page += "<INPUT type='radio' name='position' value='7' " + bouton7Str + ">180</p>";
page += "<INPUT type='submit' value='Appliquer'><br><br>";
page += "<h3>Position Safran:</h3>";
page += "<p><INPUT type='radio' name='position1' value='1' " + bouton1Str1 + ">-90";
page += "<INPUT type='radio' name='position1' value='2' " + bouton2Str1 + ">-60";
page += "<INPUT type='radio' name='position1' value='3' " + bouton3Str1 + ">-30";
page += "<INPUT type='radio' name='position1' value='4' " + bouton4Str1 + ">0";
page += "<INPUT type='radio' name='position1' value='5' " + bouton5Str1 + ">30";
page += "<INPUT type='radio' name='position1' value='6' " + bouton6Str1 + ">60";
page += "<INPUT type='radio' name='position1' value='7' " + bouton7Str1 + ">90</p>";
page += "<INPUT type='submit' value='Appliquer'><br><br>";
//page += "<h3>Vitesse</h3>";
//page += "<p><INPUT type='radio' name='vitesse' value='0' " + bouton1Str2 + ">arret";
//page += "<INPUT type='radio' name='vitesse' value='1' " + bouton2Str2 + ">lent";
//page += "<INPUT type='radio' name='vitesse' value='2' " + bouton3Str2 + ">rapide</p>";
//page += "<h3>Sens de rotation</h3>";
//page += "<p><INPUT type='radio' name='sens' value='1' " + bouton4Str2 + ">horaire";
//page += "<INPUT type='radio' name='sens' value='2' " + bouton5Str2 + ">antihoraire</p>";
//page += "<INPUT type='submit' value='Appliquer'><br><br>";
//page += "</body></html>";
//return page;
}
/* La fonction gestionPage modifie les caractéristiques du moteur si le bouton
Appliquer a été cliqué. */
void gestionPage() {
if ( server.hasArg("position") )
positionSTR = server.arg("position");
Serial.print("Commande recue Servo1 Position: ");
Serial.println(positionSTR);
if ( server.hasArg("position1") )
positionSTR1 = server.arg("position1");
Serial.print("Commande recue Servo2 Position: ");
Serial.println(positionSTR1);
gestionServo();
//if ( server.hasArg("sens") )
//sensSTR = server.arg("sens");
//vitesseSTR = server.arg("vitesse");
//Serial.print("Commande recue. Sens: ");
//Serial.print(sensSTR);
//Serial.print(" Vitesse: ");
//Serial.println(vitesseSTR);
//gestionMoteur();
server.send ( 200, "text/html", construitPage() );
}
/* Contrôle du servomoteur */
void gestionServo() {
int laPosition;
int laPosition1;
if (positionSTR == "1") {
laPosition = 0;
}
if (positionSTR == "2") {
laPosition = 30;
}
if (positionSTR == "3") {
laPosition = 60;
}
if (positionSTR == "4") {
laPosition = 90;
}
if (positionSTR == "5") {
laPosition = 120;
}
if (positionSTR == "6") {
laPosition = 150;
}
if (positionSTR == "7") {
laPosition = 180;
}
if (positionSTR1 == "1") {
laPosition1 = 0;
}
if (positionSTR1 == "2") {
laPosition1 = 30;
}
if (positionSTR1 == "3") {
laPosition1 = 60;
}
if (positionSTR1 == "4") {
laPosition1 = 90;
}
if (positionSTR1 == "5") {
laPosition1 = 120;
}
if (positionSTR1 == "6") {
laPosition1 = 150;
}
if (positionSTR1 == "7") {
laPosition1 = 180;
}
monServo.write(laPosition);
monServo1.write(laPosition1);
}
/* Contrôle du moteur */
//void gestionMoteur() {
//if (vitesseSTR == "0") { //moteur immobile
//ledcWrite(0, 0); //le max est 1023
//ledcWrite(1, 0); //le max est 1023
//}
//if (vitesseSTR == "1") { // vitesse moyenne
//if (sensSTR == "1") { // sens horaire
//ledcWrite(0, 0); //le max est 1023
//ledcWrite(1, 400); //le max est 1023
//}
//if (sensSTR == "2") { //sens antihoraire
//ledcWrite(0, 400); //le max est 1023
//ledcWrite(1, 0); //le max est 1023
//}
//}
//if (vitesseSTR == "2") { // pleine vitessse
//if (sensSTR == "1") { // sens horaire
//ledcWrite(0, 0); //le max est 1023
//ledcWrite(1, 800); //le max est 1023
//}
//if (sensSTR == "2") { // sens antihoraire
//ledcWrite(0, 800); //le max est 1023
//ledcWrite(1, 0); //le max est 1023
//}
//}
//}
void setup() {
monServo.attach(pinServo);
monServo1.attach(pinServo1);
// broches qui contrôlent le moteur
//pinMode(pinMoteur1, OUTPUT);
//pinMode(pinMoteur2, OUTPUT);
// pour l'ESP32, il faut préparer la broche PWM
//#if defined ARDUINO_ARCH_ESP32 // s'il s'agit d'un ESP32
//ledcAttachPin(pinMoteur1, 0); //broche GPIO4 associée au canal PWM 0
//ledcAttachPin(pinMoteur2, 1); //broche GPIO5 associée au canal PWM 1
//ledcSetup(0, 2000, 10);// canal = 0, frequence = 2000 Hz, resolution = 10 bits
//ledcSetup(1, 2000, 10);// canal = 1, frequence = 2000 Hz, resolution = 10 bits
//#endif
// pour affichage dans le moniteur série
Serial.begin ( 115200 );
// initialisation de la communication WiFi
WiFi.begin ( ssid, password );
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 ); Serial.print ( "." );
}
Serial.println ( "" );
Serial.print ( "Maintenant connecte a " );
Serial.println ( ssid );
Serial.print ( "Adresse IP: " );
Serial.println ( WiFi.localIP() );
// On indique le nom de la fonction qui gère l'interraction avec la page web
server.on ( "/", gestionPage );
server.begin();
Serial.println ( "Serveur HTTP en fonction" );
}
void loop() {
server.handleClient();
}