Update README.md and use allman astyle

This commit is contained in:
Khoi Hoang
2022-11-23 17:06:13 -05:00
committed by GitHub
parent f48c4a7ff2
commit 4b56b009c7
24 changed files with 1738 additions and 1721 deletions

View File

@@ -29,7 +29,7 @@ Please ensure to specify the following:
Arduino IDE version: 1.8.19 Arduino IDE version: 1.8.19
ESP32 Core Version 2.0.5 ESP32 Core Version 2.0.5
OS: Ubuntu 20.04 LTS OS: Ubuntu 20.04 LTS
Linux xy-Inspiron-3593 5.15.0-52-generic #58~20.04.1-Ubuntu SMP Thu Oct 13 13:09:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux Linux xy-Inspiron-3593 5.15.0-53-generic #59~20.04.1-Ubuntu SMP Thu Oct 20 15:10:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Context: Context:
I encountered a crash while using this library I encountered a crash while using this library

View File

@@ -1,4 +1,4 @@
# AsyncHTTPRequest_Generic # AsyncHTTPRequest_Generic Library
[![arduino-library-badge](https://www.ardu-badge.com/badge/AsyncHTTPRequest_Generic.svg?)](https://www.ardu-badge.com/AsyncHTTPRequest_Generic) [![arduino-library-badge](https://www.ardu-badge.com/badge/AsyncHTTPRequest_Generic.svg?)](https://www.ardu-badge.com/AsyncHTTPRequest_Generic)
[![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncHTTPRequest_Generic.svg)](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases) [![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncHTTPRequest_Generic.svg)](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases)
@@ -6,8 +6,11 @@
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](#Contributing) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](#Contributing)
[![GitHub issues](https://img.shields.io/github/issues/khoih-prog/AsyncHTTPRequest_Generic.svg)](http://github.com/khoih-prog/AsyncHTTPRequest_Generic/issues) [![GitHub issues](https://img.shields.io/github/issues/khoih-prog/AsyncHTTPRequest_Generic.svg)](http://github.com/khoih-prog/AsyncHTTPRequest_Generic/issues)
<a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Donate to my libraries using BuyMeACoffee" style="height: 50px !important;width: 181px !important;" ></a> <a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Donate to my libraries using BuyMeACoffee" style="height: 50px !important;width: 181px !important;" ></a>
<a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-orange.svg?logo=buy-me-a-coffee&logoColor=FFDD00" style="height: 20px !important;width: 200px !important;" ></a> <a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-orange.svg?logo=buy-me-a-coffee&logoColor=FFDD00" style="height: 20px !important;width: 200px !important;" ></a>
<a href="https://profile-counter.glitch.me/khoih-prog/count.svg" title="Total khoih-prog Visitor count"><img src="https://profile-counter.glitch.me/khoih-prog/count.svg" style="height: 30px;width: 200px;"></a>
<a href="https://profile-counter.glitch.me/khoih-prog-AsyncHTTPRequest_Generic/count.svg" title="AsyncHTTPRequest_Generic Visitor count"><img src="https://profile-counter.glitch.me/khoih-prog-AsyncHTTPRequest_Generic/count.svg" style="height: 30px;width: 200px;"></a>
--- ---
--- ---
@@ -212,18 +215,22 @@ The best and easiest way is to use `Arduino Library Manager`. Search for `AsyncH
#### 1. For STM32 boards to use LAN8720 #### 1. For STM32 boards to use LAN8720
For `Generic STM32F4 series` boards, such as `STM32F407VE`, using `LAN8720`, please use STM32 core `v2.2.0` as breaking core `v2.3.0` creates the compile error.
---
To use LAN8720 on some STM32 boards To use LAN8720 on some STM32 boards
- **Nucleo-144 (F429ZI, NUCLEO_F746NG, NUCLEO_F746ZG, NUCLEO_F756ZG)** - **Nucleo-144 (F429ZI, NUCLEO_F746NG, NUCLEO_F746ZG, NUCLEO_F756ZG)**
- **Discovery (DISCO_F746NG)** - **Discovery (DISCO_F746NG)**
- **STM32F4 boards (BLACK_F407VE, BLACK_F407VG, BLACK_F407ZE, BLACK_F407ZG, BLACK_F407VE_Mini, DIYMORE_F407VGT, FK407M1)** - **STM32F4 boards (BLACK_F407VE, BLACK_F407VG, BLACK_F407ZE, BLACK_F407ZG, BLACK_F407VE_Mini, DIYMORE_F407VGT, FK407M1)**
you have to copy the files [stm32f4xx_hal_conf_default.h](Packages_Patches/STM32/hardware/stm32/2.3.0/system/STM32F4xx) and [stm32f7xx_hal_conf_default.h](Packages_Patches/STM32/hardware/stm32/2.3.0/system/STM32F7xx) into STM32 stm32 directory (~/.arduino15/packages/STM32/hardware/stm32/2.3.0/system) to overwrite the old files. you have to copy the files [stm32f4xx_hal_conf_default.h](Packages_Patches/STM32/hardware/stm32/2.2.0/system/STM32F4xx) and [stm32f7xx_hal_conf_default.h](Packages_Patches/STM32/hardware/stm32/2.2.0/system/STM32F7xx) into STM32 stm32 directory (~/.arduino15/packages/STM32/hardware/stm32/2.2.0/system) to overwrite the old files.
Supposing the STM32 stm32 core version is 2.3.0. These files must be copied into the directory: Supposing the STM32 stm32 core version is 2.2.0. These files must be copied into the directory:
- `~/.arduino15/packages/STM32/hardware/stm32/2.3.0/system/STM32F4xx/stm32f4xx_hal_conf_default.h` for STM32F4. - `~/.arduino15/packages/STM32/hardware/stm32/2.2.0/system/STM32F4xx/stm32f4xx_hal_conf_default.h` for STM32F4.
- `~/.arduino15/packages/STM32/hardware/stm32/2.3.0/system/STM32F7xx/stm32f7xx_hal_conf_default.h` for Nucleo-144 STM32F7. - `~/.arduino15/packages/STM32/hardware/stm32/2.2.0/system/STM32F7xx/stm32f7xx_hal_conf_default.h` for Nucleo-144 STM32F7.
Whenever a new version is installed, remember to copy this file into the new version directory. For example, new version is x.yy.zz, Whenever a new version is installed, remember to copy this file into the new version directory. For example, new version is x.yy.zz,
these files must be copied into the corresponding directory: these files must be copied into the corresponding directory:
@@ -238,14 +245,14 @@ these files must be copied into the corresponding directory:
Supposing the STM32 stm32 core version is 2.3.0. These files must be copied into the directory: Supposing the STM32 stm32 core version is 2.3.0. These files must be copied into the directory:
- `~/.arduino15/packages/STM32/hardware/stm32/2.3.0/variants/STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT/NUCLEO_F767ZI/variant.h` for Nucleo-144 NUCLEO_F767ZI. - `~/.arduino15/packages/STM32/hardware/stm32/2.3.0/variants/NUCLEO_F767ZI/variant.h` for Nucleo-144 NUCLEO_F767ZI.
- `~/.arduino15/packages/STM32/hardware/stm32/2.3.0/variants/STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T/NUCLEO_L053R8/variant.h` for Nucleo-64 NUCLEO_L053R8. - `~/.arduino15/packages/STM32/hardware/stm32/2.3.0/variants/NUCLEO_L053R8/variant.h` for Nucleo-64 NUCLEO_L053R8.
Whenever a new version is installed, remember to copy this file into the new version directory. For example, new version is x.yy.zz, Whenever a new version is installed, remember to copy this file into the new version directory. For example, new version is x.yy.zz,
these files must be copied into the corresponding directory: these files must be copied into the corresponding directory:
- `~/.arduino15/packages/STM32/hardware/stm32/x.yy.zz/variants/STM32F7xx/F765Z(G-I)T_F767Z(G-I)T_F777ZIT/NUCLEO_F767ZI/variant.h` - `~/.arduino15/packages/STM32/hardware/stm32/x.yy.zz/variants/NUCLEO_F767ZI/variant.h`
- `~/.arduino15/packages/STM32/hardware/stm32/x.yy.zz/variants/STM32L0xx/L052R(6-8)T_L053R(6-8)T_L063R8T/NUCLEO_L053R8/variant.h` - `~/.arduino15/packages/STM32/hardware/stm32/x.yy.zz/variants/NUCLEO_L053R8/variant.h`
--- ---
--- ---
@@ -402,7 +409,7 @@ Connect as follows. To program, use **STM32CubeProgrammer** or Arduino IDE with
<p align="center"> <p align="center">
<img src="https://github.com/khoih-prog/AsyncHTTPRequest_Generic/blob/master/Images/STM32F407VET6.png"> <img src="https://github.com/khoih-prog/AsyncHTTPRequest_Generic/raw/master/Images/STM32F407VET6.png">
</p> </p>
--- ---
@@ -495,7 +502,7 @@ https://github.com/khoih-prog/AsyncHTTPRequest_Generic/blob/639ce917e54c296f15fd
#### 1. [AsyncHTTPRequest_STM32](examples/AsyncHTTPRequest_STM32) running on STM32F7 Nucleo-144 NUCLEO_F767ZI using built-in LAN8742A #### 1. [AsyncHTTPRequest_STM32](examples/AsyncHTTPRequest_STM32) running on STM32F7 Nucleo-144 NUCLEO_F767ZI using built-in LAN8742A
``` ```cpp
Start AsyncHTTPRequest_STM32 on NUCLEO_F767ZI Start AsyncHTTPRequest_STM32 on NUCLEO_F767ZI
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
AsyncHTTPRequest @ IP : 192.168.2.178 AsyncHTTPRequest @ IP : 192.168.2.178
@@ -540,7 +547,7 @@ week_number: 42
#### 2. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP8266_NODEMCU #### 2. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP8266_NODEMCU
``` ```cpp
Starting AsyncHTTPRequest_ESP_WiFiManager using LittleFS on ESP8266_NODEMCU Starting AsyncHTTPRequest_ESP_WiFiManager using LittleFS on ESP8266_NODEMCU
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
Stored: SSID = HueNet1, Pass = 12345678 Stored: SSID = HueNet1, Pass = 12345678
@@ -572,7 +579,7 @@ HHHHHH
#### 3. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP32_DEV #### 3. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP32_DEV
``` ```cpp
Starting AsyncHTTPRequest_ESP_WiFiManager using SPIFFS on ESP32_DEV Starting AsyncHTTPRequest_ESP_WiFiManager using SPIFFS on ESP32_DEV
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
Stored: SSID = HueNet1, Pass = 12345678 Stored: SSID = HueNet1, Pass = 12345678
@@ -622,7 +629,7 @@ HHHHHHHHH HHHHHHHHHH HHHHHHHHHH
#### 4. [AsyncHTTPRequest_ESP](examples/AsyncHTTPRequest_ESP) running on ESP8266_NODEMCU #### 4. [AsyncHTTPRequest_ESP](examples/AsyncHTTPRequest_ESP) running on ESP8266_NODEMCU
``` ```cpp
Starting AsyncHTTPRequest_ESP using ESP8266_NODEMCU Starting AsyncHTTPRequest_ESP using ESP8266_NODEMCU
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
Connecting to WiFi SSID: HueNet1 Connecting to WiFi SSID: HueNet1
@@ -654,7 +661,7 @@ HHHHHHHHH HHHHHHHHHH HHHHHHHHHH H
#### 5. [AsyncWebClientRepeating_STM32](examples/AsyncWebClientRepeating_STM32) running on STM32F7 Nucleo-144 NUCLEO_F767ZI using built-in LAN8742A #### 5. [AsyncWebClientRepeating_STM32](examples/AsyncWebClientRepeating_STM32) running on STM32F7 Nucleo-144 NUCLEO_F767ZI using built-in LAN8742A
``` ```cpp
Start AsyncWebClientRepeating_STM32 on NUCLEO_F767ZI Start AsyncWebClientRepeating_STM32 on NUCLEO_F767ZI
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
AsyncHTTPRequest @ IP : 192.168.2.72 AsyncHTTPRequest @ IP : 192.168.2.72
@@ -707,7 +714,7 @@ AsyncHTTPRequest @ IP : 192.168.2.72
#### 6. [AsyncHTTPRequest_WT32_ETH01](examples/WT32_ETH01/AsyncHTTPRequest_WT32_ETH01) on ESP32_DEV with ETH_PHY_LAN8720 #### 6. [AsyncHTTPRequest_WT32_ETH01](examples/WT32_ETH01/AsyncHTTPRequest_WT32_ETH01) on ESP32_DEV with ETH_PHY_LAN8720
``` ```cpp
Starting AsyncHTTPRequest_WT32_ETH01 on ESP32_DEV with ETH_PHY_LAN8720 Starting AsyncHTTPRequest_WT32_ETH01 on ESP32_DEV with ETH_PHY_LAN8720
WebServer_WT32_ETH01 v1.5.1 WebServer_WT32_ETH01 v1.5.1
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
@@ -737,7 +744,7 @@ week_number: 45
#### 7. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP32C3_DEV #### 7. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP32C3_DEV
``` ```cpp
Starting AsyncHTTPRequest_ESP_WiFiManager using LittleFS on ESP32C3_DEV Starting AsyncHTTPRequest_ESP_WiFiManager using LittleFS on ESP32C3_DEV
ESPAsync_WiFiManager v1.15.0 ESPAsync_WiFiManager v1.15.0
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
@@ -788,7 +795,7 @@ week_number: 45
#### 8. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP32S3_DEV #### 8. [AsyncHTTPRequest_ESP_WiFiManager](examples/AsyncHTTPRequest_ESP_WiFiManager) running on ESP32S3_DEV
``` ```cpp
Starting AsyncHTTPRequest_ESP_WiFiManager using LittleFS on ESP32S3_DEV Starting AsyncHTTPRequest_ESP_WiFiManager using LittleFS on ESP32S3_DEV
ESPAsync_WiFiManager v1.15.0 ESPAsync_WiFiManager v1.15.0
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
@@ -841,7 +848,7 @@ week_number: 45
The terminal output of [AsyncHTTPRequest_ESP_Multi example](examples/AsyncHTTPRequest_ESP_Multi) running on `ESP32_DEV` to demonstrate how to send requests to multiple addresses and receive responses from them. The terminal output of [AsyncHTTPRequest_ESP_Multi example](examples/AsyncHTTPRequest_ESP_Multi) running on `ESP32_DEV` to demonstrate how to send requests to multiple addresses and receive responses from them.
``` ```cpp
Starting AsyncHTTPRequest_ESP_Multi using ESP32_DEV Starting AsyncHTTPRequest_ESP_Multi using ESP32_DEV
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
Connecting to WiFi SSID: HueNet1 Connecting to WiFi SSID: HueNet1
@@ -902,7 +909,7 @@ HHH
The terminal output of [AsyncHTTPRequest_ESP8266_Ethernet example](examples/AsyncHTTPRequest_ESP8266_Ethernet) running on `ESP8266_NODEMCU_ESP12E` to demonstrate how to use ESP8266_W5500 Ethernet Async feature. The terminal output of [AsyncHTTPRequest_ESP8266_Ethernet example](examples/AsyncHTTPRequest_ESP8266_Ethernet) running on `ESP8266_NODEMCU_ESP12E` to demonstrate how to use ESP8266_W5500 Ethernet Async feature.
``` ```cpp
Starting AsyncHTTPRequest_ESP8266_Ethernet on ESP8266_NODEMCU_ESP12E using ESP8266_W5500 Ethernet Starting AsyncHTTPRequest_ESP8266_Ethernet on ESP8266_NODEMCU_ESP12E using ESP8266_W5500 Ethernet
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
Connecting ethernet.. Connecting ethernet..
@@ -952,7 +959,7 @@ HH
The terminal output of [AsyncHTTPRequest_ESP8266_Ethernet example](examples/AsyncHTTPRequest_ESP8266_Ethernet) running on `ESP8266_NODEMCU_ESP12E` to demonstrate how to use ESP8266_ENC28J60 Ethernet Async feature. The terminal output of [AsyncHTTPRequest_ESP8266_Ethernet example](examples/AsyncHTTPRequest_ESP8266_Ethernet) running on `ESP8266_NODEMCU_ESP12E` to demonstrate how to use ESP8266_ENC28J60 Ethernet Async feature.
``` ```cpp
Starting AsyncHTTPRequest_ESP8266_Ethernet on ESP8266_NODEMCU_ESP12E using ESP8266_ENC28J60 Ethernet Starting AsyncHTTPRequest_ESP8266_Ethernet on ESP8266_NODEMCU_ESP12E using ESP8266_ENC28J60 Ethernet
AsyncHTTPRequest_Generic v1.10.2 AsyncHTTPRequest_Generic v1.10.2
Connecting to network : .......................................................... Connecting to network : ..........................................................
@@ -1124,7 +1131,7 @@ If you want to contribute to this project:
Copyright (C) <2018> <Bob Lemaire, IoTaWatt, Inc.> Copyright (C) <2018> <Bob Lemaire, IoTaWatt, Inc.>
Copyright 2020- Khoi Hoang Copyright (C) 2020- Khoi Hoang

View File

@@ -1,4 +1,4 @@
# AsyncHTTPRequest_Generic # AsyncHTTPRequest_Generic Library
[![arduino-library-badge](https://www.ardu-badge.com/badge/AsyncHTTPRequest_Generic.svg?)](https://www.ardu-badge.com/AsyncHTTPRequest_Generic) [![arduino-library-badge](https://www.ardu-badge.com/badge/AsyncHTTPRequest_Generic.svg?)](https://www.ardu-badge.com/AsyncHTTPRequest_Generic)
[![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncHTTPRequest_Generic.svg)](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases) [![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncHTTPRequest_Generic.svg)](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases)
@@ -6,6 +6,12 @@
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](#Contributing) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](#Contributing)
[![GitHub issues](https://img.shields.io/github/issues/khoih-prog/AsyncHTTPRequest_Generic.svg)](http://github.com/khoih-prog/AsyncHTTPRequest_Generic/issues) [![GitHub issues](https://img.shields.io/github/issues/khoih-prog/AsyncHTTPRequest_Generic.svg)](http://github.com/khoih-prog/AsyncHTTPRequest_Generic/issues)
<a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Donate to my libraries using BuyMeACoffee" style="height: 50px !important;width: 181px !important;" ></a>
<a href="https://www.buymeacoffee.com/khoihprog6" title="Donate to my libraries using BuyMeACoffee"><img src="https://img.shields.io/badge/buy%20me%20a%20coffee-donate-orange.svg?logo=buy-me-a-coffee&logoColor=FFDD00" style="height: 20px !important;width: 200px !important;" ></a>
<a href="https://profile-counter.glitch.me/khoih-prog/count.svg" title="Total khoih-prog Visitor count"><img src="https://profile-counter.glitch.me/khoih-prog/count.svg" style="height: 30px;width: 200px;"></a>
<a href="https://profile-counter.glitch.me/khoih-prog-AsyncHTTPRequest_Generic/count.svg" title="AsyncHTTPRequest_Generic Visitor count"><img src="https://profile-counter.glitch.me/khoih-prog-AsyncHTTPRequest_Generic/count.svg" style="height: 30px;width: 200px;"></a>
--- ---
--- ---

View File

@@ -47,102 +47,102 @@ Ticker sendHTTPRequest(sendRequest, HTTP_REQUEST_INTERVAL_MS, 0, MILLIS);
void sendRequest(void) void sendRequest(void)
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
Serial.println("\nSending GET Request to " + String(GET_ServerAddress)); Serial.println("\nSending GET Request to " + String(GET_ServerAddress));
requestOpenResult = request.open("GET", GET_ServerAddress); requestOpenResult = request.open("GET", GET_ServerAddress);
//request.setReqHeader("X-CUSTOM-HEADER", "custom_value"); //request.setReqHeader("X-CUSTOM-HEADER", "custom_value");
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
Serial.println(); Serial.println();
AHTTP_LOGDEBUG(F("**************************************")); AHTTP_LOGDEBUG(F("**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
else else
{ {
AHTTP_LOGERROR(F("Response error")); AHTTP_LOGERROR(F("Response error"));
} }
} }
} }
void setup(void) void setup(void)
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncCustomHeader_STM32 on "); Serial.print("\nStart AsyncCustomHeader_STM32 on ");
Serial.println(BOARD_NAME); Serial.println(BOARD_NAME);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// start the ethernet connection and the server // start the ethernet connection and the server
// Use random mac // Use random mac
uint16_t index = millis() % NUMBER_OF_MAC; uint16_t index = millis() % NUMBER_OF_MAC;
// Use Static IP // Use Static IP
//Ethernet.begin(mac[index], ip); //Ethernet.begin(mac[index], ip);
// Use DHCP dynamic IP and random mac // Use DHCP dynamic IP and random mac
Ethernet.begin(mac[index]); Ethernet.begin(mac[index]);
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(Ethernet.localIP()); Serial.println(Ethernet.localIP());
Serial.println(); Serial.println();
request.setDebug(false); request.setDebug(false);
// 5s timeout // 5s timeout
request.setTimeout(5); request.setTimeout(5);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
sendHTTPRequest.start(); //start the ticker. sendHTTPRequest.start(); //start the ticker.
// Send first request now // Send first request now
delay(10000); delay(10000);
sendRequest(); sendRequest();
} }
void loop(void) void loop(void)
{ {
sendHTTPRequest.update(); sendHTTPRequest.update();
} }

View File

@@ -46,54 +46,54 @@
#if defined(STM32F0) #if defined(STM32F0)
#warning STM32F0 board selected #warning STM32F0 board selected
#define BOARD_TYPE "STM32F0" #define BOARD_TYPE "STM32F0"
#elif defined(STM32F1) #elif defined(STM32F1)
#warning STM32F1 board selected #warning STM32F1 board selected
#define BOARD_TYPE "STM32F1" #define BOARD_TYPE "STM32F1"
#elif defined(STM32F2) #elif defined(STM32F2)
#warning STM32F2 board selected #warning STM32F2 board selected
#define BOARD_TYPE "STM32F2" #define BOARD_TYPE "STM32F2"
#elif defined(STM32F3) #elif defined(STM32F3)
#warning STM32F3 board selected #warning STM32F3 board selected
#define BOARD_TYPE "STM32F3" #define BOARD_TYPE "STM32F3"
#elif defined(STM32F4) #elif defined(STM32F4)
#warning STM32F4 board selected #warning STM32F4 board selected
#define BOARD_TYPE "STM32F4" #define BOARD_TYPE "STM32F4"
#elif defined(STM32F7) #elif defined(STM32F7)
#warning STM32F7 board selected #warning STM32F7 board selected
#define BOARD_TYPE "STM32F7" #define BOARD_TYPE "STM32F7"
#elif defined(STM32L0) #elif defined(STM32L0)
#warning STM32L0 board selected #warning STM32L0 board selected
#define BOARD_TYPE "STM32L0" #define BOARD_TYPE "STM32L0"
#elif defined(STM32L1) #elif defined(STM32L1)
#warning STM32L1 board selected #warning STM32L1 board selected
#define BOARD_TYPE "STM32L1" #define BOARD_TYPE "STM32L1"
#elif defined(STM32L4) #elif defined(STM32L4)
#warning STM32L4 board selected #warning STM32L4 board selected
#define BOARD_TYPE "STM32L4" #define BOARD_TYPE "STM32L4"
#elif defined(STM32H7) #elif defined(STM32H7)
#warning STM32H7 board selected #warning STM32H7 board selected
#define BOARD_TYPE "STM32H7" #define BOARD_TYPE "STM32H7"
#elif defined(STM32G0) #elif defined(STM32G0)
#warning STM32G0 board selected #warning STM32G0 board selected
#define BOARD_TYPE "STM32G0" #define BOARD_TYPE "STM32G0"
#elif defined(STM32G4) #elif defined(STM32G4)
#warning STM32G4 board selected #warning STM32G4 board selected
#define BOARD_TYPE "STM32G4" #define BOARD_TYPE "STM32G4"
#elif defined(STM32WB) #elif defined(STM32WB)
#warning STM32WB board selected #warning STM32WB board selected
#define BOARD_TYPE "STM32WB" #define BOARD_TYPE "STM32WB"
#elif defined(STM32MP1) #elif defined(STM32MP1)
#warning STM32MP1 board selected #warning STM32MP1 board selected
#define BOARD_TYPE "STM32MP1" #define BOARD_TYPE "STM32MP1"
#else #else
#warning STM32 unknown board selected #warning STM32 unknown board selected
#define BOARD_TYPE "STM32 Unknown" #define BOARD_TYPE "STM32 Unknown"
#endif #endif
#ifndef BOARD_NAME #ifndef BOARD_NAME
#define BOARD_NAME BOARD_TYPE #define BOARD_NAME BOARD_TYPE
#endif #endif
#include <LwIP.h> #include <LwIP.h>
@@ -106,26 +106,26 @@
byte mac[][NUMBER_OF_MAC] = byte mac[][NUMBER_OF_MAC] =
{ {
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 },
}; };
// Select the static IP address according to your local network // Select the static IP address according to your local network

View File

@@ -61,132 +61,132 @@ Ticker sendHTTPRequest(sendRequest, HTTP_REQUEST_INTERVAL_MS, 0, MILLIS);
void sendRequest(void) void sendRequest(void)
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
requestOpenResult = request.open("GET", (GET_ServerAddress + dweetName + String(millis() / 1000)).c_str() ); requestOpenResult = request.open("GET", (GET_ServerAddress + dweetName + String(millis() / 1000)).c_str() );
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void parseResponse(String responseText) void parseResponse(String responseText)
{ {
/* /*
Typical response is: Typical response is:
{"this":"succeeded", {"this":"succeeded",
"by":"getting", "by":"getting",
"the":"dweets", "the":"dweets",
"with":[{"thing":"my-thing-name", "with":[{"thing":"my-thing-name",
"created":"2016-02-16T05:10:36.589Z", "created":"2016-02-16T05:10:36.589Z",
"content":{"sensorValue":456}}]} "content":{"sensorValue":456}}]}
You want "content": numberValue You want "content": numberValue
*/ */
// now parse the response looking for "content": // now parse the response looking for "content":
int labelStart = responseText.indexOf("content\":"); int labelStart = responseText.indexOf("content\":");
// find the first { after "content": // find the first { after "content":
int contentStart = responseText.indexOf("{", labelStart); int contentStart = responseText.indexOf("{", labelStart);
// find the following } and get what's between the braces: // find the following } and get what's between the braces:
int contentEnd = responseText.indexOf("}", labelStart); int contentEnd = responseText.indexOf("}", labelStart);
String content = responseText.substring(contentStart + 1, contentEnd); String content = responseText.substring(contentStart + 1, contentEnd);
Serial.println(content); Serial.println(content);
// now get the value after the colon, and convert to an int: // now get the value after the colon, and convert to an int:
int valueStart = content.indexOf(":"); int valueStart = content.indexOf(":");
String valueString = content.substring(valueStart + 1); String valueString = content.substring(valueStart + 1);
int number = valueString.toInt(); int number = valueString.toInt();
Serial.print("Value string: "); Serial.print("Value string: ");
Serial.println(valueString); Serial.println(valueString);
Serial.print("Actual value: "); Serial.print("Actual value: ");
Serial.println(number); Serial.println(number);
} }
void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState) void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
Serial.println(); Serial.println();
AHTTP_LOGDEBUG(F("**************************************")); AHTTP_LOGDEBUG(F("**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
String responseText = request->responseText(); String responseText = request->responseText();
Serial.println("\n**************************************"); Serial.println("\n**************************************");
//Serial.println(request->responseText()); //Serial.println(request->responseText());
Serial.println(responseText); Serial.println(responseText);
Serial.println("**************************************"); Serial.println("**************************************");
parseResponse(responseText); parseResponse(responseText);
request->setDebug(false); request->setDebug(false);
} }
else else
{ {
AHTTP_LOGERROR(F("Response error")); AHTTP_LOGERROR(F("Response error"));
} }
} }
} }
void setup(void) void setup(void)
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncDweetGET_STM32 on "); Serial.print("\nStart AsyncDweetGET_STM32 on ");
Serial.println(BOARD_NAME); Serial.println(BOARD_NAME);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// start the ethernet connection and the server // start the ethernet connection and the server
// Use random mac // Use random mac
uint16_t index = millis() % NUMBER_OF_MAC; uint16_t index = millis() % NUMBER_OF_MAC;
// Use Static IP // Use Static IP
//Ethernet.begin(mac[index], ip); //Ethernet.begin(mac[index], ip);
// Use DHCP dynamic IP and random mac // Use DHCP dynamic IP and random mac
Ethernet.begin(mac[index]); Ethernet.begin(mac[index]);
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(Ethernet.localIP()); Serial.println(Ethernet.localIP());
Serial.println(); Serial.println();
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
sendHTTPRequest.start(); //start the ticker. sendHTTPRequest.start(); //start the ticker.
} }
void loop(void) void loop(void)
{ {
sendHTTPRequest.update(); sendHTTPRequest.update();
} }

View File

@@ -46,54 +46,54 @@
#if defined(STM32F0) #if defined(STM32F0)
#warning STM32F0 board selected #warning STM32F0 board selected
#define BOARD_TYPE "STM32F0" #define BOARD_TYPE "STM32F0"
#elif defined(STM32F1) #elif defined(STM32F1)
#warning STM32F1 board selected #warning STM32F1 board selected
#define BOARD_TYPE "STM32F1" #define BOARD_TYPE "STM32F1"
#elif defined(STM32F2) #elif defined(STM32F2)
#warning STM32F2 board selected #warning STM32F2 board selected
#define BOARD_TYPE "STM32F2" #define BOARD_TYPE "STM32F2"
#elif defined(STM32F3) #elif defined(STM32F3)
#warning STM32F3 board selected #warning STM32F3 board selected
#define BOARD_TYPE "STM32F3" #define BOARD_TYPE "STM32F3"
#elif defined(STM32F4) #elif defined(STM32F4)
#warning STM32F4 board selected #warning STM32F4 board selected
#define BOARD_TYPE "STM32F4" #define BOARD_TYPE "STM32F4"
#elif defined(STM32F7) #elif defined(STM32F7)
#warning STM32F7 board selected #warning STM32F7 board selected
#define BOARD_TYPE "STM32F7" #define BOARD_TYPE "STM32F7"
#elif defined(STM32L0) #elif defined(STM32L0)
#warning STM32L0 board selected #warning STM32L0 board selected
#define BOARD_TYPE "STM32L0" #define BOARD_TYPE "STM32L0"
#elif defined(STM32L1) #elif defined(STM32L1)
#warning STM32L1 board selected #warning STM32L1 board selected
#define BOARD_TYPE "STM32L1" #define BOARD_TYPE "STM32L1"
#elif defined(STM32L4) #elif defined(STM32L4)
#warning STM32L4 board selected #warning STM32L4 board selected
#define BOARD_TYPE "STM32L4" #define BOARD_TYPE "STM32L4"
#elif defined(STM32H7) #elif defined(STM32H7)
#warning STM32H7 board selected #warning STM32H7 board selected
#define BOARD_TYPE "STM32H7" #define BOARD_TYPE "STM32H7"
#elif defined(STM32G0) #elif defined(STM32G0)
#warning STM32G0 board selected #warning STM32G0 board selected
#define BOARD_TYPE "STM32G0" #define BOARD_TYPE "STM32G0"
#elif defined(STM32G4) #elif defined(STM32G4)
#warning STM32G4 board selected #warning STM32G4 board selected
#define BOARD_TYPE "STM32G4" #define BOARD_TYPE "STM32G4"
#elif defined(STM32WB) #elif defined(STM32WB)
#warning STM32WB board selected #warning STM32WB board selected
#define BOARD_TYPE "STM32WB" #define BOARD_TYPE "STM32WB"
#elif defined(STM32MP1) #elif defined(STM32MP1)
#warning STM32MP1 board selected #warning STM32MP1 board selected
#define BOARD_TYPE "STM32MP1" #define BOARD_TYPE "STM32MP1"
#else #else
#warning STM32 unknown board selected #warning STM32 unknown board selected
#define BOARD_TYPE "STM32 Unknown" #define BOARD_TYPE "STM32 Unknown"
#endif #endif
#ifndef BOARD_NAME #ifndef BOARD_NAME
#define BOARD_NAME BOARD_TYPE #define BOARD_NAME BOARD_TYPE
#endif #endif
#include <LwIP.h> #include <LwIP.h>
@@ -106,26 +106,26 @@
byte mac[][NUMBER_OF_MAC] = byte mac[][NUMBER_OF_MAC] =
{ {
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 },
}; };
// Select the static IP address according to your local network // Select the static IP address according to your local network

View File

@@ -52,137 +52,137 @@ Ticker sendHTTPRequest(sendRequest, HTTP_REQUEST_INTERVAL_MS, 0, MILLIS);
void sendRequest(void) void sendRequest(void)
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
String postData = "sensorValue="; String postData = "sensorValue=";
postData += analogRead(A0); postData += analogRead(A0);
Serial.println("\nMaking new POST request"); Serial.println("\nMaking new POST request");
requestOpenResult = request.open("POST", (POST_ServerAddress + dweetName + postData).c_str() ); requestOpenResult = request.open("POST", (POST_ServerAddress + dweetName + postData).c_str() );
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void parseResponse(String responseText) void parseResponse(String responseText)
{ {
/* /*
Typical response is: Typical response is:
{"this":"succeeded", {"this":"succeeded",
"by":"getting", "by":"getting",
"the":"dweets", "the":"dweets",
"with":[{"thing":"my-thing-name", "with":[{"thing":"my-thing-name",
"created":"2016-02-16T05:10:36.589Z", "created":"2016-02-16T05:10:36.589Z",
"content":{"sensorValue":456}}]} "content":{"sensorValue":456}}]}
You want "content": numberValue You want "content": numberValue
*/ */
// now parse the response looking for "content": // now parse the response looking for "content":
int labelStart = responseText.indexOf("content\":"); int labelStart = responseText.indexOf("content\":");
// find the first { after "content": // find the first { after "content":
int contentStart = responseText.indexOf("{", labelStart); int contentStart = responseText.indexOf("{", labelStart);
// find the following } and get what's between the braces: // find the following } and get what's between the braces:
int contentEnd = responseText.indexOf("}", labelStart); int contentEnd = responseText.indexOf("}", labelStart);
String content = responseText.substring(contentStart + 1, contentEnd); String content = responseText.substring(contentStart + 1, contentEnd);
Serial.println(content); Serial.println(content);
// now get the value after the colon, and convert to an int: // now get the value after the colon, and convert to an int:
int valueStart = content.indexOf(":"); int valueStart = content.indexOf(":");
String valueString = content.substring(valueStart + 1); String valueString = content.substring(valueStart + 1);
int number = valueString.toInt(); int number = valueString.toInt();
Serial.print("Value string: "); Serial.print("Value string: ");
Serial.println(valueString); Serial.println(valueString);
Serial.print("Actual value: "); Serial.print("Actual value: ");
Serial.println(number); Serial.println(number);
} }
void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState) void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
Serial.println(); Serial.println();
AHTTP_LOGDEBUG(F("**************************************")); AHTTP_LOGDEBUG(F("**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
String responseText = request->responseText(); String responseText = request->responseText();
Serial.println("\n**************************************"); Serial.println("\n**************************************");
//Serial.println(request->responseText()); //Serial.println(request->responseText());
Serial.println(responseText); Serial.println(responseText);
Serial.println("**************************************"); Serial.println("**************************************");
parseResponse(responseText); parseResponse(responseText);
request->setDebug(false); request->setDebug(false);
} }
else else
{ {
AHTTP_LOGERROR(F("Response error")); AHTTP_LOGERROR(F("Response error"));
} }
} }
} }
void setup(void) void setup(void)
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncDweetPOST_STM32 on "); Serial.print("\nStart AsyncDweetPOST_STM32 on ");
Serial.println(BOARD_NAME); Serial.println(BOARD_NAME);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// start the ethernet connection and the server // start the ethernet connection and the server
// Use random mac // Use random mac
uint16_t index = millis() % NUMBER_OF_MAC; uint16_t index = millis() % NUMBER_OF_MAC;
// Use Static IP // Use Static IP
//Ethernet.begin(mac[index], ip); //Ethernet.begin(mac[index], ip);
// Use DHCP dynamic IP and random mac // Use DHCP dynamic IP and random mac
Ethernet.begin(mac[index]); Ethernet.begin(mac[index]);
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(Ethernet.localIP()); Serial.println(Ethernet.localIP());
Serial.println(); Serial.println();
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
sendHTTPRequest.start(); //start the ticker. sendHTTPRequest.start(); //start the ticker.
} }
void loop(void) void loop(void)
{ {
sendHTTPRequest.update(); sendHTTPRequest.update();
} }

View File

@@ -46,54 +46,54 @@
#if defined(STM32F0) #if defined(STM32F0)
#warning STM32F0 board selected #warning STM32F0 board selected
#define BOARD_TYPE "STM32F0" #define BOARD_TYPE "STM32F0"
#elif defined(STM32F1) #elif defined(STM32F1)
#warning STM32F1 board selected #warning STM32F1 board selected
#define BOARD_TYPE "STM32F1" #define BOARD_TYPE "STM32F1"
#elif defined(STM32F2) #elif defined(STM32F2)
#warning STM32F2 board selected #warning STM32F2 board selected
#define BOARD_TYPE "STM32F2" #define BOARD_TYPE "STM32F2"
#elif defined(STM32F3) #elif defined(STM32F3)
#warning STM32F3 board selected #warning STM32F3 board selected
#define BOARD_TYPE "STM32F3" #define BOARD_TYPE "STM32F3"
#elif defined(STM32F4) #elif defined(STM32F4)
#warning STM32F4 board selected #warning STM32F4 board selected
#define BOARD_TYPE "STM32F4" #define BOARD_TYPE "STM32F4"
#elif defined(STM32F7) #elif defined(STM32F7)
#warning STM32F7 board selected #warning STM32F7 board selected
#define BOARD_TYPE "STM32F7" #define BOARD_TYPE "STM32F7"
#elif defined(STM32L0) #elif defined(STM32L0)
#warning STM32L0 board selected #warning STM32L0 board selected
#define BOARD_TYPE "STM32L0" #define BOARD_TYPE "STM32L0"
#elif defined(STM32L1) #elif defined(STM32L1)
#warning STM32L1 board selected #warning STM32L1 board selected
#define BOARD_TYPE "STM32L1" #define BOARD_TYPE "STM32L1"
#elif defined(STM32L4) #elif defined(STM32L4)
#warning STM32L4 board selected #warning STM32L4 board selected
#define BOARD_TYPE "STM32L4" #define BOARD_TYPE "STM32L4"
#elif defined(STM32H7) #elif defined(STM32H7)
#warning STM32H7 board selected #warning STM32H7 board selected
#define BOARD_TYPE "STM32H7" #define BOARD_TYPE "STM32H7"
#elif defined(STM32G0) #elif defined(STM32G0)
#warning STM32G0 board selected #warning STM32G0 board selected
#define BOARD_TYPE "STM32G0" #define BOARD_TYPE "STM32G0"
#elif defined(STM32G4) #elif defined(STM32G4)
#warning STM32G4 board selected #warning STM32G4 board selected
#define BOARD_TYPE "STM32G4" #define BOARD_TYPE "STM32G4"
#elif defined(STM32WB) #elif defined(STM32WB)
#warning STM32WB board selected #warning STM32WB board selected
#define BOARD_TYPE "STM32WB" #define BOARD_TYPE "STM32WB"
#elif defined(STM32MP1) #elif defined(STM32MP1)
#warning STM32MP1 board selected #warning STM32MP1 board selected
#define BOARD_TYPE "STM32MP1" #define BOARD_TYPE "STM32MP1"
#else #else
#warning STM32 unknown board selected #warning STM32 unknown board selected
#define BOARD_TYPE "STM32 Unknown" #define BOARD_TYPE "STM32 Unknown"
#endif #endif
#ifndef BOARD_NAME #ifndef BOARD_NAME
#define BOARD_NAME BOARD_TYPE #define BOARD_NAME BOARD_TYPE
#endif #endif
#include <LwIP.h> #include <LwIP.h>
@@ -106,26 +106,26 @@
byte mac[][NUMBER_OF_MAC] = byte mac[][NUMBER_OF_MAC] =
{ {
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 },
}; };
// Select the static IP address according to your local network // Select the static IP address according to your local network

View File

@@ -41,7 +41,7 @@
//************************************************************************************************************* //*************************************************************************************************************
#if !( defined(ESP8266) || defined(ESP32) ) #if !( defined(ESP8266) || defined(ESP32) )
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting. #error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
#endif #endif
#define ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET "AsyncHTTPRequest_Generic v1.10.2" #define ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET "AsyncHTTPRequest_Generic v1.10.2"
@@ -63,9 +63,9 @@ const char* ssid = "your_ssid";
const char* password = "your_pass"; const char* password = "your_pass";
#if (ESP8266) #if (ESP8266)
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#elif (ESP32) #elif (ESP32)
#include <WiFi.h> #include <WiFi.h>
#endif #endif
// Seconds for timeout, default is 3s // Seconds for timeout, default is 3s
@@ -85,22 +85,22 @@ Ticker ticker1;
void heartBeatPrint(void) void heartBeatPrint(void)
{ {
static int num = 1; static int num = 1;
if (WiFi.status() == WL_CONNECTED) if (WiFi.status() == WL_CONNECTED)
Serial.print(F("H")); // H means connected to WiFi Serial.print(F("H")); // H means connected to WiFi
else else
Serial.print(F("F")); // F means not connected to WiFi Serial.print(F("F")); // F means not connected to WiFi
if (num == 80) if (num == 80)
{ {
Serial.println(); Serial.println();
num = 1; num = 1;
} }
else if (num++ % 10 == 0) else if (num++ % 10 == 0)
{ {
Serial.print(F(" ")); Serial.print(F(" "));
} }
} }
// To replace with your real APP_API // To replace with your real APP_API
@@ -126,111 +126,111 @@ uint8_t requestIndex = 0;
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
requestOpenResult = request.open("GET", requestAll[requestIndex] ); requestOpenResult = request.open("GET", requestAll[requestIndex] );
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println(F("Can't send bad request")); Serial.println(F("Can't send bad request"));
} }
} }
else else
{ {
Serial.println(F("Can't send request")); Serial.println(F("Can't send request"));
} }
} }
void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState) void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.print(F("\n***************")); Serial.print(F("\n***************"));
Serial.print(requestName[ requestIndex ]); Serial.print(requestName[ requestIndex ]);
Serial.println(F("***************")); Serial.println(F("***************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
#if 1 #if 1
// Bypass hourly // Bypass hourly
if (requestIndex == 1) if (requestIndex == 1)
requestIndex = 3; requestIndex = 3;
else else
requestIndex = (requestIndex + 1) % NUM_REQUESTS; requestIndex = (requestIndex + 1) % NUM_REQUESTS;
#else #else
// hourly too long, not display anyway. Not enough heap. // hourly too long, not display anyway. Not enough heap.
requestIndex = (requestIndex + 1) % NUM_REQUESTS; requestIndex = (requestIndex + 1) % NUM_REQUESTS;
#endif #endif
request->setDebug(false); request->setDebug(false);
} }
} }
void setup() void setup()
{ {
// put your setup code here, to run once: // put your setup code here, to run once:
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
delay(200); delay(200);
Serial.print(F("\nStarting AsyncHTTPMultiRequests using ")); Serial.print(F("\nStarting AsyncHTTPMultiRequests using "));
Serial.println(ARDUINO_BOARD); Serial.println(ARDUINO_BOARD);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print(F("Warning. Must use this example on Version equal or later than : ")); Serial.print(F("Warning. Must use this example on Version equal or later than : "));
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); WiFi.begin(ssid, password);
Serial.print(F("Connecting to WiFi SSID: ")); Serial.print(F("Connecting to WiFi SSID: "));
Serial.println(ssid); Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) while (WiFi.status() != WL_CONNECTED)
{ {
delay(500); delay(500);
Serial.print(F(".")); Serial.print(F("."));
} }
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest); ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest);
ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint); ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint);
// Send first request now // Send first request now
sendRequest(); sendRequest();
} }
void loop() void loop()

View File

@@ -41,7 +41,7 @@
//************************************************************************************************************* //*************************************************************************************************************
#if !( defined(ESP8266) || defined(ESP32) ) #if !( defined(ESP8266) || defined(ESP32) )
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting. #error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
#endif #endif
// Level from 0-4 // Level from 0-4
@@ -60,9 +60,9 @@ const char* ssid = "your_ssid";
const char* password = "your_pass"; const char* password = "your_pass";
#if (ESP8266) #if (ESP8266)
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#elif (ESP32) #elif (ESP32)
#include <WiFi.h> #include <WiFi.h>
#endif #endif
#define ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET "AsyncHTTPRequest_Generic v1.10.2" #define ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET "AsyncHTTPRequest_Generic v1.10.2"
@@ -85,103 +85,103 @@ Ticker ticker1;
void heartBeatPrint() void heartBeatPrint()
{ {
static int num = 1; static int num = 1;
if (WiFi.status() == WL_CONNECTED) if (WiFi.status() == WL_CONNECTED)
Serial.print(F("H")); // H means connected to WiFi Serial.print(F("H")); // H means connected to WiFi
else else
Serial.print(F("F")); // F means not connected to WiFi Serial.print(F("F")); // F means not connected to WiFi
if (num == 80) if (num == 80)
{ {
Serial.println(); Serial.println();
num = 1; num = 1;
} }
else if (num++ % 10 == 0) else if (num++ % 10 == 0)
{ {
Serial.print(F(" ")); Serial.print(F(" "));
} }
} }
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
//requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt"); //requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt");
requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt"); requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt");
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println(F("Can't send bad request")); Serial.println(F("Can't send bad request"));
} }
} }
else else
{ {
Serial.println(F("Can't send request")); Serial.println(F("Can't send request"));
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
} }
} }
void setup() void setup()
{ {
// put your setup code here, to run once: // put your setup code here, to run once:
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print(F("\nStarting AsyncHTTPRequest_ESP using ")); Serial.print(F("\nStarting AsyncHTTPRequest_ESP using "));
Serial.println(ARDUINO_BOARD); Serial.println(ARDUINO_BOARD);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); WiFi.begin(ssid, password);
Serial.print(F("Connecting to WiFi SSID: ")); Serial.print(F("Connecting to WiFi SSID: "));
Serial.println(ssid); Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) while (WiFi.status() != WL_CONNECTED)
{ {
delay(500); delay(500);
Serial.print(F(".")); Serial.print(F("."));
} }
Serial.print(F("\nAsyncHTTPRequest @ IP : ")); Serial.print(F("\nAsyncHTTPRequest @ IP : "));
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest); ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest);
ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint); ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint);
// Send first request now // Send first request now
sendRequest(); sendRequest();
} }
void loop() void loop()

View File

@@ -41,7 +41,7 @@
//************************************************************************************************************* //*************************************************************************************************************
#if !( defined(ESP8266) ) #if !( defined(ESP8266) )
#error This code is intended to run on the ESP8266 platform! Please check your Tools->Board setting. #error This code is intended to run on the ESP8266 platform! Please check your Tools->Board setting.
#endif #endif
// Level from 0-4 // Level from 0-4
@@ -65,27 +65,27 @@
#define CSPIN 16 // 5 #define CSPIN 16 // 5
#if USING_W5500 #if USING_W5500
#include "W5500lwIP.h" #include "W5500lwIP.h"
#define SHIELD_TYPE "ESP8266_W5500 Ethernet" #define SHIELD_TYPE "ESP8266_W5500 Ethernet"
Wiznet5500lwIP eth(CSPIN); Wiznet5500lwIP eth(CSPIN);
#elif USING_W5100 #elif USING_W5100
#include <W5100lwIP.h> #include <W5100lwIP.h>
#define SHIELD_TYPE "ESP8266_W5100 Ethernet" #define SHIELD_TYPE "ESP8266_W5100 Ethernet"
Wiznet5100lwIP eth(CSPIN); Wiznet5100lwIP eth(CSPIN);
#elif USING_ENC28J60 #elif USING_ENC28J60
#include <ENC28J60lwIP.h> #include <ENC28J60lwIP.h>
#define SHIELD_TYPE "ESP8266_ENC28J60 Ethernet" #define SHIELD_TYPE "ESP8266_ENC28J60 Ethernet"
ENC28J60lwIP eth(CSPIN); ENC28J60lwIP eth(CSPIN);
#else #else
// default if none selected // default if none selected
#include "W5500lwIP.h" #include "W5500lwIP.h"
Wiznet5500lwIP eth(CSPIN); Wiznet5500lwIP eth(CSPIN);
#endif #endif
@@ -115,126 +115,126 @@ Ticker ticker1;
void heartBeatPrint() void heartBeatPrint()
{ {
static int num = 1; static int num = 1;
if (eth.connected()) if (eth.connected())
Serial.print(F("H")); // H means connected to Ethernet Serial.print(F("H")); // H means connected to Ethernet
else else
Serial.print(F("F")); // F means not connected to Ethernet Serial.print(F("F")); // F means not connected to Ethernet
if (num == 80) if (num == 80)
{ {
Serial.println(); Serial.println();
num = 1; num = 1;
} }
else if (num++ % 10 == 0) else if (num++ % 10 == 0)
{ {
Serial.print(F(" ")); Serial.print(F(" "));
} }
} }
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
//requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt"); //requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt");
requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt"); requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt");
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println(F("Can't send bad request")); Serial.println(F("Can't send bad request"));
} }
} }
else else
{ {
Serial.println(F("Can't send request")); Serial.println(F("Can't send request"));
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
} }
} }
void initEthernet() void initEthernet()
{ {
SPI.begin(); SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4); SPI.setClockDivider(SPI_CLOCK_DIV4);
SPI.setBitOrder(MSBFIRST); SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0); SPI.setDataMode(SPI_MODE0);
eth.setDefault(); eth.setDefault();
if (!eth.begin()) if (!eth.begin())
{ {
Serial.println("No Ethernet hardware ... Stop here"); Serial.println("No Ethernet hardware ... Stop here");
while (true) while (true)
{ {
delay(1000); delay(1000);
} }
} }
else else
{ {
Serial.print("Connecting to network : "); Serial.print("Connecting to network : ");
while (!eth.connected()) while (!eth.connected())
{ {
Serial.print("."); Serial.print(".");
delay(1000); delay(1000);
} }
} }
Serial.println(); Serial.println();
Serial.print("Ethernet IP address: "); Serial.print("Ethernet IP address: ");
Serial.println(eth.localIP()); Serial.println(eth.localIP());
} }
void setup() void setup()
{ {
// put your setup code here, to run once: // put your setup code here, to run once:
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
delay(200); delay(200);
Serial.print("\nStart AsyncHTTPRequest_ESP8266_Ethernet on "); Serial.print("\nStart AsyncHTTPRequest_ESP8266_Ethernet on ");
Serial.print(ARDUINO_BOARD); Serial.print(ARDUINO_BOARD);
Serial.print(" using "); Serial.print(" using ");
Serial.println(SHIELD_TYPE); Serial.println(SHIELD_TYPE);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
initEthernet(); initEthernet();
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest); ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest);
ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint); ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint);
// Send first request now // Send first request now
sendRequest(); sendRequest();
} }
void loop() void loop()

View File

@@ -19,7 +19,7 @@
*****************************************************************************************************************************/ *****************************************************************************************************************************/
#if !( defined(ESP8266) || defined(ESP32) ) #if !( defined(ESP8266) || defined(ESP32) )
#error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting. #error This code is intended to run on the ESP8266 or ESP32 platform! Please check your Tools->Board setting.
#endif #endif
// Level from 0-4 // Level from 0-4
@@ -39,9 +39,9 @@ const char* ssid = "your_ssid";
const char* password = "your_pass"; const char* password = "your_pass";
#if (ESP8266) #if (ESP8266)
#include <ESP8266WiFi.h> #include <ESP8266WiFi.h>
#elif (ESP32) #elif (ESP32)
#include <WiFi.h> #include <WiFi.h>
#endif #endif
// Seconds for timeout, default is 3s // Seconds for timeout, default is 3s
@@ -59,8 +59,8 @@ const char* password = "your_pass";
const char* addreses[][NUM_DIFFERENT_SITES] = const char* addreses[][NUM_DIFFERENT_SITES] =
{ {
{"http://worldtimeapi.org/api/timezone/America/Toronto.txt", "http://worldtimeapi.org/api/timezone/Europe/Prague.txt"}, {"http://worldtimeapi.org/api/timezone/America/Toronto.txt", "http://worldtimeapi.org/api/timezone/Europe/Prague.txt"},
{"http://www.myexternalip.com/raw"} {"http://www.myexternalip.com/raw"}
}; };
#define NUM_ENTRIES_SITE_0 2 #define NUM_ENTRIES_SITE_0 2
@@ -88,161 +88,161 @@ Ticker ticker1;
void heartBeatPrint() void heartBeatPrint()
{ {
static int num = 1; static int num = 1;
if (WiFi.status() == WL_CONNECTED) if (WiFi.status() == WL_CONNECTED)
Serial.print(F("H")); // H means connected to WiFi Serial.print(F("H")); // H means connected to WiFi
else else
Serial.print(F("F")); // F means not connected to WiFi Serial.print(F("F")); // F means not connected to WiFi
if (num == 80) if (num == 80)
{ {
Serial.println(); Serial.println();
num = 1; num = 1;
} }
else if (num++ % 10 == 0) else if (num++ % 10 == 0)
{ {
Serial.print(F(" ")); Serial.print(F(" "));
} }
} }
void sendRequest(uint16_t index) void sendRequest(uint16_t index)
{ {
static bool requestOpenResult; static bool requestOpenResult;
reqCount[index]--; reqCount[index]--;
readySend[index] = false; readySend[index] = false;
requestOpenResult = request[index].open("GET", addreses[index][reqCount[index]]); requestOpenResult = request[index].open("GET", addreses[index][reqCount[index]]);
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
Serial.print("\nSending request: "); Serial.print("\nSending request: ");
request[index].send(); request[index].send();
} }
else else
{ {
Serial.print("\nCan't send bad request : "); Serial.print("\nCan't send bad request : ");
} }
Serial.println(addreses[index][reqCount[index]]); Serial.println(addreses[index][reqCount[index]]);
} }
void sendRequest0() void sendRequest0()
{ {
sendRequest(0); sendRequest(0);
} }
void sendRequest1() void sendRequest1()
{ {
sendRequest(1); sendRequest(1);
} }
void sendRequests() void sendRequests()
{ {
reqCount[0] = NUM_ENTRIES_SITE_0; reqCount[0] = NUM_ENTRIES_SITE_0;
reqCount[1] = NUM_ENTRIES_SITE_1; reqCount[1] = NUM_ENTRIES_SITE_1;
} }
void requestCB0(void* optParm, AsyncHTTPRequest* thisRequest, int readyState) void requestCB0(void* optParm, AsyncHTTPRequest* thisRequest, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGWARN(F("\n**************************************")); AHTTP_LOGWARN(F("\n**************************************"));
AHTTP_LOGWARN1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGWARN1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
else else
{ {
AHTTP_LOGERROR(F("Response error")); AHTTP_LOGERROR(F("Response error"));
} }
thisRequest->setDebug(false); thisRequest->setDebug(false);
readySend[0] = true; readySend[0] = true;
} }
} }
void requestCB1(void* optParm, AsyncHTTPRequest* thisRequest, int readyState) void requestCB1(void* optParm, AsyncHTTPRequest* thisRequest, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGWARN(F("\n**************************************")); AHTTP_LOGWARN(F("\n**************************************"));
AHTTP_LOGWARN1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGWARN1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
else else
{ {
AHTTP_LOGERROR(F("Response error")); AHTTP_LOGERROR(F("Response error"));
} }
thisRequest->setDebug(false); thisRequest->setDebug(false);
readySend[1] = true; readySend[1] = true;
} }
} }
void setup() void setup()
{ {
// put your setup code here, to run once: // put your setup code here, to run once:
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncHTTPRequest_ESP_Multi on "); Serial.print("\nStart AsyncHTTPRequest_ESP_Multi on ");
Serial.println(ARDUINO_BOARD); Serial.println(ARDUINO_BOARD);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password); WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi SSID: " + String(ssid)); Serial.println("Connecting to WiFi SSID: " + String(ssid));
while (WiFi.status() != WL_CONNECTED) while (WiFi.status() != WL_CONNECTED)
{ {
delay(1000); delay(1000);
Serial.print("."); Serial.print(".");
} }
Serial.print(F("\nAsyncHTTPSRequest @ IP : ")); Serial.print(F("\nAsyncHTTPSRequest @ IP : "));
Serial.println(WiFi.localIP()); Serial.println(WiFi.localIP());
for (int index = 0; index < NUM_DIFFERENT_SITES; index++) for (int index = 0; index < NUM_DIFFERENT_SITES; index++)
{ {
request[index].setDebug(false); request[index].setDebug(false);
request[index].onReadyStateChange(requestCB[index]); request[index].onReadyStateChange(requestCB[index]);
} }
ticker.attach(HTTP_REQUEST_INTERVAL, sendRequests); ticker.attach(HTTP_REQUEST_INTERVAL, sendRequests);
ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint); ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint);
} }
void loop() void loop()
{ {
for (int index = 0; index < NUM_DIFFERENT_SITES; index++) for (int index = 0; index < NUM_DIFFERENT_SITES; index++)
{ {
if ((reqCount[index] > 0) && readySend[index]) if ((reqCount[index] > 0) && readySend[index])
{ {
sendRequestCB[index](); sendRequestCB[index]();
// Don't send too fast // Don't send too fast
delay(1000); delay(1000);
} }
} }
} }

View File

@@ -65,91 +65,91 @@ Ticker sendHTTPRequest(sendRequest, HTTP_REQUEST_INTERVAL_MS, 0, MILLIS);
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
//requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt"); //requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt");
requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt"); requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt");
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
} }
} }
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncHTTPRequest_STM32 on "); Serial.print("\nStart AsyncHTTPRequest_STM32 on ");
Serial.println(BOARD_NAME); Serial.println(BOARD_NAME);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// start the ethernet connection and the server // start the ethernet connection and the server
// Use random mac // Use random mac
uint16_t index = millis() % NUMBER_OF_MAC; uint16_t index = millis() % NUMBER_OF_MAC;
// Use Static IP // Use Static IP
//Ethernet.begin(mac[index], ip); //Ethernet.begin(mac[index], ip);
// Use DHCP dynamic IP and random mac // Use DHCP dynamic IP and random mac
Ethernet.begin(mac[index]); Ethernet.begin(mac[index]);
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(Ethernet.localIP()); Serial.println(Ethernet.localIP());
Serial.println(); Serial.println();
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
sendHTTPRequest.start(); //start the ticker. sendHTTPRequest.start(); //start the ticker.
// Send first request now // Send first request now
//delay(60); //delay(60);
sendRequest(); sendRequest();
} }
void loop() void loop()
{ {
sendHTTPRequest.update(); sendHTTPRequest.update();
} }

View File

@@ -46,54 +46,54 @@
#if defined(STM32F0) #if defined(STM32F0)
#warning STM32F0 board selected #warning STM32F0 board selected
#define BOARD_TYPE "STM32F0" #define BOARD_TYPE "STM32F0"
#elif defined(STM32F1) #elif defined(STM32F1)
#warning STM32F1 board selected #warning STM32F1 board selected
#define BOARD_TYPE "STM32F1" #define BOARD_TYPE "STM32F1"
#elif defined(STM32F2) #elif defined(STM32F2)
#warning STM32F2 board selected #warning STM32F2 board selected
#define BOARD_TYPE "STM32F2" #define BOARD_TYPE "STM32F2"
#elif defined(STM32F3) #elif defined(STM32F3)
#warning STM32F3 board selected #warning STM32F3 board selected
#define BOARD_TYPE "STM32F3" #define BOARD_TYPE "STM32F3"
#elif defined(STM32F4) #elif defined(STM32F4)
#warning STM32F4 board selected #warning STM32F4 board selected
#define BOARD_TYPE "STM32F4" #define BOARD_TYPE "STM32F4"
#elif defined(STM32F7) #elif defined(STM32F7)
#warning STM32F7 board selected #warning STM32F7 board selected
#define BOARD_TYPE "STM32F7" #define BOARD_TYPE "STM32F7"
#elif defined(STM32L0) #elif defined(STM32L0)
#warning STM32L0 board selected #warning STM32L0 board selected
#define BOARD_TYPE "STM32L0" #define BOARD_TYPE "STM32L0"
#elif defined(STM32L1) #elif defined(STM32L1)
#warning STM32L1 board selected #warning STM32L1 board selected
#define BOARD_TYPE "STM32L1" #define BOARD_TYPE "STM32L1"
#elif defined(STM32L4) #elif defined(STM32L4)
#warning STM32L4 board selected #warning STM32L4 board selected
#define BOARD_TYPE "STM32L4" #define BOARD_TYPE "STM32L4"
#elif defined(STM32H7) #elif defined(STM32H7)
#warning STM32H7 board selected #warning STM32H7 board selected
#define BOARD_TYPE "STM32H7" #define BOARD_TYPE "STM32H7"
#elif defined(STM32G0) #elif defined(STM32G0)
#warning STM32G0 board selected #warning STM32G0 board selected
#define BOARD_TYPE "STM32G0" #define BOARD_TYPE "STM32G0"
#elif defined(STM32G4) #elif defined(STM32G4)
#warning STM32G4 board selected #warning STM32G4 board selected
#define BOARD_TYPE "STM32G4" #define BOARD_TYPE "STM32G4"
#elif defined(STM32WB) #elif defined(STM32WB)
#warning STM32WB board selected #warning STM32WB board selected
#define BOARD_TYPE "STM32WB" #define BOARD_TYPE "STM32WB"
#elif defined(STM32MP1) #elif defined(STM32MP1)
#warning STM32MP1 board selected #warning STM32MP1 board selected
#define BOARD_TYPE "STM32MP1" #define BOARD_TYPE "STM32MP1"
#else #else
#warning STM32 unknown board selected #warning STM32 unknown board selected
#define BOARD_TYPE "STM32 Unknown" #define BOARD_TYPE "STM32 Unknown"
#endif #endif
#ifndef BOARD_NAME #ifndef BOARD_NAME
#define BOARD_NAME BOARD_TYPE #define BOARD_NAME BOARD_TYPE
#endif #endif
#include <LwIP.h> #include <LwIP.h>
@@ -106,26 +106,26 @@
byte mac[][NUMBER_OF_MAC] = byte mac[][NUMBER_OF_MAC] =
{ {
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 },
}; };
// Select the static IP address according to your local network // Select the static IP address according to your local network

View File

@@ -47,90 +47,90 @@ Ticker sendHTTPRequest(sendRequest, HTTP_REQUEST_INTERVAL_MS, 0, MILLIS);
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
requestOpenResult = request.open("GET", GET_ServerAddress); requestOpenResult = request.open("GET", GET_ServerAddress);
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
} }
} }
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncSimpleGET_STM32 on "); Serial.print("\nStart AsyncSimpleGET_STM32 on ");
Serial.println(BOARD_NAME); Serial.println(BOARD_NAME);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// start the ethernet connection and the server // start the ethernet connection and the server
// Use random mac // Use random mac
uint16_t index = millis() % NUMBER_OF_MAC; uint16_t index = millis() % NUMBER_OF_MAC;
// Use Static IP // Use Static IP
//Ethernet.begin(mac[index], ip); //Ethernet.begin(mac[index], ip);
// Use DHCP dynamic IP and random mac // Use DHCP dynamic IP and random mac
Ethernet.begin(mac[index]); Ethernet.begin(mac[index]);
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(Ethernet.localIP()); Serial.println(Ethernet.localIP());
Serial.println(); Serial.println();
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
sendHTTPRequest.start(); //start the ticker. sendHTTPRequest.start(); //start the ticker.
// Send first request now // Send first request now
delay(10000); delay(10000);
sendRequest(); sendRequest();
} }
void loop() void loop()
{ {
sendHTTPRequest.update(); sendHTTPRequest.update();
} }

View File

@@ -46,54 +46,54 @@
#if defined(STM32F0) #if defined(STM32F0)
#warning STM32F0 board selected #warning STM32F0 board selected
#define BOARD_TYPE "STM32F0" #define BOARD_TYPE "STM32F0"
#elif defined(STM32F1) #elif defined(STM32F1)
#warning STM32F1 board selected #warning STM32F1 board selected
#define BOARD_TYPE "STM32F1" #define BOARD_TYPE "STM32F1"
#elif defined(STM32F2) #elif defined(STM32F2)
#warning STM32F2 board selected #warning STM32F2 board selected
#define BOARD_TYPE "STM32F2" #define BOARD_TYPE "STM32F2"
#elif defined(STM32F3) #elif defined(STM32F3)
#warning STM32F3 board selected #warning STM32F3 board selected
#define BOARD_TYPE "STM32F3" #define BOARD_TYPE "STM32F3"
#elif defined(STM32F4) #elif defined(STM32F4)
#warning STM32F4 board selected #warning STM32F4 board selected
#define BOARD_TYPE "STM32F4" #define BOARD_TYPE "STM32F4"
#elif defined(STM32F7) #elif defined(STM32F7)
#warning STM32F7 board selected #warning STM32F7 board selected
#define BOARD_TYPE "STM32F7" #define BOARD_TYPE "STM32F7"
#elif defined(STM32L0) #elif defined(STM32L0)
#warning STM32L0 board selected #warning STM32L0 board selected
#define BOARD_TYPE "STM32L0" #define BOARD_TYPE "STM32L0"
#elif defined(STM32L1) #elif defined(STM32L1)
#warning STM32L1 board selected #warning STM32L1 board selected
#define BOARD_TYPE "STM32L1" #define BOARD_TYPE "STM32L1"
#elif defined(STM32L4) #elif defined(STM32L4)
#warning STM32L4 board selected #warning STM32L4 board selected
#define BOARD_TYPE "STM32L4" #define BOARD_TYPE "STM32L4"
#elif defined(STM32H7) #elif defined(STM32H7)
#warning STM32H7 board selected #warning STM32H7 board selected
#define BOARD_TYPE "STM32H7" #define BOARD_TYPE "STM32H7"
#elif defined(STM32G0) #elif defined(STM32G0)
#warning STM32G0 board selected #warning STM32G0 board selected
#define BOARD_TYPE "STM32G0" #define BOARD_TYPE "STM32G0"
#elif defined(STM32G4) #elif defined(STM32G4)
#warning STM32G4 board selected #warning STM32G4 board selected
#define BOARD_TYPE "STM32G4" #define BOARD_TYPE "STM32G4"
#elif defined(STM32WB) #elif defined(STM32WB)
#warning STM32WB board selected #warning STM32WB board selected
#define BOARD_TYPE "STM32WB" #define BOARD_TYPE "STM32WB"
#elif defined(STM32MP1) #elif defined(STM32MP1)
#warning STM32MP1 board selected #warning STM32MP1 board selected
#define BOARD_TYPE "STM32MP1" #define BOARD_TYPE "STM32MP1"
#else #else
#warning STM32 unknown board selected #warning STM32 unknown board selected
#define BOARD_TYPE "STM32 Unknown" #define BOARD_TYPE "STM32 Unknown"
#endif #endif
#ifndef BOARD_NAME #ifndef BOARD_NAME
#define BOARD_NAME BOARD_TYPE #define BOARD_NAME BOARD_TYPE
#endif #endif
#include <LwIP.h> #include <LwIP.h>
@@ -106,26 +106,26 @@
byte mac[][NUMBER_OF_MAC] = byte mac[][NUMBER_OF_MAC] =
{ {
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 },
}; };
// Select the static IP address according to your local network // Select the static IP address according to your local network

View File

@@ -49,88 +49,88 @@ Ticker sendHTTPRequest(sendRequest, HTTP_REQUEST_INTERVAL_MS, 0, MILLIS);
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
requestOpenResult = request.open("GET", (GET_ServerAddress + GET_Location).c_str()); requestOpenResult = request.open("GET", (GET_ServerAddress + GET_Location).c_str());
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
} }
} }
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
Serial.print("\nStart AsyncWebClientRepeating_STM32 on "); Serial.print("\nStart AsyncWebClientRepeating_STM32 on ");
Serial.println(BOARD_NAME); Serial.println(BOARD_NAME);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// start the ethernet connection and the server // start the ethernet connection and the server
// Use random mac // Use random mac
uint16_t index = millis() % NUMBER_OF_MAC; uint16_t index = millis() % NUMBER_OF_MAC;
// Use Static IP // Use Static IP
//Ethernet.begin(mac[index], ip); //Ethernet.begin(mac[index], ip);
// Use DHCP dynamic IP and random mac // Use DHCP dynamic IP and random mac
Ethernet.begin(mac[index]); Ethernet.begin(mac[index]);
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(Ethernet.localIP()); Serial.println(Ethernet.localIP());
Serial.println(); Serial.println();
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
sendHTTPRequest.start(); //start the ticker sendHTTPRequest.start(); //start the ticker
// Send first request now // Send first request now
sendRequest(); sendRequest();
} }
void loop() void loop()
{ {
sendHTTPRequest.update(); sendHTTPRequest.update();
} }

View File

@@ -46,54 +46,54 @@
#if defined(STM32F0) #if defined(STM32F0)
#warning STM32F0 board selected #warning STM32F0 board selected
#define BOARD_TYPE "STM32F0" #define BOARD_TYPE "STM32F0"
#elif defined(STM32F1) #elif defined(STM32F1)
#warning STM32F1 board selected #warning STM32F1 board selected
#define BOARD_TYPE "STM32F1" #define BOARD_TYPE "STM32F1"
#elif defined(STM32F2) #elif defined(STM32F2)
#warning STM32F2 board selected #warning STM32F2 board selected
#define BOARD_TYPE "STM32F2" #define BOARD_TYPE "STM32F2"
#elif defined(STM32F3) #elif defined(STM32F3)
#warning STM32F3 board selected #warning STM32F3 board selected
#define BOARD_TYPE "STM32F3" #define BOARD_TYPE "STM32F3"
#elif defined(STM32F4) #elif defined(STM32F4)
#warning STM32F4 board selected #warning STM32F4 board selected
#define BOARD_TYPE "STM32F4" #define BOARD_TYPE "STM32F4"
#elif defined(STM32F7) #elif defined(STM32F7)
#warning STM32F7 board selected #warning STM32F7 board selected
#define BOARD_TYPE "STM32F7" #define BOARD_TYPE "STM32F7"
#elif defined(STM32L0) #elif defined(STM32L0)
#warning STM32L0 board selected #warning STM32L0 board selected
#define BOARD_TYPE "STM32L0" #define BOARD_TYPE "STM32L0"
#elif defined(STM32L1) #elif defined(STM32L1)
#warning STM32L1 board selected #warning STM32L1 board selected
#define BOARD_TYPE "STM32L1" #define BOARD_TYPE "STM32L1"
#elif defined(STM32L4) #elif defined(STM32L4)
#warning STM32L4 board selected #warning STM32L4 board selected
#define BOARD_TYPE "STM32L4" #define BOARD_TYPE "STM32L4"
#elif defined(STM32H7) #elif defined(STM32H7)
#warning STM32H7 board selected #warning STM32H7 board selected
#define BOARD_TYPE "STM32H7" #define BOARD_TYPE "STM32H7"
#elif defined(STM32G0) #elif defined(STM32G0)
#warning STM32G0 board selected #warning STM32G0 board selected
#define BOARD_TYPE "STM32G0" #define BOARD_TYPE "STM32G0"
#elif defined(STM32G4) #elif defined(STM32G4)
#warning STM32G4 board selected #warning STM32G4 board selected
#define BOARD_TYPE "STM32G4" #define BOARD_TYPE "STM32G4"
#elif defined(STM32WB) #elif defined(STM32WB)
#warning STM32WB board selected #warning STM32WB board selected
#define BOARD_TYPE "STM32WB" #define BOARD_TYPE "STM32WB"
#elif defined(STM32MP1) #elif defined(STM32MP1)
#warning STM32MP1 board selected #warning STM32MP1 board selected
#define BOARD_TYPE "STM32MP1" #define BOARD_TYPE "STM32MP1"
#else #else
#warning STM32 unknown board selected #warning STM32 unknown board selected
#define BOARD_TYPE "STM32 Unknown" #define BOARD_TYPE "STM32 Unknown"
#endif #endif
#ifndef BOARD_NAME #ifndef BOARD_NAME
#define BOARD_NAME BOARD_TYPE #define BOARD_NAME BOARD_TYPE
#endif #endif
#include <LwIP.h> #include <LwIP.h>
@@ -106,26 +106,26 @@
byte mac[][NUMBER_OF_MAC] = byte mac[][NUMBER_OF_MAC] =
{ {
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x01 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x02 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x03 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x04 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x05 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x06 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x07 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x08 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x09 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0A },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0B },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0C },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0D },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0E },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x0F },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x10 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x11 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x12 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x13 },
{ 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 }, { 0xDE, 0xAD, 0xBE, 0xEF, 0x32, 0x14 },
}; };
// Select the static IP address according to your local network // Select the static IP address according to your local network

View File

@@ -41,7 +41,7 @@
//************************************************************************************************************* //*************************************************************************************************************
#if !( defined(ESP32) ) #if !( defined(ESP32) )
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting. #error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
#endif #endif
// Level from 0-4 // Level from 0-4
@@ -86,22 +86,22 @@ IPAddress myDNS(8, 8, 8, 8);
void heartBeatPrint(void) void heartBeatPrint(void)
{ {
static int num = 1; static int num = 1;
if (WT32_ETH01_isConnected()) if (WT32_ETH01_isConnected())
Serial.print(F("H")); // H means connected to WiFi Serial.print(F("H")); // H means connected to WiFi
else else
Serial.print(F("F")); // F means not connected to WiFi Serial.print(F("F")); // F means not connected to WiFi
if (num == 80) if (num == 80)
{ {
Serial.println(); Serial.println();
num = 1; num = 1;
} }
else if (num++ % 10 == 0) else if (num++ % 10 == 0)
{ {
Serial.print(F(" ")); Serial.print(F(" "));
} }
} }
// To replace with your real APP_API // To replace with your real APP_API
@@ -127,118 +127,118 @@ uint8_t requestIndex = 0;
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
requestOpenResult = request.open("GET", requestAll[requestIndex] ); requestOpenResult = request.open("GET", requestAll[requestIndex] );
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState) void requestCB(void* optParm, AsyncHTTPRequest* request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.print(F("\n***************")); Serial.print(F("\n***************"));
Serial.print(requestName[ requestIndex ]); Serial.print(requestName[ requestIndex ]);
Serial.println(F("***************")); Serial.println(F("***************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
#if 1 #if 1
// Bypass hourly // Bypass hourly
if (requestIndex == 1) if (requestIndex == 1)
requestIndex = 3; requestIndex = 3;
else else
requestIndex = (requestIndex + 1) % NUM_REQUESTS; requestIndex = (requestIndex + 1) % NUM_REQUESTS;
#else #else
// hourly too long, not display anyway. Not enough heap. // hourly too long, not display anyway. Not enough heap.
requestIndex = (requestIndex + 1) % NUM_REQUESTS; requestIndex = (requestIndex + 1) % NUM_REQUESTS;
#endif #endif
request->setDebug(false); request->setDebug(false);
} }
} }
void setup() void setup()
{ {
// put your setup code here, to run once: // put your setup code here, to run once:
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
delay(200); delay(200);
Serial.print("\nStart AsyncHTTPMultiRequests_WT32_ETH01 on "); Serial.print("\nStart AsyncHTTPMultiRequests_WT32_ETH01 on ");
Serial.print(ARDUINO_BOARD); Serial.print(ARDUINO_BOARD);
Serial.print(" with "); Serial.print(" with ");
Serial.println(SHIELD_TYPE); Serial.println(SHIELD_TYPE);
Serial.println(WEBSERVER_WT32_ETH01_VERSION); Serial.println(WEBSERVER_WT32_ETH01_VERSION);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
Serial.setDebugOutput(true); Serial.setDebugOutput(true);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// To be called before ETH.begin() // To be called before ETH.begin()
WT32_ETH01_onEvent(); WT32_ETH01_onEvent();
//bool begin(uint8_t phy_addr=ETH_PHY_ADDR, int power=ETH_PHY_POWER, int mdc=ETH_PHY_MDC, int mdio=ETH_PHY_MDIO, //bool begin(uint8_t phy_addr=ETH_PHY_ADDR, int power=ETH_PHY_POWER, int mdc=ETH_PHY_MDC, int mdio=ETH_PHY_MDIO,
// eth_phy_type_t type=ETH_PHY_TYPE, eth_clock_mode_t clk_mode=ETH_CLK_MODE); // eth_phy_type_t type=ETH_PHY_TYPE, eth_clock_mode_t clk_mode=ETH_CLK_MODE);
//ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER, ETH_PHY_MDC, ETH_PHY_MDIO, ETH_PHY_TYPE, ETH_CLK_MODE); //ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER, ETH_PHY_MDC, ETH_PHY_MDIO, ETH_PHY_TYPE, ETH_CLK_MODE);
ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER); ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER);
// Static IP, leave without this line to get IP via DHCP // Static IP, leave without this line to get IP via DHCP
//bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = 0, IPAddress dns2 = 0); //bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = 0, IPAddress dns2 = 0);
ETH.config(myIP, myGW, mySN, myDNS); ETH.config(myIP, myGW, mySN, myDNS);
WT32_ETH01_waitForConnect(); WT32_ETH01_waitForConnect();
Serial.print(F("AsyncHTTPRequest @ IP : ")); Serial.print(F("AsyncHTTPRequest @ IP : "));
Serial.println(ETH.localIP()); Serial.println(ETH.localIP());
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest); ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest);
ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint); ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint);
// Send first request now // Send first request now
sendRequest(); sendRequest();
} }
void loop() void loop()

View File

@@ -41,7 +41,7 @@
//************************************************************************************************************* //*************************************************************************************************************
#if !( defined(ESP32) ) #if !( defined(ESP32) )
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting. #error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
#endif #endif
// Level from 0-4 // Level from 0-4
@@ -86,121 +86,121 @@ IPAddress myDNS(8, 8, 8, 8);
void heartBeatPrint(void) void heartBeatPrint(void)
{ {
static int num = 1; static int num = 1;
if (WT32_ETH01_isConnected()) if (WT32_ETH01_isConnected())
Serial.print(F("H")); // H means connected Serial.print(F("H")); // H means connected
else else
Serial.print(F("F")); // F means not connected Serial.print(F("F")); // F means not connected
if (num == 80) if (num == 80)
{ {
Serial.println(); Serial.println();
num = 1; num = 1;
} }
else if (num++ % 10 == 0) else if (num++ % 10 == 0)
{ {
Serial.print(F(" ")); Serial.print(F(" "));
} }
} }
void sendRequest() void sendRequest()
{ {
static bool requestOpenResult; static bool requestOpenResult;
if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone) if (request.readyState() == readyStateUnsent || request.readyState() == readyStateDone)
{ {
//requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt"); //requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/Europe/London.txt");
requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt"); requestOpenResult = request.open("GET", "http://worldtimeapi.org/api/timezone/America/Toronto.txt");
if (requestOpenResult) if (requestOpenResult)
{ {
// Only send() if open() returns true, or crash // Only send() if open() returns true, or crash
request.send(); request.send();
} }
else else
{ {
Serial.println("Can't send bad request"); Serial.println("Can't send bad request");
} }
} }
else else
{ {
Serial.println("Can't send request"); Serial.println("Can't send request");
} }
} }
void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState) void requestCB(void *optParm, AsyncHTTPRequest *request, int readyState)
{ {
(void) optParm; (void) optParm;
if (readyState == readyStateDone) if (readyState == readyStateDone)
{ {
AHTTP_LOGDEBUG(F("\n**************************************")); AHTTP_LOGDEBUG(F("\n**************************************"));
AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString()); AHTTP_LOGDEBUG1(F("Response Code = "), request->responseHTTPString());
if (request->responseHTTPcode() == 200) if (request->responseHTTPcode() == 200)
{ {
Serial.println(F("\n**************************************")); Serial.println(F("\n**************************************"));
Serial.println(request->responseText()); Serial.println(request->responseText());
Serial.println(F("**************************************")); Serial.println(F("**************************************"));
} }
} }
} }
void setup() void setup()
{ {
// put your setup code here, to run once: // put your setup code here, to run once:
Serial.begin(115200); Serial.begin(115200);
while (!Serial && millis() < 5000); while (!Serial && millis() < 5000);
delay(200); delay(200);
Serial.print("\nStart AsyncHTTPRequest_WT32_ETH01 on "); Serial.print("\nStart AsyncHTTPRequest_WT32_ETH01 on ");
Serial.print(ARDUINO_BOARD); Serial.print(ARDUINO_BOARD);
Serial.print(" with "); Serial.print(" with ");
Serial.println(SHIELD_TYPE); Serial.println(SHIELD_TYPE);
Serial.println(WEBSERVER_WT32_ETH01_VERSION); Serial.println(WEBSERVER_WT32_ETH01_VERSION);
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
Serial.setDebugOutput(true); Serial.setDebugOutput(true);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
// To be called before ETH.begin() // To be called before ETH.begin()
WT32_ETH01_onEvent(); WT32_ETH01_onEvent();
//bool begin(uint8_t phy_addr=ETH_PHY_ADDR, int power=ETH_PHY_POWER, int mdc=ETH_PHY_MDC, int mdio=ETH_PHY_MDIO, //bool begin(uint8_t phy_addr=ETH_PHY_ADDR, int power=ETH_PHY_POWER, int mdc=ETH_PHY_MDC, int mdio=ETH_PHY_MDIO,
// eth_phy_type_t type=ETH_PHY_TYPE, eth_clock_mode_t clk_mode=ETH_CLK_MODE); // eth_phy_type_t type=ETH_PHY_TYPE, eth_clock_mode_t clk_mode=ETH_CLK_MODE);
//ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER, ETH_PHY_MDC, ETH_PHY_MDIO, ETH_PHY_TYPE, ETH_CLK_MODE); //ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER, ETH_PHY_MDC, ETH_PHY_MDIO, ETH_PHY_TYPE, ETH_CLK_MODE);
ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER); ETH.begin(ETH_PHY_ADDR, ETH_PHY_POWER);
// Static IP, leave without this line to get IP via DHCP // Static IP, leave without this line to get IP via DHCP
//bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = 0, IPAddress dns2 = 0); //bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = 0, IPAddress dns2 = 0);
ETH.config(myIP, myGW, mySN, myDNS); ETH.config(myIP, myGW, mySN, myDNS);
WT32_ETH01_waitForConnect(); WT32_ETH01_waitForConnect();
Serial.print(F("\nHTTP WebClient is @ IP : ")); Serial.print(F("\nHTTP WebClient is @ IP : "));
Serial.println(ETH.localIP()); Serial.println(ETH.localIP());
request.setDebug(false); request.setDebug(false);
request.onReadyStateChange(requestCB); request.onReadyStateChange(requestCB);
ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest); ticker.attach(HTTP_REQUEST_INTERVAL, sendRequest);
ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint); ticker1.attach(HEARTBEAT_INTERVAL, heartBeatPrint);
// Send first request now // Send first request now
sendRequest(); sendRequest();
} }
void loop() void loop()

View File

@@ -29,25 +29,25 @@
void setup() void setup()
{ {
Serial.begin(115200); Serial.begin(115200);
while (!Serial); while (!Serial);
Serial.println("\nStart multiFileProject"); Serial.println("\nStart multiFileProject");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION);
#if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) #if defined(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN) if (ASYNC_HTTP_REQUEST_GENERIC_VERSION_INT < ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN)
{ {
Serial.print("Warning. Must use this example on Version equal or later than : "); Serial.print("Warning. Must use this example on Version equal or later than : ");
Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET); Serial.println(ASYNC_HTTP_REQUEST_GENERIC_VERSION_MIN_TARGET);
} }
#endif #endif
} }
void loop() void loop()
{ {
// put your main code here, to run repeatedly: // put your main code here, to run repeatedly:
} }

View File

@@ -52,7 +52,7 @@ lib_deps =
; PlatformIO 5.x ; PlatformIO 5.x
; me-no-dev/AsyncTCP@>=1.1.1 ; me-no-dev/AsyncTCP@>=1.1.1
; me-no-dev/ESPAsyncTCP@>=1.2.2 ; me-no-dev/ESPAsyncTCP@>=1.2.2
; philbowles/STM32AsyncTCP ; philbowles/STM32AsyncTCP
; https://github.com/khoih-prog/STM32AsyncTCP.git ; https://github.com/khoih-prog/STM32AsyncTCP.git
; stm32duino/STM32duino LwIP@>=2.1.2 ; stm32duino/STM32duino LwIP@>=2.1.2
; stm32duino/STM32duino STM32Ethernet@>=1.3.0 ; stm32duino/STM32duino STM32Ethernet@>=1.3.0