Sehr geehrte Community,
leider habe ich ein problem. Ich versuche in meinem Programm ein Char zu Integer umzuwandeln.
Als SMS sende ich hier z.B. 1234 und ich brauche die als ganze in einem Integer die Daten bekomme ich bei der Variable C. Leider Brauche ich diese als ganze damit ich Sie zerteilen kann und umformen kann für mein Display.
#include <GSM.h>
#include <Arduino.h>
#include <SPI.h>
#include <epa20.h>
#include <font_8x16.h>
#include <font_16x32nums.h>
#define PINNUMBER ""
epa20 EPA20;
GSM gsmAccess;
GSM_SMS sms;
char remoteNumber[20];
char c;
void setup() {
//Seriel initialisieren
Serial.begin(9600);
//Display Initialisieren
EPA20.initialize(10,0,0,0,9,8);
EPA20.clear();
//DEBUG
Serial.println("SMS Empfangssystem");
//NORMAL
EPA20.clear();
EPA20.string(33,54,font_8x16,"Empfangssystem",BLACK,WHITE);
EPA20.string(48,38,font_8x16,"Startet...",BLACK,WHITE);
EPA20.update();
//PIN CHECK
boolean notConnected = true;
while(notConnected)
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
//DEBUG
Serial.println("Nicht verbunden(SIM Karten Fehler/Falsche Pin");
//NORMAL
EPA20.clear();
EPA20.string(25,54,font_8x16,"SIM KARTEN ERROR",BLACK,WHITE);
EPA20.string(73,38,font_8x16,"ODER",BLACK,WHITE);
EPA20.string(25,20,font_8x16,"PIN NUMMER ERROR",BLACK,WHITE);
EPA20.update();
delay(3000);
//DEBUG
Serial.println("Gerät wurde ausgeschaltet");
//Normal
EPA20.clear();
EPA20.string(40,54,font_8x16,"SYSTEM WURDE",BLACK,WHITE);
EPA20.string(35,38,font_8x16,"AUSGESCHALTEN",BLACK,WHITE);
EPA20.update();
delay(999999999999999999999);
}
}
//DEBUG
Serial.println("GSM Initialisiert");
Serial.println("Warte auf SMS");
//Normal
EPA20.clear();
EPA20.string(20,38,font_8x16,"GSM Initialisiert",BLACK,WHITE);
EPA20.update();
delay(3000);
EPA20.clear();
EPA20.string(28,38,font_8x16,"Warte auf Daten",BLACK,WHITE);
EPA20.update();
}
void loop() {
if (sms.available())
{
Serial.println("Nachricht von:");
sms.remoteNumber(remoteNumber, 20);
Serial.println(remoteNumber);
if(sms.peek()=='#')
{
Serial.println("Discarded SMS");
sms.flush();
}
delay(100);
while(c=sms.read())
Serial.print(c);
Serial.println("Ende");
Serial.println("\nEnde der Nachricht");
sms.flush();
Serial.println("Nachricht gelöscht");
}
}
aktuell bekomme ich auch dies unter char im Seriellen raus nur die umformung zu einer integer bekomme ich noch nicht hin.
SMS Empfangssystem
GSM Initialisiert
Warte auf SMS
Nachricht von:
+49************
1234
Ende
Ende der Nachricht
Nachricht gelöscht
Würde mich freuen wenn einer mir helfen könnte