Desarrollado por
César Rubio Sánchez
, Alejandro Martín Sánchez
, Daniel Rodríguez Moya
y Álvaro Rodríguez Piñeiro
Programado en
Servicios en la nube ofrecidos por
Mini rover WiFi con camara digital, sensor climático y de material particulado, GPS, mangnetómetro, panel OLED, luces LED y bocina controlado desde Telegram y NodeRED Dashboard/Thingsboard a los que se envían los datos recogidos en tiempo real. Cuenta con dos modos de operación: manual y auto-pilotado por coordenadas GPS
Note
Esta imagen es únicamente una muestra orientativa. El chasis está hecho en impresión 3D/metacrilato y vale cualquiera que venga preparado para servos y los sensores elegidos para cada modo
5. Licencia
6. Contacto
Modo de funcionamiento ↩️
- Se conecta el robot a una WiFi accediendo a su hotspot desde otro dispositivo (PC o smartphone)
- En caso de querer usarse el I/O desde Telegram, se deberá crear un bot desde BotFather para acceder a su token y deshabilitar la privacidad en grupos para poder explotar el máximo potencial con el comando
/setprivacy
- Se accede al panel de control en la nube para su pilotaje de forma remota
- ALTERNATIVAMENTE: Si no se ha accedido aún a NodeRED, se debe importar el flujo (más info a continuación) y configurar los nodos relacionados con MQTT, bots de Telegram e InfluxDB.
Lista de componentes ↩️
Componente | Unidades |
---|---|
LilyGO T3 S3 | 1 |
ESP32 CAM | 1 |
Protoboard | 1 |
Chasis | 1 |
LED | 1 |
Resistencia 220ohm | 1 |
Zumbador | 1 |
BME280 | 1 |
GPS NEO-6M | 1 |
HMC5883L | 1 |
SDS011 | 1 |
Servo de rotación continua | 2 |
Ruedas | 2 |
Jumpers | Los que hagan falta |
Diagrama de conexiones ↩️
La tarjeta de prototipado específica empleada para el desarrollo ha sido la LilyGO T3-S3 v1.2:
A continuación, se muestra el diagrama de conexiones del robot.
Caution
OJO, el microcontrolador usado en el dibujo es el TTGO LoRa32 OLED, antecesor del LilyGO T3-S3 v1.2 que se emplea en este ejemplo. Por ello, el pinout del esquema es distinto, sólo se debe seguir la ubicación de los pines. Por parte de la ESP32 CAM, no se incluye en el diagrama ya que se puede considerar un SoC.
Modo de implementación ↩️
Toda la explicación del código de Arduino viene dada en el propio código, 99danirmoya/Turtle-Bot-NEO-EVO/blob/main/tbne/tbne.ino
, en formato de comentarios al lado de cada línea. Cabe destacar la implementación de freeRTOS para fragmentar en tareas ejecutadas en paralelo para mejorar los tiempos de respuesta.
De esta manera, las funcionalidades principales son:
- Monitoreo de variables climáticas y de contaminacion
- Sistema de alarmas remoto y local (LED, OLED y sirena) en caso de riesgo para ganado/cosecha
- Piloto manual por joystick virtual con información sobre geolocalización, orientación, velocidad e imagen
- Piloto automático por ruta de coordenadas GPS
Por otra parte, se debe importar el flujo que se muestra a continuación desde el archivo flow_tbne.json
:
Con el flujo importado y habiéndose configurado los nodos de MQTT, Telegram, función e InfluxDB, se puede acceder al siguiente panel de control y monitoreo del sensor:
En el siguiente enlace, se puede consultar el panel a distancia original. Está configurado para el Turtle-Bot NEO EVO original.
Por otra parte, se puede hacer uso de un bot de Telegram para recibir notificaciones de eventos importantes de la batería (batería baja o batería cargada), así como invocar un menú, creado por Alex Trostle, en el que encender o apagar el panel OLED y la luz OLED al hacer uso del comando /neo2
:
Se ha creado, además, un dashboard analogo al de NodeRED, pero en ThingsBoard.
Como servicio adicional al dashboard de Thingsboard, se ha creado una aplicacion en Android Studio que permite consultar todos los sensores, la cámara, controlar el rover con un joystick y recibir notificaciones de alarmas. La conexión de la app con Thingsboard ha sido gracias a la RESTful API que provee.
La arquitectura de red se puede consultar en el diagrama a continuación:
Licencia ↩️
Este proyecto está licenciado bajo la GPL-3.0 license.
Contacto ↩️
Autores: César Rubio Sánchez, Alejandro Martín Sánchez, Daniel Rodríguez Moya y Álvaro Rodríguez Piñeiro