Мой проект состоит в передаче некоторых данных, считанных некоторыми датчиками, на сервер с платой 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;
}