Stellen Sie über Wi-Fi Direct eine Verbindung zu Raspberry PI 3 her

16

Ich möchte eine Verbindung von einem Android-Handy zu einem RPI 3 über Wi-Fi Direct herstellen.

Ich möchte dies direkt über WLAN tun, da das RPI ein Controller für ein oder mehrere mobile Geräte ist, die sowohl in Gebäuden als auch in der Natur verwendet werden.

In Gebäuden könnte es nur eine Verbindung zum vorhandenen WLAN herstellen, aber in der Natur gibt es kein WLAN. Daher muss das RPI ein eigener AP sein, aber das Telefon, das es steuert, kann nicht gleichzeitig mit dem WLAN des Gebäudes verbunden werden. Außerdem würde es mit mehreren RPIs kompliziert werden, einer müsste der AP sein und die anderen müssten sich mit ihm verbinden.

Es wäre cool, wenn ich die RPIs einfach einschalten könnte, ohne bei jeder Änderung des Setups eine Konfiguration vornehmen zu müssen, und unabhängig davon, wo sie verwendet werden.

Wenn Wi-Fi Direct eine Voraussetzung ist: Wie kann ich das tun? Kann mir jemand ein Beispiel (oder einen Link zu einem Beispiel) geben? Grundsätzlich hilft jeder Hinweis, der mich näher an das Ziel bringt.

was ich bisher habe

Ich habe Arch Linux ARM mithilfe dieses Handbuchs auf dem PI installiert: https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3

Dann habe ich wpa_supplicant mit "pacman -S wpa_supplicant" installiert

Dann habe ich unter "/etc/wpa_supplicant/p2p.conf" eine kleine Konfiguration dafür erstellt, die folgendes enthält:

ctrl_interface=/var/run/wpa_supplicant
device_name=PI
update_config=1

dann habe ich angefangen wpa_supplicant zu benutzen wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/p2p.conf

Dann habe ich Wi-Fi direkt mit getestet wpa_cliund dann p2p_finddas Handy gefunden. Also nehme ich fahrerseitig an, alles ist gut.

Ich muss nur herausfinden, wie ich wpa_supplicant verwende, um ein Serverprogramm zu registrieren, das auf meinem PI läuft, und wie ich es von Android aus finde und verbinde.

Irgendwelche Ideen?

Van Coding
quelle
Kein Glück mit diesem? Ich versuche das gleiche zu tun, aber eine Verbindung von einem anderen Pi3 mit WiFi-Direct.
Roberto Andrade
@RobertoAndrade Ich habe es geschafft. Ich habe nur vergessen, die Frage zu aktualisieren. Ich werde es bald tun;)
Van Coding
Einige Fortschritte hier , aber noch unberechenbares Verhalten
Albfan
@VanCoding Hast du dein Update irgendwo gepostet? Ich habe den gleichen Punkt wie Sie erreicht - Android und Pi 3 können sich sehen, müssen ihn aber mit einer Anwendung verknüpfen.
LC1983
@ LC1983 Nr. Leider habe ich direkt auf dem PI über SFTP programmiert, das jetzt als Whirlpool-Controller verwendet wird. Ich habe vergessen, die Dateien zu kopieren, bevor ich sie weitergebe. Ich warte immer noch darauf, den Code wieder in die Hände zu bekommen :(
Van Coding

Antworten:

5

Ich konfiguriere /etc/wpa_supplicant/wpa_supplicant.conf wie folgt für zwei RPi3:

ctrl_interface=DIR=/var/run/wpa_supplicant 
update_config=1

ap_scan=1
device_name=RPi_3
device_type=1-0050F204-1
driver_param=use_p2p_group_interface=1
driver_param=p2p_device=1
p2p_go_intent=10
p2p_go_ht40=1

Dann starte es mit dem Befehl:

$sudo wpa_supplicant -B -dd -iwlan0 -Dnl80211 -c /etc/wpa_supplicant/wpa_supplicant.conf

Dann folge ich diesem Link und verbinde zwei RPi3 per PIN-Authentifizierung:

RPi3_1: (ggf. mit sudo)

wpa_cli p2p_find

RPi3_2: (ggf. mit sudo)

wpa_cli p2p_find
wpa_cli p2p_peers

Dann erkennen sie sich gegenseitig die MAC-Adresse. Anschließend startet ein RPI die Verbindung mit der generierten PIN:

RPi3_1 (ggf. mit sudo):

wpa_cli p2p_connect xx:xx:xx:xx:xx:xx pin auth
(pin_number will be issued)

RPi3_2:

wpa_cli p2p_connect yy:yy:yy:yy:yy:yy pin_number

Dabei sind xx: ..: xx und yy: ..: yy die MAC-Adresse von RPi3_2 bzw. RPi3_1.

http://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_NLCP_WiFi_Direct_Configuration_Scripts#Create_1:2_P2P_Group_-_Connect_with_PIN_code

Grundsätzlich sind zwei RPi3 miteinander verbunden.

ngovanmao
quelle
Diese Antwort ist in Ordnung, wenn Sie zwei Geräte verwenden, auf denen Sie die Befehle einzeln ausführen können. Wenn Sie jedoch ein Pi3- und ein Android-Gerät gemäß der ursprünglichen Frage verwenden, funktioniert dies nicht zuverlässig.
LC1983
Wenn Sie die 2 RPi3 auf diese Weise verbinden, können sie dann erfolgreich eine Gruppe für die Verbindung erstellen? Wenn ich das mache, ist der GO-NEG erfolgreich, aber es kann keine Gruppe für die Verbindung erstellt werden.
Shortstheory
-2

Verwenden Sie das Android als Hotspot und WLAN vom PI 3, um die Verbindung zum Internet aufrechtzuerhalten und eine Verbindung zwischen beiden Geräten herzustellen

Paulie617
quelle
1
Während möglicherweise eine Lösung, das war nicht das, was das OP erreichen wollte - es heißt eindeutig "Ich möchte eine Verbindung von einem Android-Handy zu einem RPI 3 über Wi-Fi direkt herstellen.", Nicht umgekehrt.
Bex
Mit devicenet kannst du dann WLAN direkt mit Android Hotspot nutzen. So sind seine Antworten diese 110%. Es bleibt nicht nur "Ich möchte eine direkte Verbindung von einem Android-Telefon zu einem RPI 3 über Wi-Fi herstellen" im Spiel, Sie können das Ganze auch vereinfachen, indem Sie einfach den Android-Hotspot verwenden.
Paulie617
Dies hilft dem OP nicht, ein Ad-hoc-Netzwerk zwischen dem Telefon und dem Pi aufzubauen.
Sandor Dosa
1
Ich weiß, das wurde zur Hölle herabgestimmt, wollte aber nur Danke sagen. Ich habe versucht, WiFi direkt einzurichten und habe gerade festgestellt, dass ich für meinen speziellen Anwendungsfall genau dies tun kann
nolanpro