🍇

ラズパイをアクセスポイント(AP)に設定する

に公開

家に余っていたRaspberry Pi 3 Model Bをアクセスポイントにすることで、展示会などで素早くセッティングすることができます。

数台程度のIoT・開発用アクセスポイントとしては十分です

ディレクトリ構成と設定

以下ファイルを用意します。

/etc/hostapd/hostapd.conf
/etc/dnsmasq.conf
/etc/network/interfaces.d/ap

1.hostapd

役割:PiがWi-Fi電波を出し、SSID・暗号化方式などを定義します。
nl80211 ドライバを指定します(Pi 3BのBroadcomチップ対応)。

/etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=esp-network <- 任意に設定
hw_mode=g
channel=6
wmm_enabled=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=esp32wifi <- 任意に設定
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

🔸 補足

  • ssid:ESP32から見えるネットワーク名
  • wpa_passphrase:接続パスワード(8〜63文字)
  • channel:混雑を避けて 1, 6, 11 のいずれかが推奨
  • wmm_enabled=0:ESP32など軽量デバイス向けにQoSを無効化

2.dnsmasq

役割:Wi-Fi経由で接続してくるESP32にIPアドレスを配布します。

/etc/dnsmasq.conf
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

🔸 補足

  • DHCP範囲を 192.168.4.2〜192.168.4.20 に限定(ESP32 4台なら十分)
  • デフォルトゲートウェイは自動的に 192.168.4.1(ラズパイ) になります

3.WLANの設定

役割:Wi-Fiインターフェイス(wlan0)に固定IPを割り当てる。
※ DHCPではなく固定にすることで、ESP32が常に同じゲートウェイ(192.168.4.1)へ通信可能になります。

/etc/network/interfaces.d/ap
auto wlan0
iface wlan0 inet static
  address 192.168.4.1
  netmask 255.255.255.0

セットアップ

hostapdとdnsmasqのインストール

sudo apt update
sudo apt install -y hostapd
sudo apt install -y dnsmasq

起動

sudo systemctl unmask hostapd
sudo systemctl start hostapd

起動自動化

systemctl enable hostapd
systemctl enable dnsmasq

状態確認

sudo systemctl status hostapd
sudo systemctl status dnsmasq

それぞれについて、

  • Active: active (running) と表示されていれば成功。
  • failed や inactive の場合は、設定ファイルのエラー(特に /etc/hostapd/hostapd.conf のtypo)が原因です。

動作確認

  • スマホやPCで esp-network が見えるか確認
  • ESP32またはPCから接続して以下を確認:
ping 192.168.4.1

補足 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ED25519 key sent by the remote host is

以下コマンドを実行

ssh-keygen -R raspberrypi.local

Discussion