How to Plot Random Numbers With On Thingspeak Server using arduino wifi Shield

Please I am trying to use an arduino Due and the arduino wifi shield to send random generated numbers on the thingspeak server. I have already created a channel on the thingspeak server but it is not working.Please can anyone be of help? Below is the arduino code.

#include <SPI.h>
#include <WiFi.h>

// Local Network Settings

///////please enter your sensitive data in the Secret tab/arduino_secrets.h

char ssid = “Redmi”; // your network SSID (name)
char pass = “08$boateng$01”; // your network password (use for WPA, or use as key for WEP)
int keyIndex = 0; // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;

WiFiServer server(80);

// ThingSpeak Settings
char thingSpeakAddress = “”;
String APIKey = “2116N63A3ZTG791L”; // enter your channel’s Write API Key
const int updateThingSpeakInterval = 20 * 1000; // 20 second interval at which to update ThingSpeak

// Variable Setup
long lastConnectionTime = 1;
boolean lastConnected = false;
long randNumber;

// Initialize Arduino Ethernet Client
WiFiClient client;

void setup() {
// Start Serial for debugging on the Serial Monitor
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only

// check for the presence of the shield:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println(“WiFi shield not present”);
// don’t continue:
while (true);

// attempt to connect to Wifi network:
while ( status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);

// wait 10 seconds for connection:
// you’re connected now, so print out the status:
int i;
int valSensor;
void loop(){
randNumber=random(100000); //generate a random number
// read values from pins and store as strings

//String light = String(analogRead(A0), DEC); // read light value

// find temp value
//float voltage = analogRead(A1) * (3.3 / 1024); // convert 0-1023 range to 3.3V range
//int tempVal = (voltage - 0.5) * 100; // convert voltage to temperature in *C
//String temp = String(tempVal);

// Print Update Response to Serial Monitor
valSensor = random(100000); // random value, change with sensor value if using sensor
if (client.available()) {
char c =;
// Disconnect from ThingSpeak
if (!client.connected() && lastConnected) {
// Update ThingSpeak
if (!client.connected() && (millis() - lastConnectionTime > updateThingSpeakInterval)) {
updateThingSpeak(“field 1=” + valSensor );

lastConnected = client.connected();

void updateThingSpeak(String tsData) {
if (client.connect(thingSpeakAddress, 80)) {
client.print(“POST /update HTTP/1.1\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: “);
lastConnectionTime = millis();

if (client.connected()) {
Serial.println(“Connecting to ThingSpeak…”);

void printWifiStatus() {
// print the SSID of the network you’re attached to:
Serial.print("SSID: ");

// print your WiFi shield’s IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");

// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print(“signal strength (RSSI):”);
Serial.println(" dBm");

Please I am trying to use an arduino Due and the arduino wifi shield to send random generated numbers on the thingspeak server.

Have you read the terms and conditions for your thingspeak account? Is that an appropriate use of thingsqueak?

Before you post code again, read the stickies at the top of the forum, and post your code properly!

All that commented out code is NOT part of the problem. GET RID OF IT!

but it is not working.

That is the lamest possible thing you can say here. The code is ABSOLUTELY working. That it does not do what you expect means that your expectations are wrong.

Before we can help you re-align your expectations, we need to know what the code is actually doing, and what you (unreasonably) expect it to do.

Thanks for the reply and I will get rid of the commented out codes. The code is generating random numbers and I want to plot the numbers on the thinkspeak server.