Arduino built in example "WriteMultipleFields" gets error code -301

4 ビュー (過去 30 日間)
Jonathan Baker
Jonathan Baker 2020 年 7 月 6 日
回答済み: tebraxin tebraxin 2021 年 9 月 7 日
I am using an Arduino Uno R3 board and Ethernet shield. I replaced the Channel ID and the write API key with my own in the secrets.h file.
It connects with DHCP ok.
Arduino IDE 1.8.12
But comes back with error code -301. Serial Monitor:
Initialize Ethernet with DHCP:
DHCP assigned IP 10.10.1.170
Problem updating channel. HTTP error code -301
What am I missing?
/*
WriteMultipleFields
Description: Writes values to fields 1,2,3 and 4 in a single ThingSpeak update every 20 seconds.
Hardware: Arduino Ethernet
!!! IMPORTANT - Modify the secrets.h file for this project with your network connection and ThingSpeak channel details. !!!
Note:
- Requires the Ethernet library
ThingSpeak ( https://www.thingspeak.com ) is an analytic IoT platform service that allows you to aggregate, visualize, and
analyze live data streams in the cloud. Visit https://www.thingspeak.com to sign up for a free account and create a channel.
Documentation for the ThingSpeak Communication Library for Arduino is in the README.md folder where the library was installed.
See https://www.mathworks.com/help/thingspeak/index.html for the full ThingSpeak documentation.
For licensing information, see the accompanying license file.
Copyright 2018, The MathWorks, Inc.
*/
#include "ThingSpeak.h"
#include <Ethernet.h>
#include "secrets.h"
byte mac[] = SECRET_MAC;
// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(10, 10, 1, 76);
IPAddress myDns(10, 10, 1, 1);
EthernetClient client;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
// Initialize our values
int number1 = 0;
int number2 = random(0,100);
int number3 = random(0,100);
int number4 = random(0,100);
void setup() {
Ethernet.init(10); // Most Arduino Ethernet hardware
Serial.begin(115200); //Initialize serial
// start the Ethernet connection:
Serial.println("Initialize Ethernet with DHCP:");
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// Check for Ethernet hardware present
if (Ethernet.hardwareStatus() == EthernetNoHardware) {
Serial.println("Ethernet shield was not found. Sorry, can't run without hardware. :(");
while (true) {
delay(1); // do nothing, no point running without Ethernet hardware
}
}
if (Ethernet.linkStatus() == LinkOFF) {
Serial.println("Ethernet cable is not connected.");
}
// try to congifure using IP address instead of DHCP:
Ethernet.begin(mac, ip, myDns);
} else {
Serial.print(" DHCP assigned IP ");
Serial.println(Ethernet.localIP());
}
// give the Ethernet shield a second to initialize:
delay(1000);
ThingSpeak.begin(client); // Initialize ThingSpeak
}
void loop() {
// set the fields with the values
ThingSpeak.setField(1, number1);
ThingSpeak.setField(2, number2);
ThingSpeak.setField(3, number3);
ThingSpeak.setField(4, number4);
// write to the ThingSpeak channel
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if(x == 200){
Serial.println("Channel update successful.");
}
else{
Serial.println("Problem updating channel. HTTP error code " + String(x));
}
// change the values
number1++;
if(number1 > 99){
number1 = 0;
}
number2 = random(0,100);
number3 = random(0,100);
number4 = random(0,100);
delay(20000); // Wait 20 seconds to update the channel again
  7 件のコメント
Gerardo Spinelli
Gerardo Spinelli 2020 年 11 月 5 日
I have the same problem with an Arduino MKR 1000. But in my case he issue is intermittent.
Vinod
Vinod 2020 年 11 月 12 日
See my comment in this thread.

サインインしてコメントする。

回答 (2 件)

Vinod
Vinod 2020 年 8 月 2 日
編集済み: Vinod 2020 年 8 月 2 日
Have you made sure you're using the latest version of the library? Are you unable to see channel updates with the examples that ship with the library?

tebraxin tebraxin
tebraxin tebraxin 2021 年 9 月 7 日
hello to everybody
i'm also using Arduino Uno with ethernet shield, and I still have error 301 with the example code (write multiple field)
I already read a lot of forum, questions etc.. all around internet but I still have the problem.
My network work cooretly with all my divecies,
I tried to change internal IP address, DNS IP address, cables, example codes form library Tingspeak... without solving the problem
thanks

コミュニティ

その他の回答  ThingSpeak コミュニティ

カテゴリ

Help Center および File ExchangeRead Data from Channel についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by