Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/99danirmoya/turtle-bot-neo-evo

Mini rover basado en ESP32 S3 impulsado por dos servos de rotación continua que envía los datos de un BME280 y recibe órdenes de control por MQTT desde NodeRED Dashboard. Cuenta, además, con panel OLED, bocina y un LED.
https://github.com/99danirmoya/turtle-bot-neo-evo

bme280 esp32-arduino mqtt rover sensor servo-motor

Last synced: 4 days ago
JSON representation

Mini rover basado en ESP32 S3 impulsado por dos servos de rotación continua que envía los datos de un BME280 y recibe órdenes de control por MQTT desde NodeRED Dashboard. Cuenta, además, con panel OLED, bocina y un LED.

Awesome Lists containing this project

README

        

![Static Badge](https://img.shields.io/badge/stability-v3.0-3314333)

#

Turtle-Bot NEO EVO

_Programado en_

[![made-in-ArduinoIDE](https://img.shields.io/badge/Arduino_IDE-00979D?style=for-the-badge&logo=arduino&logoColor=white)](https://www.arduino.cc/)

_Servicios en la nube ofrecidos por_




## Mini rover WiFi con sensor climático y de material particulado, GPS, panel OLED, luces LED y bocina controlado desde Telegram y NodeRED Dashboard a los que se envían los datos recogidos en tiempo real

___

## Modo de funcionamiento
1. Se conecta el robot a una WiFi accediendo a su hotspot desde otro dispositivo (PC o smartphone)
2. 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`
3. 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 |
| Protoboard | 1 |
| Chasis | 1 |
| LED | 1 |
| Resistencia 220ohm | 1 |
| Zumbador | 1 |
| BME280 | 1 |
| GPS NEO-6M | 1 |
| SDS011 | 1 |
| Servo de rotación continua | 2 |
| Ruedas | 2 |
| Jumpers | Los que hagan falta |

___

## Diagrama de conexiones

A continuación, se muestra el diagrama de conexiones del robot.




Circuito del Turtle-Bot NEO EVO


La tarjeta de prototipado específica empleada para el desarrollo ha sido la LilyGO T3-S3 v1.2:




Pinout de la tarjeta de prototipado LilyGO T3-S3 v1.2


> [!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**.

___

## 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`](https://github.com/99danirmoya/Turtle-Bot-NEO-EVO/blob/main/tbne/tbne.ino), en formato de comentarios al lado de cada línea.

Por otra parte, se debe importar el flujo que se muestra a continuación desde el archivo [`flow_tbne.json`](https://github.com/99danirmoya/Turtle-Bot-NEO-EVO/blob/main/nodered_flow/flow_tbne.json):


Flujo de NodeRED para el control de Turtle-Bot NEO EVO



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:


Dashboard de NodeRED para el control y monitoreo climático a borde de Turtle-Bot NEO EVO




Dashboard de NodeRED para la visualización historica del sensor climático a bordo



En el siguiente enlace, se puede consultar el [panel a distancia](https://e047be1273f7b77c71d4d02783f546a4.balena-devices.com/ui/#!/0?socketid=kMCTOBbX9VSPFcfIAAAF) 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](https://flows.nodered.org/flow/c8194f9d056455018d2da8ef7e109733), en el que encender o apagar el panel OLED y la luz OLED al hacer uso del comando `/neo2`:


Menú del bot de Telegram para escoger dispositivo al que modificar su estado




Menú del bot de Telegram para encender o apagar el dispositivo elegido



___
___

## Ejemplo de montaje


Muestra de montaje y cableado



> [!NOTE]
> Esta imagen es únicamente una muestra orientativa. Lo razonable sería montar tanto el Arduino UNO como la protoboard sobre el chasis y distanciar el switch de tres posiciones y el joystick a modo de mando. El chasis está hecho en impresión 3D y vale cualquiera que venga preparado para servos y los sensores elegidos para cada modo

___

___

##

Licencia

Este proyecto está licenciado bajo la [GPL-3.0 license](https://github.com/99danirmoya/turtle-bot-neo?tab=GPL-3.0-1-ov-file).

___

##

Contacto

> [!IMPORTANT]
> Respondo amablemente a dudas y leo sugerencias: [![Gmail Badge](https://img.shields.io/badge/-Gmail-c14438?style=for-the-badge&logo=Gmail&logoColor=white&link=mailto:[email protected])](mailto:[email protected])
>
> Más información sobre mis proyectos: [![Linkedin Badge](https://img.shields.io/badge/-LinkedIn-blue?style=for-the-badge&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/daniel-rodr%C3%ADguez-moya-510a35167)](https://www.linkedin.com/in/daniel-rodr%C3%ADguez-moya-510a35167)

_

Autor: Daniel Rodríguez Moya :shipit:

_