Wifi접속과 활용이 용이한 마이크로 컨트롤러 – 라즈베리파이 피코 W (raspberry-pi PICO W)

Wifi접속과 활용이 용이한 마이크로 컨트롤러 – 라즈베리파이 피코 W (raspberry-pi PICO W)

앞선 글들에서 라즈베리파이 피코 보드를 소개하고, 주요특징들을 소개하였었다.

https://blog.naver.com/mythee1/223171125890

1. PICO W 소개

그런데, 피코보드는 Wifi나 블루투스 접속 기능이 없는 기본 버전의 제품도 있지만, Wifi와 블루투스 접속 기능을 지원하는 W 제품도 있어, 이 제품의 주요특징과 와이파이에 접속하는 방법을 소개한다.

먼저 외관은 다음과 같이 생겼다.

기본적으로 일반적인 피코 보드와 동일한 크기와 동일한 핀배열을 가진다. 그래서 대부분의 경우에는 일반 피코 보드와 동일한 방법으로 사용이 가능하다.

회로상 가장 큰 차이점은 보드 표면의 은색 사각박스 형태의 부품인데, 이 부분이 Infineon사의 CYW43439 무선칩회로를 내장하고 있는 것으로 알려져 있다. 지원하는 주요 기능은 다음과 같다.

* 2.4GHz Wifi(802.11n) 지원

* 블루투스 5.2 지원

* Wifi 모듈은 국가 설정은 되어 있지 않다.

* power saving mode가 적용되어 있다. – 필요시 해제 가능

하부의 모습은 다음과 같다.

그 외의 외견상 주요한 차이점은 DEBUG 단자가 보드 중앙에 있는 점과, 회로상 on-board LED의 연결형태가 다르다는 정도를 제외하면 큰 차이를 느끼기는 어렵다.

라즈베리파이 피코 W의 자세한 기술적 사항에 대해서는 다음 Datasheet를 참조하면 되나, 대부분의 사람들에게는 위에 소개한 정도 외의 특별한 차이점은 굳이 알아둘 필요가 없을듯도 하다.

Raspberry Pi Pico W Datasheet

2. PICO W에서 Wifi Network 접속 방법 및 명령어

피코보드 W의 Wifi 접속에는 다음과 같은 부분이 필요하다.

먼저 network 라이브러리를 선언해 주어야 한다.

import network

그리고, Wifi 접속시 사용할 SSID와, Password를 기재한다. 주의할 것은 2.4GHz 와이파이를 선택해야 한다.

SSID = “mywifi”

PASSWORD = “password”

그리고, 다음 명령어들을 이용하여 네트워크에 접속해준다.

wlan = network.WLAN(network.STA_IF) –> wlan 생성 명령

( )안은 Interface type인데, 그냥 똑같이 써준다.

wlan.active(True) –> Wifi를 활성화 또는 비활성화 시키는 명령이다.

wlan.connect(SSID, PASSWORD) –> 실제 접속시키는 명령이다.

이렇게 명령어들을 연속해서 사용하고 잠시 기다려주면, Wifi접속이 이루어진다.

Wifi 접속을 종료하려고 하는 경우에는 다음 명령어를 사용하면 된다.

wlan.disconnect( )

위의 명령어들 외에 참고할 필요가 있는 명령어들을 추가로 소개하면 다음과 같다.

wlan.status( ) -> 인자없이 사용하면 현재 상태값을 돌려주는데, 반환값의 의미는 다음과 같다.

0:Link Down, 1:Link Join, 2:No IP, 3: Link Up,

-1:Link Fail, -2:No Net, -3 :Bad Auth)

wlan.isconnected( ) –> 연결 여부를 TRUE / FALSE로 돌려줌

wlan.ifconfig( ) –> IP / subnet / gateway /DNS 값의 순서로 반환해준다.

wlan.config( ) –> wlan 인자값을 설정하거나,

값 없는 parameter만 사용하면 해당 parameter의 설정상태를 알려준다.

예 ; wlan.config(‘ssid’)는 현재 접속한 SSID를 반환해준다.

예 wlan.config(‘mac’)는 현재 접속한 Mac Address를 반환해준다.

예 wlan.config(pm=0xa11140) power saving모드를 비활성화해준다.

3. Sample Code 접속 방법

위에서 소개한 Wifi 접속 명령어들을 보여주기 위해 다음과 같은 간단한 Code를 준비했다.

import network
import utime
import urequests

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.scan( ) #--> Scan

SSID = "myssid"
PASSWORD = "mypassword"

wlan.connect(SSID, PASSWORD)
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to connect:")
    utime.sleep(1)
if wlan.status() != 3:
    raise RuntimeError('network connection failed')
else:
print("Wifi is connected == ", wlan.isconnected())
print( "Status =", wlan.status())
print( "ip =", wlan.ifconfig())
print( "SSID", wlan.config('ssid'))
print( "Channel :", wlan.config('channel'))
print( "Mac : ", wlan.config('mac'))
print( "TXPOWER : ", wlan.config('txpower'))

이 Code 를 실행시킨 결과는 다음과 같다.

여러 네트워크 접속시의 명령어 사용 사례를 보여준다.