// version 07 juil 2021 #include "Arduino.h" #include #include #include #include #include #include // Création des objets / create Objects DHTesp dht; #define DHTTYPE DHT22 ; // DHT type (DHT11, DHT22) int DHTPIN = 14 ; //Lolin Pin D5 = GPIO14 <-- Broche du capteur AM2302 #define SCL 5 //Lolin D1 fil jaune --> SCL BMP085 #define SDA 4 //Lolin D2 fil vert --> SDA BMP085 #define LED_Bleue 2 //Lolin D4 = LED at GPIO 2 -- led bleue (pull Up) du module Lolin #define LED_Verte 12 //Lolin D6 = LED at GPIO 12 --> led verte (pull Down) externe au module Lolin #define BP1 13 //Lolin D7 at GPIO 13 = input= BP const char* ssid ="ON_AIRxxxx"; const char* password = "c...........................v4"; int i; char Tempchar [8]; char Presschar [8]; char Humidchar [8]; char BMPOK=0; unsigned int Compteur=0; float t = 0.0 ; float h = 0.0 ; float p = 0.0; int analogPin=A0; int ValADC; int SommeValADC; float LM35DZ_temp=0.0; float LM35DZ_MAE= 0.0402832; String etatLed_B = "OFF"; String etatLed_V = "OFF"; String BP1_status = "OFF"; IPAddress local_IP(192, 168, 0, 4); // Set your Gateway IP address IPAddress gateway(192, 168, 0, 254); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(210,27,40,221); //optional IPAddress secondaryDNS(210,27,40,220); //optional Adafruit_BMP085 bmp; ESP8266WebServer server (80 ); String getJavas() { String Javas = "
"; return Javas; }; String getPage(){ String page = ""; page += "ESP8266MOD Lolin Vert - rev 20210707"; page += ""; page += ""; page += getJavas(); page += "

ESP8266 Lolin Vert

"; page += "

Capteur AM2302

"; page += "
  • Temperature : "; page += t; page += "°C
  • "; page += "
  • Humidite : "; page += h; page += "%
"; page += "

I2C BMP085

"; page += "
  • Pression atmospherique : "; page += p; page += " mbar
"; page += "

Autres données

"; //----------- page += "
  • LM35ZD temper. "; page += LM35DZ_temp; page += "°C
"; //----------- page += "
  • Compteur: "; page += Compteur; page += "
"; //----------- page += "
  • Etat BP1 : "; page += BP1_status; page += "
"; page += "

Sorties GPIO

"; page += "
"; page += "
  • Etat Led Bleue ("; page += etatLed_B; page += ")"; page += "
    ON"; page += "
    OFF
"; page += "
  • Etat Led Verte ("; page += etatLed_V; page += ")"; page += "
    ON"; page += "
    OFF
"; //--- page += ""; page += "

"; //page += "

www.projetsdiy.fr

"; page += ""; return page; } void handleRoot(){ // bool hasArg(const String& name) const; // check if argument exists if ( ( server.hasArg("LED_B")) or (server.hasArg("LED_V"))) { handleSubmit(); } else { server.send ( 200, "text/html", getPage() ); } Compteur ++; } void handleSubmit() { // Actualise le GPIO / Update GPIO String LEDValue; LEDValue = server.arg("LED_B"); if ( LEDValue == "1" ) { digitalWrite(LED_Bleue, LOW); etatLed_B = "On"; Serial.print("Led bleue : "); Serial.println(LEDValue); } else { if ( LEDValue == "0" ) { digitalWrite(LED_Bleue, HIGH); etatLed_B = "Off"; Serial.print("Led bleue : "); Serial.println(LEDValue); } } LEDValue = server.arg("LED_V"); Serial.print("Led Verte : "); Serial.println(LEDValue); if ( LEDValue == "1" ) { digitalWrite(LED_Verte, HIGH); etatLed_V = "On"; Serial.print("Led Verte : "); Serial.println(LEDValue); } else { if ( LEDValue == "0" ) { digitalWrite(LED_Verte, LOW); etatLed_V = "Off"; Serial.print("Led Verte : "); Serial.println(LEDValue); } } server.send ( 200, "text/html", getPage() ); } void setup() { Serial.begin ( 115200 ); pinMode(A0, INPUT); LM35DZ_MAE= 0.040283; // = 330/8192 analogReference(DEFAULT); pinMode(BP1,INPUT_PULLUP); pinMode(LED_Bleue, OUTPUT); // pull up vers VCC pinMode(LED_Verte, OUTPUT); // pull Down vers Gnd digitalWrite(LED_Verte, LOW); // eteinte digitalWrite(LED_Bleue, LOW); // allumée for (i=0;i<4;i++) { digitalWrite(LED_Bleue,HIGH); digitalWrite(LED_Verte,HIGH); delay(600); digitalWrite(LED_Bleue,LOW); digitalWrite(LED_Verte,LOW); delay(600); } digitalWrite(LED_Bleue,HIGH); // eteinte digitalWrite(LED_Verte,LOW); // eteinte // BP1 pulled up ! if (digitalRead(BP1)==HIGH) BP1_status="OFF"; else BP1_status="ON"; Serial.printf("Etat BP1 Lolin D7= GPIO13=%s",BP1_status); //-- dht.setup(DHTPIN,DHTesp::DHT22); // Initialisation du BMP180 / Init BMP180 if ( !bmp.begin() ) { Serial.println("BMP180 BAD!"); delay(2000); BMPOK=0; } else { Serial.println("BMP180 OK"); BMPOK=1; } // Configures static IP address if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println("STA Failed to configure"); } WiFi.begin ( ssid, password ); // Attente de la connexion au réseau WiFi / Wait for connection while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); Serial.print ( "." ); } // Connexion WiFi établie / WiFi connexion is OK Serial.println ( "" ); // Serial.println (__VERSION__); Serial.print ( "Connected to " ); Serial.println ( ssid ); Serial.print ( "IP address: " ); Serial.println ( WiFi.localIP() ); Serial.println("\r\nJavas :"); Serial.println( getJavas()); Serial.println(); // On branche la fonction qui gère la premiere page / link to the function that manage launch page server.on ( "/", handleRoot ); server.begin(); Serial.println ( "HTTP server started" ); i=0; } void loop() { server.handleClient(); ValADC = analogRead(A0); // read the input pin A0 on Lolin SommeValADC = SommeValADC + ValADC; i = i + 1; if (i > 7) { Serial.print(" LM35DZ="); //problemo ci dessous //LM35DZ_Sensor = SommeValADC * MAE ; // MAE lottant initialisé avec 0.0402832;‬ // OK ci dessous ! // LM35DZ_temp = SommeValADC * 330.0 / 8192.0 ; // avec 10mV par °C et 8x0124 LM35DZ_temp=(float) SommeValADC * LM35DZ_MAE; Serial.print(LM35DZ_temp); Serial.println(" deg C "); SommeValADC = 0; i=0; } else { Serial.print(" Ana0="); Serial.print(ValADC); Serial.print(" "); } // model=dht.getModel(); t = dht.getTemperature(); snprintf(Tempchar,6,"%3.2f\t",t); h=dht.getHumidity(); snprintf(Humidchar,6,"%2.2f\t",h); if (BMPOK==1) { p = bmp.readPressure() / 100.0F; } else p=999.99; snprintf(Presschar,10,"%4.2f\r\n",p); TempAndHumidity lastValues = dht.getTempAndHumidity(); if (digitalRead(BP1)==HIGH) BP1_status="OFF"; else BP1_status="ON"; //Compteur ++; Serial.printf(" Compteur= %05d ",Compteur); Serial.print(" Pression : " + String(p,0)); Serial.printf(" Temperat. % 5.2f",lastValues.temperature); Serial.printf(" Humidite % 3.1f",lastValues.humidity); Serial.printf(" BP= %s",BP1_status); Serial.println(); delay(2500); } /* ....... Connected to ON_AIR2020 IP address: 192.168.0.103 HTTP server started Compteur= 00001 Pression : 988 Temperat. 25.30 Humidite 63.7 BP= ON Compteur= 00002 Pression : 988 Temperat. 25.30 Humidite 63.6 BP= ON Compteur= 00003 Pression : 988 Temperat. 25.30 Humidite 63.6 BP= ON Compteur= 00004 Pression : 988 Temperat. 25.30 Humidite 63.5 BP= ON Compteur= 00005 Pression : 988 Temperat. 25.30 Humidite 63.5 BP= ON Compteur= 00006 Pression : 988 Temperat. 25.40 Humidite 63.6 BP= ON Led Verte : 1 Led bleue : 1 Compteur= 00007 Pression : 987 Temperat. 25.30 Humidite 63.5 BP= ON Compteur= 00008 Pression : 988 Temperat. 25.20 Humidite 63.5 BP= ON Compteur= 00009 Pression : 988 Temperat. 25.30 Humidite 63.6 BP= ON */