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



RSS feeds

ESP32 / ESP8266 MicroPython: Automatické připojení k WiFiTisk

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 je možné nastavit automatické připojení k WiFi bez nutnosti zadávat stále dokola všechny příkazy. Odpovědi jednotlivých příkazů se mohou mírně lišit v závislosti na použitém čipu. Kód je ale funkční jak na ESP32 tak ESP8266.
Zkusíme dva způsoby. V prvním naimportujeme funkci z modulu a použijeme jí vždy, když se chceme připojit. V druhém způsobu nastavíme automatické připojení po startu.

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

Tento článek vyžaduje funkční zařízení se zprovozněným MicroPythonem (viz předchozí návody). Pro připojení k WiFi manuálně, využijeme příkazy z tohoto návodu.

Připojení při zavolání funkce:
Tento způsob připojení má výhodu, že k připojení dojde až v okamžiku, kdy to skutečně potřebujeme. Nejprve si nadefinujeme funkci connect, která bude obsahovat příkazy k připojení.
def connect():
# sem napíšeme zbytek kódu

Následně provedeme import modulu network, který je potřebný pro práci s WiFi. Také si uložíme naše přístupové údaje do dvou proměnných. Na základě těchto údajů se zkusíme připojit a zkontrolovat stav připojení.
import network
ssid = "názevWiFi"
password = "hesloKWiFi"
station = network.WLAN(network.STA_IF)
if station.isconnected() == True:
print("Already connected")
return

Pokud připojeni nejsme, tak provedeme samotné připojení pomocí zadaných přihlašovacích údajů.
station.active(True)
station.connect(ssid, password)

Jelikož může připojení chvíli trvat, tak v kódu počkáme, dokud se zařízení skutečně nepřipojí. Do čekací smyčky je nutné dát příkaz pass, který se používá, pokud je smyčka prázdná. Můžete si také všimnout špatného způsobu čekání pomocí nekonečné smyčky. Pokud tedy budou například špatné přihlašovací údaje, tak to bude donekonečna čekat a nikdy se to nepřipojí. Pro jednoduchost ale řekněme, že nám to nevadí.
while station.isconnected() == False:
pass
print("Connection successful")
print(station.ifconfig())
Celý kód bude tedy vypadat následovně:
def connect():
import network
ssid = "názevWiFi"
password = "hesloKWiFi"
station = network.WLAN(network.STA_IF)
if station.isconnected() == True:
print("Already connected")
return
station.active(True)
station.connect(ssid, password)
while station.isconnected() == False:
pass
print("Connection successful")
print(station.ifconfig())

Pro nahrání kódu otevřete příkazovou řádku, jděte do adresáře, kde jste si script uložili a spusťte následující příkaz (zaměňte COM port a název scriptu za vámi použitý):
ampy --port COM5 put ConnectWiFi.py
Pro kontrolu, že se script skutečně nahrál do zařízení, se do zařízení připojíme (například pomocí Putty) a spustíme následující příkazy:
import os
os.listdir()


Obrázek 1 – Zobrazení souborů

Nyní si jednoduše naimportujeme modul a zavoláme jeho funkci.
import ConnectWiFi
ConnectWiFi.connect()

Obrázek 2 – Zkouška připojení

Jen pro potvrzení naší pojistky proti opětovnému připojení zavoláme poslední příkaz znovu. Mělo by nám to odpovědět, že je zařízení již připojeno.

Obrázek 3 – Zkouška ochrany

Automatické připojení po startu:
Jak je možné si všimnout v předchozí části, ve složce existuje i soubor boot.py. Tento script se spustí vždy při startu systému a již obsahuje kód, který bychom neměli odstraňovat. Můžeme k němu ale něco přidat.
Můžeme ale využít ještě jiného způsobu. V závěru scriptu boot.py se zkusí spustit script main.py. Standardně není vytvořen, ale my si ho můžeme ručně vytvořit. Vytvořte tedy soubor s názvem main.py (pozor, zde je důležité mít název shodný s tímto návodem). Vložte do něj tyto dva řádky:
import ConnectWiFi
ConnectWiFi.connect()

Soubor nahrajeme na desku pomocí následujícího příkazu (zaměňte COM port za vámi použitý):
ampy --port COM5 put ConnectWiFi.py
Pomocí příkazu os.listdir() si můžeme ověřit, zda byl soubor nahrán. Pro kontrolu funkčnosti stačí resetovat napájení desky. Zařízení by se mělo restartovat a automaticky připojit k WiFi.

Obrázek 4 – Výpis po startu

Pokud zkusíme zařízení znovu připojit ručně, měly bychom dostat chybovou hlášku, že je zařízení již připojeno.

Obrázek 5 – Kontrola připojení

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,522 návštěv