로봇/라즈베리파이

라즈베리파이 AP(Access Point)로 사용하기

with-RL 2023. 7. 18. 23:39

이 포스트는 라즈베리파이 4를 Wi Fi 환경에서 사용하기 위해서는 매번 WiFi SSID 및 Password를 설정해야 하고 이렇게 하기 위해서는 여러 가지 활용에 제약이 있기 때문에 라즈베리파이를 AP(Access Point)로 사용해서 별도의 설정 없이 노트북이나 핸드폰으로 쉽게 라즈베리파이에 접속할 수 있도록 하는 과정입니다.

이 과정은 다음 환경에서 구성했습니다.

  • Windows 11
  • Raspberry Pi 4 Model B (8GB)

이 포스트는 다음 과정을 완료한 후에 참고하시길 바랍니다.

1. 라즈베리파이 AP 모드 설정

  • 라즈베리파이가 AP 모드로 동작하도록 설정하는 과정입니다.
  • ssh 등 네트워크로 원격에서 진행할 경우 중간에 네트워크 변경으로 접속이 안될 수 있습니다. 라즈베리파이에 모니터 키보드를 직접 연결해서 설정하시길 추천합니다.
  • 아래 명령을 실행해서 라즈베리파이의 패키지를 최신 상태로 업그레이드합니다.
$ sudo apt update && sudo apt upgrade -y
  • 다음은 아래 명령을 실행해서 두 개의 서비스를 설치합니다.
    • hostapd: WiFi AP 기능을 제공하는 서비스입니다.
    • dnsmasq: WiFi AP가 DHCP를 제공할 때 사용합니다.
$ sudo apt install -y hostapd dnsmasq
  • 아래 명령을 실행해서 ‘/etc/dhcpcd.conf’ 파일 편집을 위해 관리자 권한으로 vi 편집기를 실행합니다.
$ sudo vi /etc/dhcpcd.conf
  • ‘/etc/dhcpcd.conf’ 파일의 맨 마지막에 아래 내용을 추가합니다.
interface wlan0
static ip_address=192.168.32.1/24
nohook wpa_supplicant

  • 아래 명령을 실행해서 ‘/etc/dnsmasq.conf’ 파일 편집을 위해 관리자 권한으로 vi 편집기를 실행합니다.
$ sudo vi /etc/dnsmasq.conf
  • ‘/etc/dnsmasq.conf’ 파일의 맨 마지막에 아래 내용을 추가합니다.
interface=wlan0
dhcp-range=192.168.32.2,192.168.32.10,255.255.255.0,24h
domain=wlan
address=/gw.wlan/192.168.32.1

  • 아래 명령을 실행해서 ‘/etc/hostapd/hostapd.conf’ 파일 생성을 위해 관리자 권한으로 vi 편집기를 실행합니다.
# sudo vi /etc/hostapd/hostapd.conf
  • ‘/etc/hostapd/hostapd.conf’ 파일을 아래와 같이 편집합니다.
    • ssid: 설정하고자 WiFi 이름을 입력합니다.
    • wpa_passphrase: WiFi 비밀번호를 입력합니다. 8글자 이상을 입력하세요. 아니면 오류가 발생할 수 있습니다.
country_code=AD
interface=wlan0
ssid=cchyun-pi
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=****
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

  • 아래 명령을 실행해서 라즈베리파이를 재시작합니다.
$ sudo reboot
  • 아래 명령을 실행해서 ‘hostapd’를 실행합니다.
$  sudo systemctl start hostapd
  • 만일 ‘###Failed to start hostapd.service: Unit hostapd.service is masked’와 같은 오류가 발생하면 ‘hostapd’에 unmask를 설정한 뒤 ‘hostapd’를 다시 실행합니다.
$ sudo systemctl unmask hostapd.service
$ sudo systemctl start hostapd
  • 아래 명령을 실행해서 ‘dnsmasq’를 실행합니다.
$ sudo systemctl start dnsmasq
  • 아래 명령을 실행해서 라즈베리파이를 다시 한번 재시작합니다.
$ sudo reboot
  • PC 또는 핸드폰에서 위에서 설정한 SSID가 보이면 정상으로 설정된 것입니다.

2. 라즈베리파이에 접속하기

  • 이제 라즈베리파이에 WiFi 접속이 가능해졌습니다. 하지만 노트북을 이용해 라즈베리파이에 WiFi로 접속을 하게 되면 노트북이 인터넷을 사용할 수 없게 됩니다.
  • 그래서 해결 방안으로 다이소에서 구매한 WiFi 동글을 추가로 노트북에 장착했습니다.

  • 새로 추가한 WiFi는 Windows에서 Wi-Fi2로 표시됩니다. 라즈베리파이 WiFi를 선택하고 연결합니다.

  • Windows 설정에서 WiFi 정보를 확인하면 아래와 같이 두 개가 확인됩니다.

  • PowerShell에서 라즈베리파이에 접속할 수 있습니다.

  • 동시에 Google에 ping 테스트도 가능합니다. 이제 인터넷도 할 수 있고 동시에 라즈베리파이에 접속할 수 있습니다.

3. AP 모드 비 활성화 하기

  • 라즈베리파이를 이용하다 보면 어떤 이유로 AP모드를 비활성화하고 다른 WiFi에 접속을 할 필요가 생길 수 있습니다. AP모드를 비활성화하는 방법에 대해서 알아보겠습니다.
  • 주의할 점은 WiFi에 접속이 안되거나 여러 가지 이유로 라즈베리파이에 네트워크 접속이 안될 수 있어서 필요에 따라 모니터, 키보드 등 라즈베리파이에 직접 접속해서 설정이 필요할 수 있으므로 이런 환경이 가능한 상황에서 조작하기를 추천드립니다. 라즈베리파이에 설정된 WiFi 환경에서 아래 과정을 진행하면 바로 네트워크 접속이 가능할 수 있습니다.
  • 라즈베리파이의 WiFi AP에 접속 후 ssh 명령을 이용해 접속합니다.
  • 아래 명령을 실행해서 ‘/etc/dhcpcd.conf’ 파일 편집을 위해 관리자 권한으로 vi 편집기를 실행합니다.
$ sudo vi /etc/dhcpcd.conf
  • ‘/etc/dhcpcd.conf’ 파일의 마지막 이전에 추가했던 내용을 모두 코멘트 아웃 합니다.
#interface wlan0
#static ip_address=192.168.32.1/24
#nohook wpa_supplicant

  • 아래 명령을 실행해서 부팅 시 AP 관련 서비스가 동작하지 않도록 설정합니다.
$ sudo update-rc.d hostapd disable
$ sudo update-rc.d dnsmasq disable
  • 아래 명령을 실행해서 라즈베리파이를 재 시작 합니다.
$ sudo reboot

4. AP 모드 활성화 하기

  • AP모드를 다시 활성화하는 방법에 대해서 알아보겠습니다.
  • 주의할 라즈베리파이에 네트워크 접속이 안될 수 있어서 필요에 따라 모니터, 키보드 등 라즈베리파이에 직접 접속해서 설정이 필요할 수 있으므로 이런 환경이 가능한 상황에서 조작하기를 추천드립니다.
  • 라즈베리파이에 ssh 명령을 이용해 접속합니다.
  • 아래 명령을 실행해서 ‘/etc/dhcpcd.conf’ 파일 편집을 위해 관리자 권한으로 vi 편집기를 실행합니다.
$ sudo vi /etc/dhcpcd.conf
  • ‘/etc/dhcpcd.conf’ 파일의 마지막 이전에 코멘트 아웃 했던 내용을 복원합니다.
interface wlan0
static ip_address=192.168.32.1/24
nohook wpa_supplicant

  • 아래 명령을 실행해서 부팅 시 AP 관련 서비스가 동작하도록 설정합니다.
$ sudo update-rc.d hostapd enable
$ sudo update-rc.d dnsmasq enable
  • 아래 명령을 실행해서 라즈베리파이를 재 시작 합니다.
$ sudo reboot

'로봇 > 라즈베리파이' 카테고리의 다른 글

라즈베리파이4 ssh를 이용해 세팅하기  (0) 2023.07.14