Я создаю счетчик людей, просто подсчитываю количество входов и выходов в комнате, а затем загружаю его в свою базу данных. Я использую Arduino MEGA2560 с ESP8266 в качестве коммуникатора с моим сервером.
Но у меня возникают проблемы, когда я отправляю HTTP-запрос GET на свой сервер. Как только я отправлю запрос HTTP GET, моя функция счетчика не будет работать до тех пор, пока запрос HTTP GET не будет выполнен. Просто интересно, есть ли здесь в Arduino асинхронная функция, простая в использовании и понимании, или есть правильный способ использования запроса HTTP GET
Вот мой код:
void loop{
counter(); // let's assume that this function is just counting in and out person in the room
// changing the value of variable count
uint8_t buffer[1024] = {0};
if (wifi.createTCP(HOST_NAME, HOST_PORT)) {
Serial.print("create tcp ok\r\n");
} else {
Serial.print("create tcp err\r\n");
}
char hello[];
strcpy(hello, "GET /vbus/insert.php?coount=");
strcat(hello, count);
strcat(hello," HTTP/1.1\r\nHost: www.test.com\r\nConnection:close\r\n\r\n");
wifi.send((const uint8_t*)hello, strlen(hello));
wifi.send((const uint8_t*)hello, strlen(hello));
uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000);
if (len > 0) {
Serial.print("Received:[");
for(uint32_t i = 0; i < len; i++) {
Serial.print((char)buffer[i]);
}
Serial.print("]\r\n");
}
}
PS: у меня нет проблем с отправкой HTTP-запроса GET только того, что я сказал выше.