Połącz się z Raspberry PI 3 bezpośrednio przez Wi-Fi

16

Chcę połączyć się z telefonu z Androidem z RPI 3 bezpośrednio przez Wi-Fi.

Chcę to zrobić bezpośrednio przez Wi-Fi, ponieważ RPI będzie kontrolerem dla jednego lub więcej ruchomych urządzeń, które będą używane w budynkach, a także w naturze.

W budynkach może po prostu połączyć się z istniejącym Wi-Fi, ale w naturze nie ma Wi-Fi. Dlatego RPI musiałby być własnym AP, ale wtedy kontrolujący go telefon nie mógłby być podłączony do Wi-Fi w budynku w tym samym czasie. Ponadto komplikowałoby się wiele RPI, jeden musiałby być AP, a drugi musiałby się z nim połączyć.

Byłoby fajnie, gdybym tylko mógł zasilić RPI, nie wykonując żadnej konfiguracji za każdym razem, gdy zmienia się ich konfiguracja, i połączyć się z nią bez względu na to, gdzie jest używany.

Więc z bezpośrednim Wi-Fi jest wymogiem: jak mogę to zrobić? Czy ktoś może podać mi przykład (lub link do przykładu)? Zasadniczo każda wskazówka, która zbliży mnie do celu, pomoże.

co mam do tej pory

Zainstalowałem Arch Linux ARM na PI, korzystając z tego przewodnika: https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3

Następnie zainstalowałem wpa_supplicant za pomocą „pacman -S wpa_supplicant”

Następnie utworzyłem dla niego małą konfigurację pod „/etc/wpa_supplicant/p2p.conf”, która zawiera:

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

potem zacząłem używać wpa_supplicant wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/p2p.conf

Następnie przetestowałem Wi-Fi direct przy użyciu, wpa_clia następnie p2p_findznalazłem mój telefon. Zakładam więc, że pod względem kierowców wszystko jest w porządku.

Muszę tylko dowiedzieć się, jak użyć wpa_supplicant do zarejestrowania programu serwera działającego na moim PI oraz jak znaleźć i połączyć się z nim z Androida.

Jakieś pomysły?

Van Coding
źródło
Nie masz szczęścia z tym? Próbuję zrobić to samo, ale łączę się z innego pi3 za pomocą Wi-Fi direct.
Roberto Andrade,
@RobertoAndrade Udało mi się to zrobić. Właśnie zapomniałem zaktualizować pytanie. Zrobię to wkrótce;)
Van Coding
Pewne postępy tutaj , ale jeszcze niepoprawne zachowanie
albfan
@VanCoding Czy opublikowałeś swoją aktualizację w dowolnym miejscu? Dotarłem do tego samego punktu, co Ty - Android i Pi 3 widzą się nawzajem, ale muszę połączyć to z aplikacją.
LC1983
@ LC1983 nr. Niestety programowałem bezpośrednio na PI za pośrednictwem sftp, który jest teraz używany jako kontroler Whirlpool. Zapomniałem skopiować pliki, zanim je rozdałem. Nadal czekam na ponowne zapoznanie się z kodem :(
Van Coding

Odpowiedzi:

5

Konfiguruję /etc/wpa_supplicant/wpa_supplicant.conf jak poniżej dla dwóch 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

Następnie uruchom go za pomocą polecenia:

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

Następnie za tym linkiem łączę dwa RPi3 za pomocą uwierzytelnienia PIN:

RPi3_1: (używając sudo, jeśli to konieczne)

wpa_cli p2p_find

RPi3_2: (używając sudo, jeśli to konieczne)

wpa_cli p2p_find
wpa_cli p2p_peers

Następnie rozpoznają się adres MAC. Następnie jedno RPI rozpocznie połączenie z wygenerowanym kodem PIN:

RPi3_1 (używając sudo, jeśli to konieczne):

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

Gdzie xx: ..: xx i yy: ..: yy to odpowiednio adres MAC RPi3_2 i 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

Zasadniczo dwa RPi3 są ze sobą połączone.

ngovanmao
źródło
Ta odpowiedź jest prawidłowa, jeśli używasz dwóch urządzeń, które możesz indywidualnie wykonywać polecenia, ale w przypadku korzystania z Pi3 i urządzenia z Androidem, zgodnie z pierwotnym pytaniem, nie działa niezawodnie.
LC1983,
Czy po podłączeniu 2 RPi3 w ten sposób mogą one pomyślnie utworzyć grupę do połączenia? Kiedy to robię, GO-NEG odnosi sukces, ale nie tworzy grupy dla połączenia.
shortstheory
-2

użyj Androida jako hotspotu i Wi-Fi do niego z PI 3, utrzymasz połączenie androida z Internetem i będziesz mieć połączenie między dwoma urządzeniami, aby udostępniać cokolwiek

Paulie617
źródło
1
Być może rozwiązanie nie było tym, co chciał osiągnąć OP - wyraźnie stwierdza: „Chcę połączyć się z telefonu z Androidem z RPI 3 bezpośrednio przez Wi-Fi”, a nie na odwrót.
Bex
Korzystając z devicenet, możesz następnie korzystać z Wi-Fi bezpośrednio z hotspotem Android. więc odpowiada to 110%. nie tylko utrzymuje „Chcę połączyć telefon z Androidem z RPI 3 przez Wi-Fi direct”, ale możesz to wszystko uprościć, korzystając z hotspota Android.
Paulie617,
To nie pomaga OP opracować sieci ad-hoc między telefonem a pi.
Sandor Dosa
1
Wiem, że to zlekceważyło, ale chciałem tylko podziękować. Próbowałem skonfigurować WiFi bezpośrednio i właśnie zdałem sobie sprawę, że w moim konkretnym przypadku mogę to zrobić
nolanpro