|
6 | 6 | [](#Contributing) |
7 | 7 | [](http://github.com/khoih-prog/AsyncWebServer_Teensy41/issues) |
8 | 8 |
|
| 9 | +<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> |
| 10 | +<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> |
| 11 | + |
9 | 12 | --- |
10 | 13 | --- |
11 | 14 |
|
@@ -1117,132 +1120,9 @@ server.reset(); |
1117 | 1120 |
|
1118 | 1121 | ## Setting up the server |
1119 | 1122 |
|
1120 | | -```cpp |
1121 | | -#define USING_DHCP true |
1122 | | -//#define USING_DHCP false |
1123 | | - |
1124 | | -#if !USING_DHCP |
1125 | | - // Set the static IP address to use if the DHCP fails to assign |
1126 | | - IPAddress myIP(192, 168, 2, 222); |
1127 | | - IPAddress myNetmask(255, 255, 255, 0); |
1128 | | - IPAddress myGW(192, 168, 2, 1); |
1129 | | - //IPAddress mydnsServer(192, 168, 2, 1); |
1130 | | - IPAddress mydnsServer(8, 8, 8, 8); |
1131 | | -#endif |
1132 | | - |
1133 | | -#include "QNEthernet.h" // https://github.com/ssilverman/QNEthernet |
1134 | | -using namespace qindesign::network; |
1135 | | - |
1136 | | -#include <AsyncWebServer_Teensy41.h> |
1137 | | - |
1138 | | -AsyncWebServer server(80); |
1139 | | - |
1140 | | -const int led = 13; |
1141 | | - |
1142 | | -void handleRoot(AsyncWebServerRequest *request) |
1143 | | -{ |
1144 | | - digitalWrite(led, 1); |
1145 | | - request->send(200, "text/plain", String("Hello from AsyncWebServer_Teensy41 on ") + BOARD_NAME ); |
1146 | | - digitalWrite(led, 0); |
1147 | | -} |
| 1123 | +https://github.com/khoih-prog/AsyncWebServer_Teensy41/blob/d09281ae572db571fa5e53e624ca19f16462f892/examples/Async_HelloServer/Async_HelloServer.ino#L13-L150 |
1148 | 1124 |
|
1149 | | -void handleNotFound(AsyncWebServerRequest *request) |
1150 | | -{ |
1151 | | - digitalWrite(led, 1); |
1152 | | - String message = "File Not Found\n\n"; |
1153 | | - |
1154 | | - message += "URI: "; |
1155 | | - //message += server.uri(); |
1156 | | - message += request->url(); |
1157 | | - message += "\nMethod: "; |
1158 | | - message += (request->method() == HTTP_GET) ? "GET" : "POST"; |
1159 | | - message += "\nArguments: "; |
1160 | | - message += request->args(); |
1161 | | - message += "\n"; |
1162 | | - |
1163 | | - for (uint8_t i = 0; i < request->args(); i++) |
1164 | | - { |
1165 | | - message += " " + request->argName(i) + ": " + request->arg(i) + "\n"; |
1166 | | - } |
1167 | 1125 |
|
1168 | | - request->send(404, "text/plain", message); |
1169 | | - digitalWrite(led, 0); |
1170 | | -} |
1171 | | - |
1172 | | -void setup(void) |
1173 | | -{ |
1174 | | - pinMode(led, OUTPUT); |
1175 | | - digitalWrite(led, 0); |
1176 | | - |
1177 | | - Serial.begin(115200); |
1178 | | - while (!Serial); |
1179 | | - |
1180 | | - delay(200); |
1181 | | - |
1182 | | - Serial.print("\nStart Async_HelloServer on "); Serial.print(BOARD_NAME); |
1183 | | - Serial.print(" with "); Serial.println(SHIELD_TYPE); |
1184 | | - Serial.println(ASYNC_WEBSERVER_TEENSY41_VERSION); |
1185 | | - |
1186 | | - delay(500); |
1187 | | - |
1188 | | -#if USING_DHCP |
1189 | | - // Start the Ethernet connection, using DHCP |
1190 | | - Serial.print("Initialize Ethernet using DHCP => "); |
1191 | | - Ethernet.begin(); |
1192 | | -#else |
1193 | | - // Start the Ethernet connection, using static IP |
1194 | | - Serial.print("Initialize Ethernet using static IP => "); |
1195 | | - Ethernet.begin(myIP, myNetmask, myGW); |
1196 | | - Ethernet.setDNSServerIP(mydnsServer); |
1197 | | -#endif |
1198 | | - |
1199 | | - if (!Ethernet.waitForLocalIP(5000)) |
1200 | | - { |
1201 | | - Serial.println(F("Failed to configure Ethernet")); |
1202 | | - |
1203 | | - if (!Ethernet.linkStatus()) |
1204 | | - { |
1205 | | - Serial.println(F("Ethernet cable is not connected.")); |
1206 | | - } |
1207 | | - |
1208 | | - // Stay here forever |
1209 | | - while (true) |
1210 | | - { |
1211 | | - delay(1); |
1212 | | - } |
1213 | | - } |
1214 | | - else |
1215 | | - { |
1216 | | - Serial.print(F("Connected! IP address:")); Serial.println(Ethernet.localIP()); |
1217 | | - } |
1218 | | - |
1219 | | -#if USING_DHCP |
1220 | | - delay(1000); |
1221 | | -#else |
1222 | | - delay(2000); |
1223 | | -#endif |
1224 | | - server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) |
1225 | | - { |
1226 | | - handleRoot(request); |
1227 | | - }); |
1228 | | - |
1229 | | - server.on("/inline", [](AsyncWebServerRequest * request) |
1230 | | - { |
1231 | | - request->send(200, "text/plain", "This works as well"); |
1232 | | - }); |
1233 | | - |
1234 | | - server.onNotFound(handleNotFound); |
1235 | | - |
1236 | | - server.begin(); |
1237 | | - |
1238 | | - Serial.print(F("HTTP EthernetWebServer is @ IP : ")); |
1239 | | - Serial.println(Ethernet.localIP()); |
1240 | | -} |
1241 | | - |
1242 | | -void loop(void) |
1243 | | -{ |
1244 | | -} |
1245 | | -``` |
1246 | 1126 | --- |
1247 | 1127 |
|
1248 | 1128 | ### Setup global and class functions as request handlers |
@@ -1398,207 +1278,8 @@ build_flags = |
1398 | 1278 |
|
1399 | 1279 | ### Example [Async_AdvancedWebServer](examples/Async_AdvancedWebServer) |
1400 | 1280 |
|
| 1281 | +https://github.com/khoih-prog/AsyncWebServer_Teensy41/blob/d09281ae572db571fa5e53e624ca19f16462f892/examples/Async_AdvancedWebServer/Async_AdvancedWebServer.ino#L41-L237 |
1401 | 1282 |
|
1402 | | -```cpp |
1403 | | - |
1404 | | -#if !( defined(CORE_TEENSY) && defined(__IMXRT1062__) && defined(ARDUINO_TEENSY41) ) |
1405 | | - #error Only Teensy 4.1 supported |
1406 | | -#endif |
1407 | | - |
1408 | | -// Debug Level from 0 to 4 |
1409 | | -#define _TEENSY41_ASYNC_TCP_LOGLEVEL_ 1 |
1410 | | -#define _AWS_TEENSY41_LOGLEVEL_ 1 |
1411 | | - |
1412 | | -#define SHIELD_TYPE "Teensy4.1 QNEthernet" |
1413 | | - |
1414 | | -#if (_AWS_TEENSY41_LOGLEVEL_ > 3) |
1415 | | - #warning Using QNEthernet lib for Teensy 4.1. Must also use Teensy Packages Patch or error |
1416 | | -#endif |
1417 | | - |
1418 | | -#define USING_DHCP true |
1419 | | -//#define USING_DHCP false |
1420 | | - |
1421 | | -#if !USING_DHCP |
1422 | | - // Set the static IP address to use if the DHCP fails to assign |
1423 | | - IPAddress myIP(192, 168, 2, 222); |
1424 | | - IPAddress myNetmask(255, 255, 255, 0); |
1425 | | - IPAddress myGW(192, 168, 2, 1); |
1426 | | - //IPAddress mydnsServer(192, 168, 2, 1); |
1427 | | - IPAddress mydnsServer(8, 8, 8, 8); |
1428 | | -#endif |
1429 | | - |
1430 | | -#include "QNEthernet.h" // https://github.com/ssilverman/QNEthernet |
1431 | | -using namespace qindesign::network; |
1432 | | - |
1433 | | -#include <AsyncWebServer_Teensy41.h> |
1434 | | - |
1435 | | -AsyncWebServer server(80); |
1436 | | - |
1437 | | -int reqCount = 0; // number of requests received |
1438 | | - |
1439 | | -const int led = 13; |
1440 | | - |
1441 | | -void handleRoot(AsyncWebServerRequest *request) |
1442 | | -{ |
1443 | | - digitalWrite(led, 1); |
1444 | | - |
1445 | | -#define BUFFER_SIZE 400 |
1446 | | - |
1447 | | - char temp[BUFFER_SIZE]; |
1448 | | - int sec = millis() / 1000; |
1449 | | - int min = sec / 60; |
1450 | | - int hr = min / 60; |
1451 | | - int day = hr / 24; |
1452 | | - |
1453 | | - snprintf(temp, BUFFER_SIZE - 1, |
1454 | | - "<html>\ |
1455 | | -<head>\ |
1456 | | -<meta http-equiv='refresh' content='5'/>\ |
1457 | | -<title>AsyncWebServer-%s</title>\ |
1458 | | -<style>\ |
1459 | | -body { background-color: #cccccc; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }\ |
1460 | | -</style>\ |
1461 | | -</head>\ |
1462 | | -<body>\ |
1463 | | -<h2>AsyncWebServer_Teensy41!</h2>\ |
1464 | | -<h3>running on %s</h3>\ |
1465 | | -<p>Uptime: %d d %02d:%02d:%02d</p>\ |
1466 | | -<img src=\"/test.svg\" />\ |
1467 | | -</body>\ |
1468 | | -</html>", BOARD_NAME, BOARD_NAME, day, hr % 24, min % 60, sec % 60); |
1469 | | - |
1470 | | - request->send(200, "text/html", temp); |
1471 | | - |
1472 | | - digitalWrite(led, 0); |
1473 | | -} |
1474 | | - |
1475 | | -void handleNotFound(AsyncWebServerRequest *request) |
1476 | | -{ |
1477 | | - digitalWrite(led, 1); |
1478 | | - String message = "File Not Found\n\n"; |
1479 | | - |
1480 | | - message += "URI: "; |
1481 | | - message += request->url(); |
1482 | | - message += "\nMethod: "; |
1483 | | - message += (request->method() == HTTP_GET) ? "GET" : "POST"; |
1484 | | - message += "\nArguments: "; |
1485 | | - message += request->args(); |
1486 | | - message += "\n"; |
1487 | | - |
1488 | | - for (uint8_t i = 0; i < request->args(); i++) |
1489 | | - { |
1490 | | - message += " " + request->argName(i) + ": " + request->arg(i) + "\n"; |
1491 | | - } |
1492 | | - |
1493 | | - request->send(404, "text/plain", message); |
1494 | | - digitalWrite(led, 0); |
1495 | | -} |
1496 | | - |
1497 | | -void drawGraph(AsyncWebServerRequest *request) |
1498 | | -{ |
1499 | | - String out; |
1500 | | - |
1501 | | - out.reserve(3000); |
1502 | | - char temp[70]; |
1503 | | - |
1504 | | - out += "<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"310\" height=\"150\">\n"; |
1505 | | - out += "<rect width=\"310\" height=\"150\" fill=\"rgb(250, 230, 210)\" stroke-width=\"2\" stroke=\"rgb(0, 0, 0)\" />\n"; |
1506 | | - out += "<g stroke=\"blue\">\n"; |
1507 | | - int y = rand() % 130; |
1508 | | - |
1509 | | - for (int x = 10; x < 300; x += 10) |
1510 | | - { |
1511 | | - int y2 = rand() % 130; |
1512 | | - sprintf(temp, "<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" stroke-width=\"2\" />\n", x, 140 - y, x + 10, 140 - y2); |
1513 | | - out += temp; |
1514 | | - y = y2; |
1515 | | - } |
1516 | | - out += "</g>\n</svg>\n"; |
1517 | | - |
1518 | | - request->send(200, "image/svg+xml", out); |
1519 | | -} |
1520 | | - |
1521 | | - |
1522 | | -void setup(void) |
1523 | | -{ |
1524 | | - pinMode(led, OUTPUT); |
1525 | | - digitalWrite(led, 0); |
1526 | | - |
1527 | | - Serial.begin(115200); |
1528 | | - while (!Serial); |
1529 | | - |
1530 | | - delay(200); |
1531 | | - |
1532 | | - Serial.print("\nStart Async_AdvancedWebServer on "); Serial.print(BOARD_NAME); |
1533 | | - Serial.print(" with "); Serial.println(SHIELD_TYPE); |
1534 | | - Serial.println(ASYNC_WEBSERVER_TEENSY41_VERSION); |
1535 | | - |
1536 | | - delay(500); |
1537 | | - |
1538 | | -#if USING_DHCP |
1539 | | - // Start the Ethernet connection, using DHCP |
1540 | | - Serial.print("Initialize Ethernet using DHCP => "); |
1541 | | - Ethernet.begin(); |
1542 | | -#else |
1543 | | - // Start the Ethernet connection, using static IP |
1544 | | - Serial.print("Initialize Ethernet using static IP => "); |
1545 | | - Ethernet.begin(myIP, myNetmask, myGW); |
1546 | | - Ethernet.setDNSServerIP(mydnsServer); |
1547 | | -#endif |
1548 | | - |
1549 | | - if (!Ethernet.waitForLocalIP(5000)) |
1550 | | - { |
1551 | | - Serial.println(F("Failed to configure Ethernet")); |
1552 | | - |
1553 | | - if (!Ethernet.linkStatus()) |
1554 | | - { |
1555 | | - Serial.println(F("Ethernet cable is not connected.")); |
1556 | | - } |
1557 | | - |
1558 | | - // Stay here forever |
1559 | | - while (true) |
1560 | | - { |
1561 | | - delay(1); |
1562 | | - } |
1563 | | - } |
1564 | | - else |
1565 | | - { |
1566 | | - Serial.print(F("Connected! IP address:")); Serial.println(Ethernet.localIP()); |
1567 | | - } |
1568 | | - |
1569 | | -#if USING_DHCP |
1570 | | - delay(1000); |
1571 | | -#else |
1572 | | - delay(2000); |
1573 | | -#endif |
1574 | | - |
1575 | | - server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) |
1576 | | - { |
1577 | | - handleRoot(request); |
1578 | | - }); |
1579 | | - |
1580 | | - server.on("/test.svg", HTTP_GET, [](AsyncWebServerRequest * request) |
1581 | | - { |
1582 | | - drawGraph(request); |
1583 | | - }); |
1584 | | - |
1585 | | - server.on("/inline", [](AsyncWebServerRequest * request) |
1586 | | - { |
1587 | | - request->send(200, "text/plain", "This works as well"); |
1588 | | - }); |
1589 | | - |
1590 | | - server.onNotFound(handleNotFound); |
1591 | | - |
1592 | | - server.begin(); |
1593 | | - |
1594 | | - Serial.print(F("HTTP EthernetWebServer is @ IP : ")); |
1595 | | - Serial.println(Ethernet.localIP()); |
1596 | | -} |
1597 | | - |
1598 | | -void loop(void) |
1599 | | -{ |
1600 | | -} |
1601 | | -``` |
1602 | 1283 |
|
1603 | 1284 | You can access the Async Advanced WebServer @ the server IP |
1604 | 1285 |
|
@@ -1853,7 +1534,7 @@ If you want to contribute to this project: |
1853 | 1534 |
|
1854 | 1535 | ### License |
1855 | 1536 |
|
1856 | | -- The library is licensed under [LGPLv3](https://github.com/khoih-prog/AsyncWebServer_Teensy41/blob/main/LICENSE) |
| 1537 | +- The library is licensed under [GPLv3](https://github.com/khoih-prog/AsyncWebServer_Teensy41/blob/main/LICENSE) |
1857 | 1538 |
|
1858 | 1539 | --- |
1859 | 1540 |
|
|
0 commit comments