Sdílejte chiptron.cz na sociálních sítích



RSS feeds

ESP32 MicroPython návod: Zakódování JSONuTisk

Níže uvedený článek je článek přeložený ze stránek dfrobot.com.

Cíl tohoto návodu na MicroPython je vysvětlit, jak zakódovat JSON zprávu použitím MicroPython a knihovny ujson na ESP32. Můžete si vyzkoušet, jak umožnit podporu MicroPythonu v tomto předchozím příspěvku. Pokud potřebujete průvodce na práci se strukturou JSON, koukněte na tento předchozí příspěvek.

Všechny články o MicroPython a ESP32/ESP8266 najdete na https://chiptron.cz/articles.php?cat_id=23

Kód
Nejdříve potřebujeme importovat modul ujson, který lze provést následujícím příkazem:
import ujson

Důležitá poznámka: v době psaní tohoto článku byl ujson jeden z modulů obsažených v MicroPython firmwaru. Mohli jsme tedy jen provést import bez dalších kroků. Pokud vám nelze provést import, modul je zapotřebí manuálně instalovat.
Příklad JSON zprávy je níže. Je to simulace možné zprávy od IoT zařízení. Je v ní typ zařízení (teplotní senzor) a nějaké možné naměřené hodnoty.

{
"deviceType": "Temperature",
"values": [23,22,25]
}


Potřebujeme dát konstrukci naší zprávy do proměnné. Použijeme k tomu Python knihovnu, která pracuje se strukturou jméno-hodnota. Vyhovuje to tedy konstrukci pro JSON.
Začneme tím, že nastavíme prázdnou proměnnou, kterou pojmenujeme dict. Poté nastavíme řetězec „Temperature“ do klíče „deviceType“. Do klíče „values“ nastavíme pole hodnot. Po nastavení hodnot, si proměnnou pro ověření vypíšeme.

dict = {}
dict["deviceType"] = "Temperature"
dict["values"] = [23,22,25]
print(dict)


Po provedení předchozího kódu, by měl být výstup podobný obrázku 1. Jak lze vidět, máme knihovnu se strukturou jméno-hodnota. Všimněte si, že řetězec reprezentuje Python knihovnu a že je velmi podobný JSON řetězci.


Obrázek 1 - Obsah Python knihovny

Pro dokončení, převedeme knihovnu na JSON řetězec použitím funkce dumps použitého ujson modulu. Tato metoda přijímá jako vstup knihovnu a vrací JSON řetězec. Po vyvolání této funkce si zobrazíme výsledky.

encoded=ujson.dumps(dict)
print(encoded)


Finální výsledek je zobrazen na obrázku 2, kde je zakódovaný řetězec zobrazen. Všimněte si, že výstup je velmi podobný řetězcové reprezentaci knihovny, který jsme měli předtím, ale názvy a hodnoty jsou teď ve zdvojených uvozovkách místo jednoduchých.


Obrázek 2- Finální výstup JSON programu zakódování

Originální článek je dostupný zde.

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
10,887,497 návštěv