Closed Tipmanfrank closed 1 year ago
This is maybe not directly related to Autoconnect but I hope you can help anyway. I use AutoConnect to connect to internet. I set up NTP time for Copenhagen. I want to get information from homepage you can see from the Serial Monitor below.
Code: #include
// Replace with WiFi.h for ESP32 #include // Replace with WebServer.h for ESP32 #include // For AutoConnect Wifi #include // For NTP time //for display #include
#include #include //DISPLAY #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 32 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) // The pins for I2C are defined by the Wire-library. // On an arduino UNO: A4(SDA), A5(SCL) // On an arduino MEGA 2560: 20(SDA), 21(SCL) // On an arduino LEONARDO: 2(SDA), 3(SCL), ... #define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin) #define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int x,minX; IPAddress ip;
//AUTOCONNECT WebServer Server; // Replace with WebServer for ESP32 AutoConnect Portal(Server); AutoConnectConfig Config;
//Webside fra ESP void rootPage() { char content[] = "Kapsejlads.nu - HORN"; Server.send(200, "text/plain", content); }
//SKRIV NTP TID void printLocalTime(){ struct tm timeinfo; //skriv tiden til timeinfo som tidskode if(!getLocalTime(&timeinfo)){ //kontroller om tid er modtaget Serial.println("Failed to obtain time"); return; } Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); //skriv tid til monitor }
//SÆT TIDSZONE void setTimezone(String timezone){ Serial.printf(" Setting Timezone to %s\n",timezone.c_str()); //skriv til monitor setenv("TZ",timezone.c_str(),1); // Now adjust the TZ. Clock settings are adjusted to show the new local time. Indstil til CPH tzset(); //indstil tidszonen }
//HENT NTP TID void initTime(String timezone){ struct tm timeinfo; //skriv tiden til timeinfo
Serial.println("Setting up time"); configTime(0, 0, "europe.pool.ntp.org"); // First connect to NTP server, with 0 TZ offset. Ingen tidszone eller sommertidskorrektion if(!getLocalTime(&timeinfo)){ //hvis NTP ikke kan hentes Serial.println(" Failed to obtain time"); return; } Serial.println(" Got the time from NTP"); //NTP tid er hentet // Now we can set the real timezone setTimezone(timezone); //sæt tidszonen og dermed evt. sommertid }
void setup() { //DISPLAY // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); //delay(2000); // Pause for 2 seconds display.setTextSize(1); //font størrelse display.setTextColor(WHITE); //skrift farve display.setTextWrap(false); //skift ikke linje display.clearDisplay(); //ryd display display.setCursor(0, 10); //start position display.print("Kapsejlads.nu"); //sæt tekst display.setCursor(0, 20); //ny position display.print("by Frank Larsen"); //sæt tekst display.display(); //skriv til display x=display.width(); //sæt x = display bredde.
//AUTOCONNECT Serial.begin(115200); Serial.println(); Config.apid = "Kapsejlads-horn"; Config.psk = "Kapsejlads.nu"; Portal.config(Config);
//FORBIND WIFI Server.on("/", rootPage); if (Portal.begin()) { Serial.println("WiFi connected: " + WiFi.localIP().toString()); }
//hent NTP tid delay(500); //vent 0,5 s, så wifi er klar initTime("CET-1CEST,M3.5.0,M10.5.0/3"); //hent tid for københavn, https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
//hent klub navn String serverName = "https://kapsejlads.nu/hide-horn-esp.php"; if(WiFi.status()== WL_CONNECTED){ WiFiClient client; HTTPClient http;
String serverPath = serverName + "?klubid=13"; Serial.println(serverPath); // Your Domain name with URL path or IP address with path http.begin(client, serverPath.c_str()); // If you need Node-RED/server authentication, insert user and password below //http.setAuthorization("REPLACE_WITH_SERVER_USERNAME", "REPLACE_WITH_SERVER_PASSWORD"); // Send HTTP GET request int httpResponseCode = http.GET(); if (httpResponseCode>0) { Serial.print("HTTP Response code: "); Serial.println(httpResponseCode); String payload = http.getString(); Serial.println(payload); } else { Serial.print("Error code: "); Serial.println(httpResponseCode); } // Free resources http.end(); } else { Serial.println("WiFi Disconnected"); }
}
void loop() { Portal.handleClient();
//Hent lokal NTP fra ESP struct tm timeinfo; getLocalTime(&timeinfo);
//vis rulletekst char message[]="Dette er min tekst"; //minX=-12_strlen(message); minX=-12_25; //12 karakter i disp med denne font, 25 karakter tekst at vise display.setTextSize(2); display.clearDisplay(); display.setCursor(x,10); display.print(WiFi.localIP().toString()+" - "); //viser IP i display display.print(&timeinfo, "%H:%M:%S"); //viser tiden bagefter i display //display.print(message); //viser tekst i display display.display(); //skriv til display x=x-1; if(x<minX)x=display.width(); //Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); //skriv tid til monitor
}
The homepage returns "Demo klub".
Serial Monitor returns: WiFi connected: 192.168.1.118 Setting up time Got the time from NTP Setting Timezone to CET-1CEST,M3.5.0,M10.5.0/3 https://kapsejlads.nu/hide-horn-esp.php?klubid=13 Error code: -5
I have an "Error code -5". What does this mean? Can you see what I have done wrong?
Code on this page works: https://randomnerdtutorials.com/esp32-http-get-post-arduino/
So I need to change something in the code to make it work with Autoconnect. Hope that you plz can help a novice.
This is maybe not directly related to Autoconnect but I hope you can help anyway. I use AutoConnect to connect to internet. I set up NTP time for Copenhagen. I want to get information from homepage you can see from the Serial Monitor below.
Code: `
include // Replace with WiFi.h for ESP32
include // Replace with WebServer.h for ESP32
include // For AutoConnect Wifi
include // For NTP time
//for display
include
include
include
//DISPLAY
define SCREEN_WIDTH 128 // OLED display width, in pixels
define SCREEN_HEIGHT 32 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) // The pins for I2C are defined by the Wire-library. // On an arduino UNO: A4(SDA), A5(SCL) // On an arduino MEGA 2560: 20(SDA), 21(SCL) // On an arduino LEONARDO: 2(SDA), 3(SCL), ...
define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int x,minX; IPAddress ip;
//AUTOCONNECT WebServer Server; // Replace with WebServer for ESP32 AutoConnect Portal(Server); AutoConnectConfig Config;
//Webside fra ESP void rootPage() { char content[] = "Kapsejlads.nu - HORN"; Server.send(200, "text/plain", content); }
//SKRIV NTP TID void printLocalTime(){ struct tm timeinfo; //skriv tiden til timeinfo som tidskode if(!getLocalTime(&timeinfo)){ //kontroller om tid er modtaget Serial.println("Failed to obtain time"); return; } Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); //skriv tid til monitor }
//SÆT TIDSZONE void setTimezone(String timezone){ Serial.printf(" Setting Timezone to %s\n",timezone.c_str()); //skriv til monitor setenv("TZ",timezone.c_str(),1); // Now adjust the TZ. Clock settings are adjusted to show the new local time. Indstil til CPH tzset(); //indstil tidszonen }
//HENT NTP TID void initTime(String timezone){ struct tm timeinfo; //skriv tiden til timeinfo
Serial.println("Setting up time"); configTime(0, 0, "europe.pool.ntp.org"); // First connect to NTP server, with 0 TZ offset. Ingen tidszone eller sommertidskorrektion if(!getLocalTime(&timeinfo)){ //hvis NTP ikke kan hentes Serial.println(" Failed to obtain time"); return; } Serial.println(" Got the time from NTP"); //NTP tid er hentet // Now we can set the real timezone setTimezone(timezone); //sæt tidszonen og dermed evt. sommertid }
void setup() { //DISPLAY
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); //delay(2000); // Pause for 2 seconds display.setTextSize(1); //font størrelse display.setTextColor(WHITE); //skrift farve display.setTextWrap(false); //skift ikke linje display.clearDisplay(); //ryd display display.setCursor(0, 10); //start position display.print("Kapsejlads.nu"); //sæt tekst display.setCursor(0, 20); //ny position display.print("by Frank Larsen"); //sæt tekst display.display(); //skriv til display x=display.width(); //sæt x = display bredde.
//AUTOCONNECT Serial.begin(115200); Serial.println(); Config.apid = "Kapsejlads-horn"; Config.psk = "Kapsejlads.nu"; Portal.config(Config);
//FORBIND WIFI
Server.on("/", rootPage); if (Portal.begin()) { Serial.println("WiFi connected: " + WiFi.localIP().toString()); }
//hent NTP tid
delay(500); //vent 0,5 s, så wifi er klar initTime("CET-1CEST,M3.5.0,M10.5.0/3"); //hent tid for københavn, https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv
//hent klub navn String serverName = "https://kapsejlads.nu/hide-horn-esp.php"; if(WiFi.status()== WL_CONNECTED){ WiFiClient client; HTTPClient http;
}
void loop() { Portal.handleClient();
//Hent lokal NTP fra ESP struct tm timeinfo; getLocalTime(&timeinfo);
//vis rulletekst char message[]="Dette er min tekst"; //minX=-12strlen(message); minX=-1225; //12 karakter i disp med denne font, 25 karakter tekst at vise display.setTextSize(2); display.clearDisplay(); display.setCursor(x,10); display.print(WiFi.localIP().toString()+" - "); //viser IP i display display.print(&timeinfo, "%H:%M:%S"); //viser tiden bagefter i display //display.print(message); //viser tekst i display display.display(); //skriv til display x=x-1; if(x<minX)x=display.width(); //Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S"); //skriv tid til monitor
} `
The homepage returns "Demo klub".
Serial Monitor returns: WiFi connected: 192.168.1.118 Setting up time Got the time from NTP Setting Timezone to CET-1CEST,M3.5.0,M10.5.0/3 https://kapsejlads.nu/hide-horn-esp.php?klubid=13 Error code: -5
I have an "Error code -5". What does this mean? Can you see what I have done wrong?