Using CC3000 to POST to Thingspeak

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
mr_napster
 
Posts: 3
Joined: Sat Aug 31, 2013 9:10 am

Using CC3000 to POST to Thingspeak

Post by mr_napster »

Hi,

I'm having issues doing a POST request to https://thingspeak.com/ with the WebClient example. When I run WebClient with the test information, it works fine, but when I change it to use it for Thingspeak, it doesn't work.

I have changed the WebClient example URL to accommodate Thingspeak. Something is definitely wrong because the code always breaks with the error code "Couldn't resolve!".

Here is the code I am using:

Code: Select all

/*************************************************** 
  This is an example for the Adafruit CC3000 Wifi Breakout & Shield

  Designed specifically to work with the Adafruit WiFi products:
  ----> https://www.adafruit.com/products/1469

  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried & Kevin Townsend for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

 /*
This example does a test of the TCP client capability:
  * Initialization
  * Optional: SSID scan
  * AP connection
  * DHCP printout
  * DNS lookup
  * Optional: Ping
  * Connect to website and print out webpage contents
  * Disconnect
SmartConfig is still beta and kind of works but is not fully vetted!
It might not work on all networks!
*/
#include <Adafruit_CC3000.h>
#include <ccspi.h>
#include <SPI.h>
#include <string.h>
#include "utility/debug.h"

// These are the interrupt and control pins
#define ADAFRUIT_CC3000_IRQ   3  // MUST be an interrupt pin!
// These can be any two pins
#define ADAFRUIT_CC3000_VBAT  5
#define ADAFRUIT_CC3000_CS    10
// Use hardware SPI for the remaining pins
// On an UNO, SCK = 13, MISO = 12, and MOSI = 11
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT,
                                         SPI_CLOCK_DIVIDER); // you can change this clock speed

#define WLAN_SSID       "Network Name"           // cannot be longer than 32 characters!
#define WLAN_PASS       "Network Password"
// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
#define WLAN_SECURITY   WLAN_SEC_WPA2

#define IDLE_TIMEOUT_MS  3000      // Amount of time to wait (in milliseconds) with no data 
                                   // received before closing the connection.  If you know the server
                                   // you're accessing is quick to respond, you can reduce this value.

// What page to grab!
#define WEBSITE      "www.api.thingspeak.com"
#define WEBPAGE      "/update"
String writeAPIKey = "APIKey";    // Write API Key for a ThingSpeak Channel
String tsData = "field1=100";
/**************************************************************************/
/*!
    @brief  Sets up the HW and the CC3000 module (called automatically
            on startup)
*/
/**************************************************************************/

uint32_t ip;

void setup(void)
{
  Serial.begin(115200);
  Serial.println(F("Hello, CC3000!\n")); 

  Serial.print("Free RAM: "); Serial.println(getFreeRam(), DEC);
  
  /* Initialise the module */
  Serial.println(F("\nInitializing..."));
  if (!cc3000.begin())
  {
    Serial.println(F("Couldn't begin()! Check your wiring?"));
    while(1);
  }
  
  // Optional SSID scan
  // listSSIDResults();
  
  Serial.print(F("\nAttempting to connect to ")); Serial.println(WLAN_SSID);
  if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
    Serial.println(F("Failed!"));
    while(1);
  }
   
  Serial.println(F("Connected!"));
  
  /* Wait for DHCP to complete */
  Serial.println(F("Request DHCP"));
  while (!cc3000.checkDHCP())
  {
    delay(100); // ToDo: Insert a DHCP timeout!
  }  

  /* Display the IP address DNS, Gateway, etc. */  
  while (! displayConnectionDetails()) {
    delay(1000);
  }

  ip = 0;
  // THIS IS WHERE IT BREAKS!
  // Try looking up the website's IP address
  Serial.print(WEBSITE); Serial.print(F(" -> "));
  while (ip == 0) {
    if (! cc3000.getHostByName(WEBSITE, &ip)) {
      Serial.println(F("Couldn't resolve!"));
    }
    delay(500);
  }

  cc3000.printIPdotsRev(ip);
  
  // Optional: Do a ping test on the website
  /*
  Serial.print(F("\n\rPinging ")); cc3000.printIPdotsRev(ip); Serial.print("...");  
  replies = cc3000.ping(ip, 5);
  Serial.print(replies); Serial.println(F(" replies"));
  */  

  /* Try connecting to the website.
     Note: HTTP/1.1 protocol is used to keep the server from closing the connection before all data is read.
  */
  Adafruit_CC3000_Client www = cc3000.connectTCP(ip, 80);
  if (www.connected()) {
    www.fastrprint(F("POST /update HTTP/1.1\n"));
    www.fastrprint(F("Host: api.thingspeak.com\n"));
    www.fastrprint(F("Connection: close\n"));
    www.fastrprint(F("X-THINGSPEAKAPIKEY: [APIKey]\n"));
    www.fastrprint(F("Content-Type: application/x-www-form-urlencoded\n"));
    www.fastrprint(F("Content-Length: "));
    www.fastrprint(F("10"));
    www.fastrprint(F("\n\n"));
   
    www.fastrprint(F("field1=100"));
    
    www.println();
  } else {
    Serial.println(F("Connection failed"));    
    return;
  }

  Serial.println(F("-------------------------------------"));
  
  /* Read data until either the connection is closed, or the idle timeout is reached. */ 
  unsigned long lastRead = millis();
  while (www.connected() && (millis() - lastRead < IDLE_TIMEOUT_MS)) {
    while (www.available()) {
      char c = www.read();
      Serial.print(c);
      lastRead = millis();
    }
  }
  www.close();
  Serial.println(F("-------------------------------------"));
  
  /* You need to make sure to clean up after yourself or the CC3000 can freak out */
  /* the next time your try to connect ... */
  Serial.println(F("\n\nDisconnecting"));
  cc3000.disconnect();
  
}

void loop(void)
{
 delay(1000);
}

/**************************************************************************/
/*!
    @brief  Begins an SSID scan and prints out all the visible networks
*/
/**************************************************************************/

void listSSIDResults(void)
{
  uint8_t valid, rssi, sec, index;
  char ssidname[33]; 

  index = cc3000.startSSIDscan();

  Serial.print(F("Networks found: ")); Serial.println(index);
  Serial.println(F("================================================"));

  while (index) {
    index--;

    valid = cc3000.getNextSSID(&rssi, &sec, ssidname);
    
    Serial.print(F("SSID Name    : ")); Serial.print(ssidname);
    Serial.println();
    Serial.print(F("RSSI         : "));
    Serial.println(rssi);
    Serial.print(F("Security Mode: "));
    Serial.println(sec);
    Serial.println();
  }
  Serial.println(F("================================================"));

  cc3000.stopSSIDscan();
}

/**************************************************************************/
/*!
    @brief  Tries to read the IP address and other connection details
*/
/**************************************************************************/
bool displayConnectionDetails(void)
{
  uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
  
  if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv))
  {
    Serial.println(F("Unable to retrieve the IP Address!\r\n"));
    return false;
  }
  else
  {
    Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
    Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
    Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
    Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
    Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
    Serial.println();
    return true;
  }
}
Any help will be greatly appreciated. If I can't get this to work, I was thinking about moving my project over to a RaspberryPi .

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: Using CC3000 to POST to Thingspeak

Post by Franklin97355 »

The CC3000 and Arduinos are not powerful enough to do SSL (https://) There is the same problem with Twitter.

User avatar
mr_napster
 
Posts: 3
Joined: Sat Aug 31, 2013 9:10 am

Re: Using CC3000 to POST to Thingspeak

Post by mr_napster »

Ah, this is a bummer. Wish I would have known about this before buying this.

Thanks for the response!

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: Using CC3000 to POST to Thingspeak

Post by Franklin97355 »

You might check with thingspeak to see if they have an unsecured portal. Some sites do but I would recommend creating an account specifically for this as your API codes and passwords are sent plain text. Not as big a problem for trivial data though.

<edit> it looks like you don't have to send data using https but can use http so you should be OK there. I looked at your code and you are not trying to send SSL so the problem is elsewhere I'll see what I can find. Can you send data from your computer to thingspeak?

User avatar
mr_napster
 
Posts: 3
Joined: Sat Aug 31, 2013 9:10 am

Re: Using CC3000 to POST to Thingspeak

Post by mr_napster »

Actually, I just rewrote some of the code, and now it works!

you have to define the WEBSITE and WEBPAGE as follows:

Code: Select all

#define WEBSITE      "api.thingspeak.com"
#define WEBPAGE      "/update?key=APIKey&field1=223"
...and here is the rest of the code:

Code: Select all

/*************************************************** 
  This is an example for the Adafruit CC3000 Wifi Breakout & Shield

  Designed specifically to work with the Adafruit WiFi products:
  ----> https://www.adafruit.com/products/1469

  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried & Kevin Townsend for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/
 
 /*
This example does a test of the TCP client capability:
  * Initialization
  * Optional: SSID scan
  * AP connection
  * DHCP printout
  * DNS lookup
  * Optional: Ping
  * Connect to website and print out webpage contents
  * Disconnect
SmartConfig is still beta and kind of works but is not fully vetted!
It might not work on all networks!
*/
#include <Adafruit_CC3000.h>
#include <ccspi.h>
#include <SPI.h>
#include <string.h>
#include "utility/debug.h"

// These are the interrupt and control pins
#define ADAFRUIT_CC3000_IRQ   3  // MUST be an interrupt pin!
// These can be any two pins
#define ADAFRUIT_CC3000_VBAT  5
#define ADAFRUIT_CC3000_CS    10
// Use hardware SPI for the remaining pins
// On an UNO, SCK = 13, MISO = 12, and MOSI = 11
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT,
                                         SPI_CLOCK_DIVIDER); // you can change this clock speed

#define WLAN_SSID       "Network Name"           // cannot be longer than 32 characters!
#define WLAN_PASS       "Network Password"
// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
#define WLAN_SECURITY   WLAN_SEC_WPA2

#define IDLE_TIMEOUT_MS  3000      // Amount of time to wait (in milliseconds) with no data 
                                   // received before closing the connection.  If you know the server
                                   // you're accessing is quick to respond, you can reduce this value.

// What page to grab!
#define WEBSITE      "api.thingspeak.com" // See? No 'http://' in front of it
#define WEBPAGE      "/update?key=APIKey&field1=223"


/**************************************************************************/
/*!
    @brief  Sets up the HW and the CC3000 module (called automatically
            on startup)
*/
/**************************************************************************/

uint32_t ip;

void setup(void)
{
  Serial.begin(115200);
  Serial.println(F("Hello, CC3000!\n")); 

  Serial.print("Free RAM: "); Serial.println(getFreeRam(), DEC);
  
  /* Initialise the module */
  Serial.println(F("\nInitializing..."));
  if (!cc3000.begin())
  {
    Serial.println(F("Couldn't begin()! Check your wiring?"));
    while(1);
  }
  
  // Optional SSID scan
  // listSSIDResults();
  
  Serial.print(F("\nAttempting to connect to ")); Serial.println(WLAN_SSID);
  if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY)) {
    Serial.println(F("Failed!"));
    while(1);
  }
   
  Serial.println(F("Connected!"));
  
  /* Wait for DHCP to complete */
  Serial.println(F("Request DHCP"));
  while (!cc3000.checkDHCP())
  {
    delay(100); // ToDo: Insert a DHCP timeout!
  }  

  /* Display the IP address DNS, Gateway, etc. */  
  while (! displayConnectionDetails()) {
    delay(1000);
  }

  ip = 0;
  // Try looking up the website's IP address
  Serial.print(WEBSITE); Serial.print(F(" -> "));
  while (ip == 0) {
    if (! cc3000.getHostByName(WEBSITE, &ip)) {
      Serial.println(F("Couldn't resolve!"));
    }
    delay(500);
  }

  cc3000.printIPdotsRev(ip);
  
  // Optional: Do a ping test on the website
  /*
  Serial.print(F("\n\rPinging ")); cc3000.printIPdotsRev(ip); Serial.print("...");  
  replies = cc3000.ping(ip, 5);
  Serial.print(replies); Serial.println(F(" replies"));
  */  

  /* Try connecting to the website.
     Note: HTTP/1.1 protocol is used to keep the server from closing the connection before all data is read.
  */
  Adafruit_CC3000_Client www = cc3000.connectTCP(ip, 80);
  if (www.connected()) {
    www.fastrprint(F("POST "));
    www.fastrprint(WEBPAGE);
    www.fastrprint(F(" HTTP/1.1\r\n"));
    www.fastrprint(F("Host: ")); www.fastrprint(WEBSITE); www.fastrprint(F("\r\n"));
    www.fastrprint(F("\r\n"));
    www.println();
  } else {
    Serial.println(F("Connection failed"));    
    return;
  }

  Serial.println(F("-------------------------------------"));
  
  /* Read data until either the connection is closed, or the idle timeout is reached. */ 
  unsigned long lastRead = millis();
  while (www.connected() && (millis() - lastRead < IDLE_TIMEOUT_MS)) {
    while (www.available()) {
      char c = www.read();
      Serial.print(c);
      lastRead = millis();
    }
  }
  www.close();
  Serial.println(F("-------------------------------------"));
  
  /* You need to make sure to clean up after yourself or the CC3000 can freak out */
  /* the next time your try to connect ... */
  Serial.println(F("\n\nDisconnecting"));
  cc3000.disconnect();
  
}

void loop(void)
{
 delay(1000);
}

/**************************************************************************/
/*!
    @brief  Begins an SSID scan and prints out all the visible networks
*/
/**************************************************************************/

void listSSIDResults(void)
{
  uint8_t valid, rssi, sec, index;
  char ssidname[33]; 

  index = cc3000.startSSIDscan();

  Serial.print(F("Networks found: ")); Serial.println(index);
  Serial.println(F("================================================"));

  while (index) {
    index--;

    valid = cc3000.getNextSSID(&rssi, &sec, ssidname);
    
    Serial.print(F("SSID Name    : ")); Serial.print(ssidname);
    Serial.println();
    Serial.print(F("RSSI         : "));
    Serial.println(rssi);
    Serial.print(F("Security Mode: "));
    Serial.println(sec);
    Serial.println();
  }
  Serial.println(F("================================================"));

  cc3000.stopSSIDscan();
}

/**************************************************************************/
/*!
    @brief  Tries to read the IP address and other connection details
*/
/**************************************************************************/
bool displayConnectionDetails(void)
{
  uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
  
  if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv))
  {
    Serial.println(F("Unable to retrieve the IP Address!\r\n"));
    return false;
  }
  else
  {
    Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
    Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
    Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
    Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
    Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
    Serial.println();
    return true;
  }
}

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: Using CC3000 to POST to Thingspeak

Post by Franklin97355 »

Great, for others with like problems there is this tutorial on the thingspeak site http://community.thingspeak.com/tutoria ... k-channel/

User avatar
moon_91
 
Posts: 1
Joined: Mon Apr 20, 2015 1:04 pm

Re: Using CC3000 to POST to Thingspeak

Post by moon_91 »

Hi, iam really new here, honestly im not really good at understanding the coding..
could u help me reused the coding that have been given by mr_napster to send data to Thingspeak for my pH reading system project..?
i really need ur help here...tq.. :)

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: Using CC3000 to POST to Thingspeak

Post by Franklin97355 »

Have you gone through the tutorial on the thingspeak site http://community.thingspeak.com/tutoria ... k-channel/ and if so what questions do you need answered?

User avatar
zetalif
 
Posts: 1
Joined: Sat Jan 09, 2016 6:49 pm

Re: Using CC3000 to POST to Thingspeak

Post by zetalif »

Hi,
I use Arduino Mega and CC3000 wifi shield to transmit data ( temperature, Humidity etc.) to ThingSpeak channel. Now I would like to use Talkback to drive a led but I've not success yet.
May someone provide tutorial or suggestion on this item?
Thanks in advance

User avatar
amberk94
 
Posts: 1
Joined: Sat Mar 26, 2016 7:51 am

Re: Using CC3000 to POST to Thingspeak

Post by amberk94 »

Hey @zatlif and @mr. napster can you tell me how its done? Here's my code doing everything right and my channel is also done with right api key and 2 fields: Please tell me where's the problem? I cant see the graph changing or any input reading but can see on serial monitor.

I'm using cc3000 shield so just needed to connect dht11.

Code: Select all

/*************************************************** 
 * This is a sketch to use the online temperature and humidity sensor using Xively
 * 
 *  Actual code was written by Marco Schwartz for Open Home Automation
 .
 ****************************************************/

// Libraries
#include <Adafruit_CC3000.h>
#include <ccspi.h>
#include <SPI.h>
#include <string.h>
#include<stdlib.h>
#include "utility/debug.h"
#include "DHT.h"
#include <avr/wdt.h>

// Define CC3000 chip pins
#define ADAFRUIT_CC3000_IRQ   3
#define ADAFRUIT_CC3000_VBAT  5
#define ADAFRUIT_CC3000_CS    10

// temperature and humidity sensor
#define DHTPIN 7
#define DHTTYPE DHT11

// Create CC3000 instances
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT,
SPI_CLOCK_DIV2); // you can change this clock speed


// WLAN parameters
#define WLAN_SSID       "xxx"
#define WLAN_PASS       "xxx"

// Security can be WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA or WLAN_SEC_WPA2
#define WLAN_SECURITY   WLAN_SEC_WPA2

// Xively parameters
// ThingSpeak Settings
char thingSpeakAddress[] = "api.thingspeak.com";
String writeAPIKey = "xxx";


uint32_t ip;
// Variable Setup
long lastConnectionTime = 0; 
boolean lastConnected = false;
int failedCounter = 0;

// for themperature and humidity
DHT dht(DHTPIN, DHTTYPE);


void setup(void)
{
  // Initialize
  Serial.begin(115200);
  ConnectWifi();   //// Connect with Wifi

}

void loop(void)
{
  // Get data & transform to integers
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  Serial.print("Temperature = ");
  Serial.println(t);
  Serial.print("Humidity = ");
  Serial.println(h);

  int temperature = (int) t;
  int humidity = (int) h;
  String tem=String(temperature, DEC); //Thingspeak only data stream is string type
  String hum=String(humidity, DEC);    // Converting integer data to string
  Serial.print(F("api.thingspeak.com -> "));
  while  (ip  ==  0)  {
    if  (!  cc3000.getHostByName("api.thingspeak.com", &ip))  {
      Serial.println(F("Couldn't resolve!, Restarting....."));
      wdt_enable(WDTO_8S);                  // if host does not response wait 8 sec and restart
      while(1){}
    }
    
    delay(500);
  }  
   cc3000.printIPdotsRev(ip);
  Serial.println(F(""));
   Adafruit_CC3000_Client client = cc3000.connectTCP(ip, 80);
   // Print Update Response to Serial Monitor
  if (client.available())
  {
    char c = client.read();
    Serial.print(c);
  }

 // Update ThingSpeak
  if(client.connected()) 
  {
    // Send temperature and humidity data to Thingspeak site
    updateThingSpeak("1="+tem+"&2="+hum);  
    delay(25000);   // Thingspeak needs a 15s delay between 2 data stream. 
    failedCounter=0;

  }
  else
  {
  Serial.println(F("Connection failed"));
  failedCounter++;
  if (failedCounter==10)
  {
    Serial.println(F("Connection failed for 10 times, Restarting......"));
    wdt_enable(WDTO_8S);   // if 10 continuous data upload failed, restart host after 8s.
    while(1){}
  }
  }

}

void updateThingSpeak(String tsData)
{
    Adafruit_CC3000_Client client = cc3000.connectTCP(ip, 80);
  
   
    Serial.println("Connecting to ThingSpeak...");
    Serial.println("Sending Data");
    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);
    Serial.println(F("Done"));
    Serial.println(F("Waiting 30 sec for next sending"));
}


void ConnectWifi(){
   Serial.println(F("\nInitializing..."));
  if (!cc3000.begin())
  {
    Serial.println(F("Couldn't begin()! Check your wiring?"));
    while(1);
  }
  // Connect to WiFi network
  cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY);
  Serial.println(F("Connected!"));

  /* Wait for DHCP to complete */
  Serial.println(F("Request DHCP"));
  while (!cc3000.checkDHCP())
  {
    delay(100);
  }  

}
Serial monitor:
https://drive.google.com/file/d/0Bw7mex ... sp=sharing

Please help me..
Attachments
show.PNG
show.PNG (8.99 KiB) Viewed 1361 times

User avatar
hickse
 
Posts: 3
Joined: Sun Dec 13, 2015 3:34 pm

Re: Using CC3000 to POST to Thingspeak

Post by hickse »

zetalif wrote:Hi,
I use Arduino Mega and CC3000 wifi shield to transmit data ( temperature, Humidity etc.) to ThingSpeak channel. Now I would like to use Talkback to drive a led but I've not success yet.
May someone provide tutorial or suggestion on this item?
Thanks in advance

Could you share your code to upload temperature and humidity data to ThingSpeak? I assume you are using a DHT11 or DHT22.

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: Using CC3000 to POST to Thingspeak

Post by Franklin97355 »

Have you gone through the tutorial on the thingspeak site http://community.thingspeak.com/tutoria ... k-channel/ and if so what questions do you need answered?

User avatar
shahbaz8491
 
Posts: 2
Joined: Mon Nov 21, 2016 9:36 am

Re: Using CC3000 to POST to Thingspeak

Post by shahbaz8491 »

HOW I read private channel using CC3000.

User avatar
Franklin97355
 
Posts: 23911
Joined: Mon Apr 21, 2008 2:33 pm

Re: Using CC3000 to POST to Thingspeak

Post by Franklin97355 »

HOW I read private channel using CC3000.
Please follow up in your other post.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”