Arduino "invalid conversion from 'const char*' to 'char' [-fpermissive]" hatası.

Silicone Android Uygulaması

445

Gold Sample
Katılım
1 May 2021
Mesajlar
993
Çözümler
5
İfade skoru
2.555
Merhaba. Başlıktaki hatayı alıp dururyorum.
#include <WiFi.h> #include <PubSubClient.h> const char* ssid = "inotest"; const char* password = "onaltisifirbyz"; const char* mqttServer = "mymqtt"; const int mqttPort = 8883; const char* mqttUser = "user"; const char* mqttPassword = "pswd"; String mesaj = ""; WiFiClient espClient; PubSubClient client(espClient); void setup(){ Serial.begin(115200);//seri port başlatma WiFi.begin(ssid, password);//wifiye bağlanma //wifi bağlantısı burda raporlanıyor while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.println("WİFİ AĞINA BAĞLANIYOR"); } Serial.println("Wifi ağına bağlanıldı");//wifiye bağlanıldığı zaman rapor client.setServer(mqttServer, mqttPort);//mqtt sunucusuna bağlanma client.setCallback(callback); while (!client.connected()) { Serial.println("MQTT Sunucusuna Bağlanıyor..."); if (client.connect("getirbot1", mqttUser, mqttPassword )) { Serial.println("MQTT Sunucusuna bağlanıldı!"); } else { Serial.print("Bağlantı Başarısız Oldu. "); Serial.print(client.state()); delay(2000); } } client.publish("espdenpcye", "Hello from ESP32"); client.subscribe("pcdenespye"); } void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Mesaj esp'ye ulaştı ["); Serial.print(topic); Serial.print("] "); for (int i = 0; i < length; i++) { Serial.print((char)payload[i]); mesaj += (char)payload[i]; } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("MQTT Bağlantısı koptu.Yeniden deneniyor..."); // Attempt to connect if (client.connect("espClient")) { Serial.println("Bağlandı.."); // Once connected, publish an announcement... client.publish("espdenpcye", "hello world"); // ... and resubscribe client.subscribe("pcdenespye"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Wait 5 seconds before retrying delay(5000); } } }

Ne yapmam lazım? @BABER @MisakiTaro
 
KS
4

445

Gold Sample
Katılım
1 May 2021
Mesajlar
993
Çözümler
5
İfade skoru
2.555
Rich (BB kodu):
C:\Users\furuk\OneDrive\Masaüstü\sketch_jul11a\sketch_jul11a.ino: In function 'void setup()':
sketch_jul11a:16:28: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
In file included from C:\Users\furuk\OneDrive\Masaüstü\sketch_jul11a\sketch_jul11a.ino:1:0:
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.49.0_x86__mdqgnx93n4wtt\libraries\WiFi\src/WiFi.h:79:9: note:   initializing argument 1 of 'int WiFiClass::begin(char*, const char*)'
     int begin(char* ssid, const char *passphrase);
         ^
C:\Users\furuk\OneDrive\Masaüstü\sketch_jul11a\sketch_jul11a.ino: In function 'void callback(char*, byte*, unsigned int)':
sketch_jul11a:56:18: error: a function-definition is not allowed here before '{' token
sketch_jul11a:75:1: error: expected '}' at end of input
"WiFi.h" için birden fazla library bulundu
Kullanılıyor: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.49.0_x86__mdqgnx93n4wtt\libraries\WiFi
Kullanılmıyor: E:\gelg\ArduinoData\packages\deneyap\hardware\esp32\1.0.1\libraries\08_WiFi
Şu dizinde 1.2.7 sürümündeki WiFi kütüphanesi kullanılıyor: C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.49.0_x86__mdqgnx93n4wtt\libraries\WiFi
Şu dizinde 2.8 sürümündeki pubsubclient-master kütüphanesi kullanılıyor: E:\gelg\Arduino\libraries\pubsubclient-master
Şu dizinde 1.0 sürümündeki 06_SPI kütüphanesi kullanılıyor: E:\gelg\ArduinoData\packages\deneyap\hardware\esp32\1.0.1\libraries\06_SPI
exit status 1
invalid conversion from 'const char*' to 'char*' [-fpermissive]

Hata mesajının tamamını atar mısınız?
 
Son düzenleme: Moderatör:

TerabyteForever

Rütbesiz
Katılım
19 Nis 2021
Mesajlar
72
İfade skoru
395
WiFi.begin(ssid, password); yerine WiFi.begin((char*)ssid, password); yazabilirsin, veya "ssid" değişkeninin başındaki "const" ifadesiin kaldırabilirsin. Hatta strdup() kullanarak da yapabilirsin, çünkü direkt olarak çevirme yapınca tanımlanmamış bir davranış ortaya çıkabiliyor (her ne kadar ihtimali az olsa bile).

WiFi.begin(strdup(ssid), password);//wifiye bağlanma

Senden const char* istemiyor o fonksiyonda, char* istiyor. Sanırım oynamalar yapacak.
 

Bu içeriği görüntüleyen kullanıcılar

Silicone Makale

Yeni konular

Silicone YouTube

Top