Es posible, en teoría, pero no trivial en la práctica. El código responsable de cargar su nuevo boceto en Arduino se denomina gestor de arranque . Todas las versiones populares de cargadores de arranque que conozco están basadas en serie / USB. Para cargar un boceto sobre el escudo WiFi, el gestor de arranque debería reescribirse para comunicarse con el escudo WiFi en lugar de en serie. Esto llevaría algo de trabajo, pero no imposible en la práctica.
Tenga en cuenta que tendrá que hacer esto independientemente de si está almacenando el boceto en el escudo WiFi (lo que creo que sería difícil: no estoy seguro de si esto es posible) o cargando el boceto directamente a su Arduino: el El gestor de arranque deberá comunicarse con el escudo para leer los datos del boceto.
Hay una manera de reprogramar su Arduino de forma inalámbrica fácilmente, y eso es Bluetooth. Deberá obtener un módulo Bluetooth (no sé si funcionará un escudo Bluetooth) y conectarlo a los puertos seriales de hardware . El gestor de arranque que está en su Arduino ya puede hablar en serie, por lo que ese problema está resuelto. Sin embargo, tendrá que (potencialmente) resolver otros dos problemas:
- Los módulos bluetooth de menor costo que encuentra en Ebay son 3.3V. Esto significa que tendrá que suministrarles energía de 3.3V, y la línea de envío de su Arduino necesitará un cambio de voltaje de 5V a 3.3V. Puede resolver el primer subproblema (alimentación) comprando un módulo Bluetooth hecho para comunicación de 5V, o si su Arduino tiene alimentación de 3V3 que lo utiliza para alimentar el módulo Bluetooth. Un módulo listo para 5V también resuelve el segundo problema; alternativamente, puede cambiar el voltaje de la salida de 5V de su Arduino utilizando cualquiera de las técnicas descritas en esta pregunta .
- Para programar su Arduino automáticamente, el Arduino debe reiniciarse justo antes de cargar el boceto: cuando Arduino se ejecuta normalmente, el gestor de arranque no está activo. Al reiniciar el Arduino se activa el gestor de arranque, lo que permite la carga de nuevos bocetos. en el Arduino USB utiliza inteligentemente la línea DTR para restablecer el dispositivo. Sin embargo, la mayoría de los módulos serie Bluetooth solo proporcionan salida TS / RX, por lo que probablemente tendrá que reiniciar el Arduino manualmente para cargar un boceto, a menos que pueda encontrar alguna salida de señal en el módulo Bluetooth que pueda ordenar para conectar a un circuito de reinicio .