powerdown not helped.
void loop()
{
if(loopCount < 30)
{
// if loopCount is less than 30, just delay a second
delay(1000);
}
else
{
// every thirty seconds this runs
loopCount = 0;
// Modify next line to load different page
// or pass values to server
//get temperatures
Serial.print("Getting temperatures...\n\r");
sensors.requestTemperatures(); //issue global request for each temp sensor on network to return a temp
if(sensors.getAddress(tempDeviceAddress, 0))
temp0=(sensors.getTempC(tempDeviceAddress)); //read temp from sensor 0
if(sensors.getAddress(tempDeviceAddress, 1))
temp1=(sensors.getTempC(tempDeviceAddress)); //read temp from sensor 1
if(sensors.getAddress(tempDeviceAddress, 2))
temp2=(sensors.getTempC(tempDeviceAddress)); //read temp from sensor 2
Serial.print("Temperatures are ");
Serial.print(temp0);
Serial.print(" Celsius, ");
Serial.print(temp1);
Serial.print(" Celsius, ");
Serial.print(temp2);
Serial.print(" Celsius, ");
Serial.print("\n\r");
sprintf(pageAdd,"/update?key=XXXXXXXXXXXXXXXXXXXX&field1=%u&field2=%u&field3=%u",temp0,temp1,temp2);
// sprintf(pageAdd,"/",totalCount);
// sprintf(pageAdd,"/arduino.php?test=%u",totalCount);
if(!getPage(server,pageAdd)) Serial.print("Fail ");
else Serial.print("Pass ");
if(!logFile(temp0,temp1,temp2)) Serial.println("Log failed");
else Serial.println("Log ok");
totalCount++;
Serial.println(totalCount,DEC);
}
loopCount++;
}
int logFile(int temp0, int temp1, int temp2) {
File fh = SD.open("test.txt",FILE_WRITE);
if(!fh) {
Serial.println("Open fail");
return 0;
}
// Use the same character array here to send stuff to the file.
// pageAdd array is global
sprintf(pageAdd,"Field1=%u Field2=%u Field3=%u",temp0,temp1,temp2);
fh.println(pageAdd);
fh.close();
return 1;
}
byte getPage(IPAddress ipBuf,char *page)
{
int inChar;
char outBuf[128];
Serial.print("connecting...");
if(client.connect(ipBuf,80))
{
Serial.println("connected");
sprintf(outBuf,"GET %s HTTP/1.0\r\n\r\n",page);
client.write(outBuf);
}
else
{
Serial.println("failed");
return 0;
}
// connectLoop controls the hardware fail timeout
int connectLoop = 0;
while(client.connected())
{
while(client.available())
{
inChar = client.read();
Serial.write(inChar);
// set connectLoop to zero if a packet arrives
connectLoop = 0;
}
connectLoop++;
// if more than 10000 milliseconds since the last packet
if(connectLoop > 10000)
{
// then close the connection from this end.
Serial.println();
Serial.println("Timeout");
client.stop();
}
// this is a delay for the connectLoop timing
delay(1);
}
Serial.println();
Serial.println("disconnecting.");
// close client end
client.stop();
return 1;
}
UPDATE: strange...without the logfile modification, it is not connecting...that was working fine before...maybe thingspeak issue...