This question is closed. Reopen it to edit or answer.

when i write data to things speak using arduino mkr1000 i sent the data to thingspeak but every time to start data transmission i need to run serial monitor in arduino code.

1 view (last 30 days)
iam attaching the code here and once after uploading the code to arduino and i started serial monitor the values are displayed in thingsspeak but once i try to connect it to a battery /unplug and plug it, i need to again run the serial monitor to view the data in thingsspeak. i would like to use a battery as power supply after uploading the code to arduino.
Description: Writes a value to a channel on ThingSpeak every 20 seconds.
Hardware: Arduino MKR1000
!!! IMPORTANT - Modify the secrets.h file for this project with your network connection and ThingSpeak channel details. !!!
- Requires WiFi101 library version 0.15.3 or newer.
- This example is written for a network using WPA encryption. For WEP or WPA, change the WiFi.begin() call accordingly.
ThingSpeak ( ) is an analytic IoT platform service that allows you to aggregate, visualize, and
analyze live data streams in the cloud. Visit to sign up for a free account and create a channel.
Documentation for the ThingSpeak Communication Library for Arduino is in the folder where the library was installed.
See for the full ThingSpeak documentation.
For licensing information, see the accompanying license file.
Copyright 2020, The MathWorks, Inc.
#include <WiFi101.h>
#include "secrets.h"
#include "ThingSpeak.h" // always include thingspeak header file after other header files and custom macros
char ssid[] = SECRET_SSID; // your network SSID (name)
char pass[] = SECRET_PASS; // your network password
int keyIndex = 0; // your network key Index number (needed only for WEP)
WiFiClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
int number = 0;
#define sensorPin A1
void setup() {
Serial.begin(9600); // Initialize serial
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo native USB port only
ThingSpeak.begin(client); // Initialize ThingSpeak
void loop() {
// Connect or reconnect to WiFi
if(WiFi.status() != WL_CONNECTED){
Serial.print("Attempting to connect to SSID: ");
while(WiFi.status() != WL_CONNECTED){
WiFi.begin(ssid, pass); // Connect to WPA/WPA2 network. Change this line if using open or WEP network
int reading = analogRead(sensorPin);
// Convert the reading into voltage:
float voltage = reading * (5000 / 1024.0);
// Convert the voltage into the temperature in degree Celsius:
float temp = voltage / 100;
// Print the temperature in the Serial Monitor:
//Serial.print(" \xC2\xB0"); // shows degree symbol
// Write to ThingSpeak. There are up to 8 fields in a channel, allowing you to store up to 8 different
// pieces of information in a channel. Here, we write to field 1.
int x = ThingSpeak.writeField(myChannelNumber, 1, temp, myWriteAPIKey);
if(x == 200){
Serial.println("Channel update successful.");
Serial.println("Problem updating channel. HTTP error code " + String(x));
// change the value
if(number > 99){
number = 0;
delay(20000); // Wait 20 seconds to update the channel again

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by