5 votos

Método para configurar una CPU integrada para la red WiFi sin interfaz de usuario física

Digamos que usted tiene un dispositivo incorporado que utiliza algo como un Arduino con un Wifi shield. La intención de este dispositivo es para conectarse a su red wifi y, a continuación, conectarse a internet y hacer algo (usa tu imaginación).

Si el dispositivo era tan simple que no tiene ningún botón o una pantalla, ¿cómo se podía configurar inicialmente para conectarse a un red WiFi?

(Obviamente directamente la introducción de la red de wifi de los parámetros en el código fuente del proyecto está fuera de la cuestión).

He estado pensando sobre esto últimamente y no estaba seguro de cuál es el mejor enfoque.

Ayer sucedió algo que me hizo pensar. He comprado una habilitado para wi-fi Honeywell Termostato para nuestra casa. Se conecta a tu red WiFi para que usted pueda controlar el termostato de la utilización de su teléfono desde cualquier parte del mundo.

El método que se utiliza para conectar el termostato a la wifi era muy interesante. Cuando la primera vez que conectó el termostato, se podría crear su propia red wifi/servidor llamado "Thermostat_EKDD94" o algo así. Usted usa su teléfono o computadora portátil para conectarse a esta red. A continuación, visita 192.168.1.1 en el navegador, en el que se puede ver una lista de redes wifi disponibles para conectarse. Usted escoge la red, la contraseña de entrada y, a continuación, el termostato desconecta y se conecta a la red que has elegido. En este punto, el termostato de la propia red wifi/servidor se va por el buen (a menos que hagas un hard reset en el termostato en un momento posterior).

Y al igual que, el termostato está conectado a una red wifi de su elección, sin tener que tocar el dispositivo. Era un enfoque muy interesante. Es esto algo que es posible con un Arduino? Puede actuar como un servidor y luego el cliente? Tal vez al mismo tiempo?

Alguna idea de este enfoque o si hay una mejor enfoque?

4voto

MrTelly Puntos 201

Cualquier módulo WiFi que soporta modo ad-hoc debe ser capaz de hacer esto. He utilizado el módulo WiFly antes, y sé que tiene esta capacidad. Tenga en cuenta que el módulo sólo puede estar en ad-hoc o en modo cliente en cualquier momento dado; no ambos a la vez.

Usted puede utilizar ese módulo directamente con tu Arduino (suponiendo que Uno o compatible de la huella) a través de este escudo. También hay un escudo de independiente que podría ser más ahorro de espacio. Por supuesto, otros módulos están disponibles que están a la altura, pero estos son los que vienen a la mente.

Aquí es cómo puedo configurar esto específicamente. En respuesta a tu comentario, he modificado el enfoque para solucionar el problema de qué sucede si el WiFi de la asociación de falla.

  1. Arduino se inicia y establece WiFly a modo ad-hoc.
  2. Se conecta a la WiFly la red y navegar a la WiFly "servidor web".
  3. Ver la lista de redes disponibles, introduzca los parámetros de la conexión y haga clic en "Enviar". * vea la nota a continuación
  4. El WiFly la respuesta de la página contiene un fragmento de código JavaScript que recopila una página especial con Ajax después de algún intervalo de tiempo fijo (tal vez 2 o 3 minutos). Tal vez llamar a la dirección http://[WiFly address]:80/status.
  5. Mientras que el mencionado temporizador se detiene, el WiFly ha desactivado el modo ad-hoc y se convirtió en el modo de cliente (su ordenador portátil se han desconectado de la WiFly, por supuesto). El WiFly intenta conectarse a la red especificada. Si tiene éxito, el WiFly del trabajo está hecho. Si la conexión falla, re-habilita el modo ad-hoc que su computadora portátil debe conectarse automáticamente.
  6. El timer que en el #4 0 hits. La página que intenta de forma asincrónica recuperar esa página especial que hemos mencionado. Si tiene éxito, sabemos que el WiFly no se pudo conectar a nuestra red y por lo tanto se ha vuelto a habilitar el modo ad-hoc. Si la solicitud falla, sabemos que el WiFly conectado correctamente a la red.
  7. En el primer caso, con JavaScript, se puede mostrar el mensaje apropiado para el usuario, y tal vez incluso navegar a la WiFly "página de inicio" para iniciar el proceso de nuevo.

Consideraciones especiales:

  • Usted puede ser que necesite para jugar con el tiempo de espera para el paso #4.
  • Su ordenador portátil o dispositivo deberá ser configurado para conectarse automáticamente a la WiFly la red ad-hoc e incluso prefieren que la red a través de otros.

* Nota interesante:

Usted podría estar preguntándose cómo el módulo es capaz de escanear redes, mientras que en el modo ad-hoc. Según el manual:

El módulo WiFly soporta ad-hoc y de infraestructura de redes modos. Sin embargo, no es compatible con ambos modos simultáneamente. Escaneo para las redes inalámbricas es una función de modo de infraestructura. Para hacer este, el módulo WiFly tiene que deshabilitar el modo adhoc y análisis.

Con el versión de firmware de la versión 2.22 y, más tarde, es posible escanear de modo adhoc. La emisión de la exploración comando deshabilita temporalmente adhoc mientras que el módulo de escaneo. El adhoc se restaura automáticamente cuando se completa el análisis. Si está conectado al módulo a través de telnet, el resultado de la exploración de comandos se envían a través de telnet y, a continuación, adhoc es restaurado.

Si sus requisitos permiten que un independiente de la interfaz de usuario (tal vez una aplicación en su ordenador portátil), que podría haber usado esta característica para su ventaja y evitar la elaboración de un servidor HTTP por completo. La aplicación podría tener conectado el WiFly la red ad-hoc, se abrió una sesión de Telnet, y luego automatizado de la sesión de Telnet para configurar el módulo.

Enfoque alternativo

Si el costo no es un problema, se pueden utilizar dos WiFly módulos, uno para proporcionar una constante de red ad-hoc y el otro para actuar como cliente WiFi.

3voto

Karthik Puntos 66

Que es una forma muy elegante manera de resolver esta tarea, a condición de que su hardware wifi soporta el modo de punto de acceso.

Otra forma de hacerlo que podría ser a través de la interfaz serial - usted puede utilizar el arduino de la línea de comandos de la biblioteca http://www.freaklabs.org/index.php/Tutorials/Software/Tutorial-Using-CmdArduino.html para implementar algunas de serie de comandos que permiten la entrada de la SSID y la contraseña. El usuario conecta el dispositivo a un puerto USB, abre un terminal serie de software y configura el dispositivo a través de la línea de comandos mediante los comandos de la implementación. Usted puede guardar el SSID y la contraseña en la memoria eeprom de arduino, si es necesario.

No la mayoría de los usuarios de manera fácil y requiere que se deje puerto usb accesibles, pero la más fácil de implementar supongo.

1voto

Steve Paulo Puntos 8263

Cómo acerca de que el dispositivo se comporte como un dispositivo de almacenamiento masivo USB. Aquí es el caso de uso:

  1. Usuario conecta el dispositivo a la PC.
  2. El usuario navega por el volumen de almacenamiento expuesto por el dispositivo.
  3. El usuario edita los parámetros en un archivo de texto, y la guarda.
  4. El usuario reinicia el dispositivo.

En lugar de 3, el dispositivo del sistema de archivos podría tener algunos setup.html archivo en la raíz de la cual el usuario incendios en el navegador. A continuación, el usuario interactúa con un JavaScript-ed interfaz de usuario para crear la configuración. (¿Cómo, usted podría preguntarse? HTML5, pero evidentemente no permitir JavaScript en el navegador para interactuar con el sistema de archivos local).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X