Demo.ino 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /*
  2. WebSerial Demo
  3. ------
  4. This example code works for both ESP8266 & ESP32 Microcontrollers
  5. WebSerial is accessible at your ESP's <IPAddress>/webserial URL.
  6. Author: Ayush Sharma
  7. Checkout WebSerial Pro: https://webserial.pro
  8. */
  9. #include <Arduino.h>
  10. #if defined(ESP8266)
  11. #include <ESP8266WiFi.h>
  12. #include <ESPAsyncTCP.h>
  13. #elif defined(ESP32)
  14. #include <WiFi.h>
  15. #include <AsyncTCP.h>
  16. #endif
  17. #include <ESPAsyncWebServer.h>
  18. #include <WebSerial.h>
  19. AsyncWebServer server(80);
  20. const char* ssid = ""; // Your WiFi SSID
  21. const char* password = ""; // Your WiFi Password
  22. unsigned long last_print_time = millis();
  23. void setup() {
  24. Serial.begin(115200);
  25. WiFi.mode(WIFI_STA);
  26. WiFi.begin(ssid, password);
  27. if (WiFi.waitForConnectResult() != WL_CONNECTED) {
  28. Serial.printf("WiFi Failed!\n");
  29. return;
  30. }
  31. // Once connected, print IP
  32. Serial.print("IP Address: ");
  33. Serial.println(WiFi.localIP());
  34. server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
  35. request->send(200, "text/plain", "Hi! This is WebSerial demo. You can access webserial interface at http://" + WiFi.localIP().toString() + "/webserial");
  36. });
  37. // WebSerial is accessible at "<IP Address>/webserial" in browser
  38. WebSerial.begin(&server);
  39. /* Attach Message Callback */
  40. WebSerial.onMessage([&](uint8_t *data, size_t len) {
  41. Serial.printf("Received %lu bytes from WebSerial: ", len);
  42. Serial.write(data, len);
  43. Serial.println();
  44. WebSerial.println("Received Data...");
  45. String d = "";
  46. for(size_t i=0; i < len; i++){
  47. d += char(data[i]);
  48. }
  49. WebSerial.println(d);
  50. });
  51. // Start server
  52. server.begin();
  53. }
  54. void loop() {
  55. // Print every 2 seconds (non-blocking)
  56. if ((unsigned long)(millis() - last_print_time) > 2000) {
  57. WebSerial.print(F("IP address: "));
  58. WebSerial.println(WiFi.localIP());
  59. WebSerial.printf("Uptime: %lums\n", millis());
  60. WebSerial.printf("Free heap: %u\n", ESP.getFreeHeap());
  61. last_print_time = millis();
  62. }
  63. WebSerial.loop();
  64. }