ESP32

ESP32 MicroPython: Connecting to a WiFi Network

기하 2021. 8. 16. 03:37

소개

이 게시물의 목적은

ESP32에서 MicroPython을 사용하여 WiFi 네트워크에 연결하는 방법을 설명하는 것입니다. 

 

여기에 표시된 절차는 MicroPython 설명서 웹 사이트에서

ESP8266에 대해 제공 되는 가이드를 기반으로 하므로 읽어보시기 바랍니다.

 

프롬프트에 명령을 전송하여 Python 코드를 실행하여 단계별로 볼 수 있습니다. 

ESP32에서 아직 MicroPython을 구성하지 않았다면  이전 게시물을 확인하세요 .

저는 Putty  사용 하여 Python 프롬프트에 대한 직렬 연결을 설정하지만 이러한 종류의 연결을 허용하는 다른 소프트웨어를 사용할 수 있습니다.


코드

먼저 WiFi 네트워크에 연결하는 데 필요한 모든 기능에 액세스하려면 네트워크 모듈 을 가져와야 합니다 .

1 import network

모듈을 가져오면 그림 1과 같이 일부 정보가 콘솔에 인쇄됩니다. 이 자습서에서는 필요하지 않지만 설명을 위해 여기에 남겨 둡니다.

그림 1 - MicroPython 네트워크 모듈 가져오기.

WiFi 네트워크에 연결할 것이기 때문에 장치는 스테이션 모드에서 작동합니다. 따라서 스테이션 WiFi 인터페이스의 인스턴스를 생성해야 합니다[1]. 그렇게 하려면 WLAN 클래스 의 생성자를 호출하고  원하는 인터페이스의 식별자를 입력으로 전달하기만 하면 됩니다. 이 경우 network.STA_IF 인터페이스를 사용합니다  .

1 station = network.WLAN(network.STA_IF)

이제 스테이션 개체 에서 활성 메서드를 호출하고 부울 값을 허용하므로 True 를 입력으로 전달 하여 네트워크 인터페이스를 활성화 합니다.

1 station.active(True)

다시 말하지만, 이 명령을 실행한 후 명령줄에 출력이 나타나야 합니다. 이는 그림 2와 같이 스테이션 모드에 있고 인터페이스가 시작되었음을 나타냅니다.

그림 2 - 스테이션 모드 활성화.

마지막으로 연결  방법을 사용하여 WiFi 네트워크에 연결합니다. 이 방법은 SSID(네트워크 이름)와 암호를 모두 입력으로 받습니다.

1 station.connect("YourNetworkName", "YourNetworkPassword")

콘솔에 일부 정보를 다시 인쇄합니다. 연결에 시간이 걸릴 수 있음을 고려하십시오. 또한 연결이 설정되면 ">>>>"  가 인쇄되지 않으므로 그림 3과 같이 마지막 메시지가 인쇄된 후에도 장치가 여전히 처리 중인 것처럼 보일 수 있습니다. Enter 키를 눌러 정상적으로 계속할 수 있습니다.

그림 3 – WiFi 네트워크에 연결하기.

마지막으로 isconnected 메서드 를 호출하여 연결을 확인합니다. 이 메서드는 장치가 WiFi 네트워크에 연결되어 있으면 true를 반환합니다[2].  IP 주소 , 서브넷 마스크 , 게이트웨이  DNS 를 출력 매개변수로 반환 하는 ifconfig 메서드 도 호출합니다 [2].

1
2
station.isconnected()
station.ifconfig()

아래 그림 4에서 이 명령의 최종 출력을 확인하십시오. 이는 WiFi 네트워크에 올바르게 연결되었음을 나타냅니다.

그림 4 - WiFi 네트워크 연결 확인.

ESP32에 할당된 IP는 로컬이므로 라우터를 포트 포워딩 하지 않고  네트워크 외부에서 연결을 수신하는 데 사용할 수 없습니다 .