summaryrefslogtreecommitdiff
path: root/.pio/libdeps/esp32-s3-n16r8/ArduinoJson/examples/JsonServer
diff options
context:
space:
mode:
Diffstat (limited to '.pio/libdeps/esp32-s3-n16r8/ArduinoJson/examples/JsonServer')
-rw-r--r--.pio/libdeps/esp32-s3-n16r8/ArduinoJson/examples/JsonServer/JsonServer.ino118
1 files changed, 118 insertions, 0 deletions
diff --git a/.pio/libdeps/esp32-s3-n16r8/ArduinoJson/examples/JsonServer/JsonServer.ino b/.pio/libdeps/esp32-s3-n16r8/ArduinoJson/examples/JsonServer/JsonServer.ino
new file mode 100644
index 0000000..8e87653
--- /dev/null
+++ b/.pio/libdeps/esp32-s3-n16r8/ArduinoJson/examples/JsonServer/JsonServer.ino
@@ -0,0 +1,118 @@
+// ArduinoJson - https://arduinojson.org
+// Copyright © 2014-2026, Benoit BLANCHON
+// MIT License
+//
+// This example shows how to implement an HTTP server that sends a JSON document
+// in the response.
+// It uses the Ethernet library but can be easily adapted for Wifi.
+//
+// The JSON document contains the values of the analog and digital pins.
+// It looks like that:
+// {
+// "analog": [0, 76, 123, 158, 192, 205],
+// "digital": [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0]
+// }
+//
+// https://arduinojson.org/v7/example/http-server/
+
+#include <ArduinoJson.h>
+#include <Ethernet.h>
+#include <SPI.h>
+
+byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
+EthernetServer server(80);
+
+void setup() {
+ // Initialize serial port
+ Serial.begin(9600);
+ while (!Serial)
+ continue;
+
+ // Initialize Ethernet libary
+ if (!Ethernet.begin(mac)) {
+ Serial.println(F("Failed to initialize Ethernet library"));
+ return;
+ }
+
+ // Start to listen
+ server.begin();
+
+ Serial.println(F("Server is ready."));
+ Serial.print(F("Please connect to http://"));
+ Serial.println(Ethernet.localIP());
+}
+
+void loop() {
+ // Wait for an incomming connection
+ EthernetClient client = server.available();
+
+ // Do we have a client?
+ if (!client)
+ return;
+
+ Serial.println(F("New client"));
+
+ // Read the request (we ignore the content in this example)
+ while (client.available())
+ client.read();
+
+ // Allocate a temporary JsonDocument
+ JsonDocument doc;
+
+ // Create the "analog" array
+ JsonArray analogValues = doc["analog"].to<JsonArray>();
+ for (int pin = 0; pin < 6; pin++) {
+ // Read the analog input
+ int value = analogRead(pin);
+
+ // Add the value at the end of the array
+ analogValues.add(value);
+ }
+
+ // Create the "digital" array
+ JsonArray digitalValues = doc["digital"].to<JsonArray>();
+ for (int pin = 0; pin < 14; pin++) {
+ // Read the digital input
+ int value = digitalRead(pin);
+
+ // Add the value at the end of the array
+ digitalValues.add(value);
+ }
+
+ Serial.print(F("Sending: "));
+ serializeJson(doc, Serial);
+ Serial.println();
+
+ // Write response headers
+ client.println(F("HTTP/1.0 200 OK"));
+ client.println(F("Content-Type: application/json"));
+ client.println(F("Connection: close"));
+ client.print(F("Content-Length: "));
+ client.println(measureJsonPretty(doc));
+ client.println();
+
+ // Write JSON document
+ serializeJsonPretty(doc, client);
+
+ // Disconnect
+ client.stop();
+}
+
+// Performance issue?
+// ------------------
+//
+// EthernetClient is an unbuffered stream, which is not optimal for ArduinoJson.
+// See: https://arduinojson.org/v7/how-to/improve-speed/
+
+// See also
+// --------
+//
+// https://arduinojson.org/ contains the documentation for all the functions
+// used above. It also includes an FAQ that will help you solve any
+// serialization problem.
+//
+// The book "Mastering ArduinoJson" contains a tutorial on serialization.
+// It begins with a simple example, then adds more features like serializing
+// directly to a file or an HTTP client.
+// Learn more at https://arduinojson.org/book/
+// Use the coupon code TWENTY for a 20% discount ❤❤❤❤❤