Kita tentu tahu dan paham bagaimana terkoneksi secara remote dengan Raspberry Pi, baik dengan SSH ataupun VNC, atau yang umum dikenal sebagai headless connection. Salah satu persyaratan koneksi tersebut adalah dengan adanya jaringan WIFI dimana PC dan Raspberry Pi berada jaringan WIFI yang sama. Hal tersebut tidak begitu masalah jika kita bekerja didalam rumah. Namun terkadang, kita berada diluar ruangan tanpa WIFI. Ya memang kita bisa menciptakan WIFI network dengan portable modem atau portable hotspot dari HP sehingga kita bisa mengkontrol Raspbery Pi. Itu juga yang sering saya lakukan. Tapi saya bosan karena terlalu ribet karena untuk mengkontrol Raspberry Pi saja saya harus establish dulu WIFI networknya.
Saya sering menggunakan Raspberry Pi diluar ruangan dan betapa ribetnya proses itu. Saya tertarik dengan WiFi direct yang ada di HP Android atau Smart TV. Misalnya SmartTV yang broadcast Access Point, tinggal pilih AP nya dan sambungan terjadi. Saya inginkan hal seperti itu.
Ada banyak tutorial yang bisa memfungsikan WiFi Raspberry Pi menjadi router, tapi kita tidak bisa konek ke router itu dengan SSH atau VNC dan bekerja headless seperti biasa. Yang saya butuhkan adalah koneksi antara PC/HP ke Raspberry Pi melalui WiFi Direct, kemudian saya bisa login dan mengendalikan Raspberry Pi, tidak hanya SSH tapi juga VNC.
Setelah mencari beberapa waktu digoogle saya menemukan satu blog yang bisa jadi jawaban. Lihat alamat aslinya di bagian akhir tulisan ini. Berikut ini tahapan-tahapannya dan berhasil saya terapkan di Raspberry Pi Zero W dan tulisan ini saya buat diwaktu yang sama saya mencoba menerapkan untuk Raspberry Pi 3, dan berhasil juga.
Untuk melakukan setup dibawah ini, kita butuh koneksi internet.
Pertama, lakukan update dan upgrade terlebih dahulu dan instalasi package
sudo apt-get update sudo apt-get upgrade
Setelah itu, install hostapd dan dnsmasq
sudo apt-get install hostapd

sudo apt-get install dnsmasq

Installer hostapd dan dnsmasq akan juga menginstall program agar berjalan saat Raspberry Pi starting. Dalam setup ini, kita perlu mendisable autorun tersebut selama proses instalasi.
sudo systemctl disable hostapd sudo systemctl disable dnsmasq

Tahap kedua berikut adalah untuk setting hotspot, username dan password
Buat sebuah file baru bernama hostapd.conf. Karena baru, maka saat file terbuat maka file kosong.
sudo nano /etc/hostapd/hostapd.conf
Lakukan copy-paste script dibawah ini
interface=wlan0 driver=nl80211 ssid=AP_PI3_HOTSPOT hw_mode=g channel=6 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=raspberrypi wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP

Sedikit penjelasan. Interface kita adalah wlan0. Driver n180211 ini sebenarnya driver yang bisa dijadikan access point. Tidak semua wifi dongle bisa dijadikan wifi router. Untungnya driver n180211 ini kompatibel dengan chip wifi onbard dari Pi Zero W dan Raspberry Pi 3. Nama SSID adalah AP_PI3_HOTSPOT, silahkan dirubah sesuai keinginan. wpa_passphrase adalah password yang harus diisi dengan minimum 8 karakter. Setelah itu save dengan Ctrl-X dan Y.
Setelah itu, kita edit file default ke file konfigurasi yang baru saja dibuat
sudo nano /etc/default/hostapd
tambahakan “/etc/hostapd/hostapd.conf” dan hilangkan tanda comment(#) sebelum DAEMON_CONF. Lihat gambar dibawah ini untuk perubahan file yang dimaksud. Setelah itu tekan Ctrl-X dan Y untuk save file.

Tahap ketiga adalah setup dnsmasq agar Raspberry Pi menjadi router dan dapat mengeluarkan sebuah IP Address
sudo nano /etc/dnsmasq.conf
Copy-paste script berikut dan letakkan dibaris paling bawah dari file. Jika sudah tekan Ctrl-X lalu Y
#AP_PI3_HOTSPOT Config #stop DNSmasq from using resolv.conf no-resolv #Interface to use interface=wlan0 bind-interfaces dhcp-range=10.0.0.3,10.0.0.20,12h

Sampai di tahap ini kita sudah melakukan konfigurasi hotspot dan router dari Raspberry Pi. Selanjutnya kita melakukan deteksi apakah home network ada atau tidak.
sudo nano /etc/network/interfaces
tampilan awal yang muncul akan seperti berikut:

Lakukan perubahan seperti pada gambar dibawah ini lalu save dengan Ctrl-X dan Y.

Tahap keempat, terakhir. Membuat startup script
Tahap terakhir ini adalah membuat startup script dengan systemd. Jika kita sudah mengupdate sistem sebelumnya, maka kita mungkin mendapati bawa sudah ada wifi tools yang terinstall. Untuk memastikan ketikkan perintah berikut:
dpkg -s iw
jika belum terinstall, lakukan instalasi dengan perintah berikut.
sudo apt-get install iw
Selanjutnya buatlah file scriptnya dengan perintah berikut
sudo nano /usr/bin/autohotspot
dan copy-paste script berikut
#!/bin/bash # #Wifi config - if no prefered Wifi generate a hotspot #enter required ssids: ssids=('ssid1' 'ssid2') ssids=('mySSID1' 'mySSID2') #Main script createAdHocNetwork() { ip link set dev wlan0 down ip a add 10.0.0.5/24 dev wlan0 ip link set dev wlan0 up systemctl start dnsmasq systemctl start hostapd } connected=false for ssid in "${ssids[@]}" do if iw dev wlan0 scan ap-force | grep "$ssid" > /dev/null then wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf > /dev/null 2>&1 if dhclient -1 wlan0 then connected=true break else wpa_cli terminate break fi else echo "Not in range, WiFi with SSID:" $ssid fi done if ! $connected; then createAdHocNetwork fi
Pada ssids=(‘mySSID1’ ‘mySSID2’), mySSID1 adalah home network kita. Ganti “mySSID1” dengan nama home network kita. Jika mySSID1 tidak ada, maka script ini akan mencari jaringan pada urutan berikutnya. Apabila semua SSID yang ditulis dalam script tidak ada, maka AP_PI3_HOTSPOT akan dicreate. Artinya, apabila kita juga ingin mengestablish WIFI Direct bahkan didalam rumah (saat home network ada), maka isilah jangan pernah memasukkan SSID home network pada line ssids. Biarkan script tersebut apa adanya. Script ini akan membuat IP static 10.0.0.5. Setelah copy-paste, maka save dengan Ctrl-X dan Y.
Selanjutnya kita buat autohotspot menjadi executable
sudo chmod +x /usr/bin/autohotspot
Selanjutnya kita menambahkan service ke system
sudo nano /etc/systemd/system/autohotspot.service
Copy-paste script berikut. Lalu save
[Unit] Description=Generates a non-internet Hotspot for ssh when a listed ssid is not in range. After=network-online.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/autohotspot [Install] WantedBy=multi-user.target
Tahap paling akhir adalah mengaktifkan hotspot dengan perintah berikut:
sudo systemctl enable autohotspot.service
Restart Raspberry Pi dan selesai.
Testing
Untuk melakukan testing, apabila kita menuliskan home network pada script autohotspot, maka kita perlu menon-aktifkan home network sehingga Raspberry Pi akan membuat hotspot. Namun jika tidak maka AP_PI3_HOTSPOT akan otomatis terlihat. Dari PC atau smartphone, hotspot AP_PI3_HOTSPOT akan terdeteksi. Perlu diingat bahwa koneksi ini tanpa internet karena jaringan yang dibuat hanya antara laptop/HP dengan Raspberry Pi.

Untuk terhubung dengan Raspberry Pi, klik AP_PI3_HOTSPOT dan masukkan password yang disetup sebelumnya.

Setelah terhubung, maka kita bisa melakukan hal-hal yang biasa kita lakukan remotely seperti SSH ataupun koneksi via VNC dengan memasukkan IP Address yang kita assign sebelumnya yaitu 10.0.0.5

Atau koneksi ke lingkungan desktop melalui VNC

Inilah yang saya harapkan sejak lama, kemampuan WiFi direct tanpa campur tangan dari portable hotspot dari modem atau handphone lainnya. Cukup menggunakan WiFi Raspberry Pi yang dibroadcast. Beberapa kemudahan dengan proses ini adalah:
- Streaming data sensor dari HP (GPS, accelerometer, gyro, etc.) ke Raspberry Pi langsung tanpa perantara
- Streaming video atau photo dari Pi Camera Raspberry Pi Zero W ke VLC Player di HP langsung tanpa perantara dan gangguan
- Fungsi Shairplay (AirPlay) langsung dari HP ke Raspberry Pi
- Koneksi laptop siswa dengan Raspberry Pi mereka dalam kelas kursus juga langsung tanpa harus konek ke Wifi kelas.
- …. masih banyak lagi contoh…
Semoga bermanfaat. Silahkan memberikan komentar, masukan di kolom comment dibawah ini.
Source:
http://www.raspberryconnect.com/network/item/315-rpi3-auto-wifi-hotspot-if-no-internet
June 30, 2020 5:35 pm
Terima kasih Mas Andi, sangat bermanfaat, baru menu info nya disini, mudah mudahan nanti bisa saya mau coba juga dirumah.
June 30, 2020 5:38 pm
Sama-sama Pak, smg berhasil. Saya coba di Pi0/2/3 Stretch/Buster, work seamless.