Парсинг строки порта

возникла очередная проблема пытаюсь разобрать строку из порта на данные с датчика на HC12

приходит вот такого вида данные в порт {“b”:410,“num”:“0”,“t”:26.37,“h”:27.54,“p”:988.48,“s”:“BME280”}

планирую загнать эти данные такую структуру

struct wSensorData {
  uint16_t bat;    //вольтаж    
  uint8_t num;     //номер 
  int16_t temp;    //температура
  uint8_t hum;     //влажность
  uint16_t press;  //давление
  char type;       //тип  
} wSens;

как правильно это сделать и еще не уверен что верно выбрал в 6 тип датчика в виде char “BME280” ?

где?

не верно.

дык это json ! это ж элементарно ватсон !

а почему тут ноль в кавычках?

это номер датчика 0 или 1 может быть

я спросил - почему в кавычках?
по аналогии другие параметры после : без кавычек.

я не настолько силен в ардуино не все знаю , arduinojson я не ставил .

может быть и не числом, не является ошибкой

с этим поразбирайся, тут очень просто
в случае тупика - спрашивай

ааа сам не понял зачем , исходник датчика глянул можно убрать

Serial.print(",\"num\":\""); Serial.print(SENSOR_NUMBER); Serial.print("\"");

в чей порт?
от этого зависит оправданность применения JSON parsing library
или можно пару функциями обойтись.

читаю датчик ESP32 HC12 радиодатчиком из serial порта

ну если ESP32 можно и JSON изучать…

Если ESP32 то НУЖНО ставить библиотеку и не парить мозг.
А если бы был AVR восьми битный, то не нужно пользоваться форматом JSON :wink:


ArduinoJson - одна из самых профессиональных библиотек во всей экосистеме Ардуино. И пользоваться ей удобно. Совершенно точно не нужно изобретать велосипед.

библиотеку то я поставлю

покажите хоть как с ее помощью эту строку парсировать

вот пусть и объясняет.

Ты можешь объяснить, для чего пользоваться неудобным говном, если есть удобная стандартная? Ты память на ЕСП32 экономить собрался? И почем продать можно сэкономленную? А то может курс стал хороший? :wink:

Да нет памяти у меня достаточно ESP32 S3 n16 , просто я еще не имел дело с arduinojson счас поставлю библиотеку буду изучать , я пару лет только ардуино стал активно заниматся поэтому много чего не знаю еще.

эту ставить лучше или GyverLibs/GSON ?

все, которые тебе насоветовали.
все посмотришь и выберешь лучшую для себя.
можешь начать с моей рекомендации, но это не обязательно,
но твою строку можно распарсить двумя командами indexOf() и substring() вообще без сторонних библиотек