JSON и ардуино, создание массива
- Войдите на сайт для отправки комментариев
Пт, 30/03/2018 - 17:37
Помогите создать массив с использованием библиотеки #include <ArduinoJson.h>
нужно " упаковать" данные с датчиков в массив!
я только начал осваивать ардуино!!!
инфа на сайте http://arduinojson.org/doc/decoding/
#include "DHT.h" #include <Wire.h> #include <BH1750.h> #include <ArduinoJson.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); BH1750 lightMeter; void setup() { Serial.begin(9600); Serial.println("Датчик Температуры и Влажности подключен"); dht.begin(); Serial.println("Датчик Освещенности подключен"); lightMeter.begin(); // JSON while (!Serial) continue; StaticJsonBuffer<200> jsonBuffer; delay(2000); //По температуре float hum = dht.readHumidity(); float temp = dht.readTemperature(); /* Serial.print("Humidity: "); Serial.print(hum); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(temp); Serial.print(" *C "); */ //По Освещенности uint16_t lux = lightMeter.readLightLevel(); /* Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); */ // Есть 3 показателя датчиков : lux temp hum //Пробное создание JSON char json[] ="{\"Temperatura\":\"temp\",\"Vlagjnost\":\"hum\",\"Osveschennost"\:\"lux\"}"; /* { "Arduino_Mega": "Datchik", "Temp_Vlag_Kluch": { "Temperatura": "temp", "Vlagjnost": "humе", }, "Oswechennost_Kluch": { "Osveschennost": "lux",}, }, */ //Используйте функцию объекта parseobject() для декодирования/парсить json в строку JsonObject называется корень. JsonObject& root = jsonBuffer.parseObject(json); //Чтобы проверить, если декодирование/разбор был успешным, можно назвать root.успех(): if (!root.success()) { Serial.println("parseObject() failed"); return; } // Извлечения значений. // // Большую часть времени, вы можете полагаться на неявные преобразования. // В другом случае вы можете сделать root["time"].as<long>(); const char* temp = root ["Temperatura"]; const char* hum = root["Vlagjnost"]; const char* lux = root ["Osveschennost"]; /* long time = root["time"]; double latitude = root["data"][0]; double longitude = root["data"][1]; */ // Print values. Serial.println(temp); Serial.println(hum); Serial.println(lux); void loop() { }
Что не понятно в http://arduinojson.org/doc/encoding/ и в http://arduinojson.org/api/jsonobject/createnestedobject/ (копировать сюда не буду)?
decoding - это распаковка строки в переменные
encoding - это упаковка переменных в строку
все что в кавадратных скобочках это Array, все что в фигурных Object, если внутри то добавляется приставка nested.
Посмотрел исходники - данные можно выводить и в String переменную и в char[] буфер с укзанием размера буфера.
Возник вопрос по библиотеке JSON.
Можно ли разместить jSON во flash ?
в примере пишут что можно, но насколько экономиться RAM, и как это можно посчитать ?
Подскажите как обойтись без граблей и сразу отправить Json в http?
обойтись без граблей и сразу отправить Json в http?
Что бы этот набор слов мог значить?
Ответ на мой вопрос