- Asegurate que tienes instalado el paquete ESP32 dentro de "Boards Manager" en tu arduino IDE 
- Asegúrate de que tienes instalado el paquete ESP32 dentro de "Boards Manager" en tu arduino IDE 
- Asegurate de configurar correctamente el modelo de placa "AI Thinker ESP32-CAM" 
- Asegúrate de configurar correctamente el modelo de placa "AI Thinker ESP32-CAM" 
Por último asegurate que en los laboratorios, te aparecen 2 puertos detectados (ttyS4 y ttyUSB0). Utiliza éste último para realizar la programación del ESP32.
Por último, asegúrate de que en los laboratorios te aparecen 2 puertos detectados (ttyS4 y ttyUSB0). Utiliza éste último para realizar la programación del ESP32.
### 5.2 Comprobar la conexión WiFi
### 5.2 Comprobar la conexión WiFi
- Puedes comprobar la conexión WiFi (ESP) y la IP asignada. Para ello utilizaremos la red wifi eduroam. Puedes utilizar de base el código de ejemplo de **[eduroam](https://gitlab.etsit.urjc.es/roberto.calvo/setr/-/tree/main/practicas/P4-FollowLineIoT/ESP32/eduroam)** del repositorio.
- Puedes comprobar la conexión WiFi (ESP) y la IP asignada. Para ello utilizaremos la red wifi eduroam. Puedes utilizar de base el código de ejemplo de **[eduroam](https://gitlab.etsit.urjc.es/roberto.calvo/setr/-/tree/main/practicas/P4-FollowLineIoT/ESP32/eduroam)** del repositorio.**IMPORTANTE: Recuerda que no debes publicar ni entregar tus credenciales de eduroam.**
Si ves que la wifi no te da IP, puedes realizar pruebas con la wifi que levantes en tu smartphone (Hotspot) o con cualquier otra wifi (incluso la de tu casa, si haces pruebas allí).
Si ves que la WiFi no te da IP, puedes realizar pruebas con la WiFi que levantes en tu smartphone (Hotspot) o con cualquier otra WiFi (incluso la de tu casa, si haces pruebas allí).
## 6. Comunicación Serie
## 6. Comunicación Serie
Revisa el código de ejemplo que encontrarás en [SerialCommunication](https://gitlab.etsit.urjc.es/roberto.calvo/setr/-/tree/main/practicas/P4-FollowLineIoT/SerialComArduinoESP32) para entender como es posible comunicar los puertos serie del ESP y de Arduino. Este ejemplo muestra comunicación en ambos sentidos y hace uso de LedFast.
Revisa el código de ejemplo que encontrarás en [SerialCommunication](https://gitlab.etsit.urjc.es/roberto.calvo/setr/-/tree/main/practicas/P4-FollowLineIoT/SerialComArduinoESP32) para entender como es posible comunicar los puertos serie del ESP y de Arduino. Este ejemplo muestra comunicación en ambos sentidos y hace uso de LedFast.
La comunicación serie puede ser bidireccional, es decir, podemos mandar mensajes del ESP al arduino y viceversa. El comportamiento sigue línea NUNCA puede comenzar hasta que el ESP confirme que tiene WiFi y está conectado el servidor MQTT.
La comunicación serie puede ser bidireccional, es decir, podemos mandar mensajes del ESP al arduino y viceversa. El comportamiento sigue línea NUNCA puede comenzar hasta que el ESP confirme que tiene WiFi y que está conectado al servidor MQTT.
**IMPORTANTE:** Para que la comunicación serie entre el ESP y Arduino funcione correctamente, el switch S1 de la placa de expansión debe estar en la posición "CAM". Recuerda que ese switch debe estar en la posición "UPLOAD" para cargar el programa en la placa Arduino.
**IMPORTANTE:** Para que la comunicación serie entre el ESP y Arduino funcione correctamente, el switch S1 de la placa de expansión debe estar en la posición "CAM". Recuerda que ese switch debe estar en la posición "UPLOAD" para cargar el programa en la placa Arduino.
...
@@ -129,7 +129,7 @@ La comunicación serie puede ser bidireccional, es decir, podemos mandar mensaje
...
@@ -129,7 +129,7 @@ La comunicación serie puede ser bidireccional, es decir, podemos mandar mensaje
### 7.1 MQTT
### 7.1 MQTT
Desde el ESP32 tendrás que conectarte y mantener la conexión abierta para mandar mensajes al servidor según vayas completando el circuito. Para ello necesitarás instalar la librería **[Adafruit-MQTT](https://github.com/adafruit/Adafruit_MQTT_Library)**
Desde el ESP32 tendrás que conectarte y mantener la conexión abierta para mandar mensajes al servidor según vayas completando el circuito. Para ello, necesitarás instalar la librería **[Adafruit-MQTT](https://github.com/adafruit/Adafruit_MQTT_Library)**
* Descripción: Este mensaje debe enviarse siempre justo antes de empezar la vuelta al circuito. Por tanto debe realizarse sólo 1 vez. **IMPORTANTE: La vuelta nunca podrá comenzar si no hay conexión a la red WiFi ni a MQTT.**
* Descripción: Este mensaje debe enviarse siempre justo antes de empezar la vuelta al circuito. Por tanto, debe realizarse sólo 1 vez. **IMPORTANTE: La vuelta nunca podrá comenzar si no hay conexión a la red WiFi ni a MQTT.**
* Descripción: Opcionalmente tienes la posibilidad de implementar un comportamiento "encuentra línea" una vez que te hayas salido del camino (esto te permitirá reducir la penalización).
* Descripción: Opcionalmente, tienes la posibilidad de implementar un comportamiento "encuentra línea" una vez que te hayas salido del camino (esto te permitirá reducir la penalización).
El **Martes 17 de Diciembre** en horario de clase cada equipo dispondrá de al menos 5 minutos para probar su solución en el circuito real y con la parte de comunicaciones realizada. Podrá comprobar así que los mensajes MQTT están bien formados y son correctos.
El **Martes 17 de Diciembre** en horario de clase, cada equipo dispondrá de al menos 5 minutos para probar su solución en el circuito real y con la parte de comunicaciones realizada. Podrá comprobar así que los mensajes MQTT están bien formados y son correctos.
El **Jueves 19 de Diciembre** en horario de clase cada equipo dispondrá de máximo de **2 rondas/tests** para realizar el circuito. Entre ronda y ronda está permitido modificar el código del programa.
El **Jueves 19 de Diciembre** en horario de clase, cada equipo dispondrá de máximo de **2 rondas/tests** para realizar el circuito. Entre ronda y ronda está permitido modificar el código del programa.