“JsonUdpBeacon”的版本间的差异
来自YFRobotwiki
(以“ Json库 <pre> // Copyright Benoit Blanchon 2014-2016 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson // If you like thi...”为内容创建页面) |
|||
第5行: | 第5行: | ||
<pre> | <pre> | ||
− | // | + | // 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-2016 | ||
+ | #include <SPI.h> | ||
+ | #include <Ethernet.h> | ||
#include <ArduinoJson.h> | #include <ArduinoJson.h> | ||
− | + | 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() { | void loop() { | ||
− | + | delay(1000); | |
+ | |||
+ | StaticJsonBuffer<300> jsonBuffer; | ||
+ | JsonObject& json = buildJson(jsonBuffer); | ||
+ | sendJson(json); | ||
} | } | ||
+ | |||
2016年8月22日 (一) 15:42的最后版本
// 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-2016 #include <SPI.h> #include <Ethernet.h> #include <ArduinoJson.h> 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); }
更多建议和问题欢迎反馈至 YFRobot论坛