forked from khoih-prog/AsyncHTTPRequest_Generic
Update README.md
and use allman
astyle
This commit is contained in:
@@ -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
|
||||||
|
51
README.md
51
README.md
@@ -1,4 +1,4 @@
|
|||||||
# AsyncHTTPRequest_Generic
|
# AsyncHTTPRequest_Generic Library
|
||||||
|
|
||||||
[](https://www.ardu-badge.com/AsyncHTTPRequest_Generic)
|
[](https://www.ardu-badge.com/AsyncHTTPRequest_Generic)
|
||||||
[](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases)
|
[](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases)
|
||||||
@@ -6,8 +6,11 @@
|
|||||||
[](#Contributing)
|
[](#Contributing)
|
||||||
[](http://github.com/khoih-prog/AsyncHTTPRequest_Generic/issues)
|
[](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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# AsyncHTTPRequest_Generic
|
# AsyncHTTPRequest_Generic Library
|
||||||
|
|
||||||
[](https://www.ardu-badge.com/AsyncHTTPRequest_Generic)
|
[](https://www.ardu-badge.com/AsyncHTTPRequest_Generic)
|
||||||
[](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases)
|
[](https://github.com/khoih-prog/AsyncHTTPRequest_Generic/releases)
|
||||||
@@ -6,6 +6,12 @@
|
|||||||
[](#Contributing)
|
[](#Contributing)
|
||||||
[](http://github.com/khoih-prog/AsyncHTTPRequest_Generic/issues)
|
[](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>
|
||||||
|
|
||||||
---
|
---
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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()
|
||||||
|
@@ -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()
|
||||||
|
@@ -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:
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user