Otevře se na nové kartě

ESP32 / ESP8266 MicroPython: HTTP GET požadavek

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

Úvod:

Cílem tohoto návodu je vysvětlit jak vykonat http požadavek pomocí MicroPythonu použitím knihovny urequests. Program byl testován jak na ESP32, tak ESP8266. Všechny zdrojové kódy je možné stáhnout zde. Je nutné upozornit na to, že v době psaní článku byl modul urequests součástí základního balíku MicroPythonu. To se může v budoucích verzích změnit a bude nutné ho doinstalovat ručně.

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

Pro tento návod je nutné mít zařízení připojené k síti. Připojíme se tedy k WiFi. Pokud nevíte, jak na to, tak koukněte na tento návod. Pro automatické připojení na startu zkuste tento návod.

V tomto návodu budeme zadávat jednotlivé příkazy do příkazové řádky. Pokud by vám tento způsob nevyhovoval, můžete si příkazy psát do scriptu a pouštět ten.

Budeme používat Putty na připojení k příkazové řádce tak, jako v ostatních návodech tohoto seriálu. Pokud nevíte, jak na to, tak koukněte do předchozích dílů.

Programování:

Nejprve je nutné provést import modulu urequests.

import urequests

Pro vytvoření HTTP požadavku stačí pouze zavolat funkci get z načteného urequests modulu. Jejím vstupem je URL adresa. V tomto návodu použijeme ukázkovou adresu (http://jsonplaceholder.typicode.com/albums/1), která na tyto požadavky reaguje tím, že vrátí testovací JSON.
Prohlížeč zobrazuje JSON odpověď serveru JSONPlaceholder s údaji o albu

Obrázek 1 – Odpověď serveru

Pro vykonání tohoto požadavku spustíme následující kód:
response = urequests.get(‚http://jsonplaceholder.typicode.com/albums/1‘)

print(type(response))

Vidíme, že odpověď je typu Response.

Terminál PuTTY s MicroPythonem na ESP32 zobrazuje HTTP GET a typ odpovědi Response

Obrázek 2 – Odpověď serveru

Pro přístup k datům v odpovědi serveru, přistoupíme na jeho vlastnost text.
print(response.text)

print(type(response.text))
Terminál PuTTY zobrazuje JSON odpověď serveru po HTTP GET požadavku v MicroPythonu

Obrázek 3 – Zobrazení detaily odpovědi serveru

Jak je vidět z odpovědi příkazů, tak datový typ vlastnosti text je string. Pro lepší práci s jednotlivými prvky odpovědi se nám bude více hodit zavolat funkci json, která vrací datový typ dictionary. Tento typ nám lépe umožní procházet jednotlivé položky.
parsed = response.json()

print(type(parsed))
Terminál PuTTY s MicroPythonem na ESP32 zobrazuje JSON odpověď a její převod na slovník

Obrázek 4 – Zpracování odpovědi

Jak je možné si všimnout ve zdrojovém kódu této funkce, tak uvnitř používá knihovnu ujson, kterou jsme použili v předchozích dílech.

Zkusíme si nyní přístup k jednotlivým prvkům odpovědi. Výstup je stejný, jaký je možné vidět v prohlížeči.
print(parsed[„userId“])

print(parsed[„id“])

print(parsed[„title“])
Terminál PuTTY s JSON odpovědí a vypsanými položkami userId, id a title

Obrázek 5 – Vypsání jednotlivých prvků odpovědi

Jiným způsobem zpracování může být přístup přes vlastnost content, která vrací odpověď jako pole bytů.
print(response.content)

print(type(response.content))
Terminál PuTTY vypisuje obsah HTTP odpovědi jako pole bytů

Obrázek 6 – Detail vlastnosti content

Pro automatické zpracování se nám mohou hodit ještě dvě vlastnosti – status (status_code) a výsledek (reason).
print(response.status_code)

print(response.reason)

Všimněte si, že status 200 odpovídá stavu „OK‘ v řeči HTTP.
Terminál PuTTY zobrazuje HTTP odpověď status_code 200 a reason OK

Obrázek 7 – Status požadavku

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

Sdílejte článek:
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Postman zobrazuje HTTP POST požadavek s textovým tělem a odpovědí JSON

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

Terminál PuTTY zobrazuje v MicroPythonu načtení JSONu a výpis slovníku se jménem John

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

Schéma zapojení ESP8266 a čtyřkanálového relé pro ovládání čtyř žárovek

Open-source repozitář se stovkou IoT projektů na ESP32, ESP8266 a Raspberry Pi Pico v MicroPythonu. Chytré zavlažování, RFID zámek, detekce plynu, WiFi robot a meteostanice – s kódem i zapojením. Aktualizace: interaktivní přehled projektu. Vyberte si desku a zaměření projektu…

Terminál PuTTY zobrazuje MicroPython kód a výsledek zakódování slovníku do JSONu

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

Deska OctopusLAB s ESP32, připojeným sedmisegmentovým displejem a barevnými vodiči

V Octopus LAB (sledujte nás na FB) jsme se poslední dobou hodně soustředili na ESP32 ve spojení s Micropythonem.

Nastavení sériového připojení k ESP32 v Putty — konfigurace pro MicroPython REPL

Dva způsoby, jak nahrát MicroPython na ESP32 — jednoduše přes Thonny IDE nebo ručně přes esptool. První blikající LEDka do pěti minut.

Trendy