Arduino 如何获得+;知识产权署的回应

Arduino 如何获得+;知识产权署的回应,arduino,arduino-c++,Arduino,Arduino C++,问题是,+IPD response的值没有显示在ReadLastEntryThingSpeak()上,因此我的代码不正确,或者我必须添加一些内容?我搜索了很多网站Arduino论坛、Thingspeak论坛等。但我没有看到任何解决办法( 我试着做这个系统已经5天了,但它不起作用,为什么 #include <SoftwareSerial.h> #include <string.h> #define esp8266 Serial1 #define SSID "test"

问题是,+IPD response的值没有显示在ReadLastEntryThingSpeak()上,因此我的代码不正确,或者我必须添加一些内容?我搜索了很多网站Arduino论坛、Thingspeak论坛等。但我没有看到任何解决办法(

我试着做这个系统已经5天了,但它不起作用,为什么

#include <SoftwareSerial.h>
#include <string.h>

#define esp8266 Serial1

#define SSID "test"    // put here the name of your wifi network
#define PASS "lolman123"    
#define IP "184.106.153.149"

int counter = 120;
String keep;
String valuetosend;

const byte maxDataLength = 30;  // maxDataLength is the maximum length 
allowed for received data.
char receivedChars[31] ;        
boolean newData = false;

String GET = "GET /update?key=FYPW04TOYR3FX2QH&";    // put here your 
thingspeak key
String GET1 = "field1=";

String readGET1 = "GET 
https://api.thingspeak.com/channels/864152/fields/1/last";

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  esp8266.begin(115200);
  esp8266.println("AT");
  delay(5000);
  if(esp8266.find("OK")){
  connectWiFi();
  Serial.println("WIFI CONNECTED");
}
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
newData = false;
}

void loop() {
  // put your main code here, to run repeatedly:
  int readBtn = digitalRead(7);
  int readSend = digitalRead(8); 

  if (readBtn == 0)
  {
    ReadLastEntryThingSpeak();
  }

  if (readSend == 0)
  {
    WriteThingSpeak();
  }
}

boolean connectWiFi(){
  esp8266.println("AT+CWMODE=1");
  delay(2000);
  String cmd="AT+CWJAP=\"";
  cmd+=SSID;
  cmd+="\",\"";
  cmd+=PASS;
  cmd+="\"";
  esp8266.println(cmd);
  delay(5000);
  if(esp8266.find("OK")){
    Serial.println("OK");
    return true;
  }else{
    Serial.println("KO");
    return false;
  }
}

void updateFunction(String valuetosend){
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += IP;
  cmd += "\",80";
  esp8266.println(cmd);
  delay(2000);
  if(esp8266.find("Error")){
    Serial.print("Error1");
    return;
  }
  cmd = GET + GET1;
  cmd += valuetosend;
  cmd += "\r\n";
  Serial.print(cmd);
  esp8266.print("AT+CIPSEND=");
  esp8266.println(cmd.length());
  if(esp8266.find(">")){
    esp8266.print(cmd);
  }else{
    esp8266.println("AT+CIPCLOSE");
  }
}

void ReadLastEntryThingSpeak()
{
  String cmd = "AT+CIPSTART=\"TCP\",\""; //connect to thingspeak
  cmd += IP;
  cmd += "\",80";
  esp8266.println(cmd);
  delay(2000);
  if(esp8266.find("Error")){
    Serial.print("Error1");
    return;
  }
  cmd = readGET1;
  cmd += "\r\n";
  Serial.print(cmd);
  esp8266.print("AT+CIPSEND="); 
  esp8266.println(cmd.length());
  if(esp8266.find(">")){
    esp8266.print(cmd);
  }else{
    esp8266.println("AT+CIPCLOSE");
  }
  delay(2000);
  recvWithStartEndMarkers();                // check to see if we have 
  received any new commands
  if (newData)  {   processCommand();  }
}

void WriteThingSpeak ()
{
    String valuetosend = String(counter);
    updateFunction(valuetosend);
}

void recvWithStartEndMarkers() 
{
     static boolean recvInProgress = false;
     static byte ndx = 0;
     char startMarker = ':';
 char endMarker = 'C';

 if (esp8266.available() > 0) 
 {
      char rc = esp8266.read();
      if (recvInProgress == true) 
      {
           if (rc != endMarker) 
           {
                    if (ndx < maxDataLength) { receivedChars[ndx] = rc; 
ndx++;      }
               }
               else 
               {
                     receivedChars[ndx] = '\0'; // terminate the string
                     recvInProgress = false;
                     ndx = 0;
                     newData = true;
               }
          }
          else if (rc == startMarker) { recvInProgress = true; }
     }

}

void processCommand()
{
   Serial.print("Recieved data = ");   Serial.println(receivedChars);
   newData = false;
}
#包括
#包括
#定义esp8266 Serial1
#定义SSID“测试”//在此处输入您的wifi网络名称
#定义PASS“lolman123”
#定义IP“184.106.153.149”
int计数器=120;
串保持;
字符串值ToSend;
常量字节maxDataLength=30;//maxDataLength是最大长度
允许接收数据。
char-receivedChars[31];
布尔newData=false;
String GET=“GET/update?key=FYPW04TOYR3FX2QH&”;//将您的
说话键
字符串GET1=“field1=”;
String readGET1=“获取
https://api.thingspeak.com/channels/864152/fields/1/last";
无效设置(){
//将安装代码放在此处,以便运行一次:
Serial.begin(9600);
esp8266.开始(115200);
esp8266.println(“AT”);
延迟(5000);
如果(esp8266.查找(“确定”)){
连接WiFi();
Serial.println(“WIFI连接”);
}
pinMode(7,输入\上拉);
pinMode(8,输入\上拉);
newData=false;
}
void循环(){
//将主代码放在此处,以便重复运行:
int readBtn=数字读取(7);
int readSend=digitalRead(8);
如果(readBtn==0)
{
ReadLastEntryThingSpeak();
}
如果(readSend==0)
{
WriteThingSpeak();
}
}
布尔连接WiFi(){
esp8266.println(“AT+CWMODE=1”);
延迟(2000年);
字符串cmd=“AT+CWJAP=\”;
cmd+=SSID;
cmd+=“\”,\”;
cmd+=通过;
cmd+=“\”;
esp8266.println(cmd);
延迟(5000);
如果(esp8266.查找(“确定”)){
Serial.println(“OK”);
返回true;
}否则{
序列号:println(“KO”);
返回false;
}
}
void updateFunction(字符串值ToSend){
String cmd=“AT+CIPSTART=\“TCP\”,\”;
cmd+=IP;
cmd+=“\”,80”;
esp8266.println(cmd);
延迟(2000年);
如果(esp8266.查找(“错误”)){
串行打印(“错误1”);
返回;
}
cmd=GET+GET1;
cmd+=valuetosend;
cmd+=“\r\n”;
串行打印(cmd);
esp8266.打印(“AT+CIPSEND=”);
esp8266.println(cmd.length());
如果(esp8266.find(“>”){
esp8266.打印(cmd);
}否则{
esp8266.println(“AT+CIPCLOSE”);
}
}
void ReadLastEntryThingSpeak()
{
String cmd=“AT+CIPSTART=\“TCP\”,\“”;//连接到thingspeak
cmd+=IP;
cmd+=“\”,80”;
esp8266.println(cmd);
延迟(2000年);
如果(esp8266.查找(“错误”)){
串行打印(“错误1”);
返回;
}
cmd=readGET1;
cmd+=“\r\n”;
串行打印(cmd);
esp8266.打印(“AT+CIPSEND=”);
esp8266.println(cmd.length());
如果(esp8266.find(“>”){
esp8266.打印(cmd);
}否则{
esp8266.println(“AT+CIPCLOSE”);
}
延迟(2000年);
recvWithStartEndMarkers();//检查是否有
收到任何新命令
if(newData){processCommand();}
}
void WriteThingSpeak()
{
字符串值ToSend=字符串(计数器);
updateFunction(valuetosend);
}
void recvWithStartEndMarkers()
{
静态布尔值recvInProgress=false;
静态字节ndx=0;
char startMarker=':';
char endMarker='C';
如果(esp8266.available()>0)
{
char rc=esp8266.read();
如果(recvInProgress==true)
{
如果(rc!=endMarker)
{
如果(ndx

我得到的结果是接收到的数据=,但实际输出是接收到的数据=120。

我不知道+IPD响应的值是多少,我们大多数人也是如此。说出你观察到这个问题的函数,解释+IPD响应是什么样子的,这样每个熟悉Arduino/C++的人都可以帮助+IPD,3:120关闭它这样的响应。我不知道知道+IPD响应的值是什么,我们大多数人都会知道。说出你观察到问题的函数,解释+IPD响应是什么样子的,这样每个熟悉Arduino/C++的人都可以帮助+IPD,3:120关闭it响应,如下所示。