From ca9d606e72fac237f204e27f5ddb4ad10f000ae4 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 25 Feb 2015 22:27:30 +0100 Subject: [PATCH] Added example JsonUdpBeacon --- examples/JsonUdpBeacon/JsonUdpBeacon.ino | 55 ++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 examples/JsonUdpBeacon/JsonUdpBeacon.ino diff --git a/examples/JsonUdpBeacon/JsonUdpBeacon.ino b/examples/JsonUdpBeacon/JsonUdpBeacon.ino new file mode 100644 index 00000000..e1f54e88 --- /dev/null +++ b/examples/JsonUdpBeacon/JsonUdpBeacon.ino @@ -0,0 +1,55 @@ +// Send a JSON object on UDP at regular interval +// +// You can easily test this program with netcat: +// $ nc -ulp 8888 +// +// by Benoit Blanchon, MIT License 2015 + +#include +#include +#include + +byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; +IPAddress localIp(192, 168, 0, 177); +IPAddress remoteIp(192, 168, 0, 109); +unsigned int remotePort = 8888; +unsigned localPort = 8888; +EthernetUDP udp; + +JsonObject& buildJson(JsonBuffer& jsonBuffer) { + JsonObject& root = jsonBuffer.createObject(); + + JsonArray& analogValues = root.createNestedArray("analog"); + for (int pin = 0; pin < 6; pin++) { + int value = analogRead(pin); + analogValues.add(value); + } + + JsonArray& digitalValues = root.createNestedArray("digital"); + for (int pin = 0; pin < 14; pin++) { + int value = digitalRead(pin); + digitalValues.add(value); + } + + return root; +} + +void sendJson(JsonObject& json) { + udp.beginPacket(remoteIp, remotePort); + json.printTo(udp); + udp.println(); + udp.endPacket(); +} + +void setup() { + Ethernet.begin(mac, localIp); + udp.begin(localPort); +} + +void loop() { + delay(1000); + + StaticJsonBuffer<300> jsonBuffer; + JsonObject& json = buildJson(jsonBuffer); + sendJson(json); +}