Getting Channel to work
Latest activity Edit by Christopher Stapels
on 16 Apr 2024
I have used this code but nothing is showing in my channel any suggesrtions please- the internet connects and the temperature output shows but nothing in my channel
#include <OneWire.h>
#include <DallasTemperature.h>
#include <WiFiNINA.h>
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS A0
// WiFi credentials
const char* ssid = "xxxxxxx";
const char* password = "xxxxxxxxx";
// ThingSpeak settings
const char* server = "api.thingspeak.com";
const char* apiKey = "xxxxxxxxxxxxxxxx";
const int httpPort = 80;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// create an instance of the WiFi class
WiFiClient client;
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Connect to WiFi network
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, password);
delay(1000);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.println(",");
Serial.print("Temperature for the device 1 (index 0) is: ");
float tempC = sensors.getTempCByIndex(0);
Serial.println(tempC);
delay(1000); // update sensor reading each one second
// Send data to ThingSpeak
if (client.connect(server, httpPort)) {
String data = "&Field 1=" + String(tempC);
Serial.println("Connecting to ThingSpeak...");
client.println("POST /update HTTP/1.1");
client.println("Host: api.thingspeak.com");
client.println("Connection: close");
client.println("Content-Type: application/x-www-form-urlencoded");
client.println("Content-Length: " + String(data.length()));
client.println();
client.println(data);
client.println();
Serial.println("Data sent to ThingSpeak");
} else {
Serial.println("Error connecting to ThingSpeak");
}
client.stop();
delay(15000); // Send data to ThingSpeak every 15 seconds
}
8 Comments
Time DescendingWe strongly reccomend using theThingSpeak library. Your code is missing a write of the API key in the POST. You can see the correct format at the write data page in the documentation. There are great examples in the examples tab in the doc, or try the library examples to see.
Sign in to participate