ESP32 MicroPython návod: Zakódování JSONu
- December 30 2018
- ESP32, ESP8266, NodeMCU , Wemos, RTLDuino...
- 1299x Přečteno
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.