Main Content

Results for

Hi,

I have this code posting data. It used to work a couple of years back but now it shows no new data being posted and I want to see what the error is:

#include <Bridge.h>
#include <BridgeServer.h>
#include <BridgeClient.h>
#include <DHT.h>
#define DHTPIN 4 
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
//********************
#define ARRAY_SIZE 2
String API = "13xxxxxxxxxxxxx";
unsigned long previousMillis = 0;        // will store last time LED was updated
const long interval = 900000;           // interval at which to blink (milliseconds)
void setup() {
  Bridge.begin();
  Console.begin();
  dht.begin();
  Serial.begin(9600);
  Serial.println("set up");
}
//********************
void postToThingSpeak(String key, float value[]) {
  Process p;
  String cmd = "curl -d \'key="+key;
  for (int i=0;i<ARRAY_SIZE;i++) {
    cmd = cmd + "&field"+ (i+1) + "=" + value[i];
  }
  cmd = cmd + "\' http://api.thingspeak.com/update";
  p.runShellCommand(cmd);
  Console.println(cmd);
  p.close();
  Serial.println("posted");
}
void loop() {
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= interval) {
      // save the last time you blinked the LED
      previousMillis = currentMillis;
      float temperature = dht.readTemperature();
      //float temperature = 33.33;
      Console.println(temperature);
      float humidity = dht.readHumidity();
      //float humidity = 44.44;
      Console.println(humidity);
      float vol[ARRAY_SIZE];
      vol[1] = temperature;
      vol[0] = humidity;
      postToThingSpeak(API, vol); //ACCOUNT
    }
    //delay(120000); // ThingSpeak will only accept updates every 15 seconds.
  }

Hi, I've been using ThingSpeak now for a number of years capturing temperature data from a Pi zero and Python. I currently use the Unsecured TCP option, but the recent email about moving to mqtt3 server suggests websockets. I've looked at the example and understand username, password and channel ID, but not what the Client ID is. Can someone tell me what this is please.

Many thanks Alastair

Afternoon Everyone, Looking for some help with my Arduino/Thingspeak sketch.

To give you an idea I have a Lora Sensor sending data to a Lora/Uno receiver, the data I receive is two strings, one for DO and one for Temp, in the parsepacket section below I convert the string to floats and use these as my fields for Thingspeak.

Currently the code allows a connection to Thingspeak, it also correctly associates the DO and Temp float variables with corresponding graphs on the channel.

However after the initial WiFi connection all that happens is zero is written to both graphs and only once, another write will not happen untill I reboot the Arduino.

I'm pretty certain that the order of my Loop is wrong.

My expected results are to write Temp and DO to Thingspeak every 30 seconds, with actual values, not 0. Currently a write happens once and Temp and DO are Zero, despite the packets being received correctly with actual values.

If I can clarify anything or better explain then please feel free to ask, I'm fairly new to this.

TIA. AC

 if true
#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
#include <LoRa.h>
#include <SoftwareSerial.h>
#define nss D10
#define rst D14
#define dio0 D2
//
WiFiClient client;
//
const char* ssid = "myssid";
const char* password = "mypassword";
//
char thingSpeakAddress[] = "api.thingspeak.com";
unsigned long channelID = mychannelid;
char* readAPIKey = "myapi";
char* writeAPIKey = "myapi";
unsigned long lastTime = 0;
unsigned long timerDelay = 30000;
unsigned int dataFieldOne = 1;
unsigned int dataFieldTwo = 2;
//
float DO;
float temp;
//
void setup() {
  WiFi.mode(WIFI_STA);
  ThingSpeak.begin(client);
  LoRa.setPins(nss, rst, dio0);
  Serial.begin(115200);
  while (!Serial);
  if (!LoRa.begin(868E6)) {//914E6
    Serial.println("Starting LoRa failed!");
    while (1);
  }
}
//
void loop() {
  int packetSize = LoRa.parsePacket();
  if (WiFi.status() != WL_CONNECTED) {
    Serial.print("Attempting to connect");
    while (WiFi.status() != WL_CONNECTED) {
      WiFi.begin(ssid, password);
      delay(5000);
      if (packetSize)
      {
        Serial.print("packetSize = ");
        Serial.println(packetSize);
        parseLoRaPacket();
      }
      ThingSpeak.setField(1, DO);
      ThingSpeak.setField(2, temp);
      int x = ThingSpeak.writeFields(channelID, writeAPIKey);
//
      if (x == 200) {
        Serial.println("channel update succesful.");
      }
      else {
        Serial.println("Problem updating channel.");
      }
    }
  }
}
//
void parseLoRaPacket() {
  String lora_data;   // String as local variable
//
    while (LoRa.available())
  {
    lora_data = LoRa.readString();
    Serial.print(lora_data);
//
    int strIndex = lora_data.indexOf("TEMP: ");
    if (strIndex > -1)
    {
      int startPos = strIndex + strlen("TEMP: ");
      temp = lora_data.substring(startPos).toFloat();
      Serial.println(temp);
    }
    strIndex = lora_data.indexOf("DO: ");
    if (strIndex > -1)
    {
      int startPos = strIndex + strlen("DO: ");
      DO = lora_data.substring(startPos).toFloat();
      Serial.println(DO);
    }
  }
}
  end

Kindly assist I have been trying to create a small weather station with with DHT11 sensor and CC3200 launchpad and connect it to ThingSpeak but the code won't compile as I am using an Arduino code.

Anyone to please help

    if true
      #include <SPI.h>
      #include <WiFi.h>
      #include <WiFiClient.h>
      #include <DHT.h>  // Including library for dht
      String apiKey = "";     //  Enter your Write API key from ThingSpeak
      const char *ssid =  "Virus";     // replace with your wifi ssid and wpa2 key
      const char *pass =  "";
      const char* server = "api.thingspeak.com";
      #define DHTPIN 11          //pin where the dht11 is connected
      #define DHT dht(DHTPIN, DHT11);
      WiFiClient client;
      void setup() 
      {
         Serial.begin(115200);
         delay(10);
         dht.begin();
         Serial.println("Connecting to ");
         Serial.println(ssid);
         WiFi.begin(ssid, pass);
        while (WiFi.status() != WL_CONNECTED) 
        {
              delay(500);
              Serial.print(".");
        }
        Serial.println("");
        Serial.println("WiFi connected");
      }
      void loop() 
      {
        float h = dht.readHumidity();
        float t = dht.readTemperature();
                if (isnan(h) || isnan(t)) 
                   {
                       Serial.println("Failed to read from DHT sensor!");
                        return;
                   }
                           if (client.connect(server,80))   //   "184.106.153.149" or api.thingspeak.com
                        {  
                               String postStr = apiKey;
                               postStr +="&field1=";
                               postStr += String(t);
                               postStr +="&field2=";
                               postStr += String(h);
                               postStr += "\r\n\r\n";
                               client.print("POST /update HTTP/1.1\n");
                               client.print("Host: api.thingspeak.com\n");
                               client.print("Connection: close\n");
                               client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
                               client.print("Content-Type: application/x-www-form-urlencoded\n");
                               client.print("Content-Length: ");
                               client.print(postStr.length());
                               client.print("\n\n");
                               client.print(postStr);
                               Serial.print("Temperature: ");
                               Serial.print(t);
                               Serial.print(" degrees Celcius, Humidity: ");
                               Serial.print(h);
                               Serial.println("%. Send to Thingspeak.");
                          }
            client.stop();
            Serial.println("Waiting...");
        // thingspeak needs minimum 15 sec delay between updates
        delay(1000);
      }
    end

Hi, I am using SIM800 for transferring data to the ThingSpeak server. After send OK, I am not getting acknowledgment from ThingSpeak. Also, the field is not getting updated in ThingSpeak. Let me know what has gone wrong. The commands and response in teraterm is as below.

AT+CIPSHUT

SHUT OK

AT

OK

AT+CIPMUX=0

OK

AT+CGATT=1

OK

AT+CSTT="airtelgprs.com","",""

OK

AT+CIICR

OK

AT+CIFSR

100.67.75.225

AT+CIPSTART="TCP","184.106.153.149","80"

OK

CONNECT OK

AT+CIPSEND

> GET /update?api_key=81XXXXXXXXXXXXX4&field1=32

SEND OK

CLOSED

I'd appreciate comment on whether I understand the limitations with MQTT and low power. Using deep sleep the ESP12 consumes microamps and my sensor is insignificant. The big drain on the battery is WiFi. Sending an MQTT message is taking around 10ms which seems at first sight promising. Unfortunately it looks to me like deep sleep ends the connection, and reconnection takes 4 or more seconds. I'd thought that deep sleep, static IP, and MQTT were the way to get very low power consumption but it looks to me like they don't solve the problem.

Hi , I am using M66 GSM Module to send and recv data over Thingspeak , TCP Connection : "api.thingspeak.com"; : Working Fine "GET /update?api_key=xxxxxxxxxxxxxxxx&field1=14"; : Send data to Server No Issue "GET https://api.thingspeak.com/update?api_key=xxxxxxxxxxxxxxxx&field1=12"; : Send sata to server No Issue .

But not able to see data in thingspeak view , it means thingspeak server not collecting data from M66 Module .

Could you please help the same .

Please can I run my MATLAB code on the cloud? The code involves calling the fuzzy logic toolbox for irrigation control and also collecting sensor data from farm.

Using the gauge widget works good, and the current value shows up below the gauge. But I've seen articles where the value is shown inside the gauge, not below it. It that possible to do? If so, how?

I do really like the ability of applying colors to ranges of the gauge's values. I'm plotting Air Quality AQI numbers and this works really well for that.

Thanks,

Rick

I am a new user to ThingSpeak. Generally things are going well. I've been able to create channels and use widgets. I am embedding charts into my own web site (using Google Sites) and that is working fine.

My question has to do with labels that I put on the charts in the 'public view'. I can change the title and the X and Y axis text and this shows up as I want. But when I click on the 'export URL' button and a new tab opens up with the chart, the title and X & Y labels are not what I put in (and yes, I did 'save' after changing them). Is this a bug, or is there some other thing I need to do here?

Thanks,

Rick

Im posting data every 10 minutes to this field as you can see, yet when i pull the data back down there are 2 timestamps in between each post with 'nothing' in them which in tern screws up any matlab script trying to average the data. Why is this happening? thanks see below

created_at,entry_id,field2
2021-08-21 09:54:27 -0600,38811,5.416666666666667
2021-08-21 09:57:02 -0600,38812,
2021-08-21 10:03:59 -0600,38813,
2021-08-21 10:04:27 -0600,38814,5.0
2021-08-21 10:07:02 -0600,38815,
2021-08-21 10:13:59 -0600,38816,
2021-08-21 10:14:28 -0600,38817,5.0
2021-08-21 10:17:03 -0600,38818,
2021-08-21 10:23:59 -0600,38819,
2021-08-21 10:24:28 -0600,38820,5.416666666666667
2021-08-21 10:27:03 -0600,38821,
2021-08-21 10:34:00 -0600,38822,
2021-08-21 10:34:29 -0600,38823,8.333333333333334
2021-08-21 10:37:04 -0600,38824,
2021-08-21 10:44:00 -0600,38825,
2021-08-21 10:44:29 -0600,38826,6.25
2021-08-21 10:47:09 -0600,38827,
2021-08-21 10:54:01 -0600,38828,
2021-08-21 10:54:30 -0600,38829,6.666666666666667
2021-08-21 10:57:10 -0600,38830,
2021-08-21 11:04:01 -0600,38831,
2021-08-21 11:04:34 -0600,38832,7.083333333333334
2021-08-21 11:07:10 -0600,38833,
2021-08-21 11:14:01 -0600,38834,
2021-08-21 11:14:35 -0600,38835,9.583333333333334
2021-08-21 11:17:11 -0600,38836,
2021-08-21 11:24:02 -0600,38837,
2021-08-21 11:24:35 -0600,38838,7.083333333333334

The ThingSpeak Communication Library for Arduino, ESP8266 and ESP32 enables an Arduino or other compatible hardware to write or read data to or from ThingSpeak, an open data platform for the Internet of Things with MATLAB analytics and visualization.

Link: https://github.com/mathworks/thingspeak-arduino

Installation: In the Arduino IDE, choose Sketch/Include Library/Manage Libraries. Click the ThingSpeak Library from the list, and click the Install button.

Compatible Hardware:

  • Arduino/Genuino or compatible using a WiFi Shield
  • Arduino/Genuino or compatible using a WiFi Shield 101 (Use the WiFi101 library version 0.13.0 or older.)
  • Arduino/Genuino or compatible using an Ethernet Shield
  • Arduino/Genuino or compatible using a MKR ETH Shield
  • Arduino MKR1000
  • Arduino MKR1010
  • Arduino VIDOR 4000
  • Arduino GSM 14000
  • Arduino Uno WiFi Rev2
  • Arduino Yún (Rev1 and Rev2)
  • ESP8266 programming directly (tested with SparkFun ESP8266 Thing - Dev Board and NodeMCU 1.0 module)
  • ESP8266 via AT commands
  • ESP32 (tested with SparkFun ESP32 Thing)

Tutorial: https://nothans.com/thingspeak-tutorials/arduino/send-data-to-thingspeak-with-arduino

Hi I got MatLab license for thingspeak. But I am not sure this MatLab is also valid for thingspeak or not? Do i need to buy add-on license for thingspeak?

Hello, I was asked to help on a local community project to study Air Quality. I have two monitoring stations via PurpleAir. I can see data/ weekly graphs from both these stations. It appears that PurpleAir only holds/displays data for 1 week and it was suggested that ThingSpeak would [a]store historical data [b]able to "graph for longer periods of time". Is this true? Second question. It was only last week that I have heard of PurpleAir and ThingSpeak... is it possible for a Newbie to setup ThingSpeak to be able to visualize the AQI from my two monitors?

Hello, i use thingspeak to visualize data, when i use the chart, it works well, when i use numeric display, it show NaN.

How can i fix it?

The mouse pointer can't convert into cross cursor when I attempted to open an image processing window so that I can't draw a line on the image.

I recently found some interesting hardware in a demo on Hackster. The Magicbit is an ESP32-based project platform. It includes some plug and play sensors and a built-in display on a brightly colored PCB. The demo shows how to send the data collected by the Magicbit to ThingSpeak. You can see how to use the Arduino IDE to program the device, using the ThingSpeak library for Arduino, ESP 8266, and ESP32 . Of course, once you get the data into ThingSpeak, you can use the integrated MATLAB to do just about anything with the data. The Magicbit is funded from a Kickstarter campaign .

Hi all,

I have created 2 fields in thingspeak, one which displays all datapoints and one which shows the daily average. In the thingview app, both graphs show all datapoints, not the average.

Hello,

Opening TalkBack in Firefox and trying to Add a new command, the green button doing nothing. If I refresh the page, it works fine. First time have a issue - not work... Edge is working from the first time.