Čtení dat z API

Odpovědět
TomRous
Příspěvky: 3
Registrován: 08 kvě 2019, 09:36
Reputation: 0

Čtení dat z API

Příspěvek od TomRous » 28 srp 2019, 17:58

Zdravím,
hraju ETS2 a chci si vytvořit přístrojovku. Na webu jsem našel něco, co mi vytvoří server a bude tam posílat data. Chtěl bych to však pomocí Wemos D1 mini odesílat na nějaký malý display. Aby tam byly třeba 3 řádky Rychlost, Otáčky, Tempomat. jak z toho vytáhnu data (způsobem "najdi text "cruiseControlSpeed":55.0 a napiš na display Tempomat: 55.0 km/hod" )

Zde je ten "kód" (podobný používá jistě spousta z vás u meteostanice, resp. tam jsem to viděl)

Kód: Vybrat vše

{"game":{"connected":false,"gameName":"ETS2","paused":true,"time":"0024-02-20T17:12:00Z","timeScale":3.0,"nextRestStopTime":"0001-01-01T10:53:00Z","version":"1.14","telemetryPluginVersion":"9"},"truck":{"id":"man","make":"MAN","model":"TGX Euro 6","speed":-0.0152186174,"cruiseControlSpeed":0.0,"cruiseControlOn":false,"odometer":72293.7656,"gear":0,"displayedGear":4,"forwardGears":12,"reverseGears":2,"shifterType":"arcade","engineRpm":0.0,"engineRpmMax":2100.0,"fuel":610.5255,"fuelCapacity":1160.0,"fuelAverageConsumption":1.32990611,"fuelWarningFactor":0.15,"fuelWarningOn":false,"wearEngine":0.0,"wearTransmission":0.0,"wearCabin":0.0,"wearChassis":0.0,"wearWheels":0.0,"userSteer":0.0,"userThrottle":0.0,"userBrake":0.0,"userClutch":0.0,"gameSteer":0.0312929638,"gameThrottle":1.401298E-45,"gameBrake":1.0,"gameClutch":0.0,"shifterSlot":0,"engineOn":false,"electricOn":false,"wipersOn":false,"retarderBrake":0,"retarderStepCount":3,"parkBrakeOn":false,"motorBrakeOn":false,"brakeTemperature":37.5913048,"adblue":32.5262756,"adblueCapacity":60.0,"adblueAverageConsumption":0.0,"adblueWarningOn":false,"airPressure":70.42897,"airPressureWarningOn":false,"airPressureWarningValue":69.6,"airPressureEmergencyOn":false,"airPressureEmergencyValue":34.8,"oilTemperature":53.5140953,"oilPressure":0.0,"oilPressureWarningOn":true,"oilPressureWarningValue":10.15,"waterTemperature":34.0763054,"waterTemperatureWarningOn":false,"waterTemperatureWarningValue":105.0,"batteryVoltage":27.12089,"batteryVoltageWarningOn":true,"batteryVoltageWarningValue":23.8,"lightsDashboardValue":1.0,"lightsDashboardOn":true,"blinkerLeftActive":false,"blinkerRightActive":false,"blinkerLeftOn":false,"blinkerRightOn":false,"lightsParkingOn":false,"lightsBeamLowOn":false,"lightsBeamHighOn":false,"lightsAuxFrontOn":false,"lightsAuxRoofOn":false,"lightsBeaconOn":false,"lightsBrakeOn":false,"lightsReverseOn":false,"placement":{"x":-18330.7168,"y":28.8804855,"z":-11804.498,"heading":0.996363,"pitch":0.000249036268,"roll":2.65618468E-07},"acceleration":{"x":1.497759E-05,"y":0.0187681261,"z":0.00101732975},"head":{"x":-0.795116067,"y":1.4619453,"z":0.454635859},"cabin":{"x":7.121948E-16,"y":1.33834577,"z":-2.24310255},"hook":{"x":0.0,"y":1.0,"z":-5.06578064}},"trailer":{"attached":false,"id":"","name":"","mass":0.0,"wear":0.0,"placement":{"x":-18330.7832,"y":28.8696117,"z":-11797.9316,"heading":0.999008536,"pitch":0.000141081342,"roll":-1.85932925E-06}},"job":{"income":0,"deadlineTime":"0001-01-01T00:00:00Z","remainingTime":"0001-01-01T00:00:00Z","sourceCity":"","sourceCompany":"","destinationCity":"","destinationCompany":""},"navigation":{"estimatedTime":"0001-01-01T00:00:07Z","estimatedDistance":0,"speedLimit":0}}
PS. Hra je vypnutá, proto je tam vše nastaveno na false a nuly, některá data se ale nenulují (třeba typ kamionu), ale to bych vyřešil tak, že jakmile connected bude false, tak se neukáže nic, aby to neukazovalo nesmysly u vyplé hry.

Edit: To by bylo pak v proměnných. Dal bychh si tam i dvě serva na rychlost a otáčky. Celý by to mělo fungovat stylem:
Připoj se
Zjisti data
Ulož
Vypiš je na display
Zjisti otáčky a rychlost
Ulož
Nastav serva do úhlů odpovídajících otáčkám (na to bych měl nějaký vzorec podle mnou vytvořeného "ciferníku"

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Čtení dat z API

Příspěvek od pavel1tu » 29 srp 2019, 15:39

Našel jsem něco co bude něco odesílat ... to je popis.

Asi myslíš "telemetry server" ?

Ten to normálně vrací v JSON formátu, což je výstup dat z databáze.
Jde to krásně pomocí PHP zpracovat tak, aby se ti po dotazu z Arduina vracelo jen to co potřebuješ.

Osobně jsem se tímto nezabýval, ale asi pro tebe bude výhodnější využít jejich APK aplikaci třeba na nějakém starém tabletu ...

PS: neříkám, že to nepůjde na nějaké Arduino + display, ale asi to nedáš, podle toho jak řešíš zde otevřené projkety ;)
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Google [Bot] a 10 hostů