¿Cómo puede un dispositivo obtener el SSID y la contraseña de mi red sin WPS?

13

Estoy estudiando formas de hacer que un dispositivo IoT acceda a la red wifi de un usuario. Sé sobre la forma WPS, donde el dispositivo 'transmite' una señal y el enrutador, después de que se le ordena escuchar, 'recibe' y le da acceso al dispositivo. También existe la forma en que el dispositivo crea su propio punto de acceso, el usuario se conecta a él para pasar el SSID y la contraseña de la red doméstica. ¿Hay otras formas de lograr eso?

He leído este artículo que habla sobre este método 'ProbMe' :

Puedo estar equivocado, pero Broadlink Rm Pro puede hacer algo como esto. Recientemente configuré uno de esos y solo tuve que:

  1. Conectar mi teléfono inteligente a mi wifi

  2. Escanee un código QR o escriba un código en la aplicación Broadlink

  3. Ingrese el SSID y la contraseña de mi red en la aplicación Broadlink

  4. Y, no sé cómo, el dispositivo está conectado a mi red, la aplicación incluso tiene su dirección MAC.

¿Alguno de ustedes sabe más sobre este método ProbMe y / u otras alternativas para dar acceso a un dispositivo IoT a una red wifi de usuario?

Editar: Al buscar el ProbMe, descubrí que se trata de una tecnología de una compañía llamada Econais , solo compartiendo si alguno de ustedes desea desarrollar / producir algo similar, la compañía trabaja con el software / hardware IoT. Descargo de responsabilidad: no trabajo en Econais ni estoy involucrado de ninguna manera.

Eric Akira
fuente
1
Fue un poco respondido aquí. Muchos chips wifi tienen la capacidad de cambiar entre el modo Cliente y el modo Punto de acceso. ESP8266 son capaces de iot.stackexchange.com/questions/2568/…
GusGorman402
Gracias por el comentario @ GusGorman402. El modo de cliente / modo de punto de acceso es una buena solución para mi problema. De todos modos, me gustaría señalar que el dispositivo Broadlink que señalé a mi pregunta no usó algo así, al menos no creo que lo haya hecho, ya que mi teléfono inteligente no cambió el wifi al que estaba conectado ni manualmente ni programáticamente. Apuesto a que era algo similar al método ProbMe.
Eric Akira
Creo que esto está usando el protocolo ESP-Touch desarrollado por Espressif. Este artículo proporciona algunos detalles y un código Arduino para usarlo a través de la función WiFi.beginSmartConfig (). No lo he probado yo mismo, así que aún no lo pongo como respuesta, pero actualizaré con cualquier detalle si / cuando lo haga funcionar.
jsaven

Respuestas:

9

Si está utilizando un ESP8266, la función Smart Config incorporada puede lograr esto. Un ejemplo se puede encontrar aquí: ESP8266 Arduino WiFiSmartConfig.ino .

Los pasos importantes son configurar el modo STA: WiFi.mode(WIFI_STA);

Luego comience a buscar los paquetes de configuración inteligente: WiFi.beginSmartConfig();

Finalmente verifique que la configuración esté completa: WiFi.smartConfigDone()

El wifi se puede configurar en el dispositivo usando un iPhone o Android Ap , o puede construir el suyo propio desde Espressif iOS Ap o Android Ap .

El ESP32 también tiene esta capacidad; vea la demostración 11: Cómo usar SmartConfig en Arduino ESP32 .

jsaven
fuente
1

La mayoría de los dispositivos que compré (cámaras IP, interruptores de luz, tomas de corriente) usaban comunicación ultrasónica detrás de escena. Echa un vistazo a marcas como Chromecast, Lisnr y Chirp.

Cuando el dispositivo está en modo de configuración, debe mantener su teléfono inteligente cerca del dispositivo y la aplicación cliente enviará una señal de audio (podría ser audible o inaudible), con el SSID y la contraseña modulados. Suena como la edad de piedra, pero funciona sin lujos :)

Ε Г И І И О
fuente