bonjour . je suis tout nouveau sur votre forum .
à dire vrai , c’est mon tout premier post.
j’ai une question :
sur le esp 8266 , (arduino wifi) (esp-f utilisé avec les sources de l' esp-e , celles du geekcreit étant à ce jour , indisponnibles)
j’ai réussi à créer , de bric et de broc , un petit programme .
bon , je vais être honnête ,
je l’ai compilé en y ajoutant de bouts de code chipés à droite , à gauche .
le serveur n’est pas de ma composition sauf le paragraphe sur le dht11 .
j’ai pioché dans les exemples de l' I.D.E. sous linux debian .
donc , j’arrive à me servir du dht pour afficher la température et l’humidité … dans le moniteur série .
dans la page html , je sais pas faire ….
à titre indicatif , voilà le code :
/*
This sketch demonstrates how to set up a simple HTTP-like server.
The server will set a GPIO pin depending on the request
http://server_ip/gpio/0 will set the GPIO2 low,
http://server_ip/gpio/1 will set the GPIO2 high
server_ip is the IP address of the ESP8266 module, will be
printed to Serial when the module is connected.
*/
// librairies :
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <dht.h>
// initialisations :
#ifndef STASSID
#define STASSID "Bbox-xxxxxxx"
#define STAPSK "xxxxxxxxxxxxxxxxxxxxxxxx"
#endif
#define DHT11_PIN D3
dht DHT;
const char* ssid = STASSID;
const char* password = STAPSK;
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
void setup() {
Serial.begin(115200);
// prepare LED
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, 0);
// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print(F("Connecting to "));
Serial.println(ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(F("."));
}
Serial.println();
Serial.println(F("WiFi connected"));
// Start the server
server.begin();
Serial.println(F("Server started"));
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}
Serial.println(F("new client"));
client.setTimeout(5000); // default is 1000
// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(F("request: "));
Serial.println(req);
// Match the request
// serial println avec dht 11
// test dht_11
//lecture capteur
int chk = DHT.read11(DHT11_PIN);
// affichage données
Serial.print("Command is : [");
Serial.println(" is to show temperature!] ");
Serial.print(" Temp is: " );
Serial.print(DHT.temperature);
Serial.println(" ° C. Degrés Celcius");
Serial.print("Command is : [");
Serial.println("to show humidity!]");
Serial.print(" Humidity is: " );
Serial.print(DHT.humidity);
Serial.println(" % pour cent ");
Serial.println("quelle est la requète ?");
int val;
if (req.indexOf(F("/gpio/0")) != -1) {
val = 1;
Serial.println(" demande d'extinction de la led ");
} else if (req.indexOf(F("/gpio/1")) != -1) {
val = 0;
Serial.println(" demande d'allumage de la led");
} else {
Serial.println(F("invalid request"));
val = digitalRead(LED_BUILTIN);
}
// Set LED according to the request
digitalWrite(LED_BUILTIN, val);
Serial.println(" on réponds à la requète ");
// read/ignore the rest of the request
// do not client.flush(): it is for output only, see below
while (client.available()) {
// byte by byte is not very efficient
client.read();
}
// Send the response to the client
// it is OK for multiple small client.print/write,
// because nagle algorithm will group them into one single packet
Serial.println("envoi de la page web au client");
client.print(F("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now "));
client.print((val) ? F("high") : F("low"));
client.print(F("<br><br>Click <a href='http://"));
client.print(WiFi.localIP());
client.print(F("/gpio/1'>here</a> to switch LED GPIO on, or <a href='http://"));
client.print(WiFi.localIP());
client.print(F("/gpio/0'>here</a> to switch LED GPIO off.</html>"));
// The client will actually be *flushed* then disconnected
// when the function returns and 'client' object is destroyed (out-of-scope)
// flush = ensure written data are received by the other side
Serial.println(F("Disconnecting from client"));
}
si qqun pouvait me communiquer des ressources faciles à comprendre (à la portée d’un débutant),
voire des exemples de programmes simple à comprendre afin que je puisse les appliquer à mon cas …
ce serai sympa .
merci .