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.

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.

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))

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))

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“])

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))

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.

Obrázek 7 – Status požadavku

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

Sdílejte článek:
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku

Související články

Toto je první díl ze tří – úvodního kurzu Micropython na ESP32.

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

– Změny v Micropythonu si vynucují změnu octopus() – Opakování a podrobnější doplnění – LED – nejjednodušší knihovna pro testování – web_server() – Webový editor IDE (integrated development environment) – Některé další vychytávky – Drobné projekty – examples V minulých…

– ROBOTboard (HW) – Octopus open source knihovny (FW) – Nastavení zařízení a periferií – ds: device setting > pinouts – ios: input-output setup – Upgrade systému – Displeje – Tlačítka – Mechatronika – Čidla a vstupy – Shrnutí V…

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

Trendy