I have this code:
#include <Time.h>
#include <TimeLib.h>
#include <SoftwareSerial.h>
#include <TimeAlarms.h>
#include <dht.h>
dht DHT;
#define DHT11_PIN 5
SoftwareSerial sim900(9,10);
int smsSampleCount=0; //how many samples i want in the array
typedef struct {
int timeStamp;
double tempSample;
double humSample;
} samplePoint;
samplePoint finalDataArray[10];
void setup(){
Serial.begin(9600);
Alarm.timerRepeat(21600, MainAlarm); //Every 6 hours alarm fires
}
void loop(){
Alarm.delay(10); // wait one second between clock display
}
void MainAlarm(){
Serial.println("Main Alarm...");
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
double temp = DHT.temperature;
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
double hum = DHT.humidity;
Serial.println(DHT.humidity);
//Check every 6 hours, if smsSampleCount reached 8, store it...
if (smsSampleCount<8) {
finalDataArray[smsSampleCount].timeStamp = smsSampleCount;
finalDataArray[smsSampleCount].tempSample = temp;
finalDataArray[smsSampleCount].humSample = hum;
smsSampleCount++;
} else { // else reset counter and send data.
smsSampleCount=0;
sendData();
}
}
void sendData(){
//Setup local vars for temp/hum strings
static char outTempStr[15];
static char outHumStr[15];
static String finalString;
for (int i=0; i<sizeof(finalDataArray)-1;i++){
String tempString = dtostrf(finalDataArray[i].tempSample,5,2,outTempStr);
String humString = dtostrf(finalDataArray[i].humSample,5,2,outHumStr);
finalString = finalString+":"+tempString+"/"+humString+"-";
}
//Actually send data
delay(5000);
sim900.print("\r");
delay(1000);
sim900.print("AT+CMGF=1\r"); //text mode
delay(1000);
sim900.print("AT+CMGS=\"+mynumber\"\r");
delay(1000);
sim900.print(finalString + "\r"); //The text for the message
Serial.println("sent!");
delay(1000);
sim900.write(0x1a); //Equivalent to sending Ctrl+Z
sim900.println(char(26));
Serial.println("done!!");
}
and Im getting this warning (why?):
/Users/quique123/Documents/Arduino/TempMonitorGPRSw_oLibrary/TempMonitorGPRSw_oLibrary.ino: In function 'sendData()':
/Users/quique123/Documents/Arduino/TempMonitorGPRSw_oLibrary/TempMonitorGPRSw_oLibrary.ino:63:76: warning: iteration 10 invokes undefined behavior [-Waggressive-loop-optimizations]
String tempString = dtostrf(finalDataArray[i].tempSample,5,2,outTempStr);
^
/Users/quique123/Documents/Arduino/TempMonitorGPRSw_oLibrary/TempMonitorGPRSw_oLibrary.ino:62:3: note: containing loop
for (int i=0; i<sizeof(finalDataArray)-1;i++){
^
/Users/quique123/Documents/Arduino/TempMonitorGPRSw_oLibrary/TempMonitorGPRSw_oLibrary.ino: In function 'MainAlarm':
/Users/quique123/Documents/Arduino/TempMonitorGPRSw_oLibrary/TempMonitorGPRSw_oLibrary.ino:63:76: warning: iteration 10 invokes undefined behavior [-Waggressive-loop-optimizations]
String tempString = dtostrf(finalDataArray[i].tempSample,5,2,outTempStr);
^
/Users/quique123/Documents/Arduino/TempMonitorGPRSw_oLibrary/TempMonitorGPRSw_oLibrary.ino:62:3: note: containing loop
for (int i=0; i<sizeof(finalDataArray)-1;i++){
^