HTTP-запросы с использованием Arduino
Я использую этот простой HTTP-запрос Post для публикации некоторых значений в моем API из Arduino с помощью Switch. Каждый раз, когда я нажимаю переключатель, он отправляет разные значения в API.
void switch_led() {
bool SwitchReading = digitalRead(SWITCH);
if (SwitchReading == HIGH) {
Serial.println("Now pressed....");
state = state + 1;
if (state % 2 != 0) {
digitalWrite(LED, HIGH);
char data1[] = "{""LDRValue"": 88888888}";
Serial.println("\nStarting connection to led server...");
if (client.connect(server, 8040)) {
Serial.println("connected to post server");
client.println("POST /api/sensor HTTP/1.1");
client.println("Host: 192.168.2.116:8040");
client.println("Content-Type: application/json");
client.print("Content-Length: ");
client.println(sizeof(data1));
client.println();
client.print(data1);
Serial.println("1.finish");
}
Serial.println("2.finish");
}
else {
digitalWrite(LED, LOW);
char data2[] = "{""LDRValue"": 1111111111}";
Serial.println("\nStarting connection to led server...");
if (client.connect(server, 8040)) {
Serial.println("connected to post server");
client.println("POST /api/sensor HTTP/1.1");
client.println("Host: 192.168.2.116:8040");
client.println("Content-Type: application/json");
client.print("Content-Length: ");
client.println(sizeof(data2));
client.println();
client.print(data2);
Serial.println("3.finish");
}
Serial.println("4.finish");
}
delay(500);
}
}
Это отлично работает для первого и второго постов как в Arduino, так и в API, но в третьем посте все работает отлично на Arduino, но на API требуется много времени (около 2 минут, чтобы получить пост). Четвертый и пятый посты тоже работают нормально, но шестой такой же, как третий. Зная, что мой API на 100% работает с Raspberry Pi и не имеет ошибок.
То же самое для PUT и GET.
После издания: После того, как я удалил номер порта из строки хоста и использовал strlen(data) вместо sizeof(data), запрос POST работает, но только для первых 7 постов. Вывод последовательного монитора на Arduino такой:
Attempting to connect to WPA SSID: WiFi-Repeater1
WiFi connected
SSID: WiFi-Repeater1
IP Address: 192.168.2.149
signal strength (RSSI):-66 dBm
Starting connection to post server...
connected to post server
Starting connection to post server...
connected to post server
Starting connection to post server...
connected to post server
Starting connection to post server...
connected to post server
Starting connection to post server...
connected to post server
Starting connection to post server...
connected to post server
Starting connection to post server...
connected to post server
Starting connection to post server...
Starting connection to post server...
Starting connection to post server...
До редактирования он всегда выдавал мне сообщение «подключено к почтовому серверу» и всегда отправлял сообщения, но, как я уже говорил, это занимает много времени на 3-м, 6-м, 9-м, 12-м постах... Теперь после 7-го поста сообщения не отправляются.
@MBS, 👍2
0
- Как получить уникальный идентификатор для всех плат Arduino?
- Как сделать повторитель Wi-Fi на Arduino?
- Нет соответствующей функции для вызова 'TembooChoreo::TembooChoreo()'? TembooChoreo SendSMSChoreo; Справка об ошибке
- Я не могу запускать команды оболочки в Linux через скетч AVR (Arduino Yun)
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?