Sehr geehrte Community,
Ich habe zwei kleine Probleme bei mir die ich irgendwie schlecht beheben kann.
In meinem Projekt verwende ich einen Arduino Uno, GSM Shield und ein ePaper shield(EPA20-A Bibliothek sende ich mit da die so nicht existiert)
Bei meinem projekt versuche ich eine SMS auszulesen und auf dem Display anzuzeigen und das anderstrum auch ich sende eine SMS und will diese auf einen anderen Arduino mit den Gleichen Shield anzeigen lassen.
Hier mal der Sender die stellen wo ich bräuchte makiere ich dick und unterstrichen.
#include <GSM.h>
#include <Arduino.h>
#include <SPI.h>
#include <epa20.h>
#include <logo_ea.h>
#include <font_6x8.h>
#include <font_8x8.h>
#include <font_8x16.h>
#include <font_16x32nums.h>
// PIN Number
#define PINNUMBER ""
// Initialisiere Bibliotek
GSM gsmAccess;
GSM_SMS sms;
epa20 EPA20;
//Telefonnummer
char remoteNumber[20]= "";
char charbuffer[20];
void setup()
{
// initialisiere Seriele ausgabe
Serial.begin(9600);
EPA20.initialize(10,0,0,0,9,8);
EPA20.clear();
//DEBUG
Serial.println("SMS SenderSystem");
//NORMAL
EPA20.clear();
EPA20.string(43,54,font_8x16,"Sendesystem",BLACK,WHITE);
EPA20.string(50,38,font_8x16,"startet...",BLACK,WHITE);
EPA20.update();
// Verbindungsstatus
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(10000);
//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("Daten werden übertragen");
//Normal
EPA20.clear();
EPA20.string(20,38,font_8x16,"GSM Initialisiert",BLACK,WHITE);
EPA20.update();
delay(3000);
EPA20.clear();
EPA20.string(43,38,font_8x16,"Sende Daten",BLACK,WHITE);
EPA20.update();
}
void loop()
{
int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
Serial.print("Sende Nachricht an:");
Serial.println(remoteNumber);
//DEBUG
Serial.println("Sende");
Serial.println();
Serial.println("Nachricht:");
Serial.println(voltage);
Serial.println("V");
//NORMAL
EPA20.clear();
EPA20.string(40,22,font_8x16,voltage,BLACK,WHITE);
EPA20.string(110,22,font_8x16,"V",BLACK,WHITE);
EPA20.update();
/* send the message
sms.beginSMS(remoteNumber);
sms.print(ausgabe);
sms.endSMS();
Serial.println("\nCOMPLETE!\n");
delay(3000);*/
}
Hier der Empfänger
#include <GSM.h>
#include <Arduino.h>
#include <SPI.h>
#include <epa20.h>
#include <font_6x8.h>
#include <font_8x8.h>
#include <font_8x16.h>
#include <font_16x32nums.h>
// PIN Nummer
#define PINNUMBER ""
GSM gsm;
epa20 EPA20;
GSM gsmAccess;
GSM_SMS sms;
char remoteNumber[20];
void setup()
{
// initialisiere Serielen Monitor DEBUG
Serial.begin(9600);
// initialisiere ePaper
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();
// Verbindungsstatus
boolean notConnected = true;
// Starte GSM Shield
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(10000);
//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()
{
char c;
// If there are any SMSs available()
if (sms.available())
{
//DEBUG
Serial.println("Nachricht erhalten von:");
// Get remote number
sms.remoteNumber(remoteNumber, 20);
Serial.println(remoteNumber);
// This is just an example of message disposal
// Messages starting with # should be discarded
if(sms.peek()=='#')
{
Serial.println("Discarded SMS");
sms.flush();
}
// Read message bytes and print them
while(c=sms.read())
//DEBUG
Serial.print(c);
//NORMAL
EPA20.clear();
EPA20.string(0,0,font_8x16,c,BLACK,WHITE);
EPA20.update();
}
Serial.println("\nEND OF MESSAGE");
// delete message from modem memory
sms.flush();
Serial.println("Nachricht gelöscht");
}
delay(1000);
}
Zur erklärung
EPA20.clear(); // ist zum löschen des Displays
EPA20.string(0,0,font_8x16,"",BLACK,WHITE); //(x-Koordinate,y-Koordinate,Schriftart,const char *str,Farbe text, Farbe hintergrund)
EPA20.update(); //aktuallisierung des Displays
Hier ist leider das problem das ich beim empfangen ein á ganze zeit auf dem display rausbekomme
und beim senden hab ich das problem das float hier nicht akzeptiert wird ich müsste dies in char oder in ein int umwandeln korrekt
Würde mich freuen wenn einer eine lösung wüsste.
mit freundlichen grüßen
Ray