Connected arduino with thingspeak (simple)


hello, name arief. indonesia. have project , having trouble uploading data thingspeak via w5100 ethernet.

i not make ip static connect thingspeak. thingspeak managed display data. after 3 minutes, thingspeak not display data. procedure wrong?

i have code :

#include <spi.h>
#include <ethernet.h>

int pin = 0; // analog pin
int tempc = 0,tempf=0; // temperature variables
int samples[8]; // variables make better precision
int maxi = -100,mini = 100; // start max/min temperature
int i;

// local network settings
byte mac[]     = { 0xd4, 0xa8, 0xe2, 0xfe, 0xa0, 0xa1 }; // must unique on local network
byte ip[]      = { 192,168,0,230 };                // must unique on local network
byte gateway[] = { 192,168,0,1};
byte subnet[]  = { 255, 255, 255, 0 };

// thingspeak settings
char thingspeakaddress[] = "api.thingspeak.com";
string writeapikey = "c09ircihkmpf19hp";    // write api key thingspeak channel
const int updateinterval = 10000;        // time interval in milliseconds update thingspeak   

// variable setup
long lastconnectiontime = 0;
boolean lastconnected = false;
int failedcounter = 0;

// initialize arduino ethernet client
ethernetclient client;

void setup()
{

  serial.begin(9600);
  ethernet.begin(mac, ip, gateway, subnet);
  delay(1000);
  serial.print("ethernet shield ip  is     : ");
  serial.println(ethernet.localip());
   // start ethernet on arduino
  startethernet();
}

void loop()
{
 
  tempc = ( 5.0 * analogread(pin) * 100.0) / 1024.0;

  string analogpin0 = string(tempc);
 
  // print update response serial monitor
  if (client.available())
  {
    char c = client.read();
    serial.print(c);
  }
 
  // disconnect thingspeak
  if (!client.connected() && lastconnected)
  {
    serial.println();
    serial.println("...disconnected.");
    serial.println();
   
    client.stop();
  }
 
  // update thingspeak
  if(!client.connected() && (millis() - lastconnectiontime > updateinterval))
  {
    updatethingspeak("field1="+analogpin0);
  }
 
  lastconnected = client.connected();
}

void updatethingspeak(string tsdata)
{
  if (client.connect(thingspeakaddress, 80))
  {
    client.print("post /update http/1.1\n");
    client.print("host: api.thingspeak.com\n");
    client.print("connection: close\n");
    client.print("x-thingspeakapikey: "+writeapikey+"\n");
    client.print("content-type: application/x-www-form-urlencoded\n");
    client.print("content-length: ");
    client.print(tsdata.length());
    client.print("\n\n");

    client.print(tsdata);
   
    lastconnectiontime = millis();
   
    if (client.connected())
    {
      serial.println("connecting thingspeak...");
      serial.println();
     
      failedcounter = 0;
    }
    else
    {
      failedcounter++;
 
      serial.println("connection thingspeak failed ("+string(failedcounter, dec)+")");   
      serial.println();
    }
   
  }
  else
  {
    failedcounter++;
   
    serial.println("connection thingspeak failed ("+string(failedcounter, dec)+")");   
    serial.println();
   
    lastconnectiontime = millis();
  }
}

void startethernet()
{
 
  client.stop();

  serial.println("connecting arduino network...");
  serial.println(); 

  delay(1000);
 
  // connect network amd obtain ip address using dhcp
  if (ethernet.begin(mac) == 0)
  {
    serial.println("dhcp failed, reset arduino try again");
    serial.println();
  }
  else {
    serial.println("arduino connected network using dhcp");
    serial.println();
    serial.println("data being uploaded thingspeak server.......");
    serial.println();
  }
 
  delay(1000);
}

does program produce error messages when data isnt sent thingspeak?  

suggest add code read response in case gives clue.  i didnt see client.stop() after send either.


code: [select]
   client.print("content-length: ");
    client.print(tsdata.length());
    client.print("\n\n");

    client.println(tsdata);  // change println

    // add print out response
    while (client.available()) {
      char c = client.read();
      serial.print(c);
    }


Arduino Forum > Topics > Home Automation and Networked Objects > Connected arduino with thingspeak (simple)


arduino

Comments

Popular posts from this blog

Flip address is out of range arduino uno r3

Arduino Uno not uploading

Indesign and MathType fonts