//1)Test2_ESP8266_HW-341A_2024-0216 //2)Test2_ESP8266_HW-341A_2024-0427 #include #include #include #include //https://www.arduino.cc/reference/en/libraries/u8g2/ #include // version 2.23.15 installed #include #include #include #include // adresse I2C = 0x78 // voir nodemcu_esp8266_pinout.jpg #define SCL 12 // D6 GPIO12 #define SDA 14 // D5 GPIO14 #define VERSION "27-04-2024" // modif PWS ON_AIR2024 //#define VERSION "18-02-2024" #define DIRECTORY "D:\\_ESP8266_avec_OLED_HW-364A_2024\\Test3_ESP8266_HW-341A_2024" #define MODULE "ESP8266_HW-341A JAUNE " #define BOARD "NodeMCU 1.0 (ESP_12E Module) nodemcuv2" //VO //U8G2_SSD1306_128x64_NONAME_F_SW_I2C //u8g2(U8G2_R0,/'clock='/14,/'data='/12,U8X8_PIN_NONE); <-- erreur !!! /* Erreur sur Affichage original LCD !!!! Hello World IM ESP8266 OLED! D5 GPIO 12 SCL .. erreur c'est D6 ! D6 GPIO 14 SDA .. erreur c'est D5 ! */ //U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /*data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA, U8X8_PIN_NONE); #define LED_Bleue 2 //led bleue (pull Up) interne au module ESP #define LED_Verte 18 //D3 LED at GPIO 0 --> led verte (pull Down) #define LED_Rouge 15 //D8 LED at GPIO 15 --> led Rouge (pull Down) #define BP1 13 //D7 BP at GPIO 13 <-- BP tire au Gnd char Presschar [10]; char Ana0char[10]; int ValADC=0; int SommeValADC=0; float LM35DZ_temp=0.0; float LM35DZ_MAE= 0.040283; // 330.0°C pour 8192 points; String Consignechar = "00000"; unsigned int ConsigneV=32; #define DHTTYPE DHT22 ; // DHT type (DHT11, DHT22) int DHTPIN = 5 ; // GPIO D1 <-- Broche du capteur AM2302 char Tempchar [10]; char Humidchar[10]; char BMPOK=0; unsigned int Compteur=0; String etatLed_B = "OFF"; String etatLed_V = "OFF"; String BP1_status = "OFF"; int i,j,k; long L1; // u8g2_uint_t u8g2_GetStrWidth(u8g2_t *u8g2, const char *s); //int StringWidth; //int HeightLetter; #define With_ON_AIR2024 //const char *ssid= "ESP_755F2B"; //const char *password ="admin"; const char* ssid ="ON_AIR2024"; const char* password ="pfwasborn@LyonxRousse%1950FriscoEn1983"; // old const char* password = "pfwasborn@LyonxRousse%1950Frisco>1983"; // Timer variables unsigned long lastTime = 0; unsigned long timerDelay = 4500; //4sec float temperatureC; unsigned int Cpt=0; // 22-06 float p = 0.0; // BMP085 Pression float t = 0.0 ; // AM2302 temper float h = 0.0 ; // AM2302 Humid /* String sid; int32_t rssi; uint8_t encryptionType; uint8_t *bssid; int32_t channel; bool hidden; int scanResult; struct station_config stationConfig; */ DHTesp dht; // AM2302 DHT12 Adafruit_BMP085 bmp; IPAddress local_IP(192, 168, 0, 110); IPAddress gateway(192, 168, 0, 254); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(212,27,40,241); //optional IPAddress secondaryDNS(212,27,40,240); //optional //IPAddress local_IP(192, 168, 4, 1); //IPAddress gateway(192, 168, 4, 2); //IPAddress subnet(255, 255, 0, 0); //IPAddress primaryDNS(8,8,8,8); //optional ESP8266WebServer server (80 ); void setBusClock(uint32_t clock_speed); /* String getSensorReadings(){ sensors.requestTemperatures(); temperatureC = sensors.getTempCByIndex(0); readings["DS18B20"] = String(temperatureC); readings["Cpt"] = String(Cpt); p = bmp.readPressure() / 100.0F; //mBar ou hPa readings["Pression"] = String(p); // t = dht.getTemperature(); readings["Temperature"] = String(t); h=dht.getHumidity(); readings["Humidity"] = String(h); #ifdef With_MCP readings["MCP23017"] = String(mcp_PB); #endif String jsonString = JSON.stringify(readings); Serial.println(jsonString); return jsonString; } */ String getJavas() { String Javas = ""; return Javas; }; String getPage(){ String page = " "; page += ""; page += ""; page += getJavas(); page += ""; page += "

ESP8266 #1 HW-341A JAUNE

"; page += "

avec OLED SSD1306 128*64 inclus !

"; page += "

version 18-02-2024

"; page += "

Capteur DHT11-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 += ")
    "; if (etatLed_B=="ON") { page += "
    ON   "; page += "
    OFF
"; } else { page += "
ON   "; page += "
OFF"; } page += "
  • Etat Led Verte ("; page += etatLed_V; page += ")
    "; if (etatLed_V=="ON") { page += "
    ON "; page += "
    OFF
"; } else { page += "
ON "; page += "
OFF"; } page += "

Consigne Vitesse

"; page += "

Consigne= 0

"; page += "

"; page += "  "; page += "

"; page += "
"; page += "
"; page += "
"; 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")) or (server.hasArg("ConsigneID")) ) { handleSubmit(); } else { server.send ( 200, "text/html", getPage() ); } // Compteur ++; } void handleSubmit() { // Actualise le GPIO / Update GPIO String LEDValue; if ( server.hasArg("LED_B")) { LEDValue = server.arg("LED_B"); Serial.print("Led Bleue : "); Serial.println(LEDValue); if ( LEDValue == "1" ) { digitalWrite(LED_Bleue, HIGH); etatLed_B = "ON"; } else { if ( LEDValue == "0" ) { digitalWrite(LED_Bleue, LOW); etatLed_B = "OFF"; } } } if( server.hasArg("LED_V") ) { LEDValue = server.arg("LED_V"); Serial.print("Led Verte : "); Serial.println(LEDValue); if ( LEDValue == "1" ) { digitalWrite(LED_Verte, HIGH); etatLed_V = "ON"; } else { if ( LEDValue == "0" ) { digitalWrite(LED_Verte, LOW); etatLed_V = "OFF"; } } } if ( server.hasArg("ConsigneID") ) { //Serial.println(Consigne); Consignechar= server.arg("ConsigneID"); Serial.println(Consignechar); } server.send ( 200, "text/html", getPage() ); Compteur ++; } void setup() { Serial.begin(115200); Serial.println("\r\n"); Serial.print(" Directory : "); Serial.println(DIRECTORY); Serial.print(" MODULE : "); Serial.println(MODULE); Serial.print(" BOARD : "); Serial.println(BOARD); Serial.println(F(" ESP8266 NodeMCU with SSD1306 OLED included\r\n")); Serial.print(" Test3_ESP8266_HW-341A_2024 rev 0427 "); Serial.println(VERSION); Serial.println(" version 2.23.15 installed"); Serial.println(" D5=SDA=GPIO14,D6=SCL=GPIO12,I2C@=0x78,AM2302 sur D1=GPIO5"); Serial.print("\r\n ESP getCoreVersion : "); Serial.println(ESP.getCoreVersion()); Serial.print(" ESP getSdkVersion : "); Serial.println(ESP.getSdkVersion() ); Serial.println(" Init E/S "); Serial.println(" A0 analog, Init E/S "); Serial.println(" LED_Bleue 2 interne au module ESP"); Serial.println(" LED_Verte =D3 LED at GPIO 0 "); Serial.println(" LED_Rouge = D8 LED at GPIO 15"); Serial.println(" BP1 = D7 BP at GPIO 13"); pinMode(A0, INPUT); //ANALOG INPUT pinMode(BP1,INPUT_PULLUP); pinMode(LED_Bleue, OUTPUT); // pull up vers VCC pinMode(LED_Verte, OUTPUT); // pull Down vers Gnd pinMode(LED_Rouge, OUTPUT); // pull Down vers Gnd digitalWrite(LED_Verte, LOW); digitalWrite(LED_Bleue, LOW); digitalWrite(LED_Rouge, LOW); Serial.println(" Test 3 leds "); for (i=0;i<4;i++) { digitalWrite(LED_Bleue,HIGH); digitalWrite(LED_Rouge,LOW); digitalWrite(LED_Verte,HIGH); delay(600); digitalWrite(LED_Bleue,LOW); digitalWrite(LED_Rouge,HIGH); digitalWrite(LED_Verte,LOW); delay(600); } digitalWrite(LED_Bleue,LOW); // eteinte digitalWrite(LED_Verte,LOW); digitalWrite(LED_Rouge,LOW); u8g2.setBusClock(600000); u8g2.setI2CAddress(0x78); pinMode(LED_Bleue, OUTPUT); // digitalWrite(LED_Bleue, LOW); delay(1000); digitalWrite(LED_Bleue, HIGH); delay(1000); u8g2.begin(); u8g2.clearBuffer(); u8g2.setFont(u8g2_font_7x14B_tf); // HeightLetter= u8g2_font_info_t+10; // Serial.print("u8g2_font_7x14B_tf char height= "); // s="1234567890"; // StringWidth= u8g2_GetStrWidth(s); // HeightLetter= u8g2_GetMaxCharHeight(u8g2_font_7x14B_tf); // Serial.println( HeightLetter); u8g2.drawStr(0,14,"Hello Chaps"); u8g2.drawStr(10,28,"Test ESP8266 "); u8g2.drawStr(10,42,"I2C @0x78 "); u8g2.drawStr(10,56,"D5=SDA D6=SCL"); u8g2.sendBuffer(); j=0; //----- DHT11 AM2302 Sensor ---------------- dht.setup(DHTPIN,DHTesp::DHT22); delay(1000); t = dht.getTemperature(); if (isnan(t)) snprintf(Tempchar,6,"%s\t"," ???"); else snprintf(Tempchar,6,"%3.2f\t",t); //------------------- h=dht.getHumidity(); if (isnan(h)) snprintf(Humidchar,6,"%s\t"," ???"); else snprintf(Humidchar,6,"%2.2f\t",h); Serial.print(F(" DHT11 Temp : ")); Serial.print(Tempchar); Serial.print(F(" Humid : ")); Serial.print(Humidchar); ValADC =analogRead(A0); // read the input pin A0 on Lolin Serial.print(F(" ; A0 : ")); Serial.println(ValADC); delay(3000); //sensors.requestTemperatures(); // delay(100); // temperatureC = sensors.getTempCByIndex(0); // if (temperatureC < -10.0) temperatureC= -10.0; // Serial.printf(" DS18B20 =% 3.2f\r\n",temperatureC); Serial.println(" Attend connection Wifi STAtion"); u8g2.clearBuffer(); u8g2.setFont(u8g2_font_ncenR18_tf ); // Font size 18 u8g2.drawStr(10, 38,"Wait Wifi"); u8g2.sendBuffer(); // 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.print (" Version :"); Serial.println (__VERSION__); Serial.print ( " Connected to " ); Serial.println ( ssid ); Serial.print ( "IP address: " ); Serial.println ( WiFi.localIP() ); Serial.printf(" Default hostname: %s\r\n", WiFi.hostname().c_str()); Serial.printf("Connected, mac address: %s\r\n", WiFi.macAddress().c_str()); Serial.printf("Gateway IP: %s\r\n", WiFi.gatewayIP().toString().c_str()); Serial.print("Subnet mask: "); Serial.println(WiFi.subnetMask()); Serial.print(" DNS #1, #2 IP: "); WiFi.dnsIP().printTo(Serial); Serial.print(" , "); WiFi.dnsIP(1).printTo(Serial); Serial.println("."); u8g2.setFont(u8g2_font_7x14B_tf); u8g2.clearBuffer(); // 18-02-2024 javas inlus miantenant dans la page html // Serial.println("\r\nJavas :"); // Serial.println( getJavas()); // Serial.println("."); //Serial.println("\r\nPage HTML :"); // Serial.println( getPage()); // 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; ConsigneV=62; Compteur=0; SommeValADC=0; LM35DZ_MAE= 0.040283; // = 330/8192 lastTime = millis(); } void loop (void) { j++; Serial.print(Compteur);Serial.print("/"); Serial.print(j); //----- DHT11 AM2302 Sensor ---------------- dht.setup(DHTPIN,DHTesp::DHT22); delay(1000); t = dht.getTemperature(); if (isnan(t)) snprintf(Tempchar,6,"%s\t"," ???"); else snprintf(Tempchar,6,"%3.2f\t",t); //------------------- h=dht.getHumidity(); if (isnan(h)) snprintf(Humidchar,6,"%s\t"," ???"); else snprintf(Humidchar,6,"%2.2f\t",h); Serial.print(F(" ; DHT11 Temp.: ")); Serial.print(Tempchar); Serial.print(F(" ; Humid : ")); Serial.print(Humidchar); ValADC =analogRead(A0); // read the input pin A0 on Lolin Serial.print(F(" ; A0 : ")); Serial.print(ValADC); Serial.print(F(" , Consigne =")); Serial.println(Consignechar); server.handleClient(); u8g2.setFont(u8g2_font_7x14B_tf); u8g2.clearBuffer(); u8g2.drawStr(8,14,"AM2302 sensor"); u8g2.drawStr(8,28,"Humid:"); u8g2.setCursor(60, 28); u8g2.print(Humidchar); u8g2.drawStr(8,42,"Temp :"); u8g2.setCursor(60, 42); u8g2.print(Tempchar); u8g2.drawStr(8,56,"Cpt= "); snprintf(Tempchar,6,"%d",Compteur); u8g2.setCursor(50,56); u8g2.print(Tempchar); snprintf(Tempchar,6,"/%d",j); u8g2.setCursor(76,56); u8g2.print(Tempchar); u8g2.sendBuffer(); if (digitalRead(BP1)==HIGH) BP1_status="OFF"; else BP1_status="ON"; while ((millis() - lastTime) < timerDelay) { delay(100); } lastTime = millis(); // digitalWrite(LED_Bleue, LOW); // delay(1500); // digitalWrite(LED_Bleue, HIGH); delay(250); } /* * * 27/04/2024 .. OK 192.168.0.110 * 0/19 ; DHT11 Temp.: 21.70 ; Humid : 47.00 ; A0 : 16 , Consigne =00000 0/20 ; DHT11 Temp.: 21.60 ; Humid : 46.90 ; A0 : 9 , Consigne =00000 0/21 ; DHT11 Temp.: 21.70 ; Humid : 46.90 ; A0 : 16 , Consigne =00000 0/22 ; DHT11 Temp.: 21.60 ; Humid : 46.00 ; A0 : 16 , Consigne =00000 0/23 ; DHT11 Temp.: 21.60 ; Humid : 46.70 ; A0 : 16 , Consigne =00000 0/24 ; DHT11 Temp.: 21.70 ; Humid : 46.70 ; A0 : 9 , Consigne =00000 0/25 ; DHT11 Temp.: 21.60 ; Humid : 46.60 ; A0 : 9 , Consigne =00000 0/26 ; DHT11 Temp.: 21.70 ; Humid : 46.60 ; A0 : 16 , Consigne =00000 0/27 ; DHT11 Temp.: 21.70 ; Humid : 46.60 ; A0 : 16 , Consigne =00000 Led Bleue : 1 Led Verte : 0 1/28 ; DHT11 Temp.: 21.70 ; Humid : 46.60 ; A0 : 17 , Consigne =00000 Led Bleue : 1 Led Verte : 1 2/29 ; DHT11 Temp.: 21.70 ; Humid : 46.60 ; A0 : 9 , Consigne =00000 2/30 ; DHT11 Temp.: 21.60 ; Humid : 46.50 ; A0 : 16 , Consigne =00000 2/31 ; DHT11 Temp.: 21.70 ; Humid : 46.50 ; A0 : 16 , Consigne =00000 * avec Option compilation : Debug Serial Enabled * SDK:2.2.2-dev(38a443e)/Core:3.1.2=30102000/lwIP:STABLE-2_1_3_RELEASE/glue:1.2-65-g06164fb/BearSSL:b024386 MODULE : ESP8266_HW-341A BOARD : NodeMCU 1.0 (ESP_12E Module) nodemcuv2 ESP8266 NodeMCU with SSD1306 OLED included Test2_ESP8266_HW-341A_2024-0216 18-02-2024 version 2.23.15 installed D5=SDA=GPIO14,D6=SCL=GPIO12,I2C@=0x78,AM2302 sur D1=GPIO5 ESP getCoreVersion : 3.1.2 ESP getSdkVersion : 2.2.2-dev(38a443e) Init E/S A0 analog, Init E/S LED_Bleue 2 interne au module ESP LED_Verte =D3 LED at GPIO 0 LED_Rouge = D8 LED at GPIO 15 BP1 = D7 BP at GPIO 13 Test 3 leds DHT11 Temp : 19.80 Humid : 55.80 ; A0 : 16 Attend connection Wifi STAtion fpm close 3 mode : sta(08:f9:e0:75:5f:2b) add if0 .....scandone state: 0 -> 2 (b0) .state: 2 -> 3 (0) state: 3 -> 5 (10) add 0 aid 3 cnt .. connected with ON_AIR2024, channel 11 ip:192.168.0.110,mask:255.255.0.0,gw:192.168.0.254 ip:192.168.0.110,mask:255.255.0.0,gw:192.168.0.254 . Version :10.3.0 Connected to ON_AIR2024 IP address: 192.168.0.110 Default hostname: ESP-755F2B Connected, mac address: 08:F9:E0:75:5F:2B Gateway IP: 192.168.0.254 Subnet mask: 255.255.0.0 DNS #1, #2 IP: 212.27.40.241 , 212.27.40.240. HTTP server started 0/1 ; DHT11 Temp.: 19.90 ; Humid : 57.10 ; A0 : 9 , Consigne =00000 0/2 ; DHT11 Temp.: 19.90 ; Humid : 57.00 ; A0 : 9 , Consigne =00000 [String] ' 232 bytes) [String] ' 330 bytes) [String] ' 436 bytes) [String] '': Reallocating large String(436 -> 467 bytes) [String] '': Reallocating large String(467 -> 482 bytes) [String] ' 518 bytes) [String] ' 542 bytes) [String] ' 585 bytes) [String] ' 644 bytes) [String] ' 686 bytes) [String] ' 708 bytes) [String] ' 733 bytes) [String] ' Settings > Text] or increase the limit in [Terminal > Settings > Advanced].] 1/4 ; DHT11 Temp.: 19.90 ; Humid : 57.00 ; A0 : 9 , Consigne =00000 [String] ' 232 bytes) [String] ' 330 bytes) [String] ' 436 bytes) [String] '': Reallocating large String(436 -> 467 bytes) [String] '': Reallocating large String(467 -> 482 bytes) [String] ' 518 bytes) [String] ' 542 bytes) [String] ' 585 bytes) [String] ' 644 bytes) [String] ' 686 bytes) [String] ' 708 bytes) [String] ' 733 bytes) [String] ' Settings > Text] or increase the limit in [Terminal > Settings > Advanced].] Led Bleue : 1 Led Verte : 0 [String] ' 232 bytes) [String] ' 330 bytes) [String] ' 436 bytes) [String] '': Reallocating large String(436 -> 467 bytes) [String] '': Reallocating large String(467 -> 482 bytes) [String] ' 518 bytes) [String] ' 542 bytes) [String] ' 585 bytes) [String] ' 644 bytes) [String] ' 686 bytes) [String] ' 708 bytes) [String] ' 733 bytes) [String] ' Settings > Text] or increase the limit in [Terminal > Settings > Advanced].] Led Bleue : 0 Led Verte : 0 */