🍇
ラズパイをアクセスポイント(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