Hallo Community,
hoffe ihr könnt mir helfen.
Lerne mich gerade in die Nutzung vom EEPROM des NodeMCU (Arduino) ein.
Es geht mir um das abspeichern von einer IP einer Subnetzmaske und einer SSID.
Leider bekomme ich bei der Textausgabe am Ende immer ein zusätzliches Char ‚@‘ ausgegeben. Das bekomme ich nicht weg. Vielleicht könnt ihr mir sagen woran das liegt.
Viele Grüße kleiner_kaktus
Die Textausgabe:
192.168.001.111@
Mein Quellcode:
//+++++++++++++++++++++++++++++++++++++++++++++++++++ Libraries +++++++++++++++++++++++++++++++++++++++++++++++++++
#include <EEPROM.h>
//+++++++++++++++++++++++++++++++++++++++++++++ Variablendeklaration ++++++++++++++++++++++++++++++++++++++++++++++
String sSSID = "WLAN";
int iSSID_length = 50;
String sIP = "192.168.001.111";
String sSNM = "255.255.255.000";
//+++++++++++++++++++++++++++++++++++++++++++++++++++++ SETUP +++++++++++++++++++++++++++++++++++++++++++++++++++++
void setup() {
Serial.begin(115200);
EEPROM.begin(4096);
EEPROM_writeIP(sIP);
Serial.println();
Serial.println(EEPROM_readIP());
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++ LOOP ++++++++++++++++++++++++++++++++++++++++++++++++++++++
void loop() {
}
//---------------------------------------- Function: Write SSID to EEPROM -----------------------------------------
void EEPROM_writeSSID(String sSSID){
char CharSSID[50];
sSSID.toCharArray(CharSSID, 50);
for (int i = 17; i<(sSSID.length()+17); i++) {
EEPROM.write(i,CharSSID[i-17]);
}
}
//---------------------------------------- Function: Read SSID to EEPROM ------------------------------------------
String EEPROM_readSSID() {
char CharSSID[50];
String sSSID;
for (int i = 17; i<(sSSID.length()+17); i++) {
CharSSID[i-17] = EEPROM.read(i);
}
sSSID = String(CharSSID);
}
//----------------------------------------- Function: Write IP to EEPROM ------------------------------------------
void EEPROM_writeIP(String StringIP) {
char CharIP[16];
StringIP.toCharArray(CharIP,16);
EEPROM.write(0,CharIP[0]);
EEPROM.write(1,CharIP[1]);
EEPROM.write(2,CharIP[2]);
EEPROM.write(3,CharIP[4]);
EEPROM.write(4,CharIP[5]);
EEPROM.write(5,CharIP[6]);
EEPROM.write(6,CharIP[8]);
EEPROM.write(7,CharIP[9]);
EEPROM.write(8,CharIP[10]);
EEPROM.write(9,CharIP[12]);
EEPROM.write(10,CharIP[13]);
EEPROM.write(11,CharIP[14]);
}
//---------------------------------------- Function: Read IP from EEPROM -----------------------------------------
String EEPROM_readIP() {
String ip;
char CharIP[15];
CharIP[0] = EEPROM.read(0);
CharIP[1] = EEPROM.read(1);
CharIP[2] = EEPROM.read(2);
CharIP[3] = '.';
CharIP[4] = EEPROM.read(3);
CharIP[5] = EEPROM.read(4);
CharIP[6] = EEPROM.read(5);
CharIP[7] = '.';
CharIP[8] = EEPROM.read(6);
CharIP[9] = EEPROM.read(7);
CharIP[10] = EEPROM.read(8);
CharIP[11] = '.';
CharIP[12] = EEPROM.read(9);
CharIP[13] = EEPROM.read(10);
CharIP[14] = EEPROM.read(11);
ip = String(CharIP);
return ip;
}