W kolejnym projekcie będę chciał użyć Raspberry Pi jako bezprzewodowego sterownika robota, sterowanie odbywać się będzie ze smartfona z Androidem przez interfejs WiFi. Aby nie trzeba było łączyć smartfona i RPi przez Access Point muszę tak skonfigurować WiFi w RPi, aby działało jako AP.Zakładam, że mamy już Raspberry Pi ze skonfigurowanym Raspbianem i zainstalowaną kartę WiFi, ja używam Raspberry Pi 2 oraz karty TP-Link TL-WN725N, karta działa od razu w najnowszych wersjach Raspbiana, nie ma konieczności pobierania firmware, kompilowania sterowników ani innych nieprzyjemności. Do uruchomienia AP potrzebujemy jeszcze:
- skonfigurować statyczny adres IP dla Raspberry Pi
- zainstalować serwer DHCP, który automatycznie nada dołączonym urządzeniom adresy IP
- zainstalować pakiet hostapd
Statyczny adres IP w Raspberry Pi
Adres IP ustawiamy w pliku /etc/network/interfaces, modyfikujemy do np. edytorem nano:
sudo nano /etc/network/interfaces
W pliku powinna znajdować się część odpowiedzialna za interfejs bezprzewodowy, powinna zaczynać się od tekstu „iface wlan0”. Modyfikujemy tę sekcję tak, aby wyglądała następująco:
iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0
Serwer DHCP
Zaczynamy od instalacji niezbędnego oprogramowania:
sudo apt-get install isc-dhcp-server
Po zainstalowaniu pakietu możemy go skonfigurować, otwieramy plik konfiguracyjny:
sudo nano /etc/dhcp/dhcpd.conf
Na końcu tego pliku dodajemy:
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.150; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; option domain-name "local"; }
Dodatkowo musimy znaleźć linie:
option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org;
i je wykomentować:
#option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org;
Zapisujemy zmiany i otwieramy plik /etc/default/isc-dhcp-server:
sudo nano /etc/default/isc-dhcp-server
W tym pliku wyszukujemy linię zaczynającą się od „INTERFACES” i modyfikujemy ją do takiej postaci:
INTERFACES="wlan0"
Instalacja hostapd
Sterownik karty TL-WN725N nie działa z nowymi wersjami hostapd, dlatego pobierzemy wersję dostarczaną ze źródłami sterownika, kompilujemy pakiet hostapd oraz go instalujemy:
git clone git://github.com/lwfinger/rtl8188eu cd rtl8188eu/hostapd-0.8/hostapd make sudo make install
Teraz tworzymy plik konfiguracyjny hostapd.conf poleceniem:
sudo nano /etc/hostapd.conf
Wklejamy jego zawartość:
interface=wlan0 ssid=NazwaPunktu hw_mode=g channel=6 auth_algs=1 wpa=2 wpa_passphrase=Haslo123 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
Oczywiście wartości ssid oraz wpa_passphrase należy zmodyfikować.Aby hostapd startował automatycznie po uruchomieniu Raspberry Pi użyjemy crona, wpisujemy polecenie:
crontab -e
Na końcu pliku dopisujemy:
@reboot sudo -u root hostapd -B /etc/hostapd.conf
Zapisujemy zmiany i restartujemy Raspberry Pi, po uruchomieniu access point powinien być dostępny.