Otevře se na nové kartě

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

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()
PuTTY zobrazuje výpis souborů zařízení s nahraným skriptem ConnectWiFi.py

Obrázek 1 – Zobrazení souborů

Nyní si jednoduše naimportujeme modul a zavoláme jeho funkci.

import ConnectWiFi
ConnectWiFi.connect()
PuTTY zobrazuje výstup MicroPythonu po připojení zařízení k Wi-Fi

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.
Terminál PuTTY zobrazuje připojené Wi-Fi a odpověď „Already connected“ po opakování příkazu

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.
Terminál PuTTY zobrazuje úspěšné připojení desky ESP32 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.
PuTTY zobrazuje konzoli ESP32 s úspěšným připojením k WiFi a hláškou Already connected

Obrázek 5 – Kontrola připojení

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

Příkazový řádek Windows zobrazuje instalaci nástroje adafruit-ampy pomocí pip

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

Terminál PuTTY zobrazuje připojení ESP32 k WiFi a získanou IP adresu

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

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.

Schéma nahrávání MicroPythonu do ESP32 přes esptool, PuTTY a Octopus()

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

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.

Výřez kódu MicroPythonu pro knihovnu LED, třídu Led a blikání

– 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…

Trendy