(ESP8266) I keep getting this invalid 'const char*' to 'char' [-fpermissive]

Hey guys,

Do a simple school project and when verifying the code first in the Arduino IDE first I keep getting 'const char*' to 'char' [-fpermissive] and it only highlights one line of code. I've tried various ways to change it but no luck. I'm using the Feather Huzzah Esp8266 and the code allows me to log on to my wifi using a simple UI created in HTML. I also have my correct WIFI and Password with in the Arduino code. I've also provided screenshots.

HERE IS THE OVER ALL CODE :
#include <WiFi.h>
#include <Servo.h>

Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards

// GPIO the servo is attached to
static const int servoPin = 2;

// Replace with your network credentials
const char* ssid = "Banderneet";
const char* password = "steveyzerman";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;

// Decode HTTP GET value
String valueString = String(5);
int pos1 = 0;
int pos2 = 0;

// Current time
unsigned long currentTime = millis();
// Previous time
unsigned long previousTime = 0;
// Define timeout time in milliseconds (example: 2000ms = 2s)
const long timeoutTime = 2000;

void setup() {
Serial.begin(115200);

myservo.attach(servoPin); // attaches the servo on the servoPin to the servo object

// Connect to Wi-Fi network with SSID and password
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}

void loop(){
WiFiClient client = server.available(); // Listen for incoming clients

if (client) { // If a new client connects,
currentTime = millis();
previousTime = currentTime;
Serial.println("New Client."); // print a message out in the serial port
String currentLine = ""; // make a String to hold incoming data from the client
while (client.connected() && currentTime - previousTime <= timeoutTime) { // loop while the client's connected
currentTime = millis();
if (client.available()) { // if there's bytes to read from the client,
char c = client.read(); // read a byte, then
Serial.write(c); // print it out the serial monitor
header += c;
if (c == '\n') { // if the byte is a newline character
// if the current line is blank, you got two newline characters in a row.
// that's the end of the client HTTP request, so send a response:
if (currentLine.length() == 0) {
// HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
// and a content-type so the client knows what's coming, then a blank line:
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();

// Display the HTML web page
client.println("");
client.println("<meta name="viewport" content="width=device-width, initial-scale=1">");
client.println("<link rel="icon" href="data:,">");
// CSS to style the on/off buttons
// Feel free to change the background-color and font-size attributes to fit your preferences
client.println("body { text-align: center; font-family: "Trebuchet MS", Arial; margin-left:auto; margin-right:auto;}");
client.println(".slider { width: 300px; }");
client.println("<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js\"></script>");

// Web Page
client.println("

ESP32 with Servo

");
client.println("

Position: <span id="servoPos">

");
client.println("<input type="range" min="0" max="180" class="slider" id="servoSlider" onchange="servo(this.value)" value=""+valueString+""/>");

client.println("");

client.println("");

//GET /?value=180& HTTP/1.1
if(header.indexOf("GET /?value=")>=0) {
pos1 = header.indexOf('=');
pos2 = header.indexOf('&');
valueString = header.substring(pos1+1, pos2);

//Rotate the servo
myservo.write(valueString.toInt());
Serial.println(valueString);
}
// The HTTP response ends with another blank line
client.println();
// Break out of the while loop
break;
} else { // if you got a newline, then clear currentLine
currentLine = "";
}
} else if (c != '\r') { // if you got anything else but a carriage return character,
currentLine += c; // add it to the end of the currentLine
}
}
}
// Clear the header variable
header = "";
// Close the connection
client.stop();
Serial.println("Client disconnected.");
Serial.println("");
}
}


Someone help me please need it done for a school assignment.

Screen Shot 2021-03-07 at 1.18.36 AM.png

Screen Shot 2021-03-07 at 1.18.36 AM.png

Remove the const from the declaration of ssid and password

I would recommend you use the WiFi library specific for the esp8266. It uses the const char * declaration for the ssid and password.

I do not know if there are any other differences between the WiFi library from the avr core designed for the wifi shield, and the one from the esp8266 core, but I can't see any reason not to use the esp8266 library with an 8266 board.

//#include <WiFi.h>
#include <ESP8266WiFi.h>

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.