通过Wi-Fi直接连接到Raspberry PI 3


16

我想通过Wi-Fi Direct从Android手机连接到RPI 3。

我想通过Wi-Fi Direct进行操作,因为RPI将是一个或多个可移动设备的控制器,这些设备将在建筑物以及自然环境中使用。

在建筑物中,它可以仅连接到现有的Wi-Fi,但在自然界中没有Wi-Fi。因此,RPI需要成为其自己的AP,但是控制它的电话不能同时连接到建筑物的Wi-Fi。而且,如果使用多个RPI,将会变得很复杂,一个需要成为AP,而另一个则需要连接到它。

如果我可以打开RPI,而每次安装更改时都不需要进行任何配置,然后无论在何处使用都可以连接到RPI,那将很酷。

因此,将Wi-Fi直接作为一个要求:我该怎么做?有人可以给我提供示例(或示例的链接)吗?基本上,任何使我更接近目标的提示都会有所帮助。

我到目前为止所拥有的

我已使用以下指南在PI上安装了Arch Linux ARM:https : //archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3

然后,我使用“ pacman -S wpa_supplicant”安装了wpa_supplicant

然后,在“ /etc/wpa_supplicant/p2p.conf”下为其创建了一个小的配置,其中包含:

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

然后我开始使用wpa_supplicant wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/p2p.conf

然后,我测试了Wi-Fi直连使用wpa_cli,然后p2p_find找到了我的手机。因此,我以驾驶员为前提,一切都很好。

我只需要弄清楚如何使用wpa_supplicant注册在我的PI上运行的服务器程序,以及如何从android查找并连接到它。

有任何想法吗?


这个没有运气吗?我正在尝试做同样的事情,但是使用wifi-direct从另一个pi3连接。
罗伯托·安德拉德

@RobertoAndrade我设法做到了。我只是忘了更新问题。我会尽快完成;)
Van Coding

此处取得一些进展,但行为
却不固定

@VanCoding您是否将更新发布到任何地方?我的观点与您相同-Android和Pi 3可以看到对方,但需要将其链接到应用程序。
LC1983年

@ LC1983号 不幸的是,我直接通过sftp在PI上进行了编程,现在它已被用作漩涡控制器。在送出文件之前,我忘了复制文件。我仍然在等待再次尝试代码:(
Van Coding

Answers:


5

我为两个RPi3如下配置/etc/wpa_supplicant/wpa_supplicant.conf:

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

然后使用命令启动它:

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

然后,通过此链接,我通过PIN身份验证连接两个RPi3:

RPi3_1 :(必要时使用sudo)

wpa_cli p2p_find

RPi3_2 :(必要时使用sudo)

wpa_cli p2p_find
wpa_cli p2p_peers

然后他们彼此识别MAC地址。随后,一个RPI将开始使用生成的PIN进行连接:

RPi3_1(必要时使用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

其中xx:..:xx和yy:..:yy分别是RPi3_2和RPi3_1的MAC地址。

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

基本上,两个RPi3相互连接。


如果您使用的是可以分别单步执行命令的两个设备,则此答案是可以的,但是按照原始问题,在使用Pi3和Android设备时,它无法可靠运行。
LC1983

当您以这种方式连接两个RPi3时,它们是否能够成功创建一个组进行连接?当我这样做时,GO-NEG成功,但是无法为该连接创建组。
shortstheory

-2

使用Android作为PI 3的热点和wifi,您将保持android连接到互联网,并在两个设备之间建立连接以共享任何内容


1
虽然可能是一种解决方案,但这不是OP想要实现的,它明确指出“我想通过WLAN直接从Android手机连接到RPI3。”而不是相反。
Bex

然后,您可以使用devicenet在android hotspot中直接使用wifi。所以它回答了110%它不仅可以播放“我想通过Wi-Fi直接从Android手机连接到RPI 3”,而且您可以仅使用android hotspot简化整个过程。
Paulie617 '16

这无助于OP在电话和pi之间建立自组织网络。
Sandor Dosa

1
我知道这简直是地狱,但只想说谢谢。我试图直接设置WiFi,只是意识到对于我的特定用例,我可以做到这一点
nolanpro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.