Arduino Uno + ESP8266 - Получить запрос с AT командами - PullRequest
0 голосов
/ 21 декабря 2018

Мой проект состоит в передаче некоторых данных, считанных некоторыми датчиками, на сервер с платой Arduino Uno и модулем ESP8266.Мне удалось отправить данные с использованием thingspeak.com, но когда я пытаюсь использовать свой собственный сервер, соединение не удается.Я думаю, что ошибка где-то в URL.Сервер работает нормально, пробовал с PostMan.

В данный момент я просто пытаюсь передать значение 1 как значение.

Весь URL-адрес: http://arduino.otherperceptions.com/api/statistic/store?product_id=1&sensor_humidity=1&sensor_temperature=1&sensor_pressure=1&sensor_audio=1&sensor_vibration=1

Выводс последовательного монитора:

AT+CIPSTART=4,"TCP","arduino.otherperceptions.com",80

4,CONNE
AT+CIPSEND=4,143

OK
>
Recv 143 bytes

SEND OK

+IPD,AT+CIPMUX=1

Код:

#include <SoftwareSerial.h>
#include <dht.h>


#define RX 10
#define TX 11
String AP = "***";
String PASS = "****";
String PORT = "80";

SoftwareSerial esp8266(RX,TX); 

void setup() {
  Serial.begin(9600);
  esp8266.begin(9600);

}
void loop() {


 esp8266.println("AT+CIPMUX=1");

    printResponse();

    esp8266.println("AT+CIPSTART=4,\"TCP\",\"arduino.otherperceptions.com\",80");
    delay(1000);
    printResponse();

    String cmd = "GET /api/statistic/store?product_id=1&sensor_humidity=1&sensor_temperature=100&sensor_pressure=1&sensor_audio=1&sensor_vibration=1 HTTP/1.1";
    esp8266.println("AT+CIPSEND=4," + String(cmd.length() + 4));
    delay(1000);

    esp8266.println(cmd);
    delay(1000);
    esp8266.println(""); 
     delay(3000);
}


void printResponse() {
  while (esp8266.available()) {
    Serial.println(esp8266.readString()); 
  }
}

void sendCommand(String command, int maxTime, char readReplay[]) {
  Serial.print(countTrueCommand);
  Serial.print(". at command => ");
  Serial.print(command);
  Serial.print(" ");
  while(countTimeCommand < (maxTime*1))
  {
    esp8266.println(command);//at+cipsend
    if(esp8266.find(readReplay))//ok
    {
      found = true;
      break;
    }

    countTimeCommand++;
  }

  if(found == true)
  {
    Serial.println("OYI");
    countTrueCommand++;
    countTimeCommand = 0;
  }

  if(found == false)
  {
    Serial.println("Fail");
    countTrueCommand = 0;
    countTimeCommand = 0;
  }

  found = false;
 }
...