Conecte-se ao Raspberry PI 3 via Wi-Fi direto

16

Quero conectar-me de um telefone Android a um RPI 3 por Wi-Fi direto.

Quero fazer isso por Wi-Fi direto, porque o RPI será um controlador para um ou mais dispositivos móveis que serão usados ​​em edifícios e na natureza.

Nos prédios, ele poderia se conectar ao Wi-Fi existente, mas na natureza não há Wi-Fi. Portanto, o RPI precisaria ser seu próprio AP, mas o telefone que o controlava não poderia ser conectado ao Wi-Fi do edifício ao mesmo tempo. Além disso, seria complicado com vários RPIs, um precisaria ser o AP e os outros precisariam se conectar a ele.

Seria legal se eu pudesse ligar os RPIs, sem fazer nenhuma configuração sempre que a configuração for alterada e conectar-me a ele, independentemente de onde for usado.

Portanto, com o Wi-FI direto sendo um requisito: como posso fazer isso? Alguém pode me fornecer um exemplo (ou um link para um exemplo)? Basicamente, qualquer dica que me aproxime do alvo ajudará.

o que eu tenho até agora

Instalei o Arch Linux ARM no PI usando este guia: https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3

Então eu instalei o wpa_supplicant usando "pacman -S wpa_supplicant"

Então eu criei uma pequena configuração para isso em "/etc/wpa_supplicant/p2p.conf" que contém:

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

então eu comecei o wpa_supplicant usando wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/p2p.conf

Depois testei o Wi-Fi diretamente usando wpa_clie depois p2p_findencontrei o meu telefone. Então, suponho que em termos de motorista, tudo está bem.

Eu só preciso descobrir como usar o wpa_supplicant para registrar um programa de servidor em execução no meu PI e como encontrar e conectar-se a ele no Android.

Alguma ideia?

Van Coding
fonte
Sem sorte com este? Estou tentando fazer o mesmo, mas conecte-se a partir de outro pi3 usando wifi direto.
Roberto Andrade
@RobertoAndrade eu consegui fazer isso. Esqueci de atualizar a pergunta. Vou fazê-lo em breve;)
Van Codificação
Algum progresso aqui , mas o comportamento errático ainda
albfan
@VanCoding Você postou sua atualização em algum lugar? Cheguei ao mesmo ponto que você - o Android e o Pi 3 podem se ver, mas precisam vinculá-lo a um aplicativo.
LC1983 31/01
@ LC1983 no. Infelizmente, eu programei diretamente no PI via sftp, que está sendo usado como um controlador de hidromassagem agora. Eu esqueci de copiar os arquivos antes de entregá-los. Eu ainda estou esperando para chegar em minhas mãos o código novamente :(
Van Codificação

Respostas:

5

Eu configurei o /etc/wpa_supplicant/wpa_supplicant.conf como abaixo para dois 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

Em seguida, inicie-o com o comando:

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

Seguindo esse link, conecto dois RPi3 via autenticação PIN:

RPi3_1: (usando o sudo, se necessário)

wpa_cli p2p_find

RPi3_2: (usando o sudo, se necessário)

wpa_cli p2p_find
wpa_cli p2p_peers

Então eles se reconhecem o endereço MAC. Posteriormente, um RPI iniciará a conexão com o PIN gerado:

RPi3_1 (usando o sudo, se necessário):

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

Onde xx: ..: xx e yy: ..: yy são o endereço MAC de RPi3_2 e RPi3_1, respectivamente.

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

Basicamente, dois RPi3 conectados entre si.

ngovanmao
fonte
Esta resposta é boa se você estiver usando dois dispositivos que podem ser executados individualmente pelos comandos, mas ao usar um dispositivo Pi3 e Android, conforme a pergunta original, ele não funciona de maneira confiável.
LC1983 6/02
Quando você conecta os 2 RPi3 dessa maneira, eles conseguem criar um grupo com êxito para a conexão? Quando faço isso, o GO-NEG é bem-sucedido, mas falha ao criar um grupo para a conexão.
precisa saber é o seguinte
-2

use o andróide como ponto de acesso e Wi-Fi a partir do PI 3, você manterá a conexão do andróide à Internet e terá conexão entre os dois dispositivos para compartilhar

Paulie617
fonte
1
Embora possivelmente seja uma solução, não era isso que o OP queria alcançar - afirma claramente "Quero conectar-me de um telefone Android a um RPI 3 via Wi-Fi direto", e não o contrário.
Bex
Usando o devicenet, você pode usar o Wi-Fi direto com o hotspot do Android. então suas respostas são 110%. além de manter "Desejo conectar-me de um telefone Android a um RPI 3 via Wi-Fi direto" em jogo, você pode simplificar tudo isso apenas usando o hotspot do Android.
Paulie617
Isso não ajuda o OP a desenvolver uma rede ad-hoc entre o telefone e o pi.
Sandor Dosa 22/02
1
Eu sei que isso foi votado para o inferno, mas só queria agradecer. Eu estava tentando configurar WiFi direto e só percebi que para o meu caso de uso específico que eu poderia fazer apenas isso
nolanpro