Arduino JSON
Jan Půhoný
konference na puhy.cz
Čtvrtek Září 15 09:41:41 CEST 2022
Díky všem, takto mi to funguje: pro sensory purpleAir na vnitřní síti:
int getAirQuality(int sensor_id)
{
if ((WiFi.status() == WL_CONNECTED)) {
HTTPClient http;
if(sensor_id==ID_SENSOR_IN){
http.begin("http://IP_ADDR_IN/json"); // HTTP
}
else if (sensor_id== ID_SENSOR_OUT ){
http.begin("http:// IP_ADDR_OUT/json"); // HTTP
}
int httpCode = http.GET();
//httpCode will be negative on error
if (httpCode > 0) {
// file found at server
if (httpCode == HTTP_CODE_OK) {
String response = http.getString();
//Serial.print(response);
JSONVar myObject = JSON.parse(response);
int PM2_5 = myObject["pm2.5_aqi"];
response = "";
http.end();
return PM2_5;
}
} else {
http.end();
return httpCode;
}
} else {
return WiFi.status();
}
}
Honza Půhoný
čt 15. 9. 2022 v 8:36 odesílatel Pavel Brychta <pavel.brychta na duhasys.eu>
napsal:
> Ale jeste moment - to neni ArduinoJSON knihovna, ale nejaka jina, takze
> nejdriv doporucuju prejit na ArduinoJSON - s ni mam nejlepsi zkusenosti
> co se tyce parsovani i dlouhych dokumentu, popripade per partes parsovani.
>
> Pavel Brychta
>
> Dne 15. 09. 22 v 8:32 Pavel Brychta napsal(a):
> > ... anebo to udelat tak, jak je ArduinoJSON napsane - tedy int PM2_5 =
> > myObject["pm2.5_aqi"].as<int>(); Tedy za predpokladu, ze myObject je
> > objekt typu JSONDocument...
> >
> > Pavel Brychta
> >
> > Dne 14. 09. 22 v 17:03 Miroslav Mraz napsal(a):
> >> Podstatný je typ (JSONVar) a ten je značně polymorfní. Takže podle
> >> kontextu to může být String, const char *, bool, int nebo double.
> >> Patrně by stačilo přiřadit
> >> int PM2_5 = myObject["pm2.5_aqi"];
> >> nebo exaktněji
> >> int PM2_5 = static_cast<int>(myObject["pm2.5_aqi"]);
> >>
> >> Přetěžování operátorů v této podobě je zvěrstvo, hlavně pro toho, kdo
> >> se v tom zas tak moc nevyzná. Nicméně tak jak to bylo původně
> >> napsáno, by to mělo fungovat také, funkce atoi() by měla pobrat jako
> >> argument const char* a vyhodit int hodnotu. Bude to chtít nějaký
> >> debug výpis té proměnné - jestli tam je vůbec něco, nějaký test parseru.
> >>
> >> Mrazík
> >>
> >> On 14. 09. 22 16:17, Jindroush wrote:
> >>> Co je za hodnotu v tom myObject["pm2.5_aqi"]?
> >>> Je to primo int 36 nebo je to retezec "36"?
> >>> Coz bych hledal v dokumentaci toho JSON.parse, jaka je pametova
> >>> reprezentace.
> >>> j.
> >>>
> >>>
> >> _______________________________________________
> >> HW-list mailing list - sponsored by www.HW.cz
> >> Hw-list na list.hw.cz
> >> http://list.hw.cz/mailman/listinfo/hw-list
> > _______________________________________________
> > HW-list mailing list - sponsored by www.HW.cz
> > Hw-list na list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20220915/fbb01ba0/attachment.htm>
Další informace o konferenci Hw-list