?
Aus einem anderen Forum wurde ich auf den internen Speicher hingewiesen...
Durch Reduzierung des Codes auf
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9);
String inData = "";
char last;
#include <DHT.h>
#include <SD.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht1 (DHTPIN, DHTTYPE);
#include <SPI.h>
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
const int chipSelect = 4;
const int analogInPin = A0;
int sensorValue = 0;
int sent = 0;
void setup()
{
Wire.begin();
RTC.begin();
Serial.begin(9600);
Serial.println("Starte...");
mySerial.begin(9600);
mySerial.println("AT");
pinMode(10, OUTPUT);
if (!SD.begin(chipSelect))
{
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
Serial.println("");
delay(1000);
}
void loop()
{
while (Serial.available() > 0)
{
char recieved = Serial.read();
inData += recieved;
if (recieved == '\n')
{
Serial.print("Arduino Received: ");
Serial.print(inData);
}
}
DateTime now = RTC.now();
String dataString = "";
sensorValue = analogRead(analogInPin);
float h = dht1.readHumidity();
float t = dht1.readTemperature();
if (isnan(t) || isnan(h))
{
Serial.println ("Fehler - Lesen von Luftfeuchte bzw. Temperatur");
Serial.print("Gaswert ist: ");
Serial.print(sensorValue);
Serial.println(" ppm");
Serial.println("");
}
if (inData == "a")
{
Serial.print("Feuchte: ");
Serial.print(h);
Serial.println(" % ");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.println(" C");
Serial.print("Gaswert ist: ");
Serial.print(sensorValue);
Serial.println(".00 ppm");
Serial.println("");
delay(1000);
}
if (last != now.minute())
{
byte a = h;
byte b = t;
byte c = sensorValue;
dataString += String(a);
dataString += ",";
dataString += String(b);
dataString += ",";
dataString += String(c);
dataString += ",";
dataString += String(now.day(), DEC);
dataString += ".";
dataString += String(now.month(), DEC);
dataString += ",";
dataString += String(now.hour(), DEC);
dataString += ":";
dataString += String(now.minute(), DEC);
dataString += ";";
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile)
{
dataFile.println(dataString);
dataFile.close();
Serial.println(dataString);
Serial.println("Gespeichert - SD: 'datalog.txt'");
}
else
{
Serial.println("Fehler - Lesen von SD: 'datalog.txt'");
}
last = now.minute();
Serial.println("");
}
if (sent == 0)
{
if ((sensorValue > 80) || (t > 60) || (h > 80) || (inData == "t"))
{
mySerial.print("AT+CMGF=1\r");
delay(100);
mySerial.println("AT+CMGS=\"xxxxx\"");
delay(100);
mySerial.println("ALARM!");
mySerial.print("Temp: ");
mySerial.print(t);
mySerial.println(" C");
mySerial.print("Feuchte: ");
mySerial.print(h);
mySerial.println(" %");
mySerial.print("Gas: ");
mySerial.print(sensorValue);
mySerial.println(".00 ppm");
delay(100);
mySerial.println((char)26);
delay(100);
Serial.println("SMS an xxxxx versendet");
Serial.println("");
sent = 1;
}
}
dataString="";
inData = "";
delay(100);
}
wurde das problem gelöst, danke trotzdem für jeden gehirnschmalz der geflossen ist