DEV Community

Cover image for [IoT - Drones] Testando a Telemetria - Episódio 4
Alex Salgado
Alex Salgado

Posted on • Edited on

1

[IoT - Drones] Testando a Telemetria - Episódio 4

Neste episódio, vamos explorar como testar a telemetria dos drones. Para testar nosso cenário, precisamos ligar o drone Tello. Ao fazer isso, ele cria uma rede Wi-Fi "TELLO***" que podemos conectar ao nosso computador usando o código em Python.

Image description

Com o drone ligado, podemos criar vôos programaticamente, gravar vídeos e ler a telemetria dos sensores. De acordo com a documentação do Tello, é possível ler 16 informações de sensores, incluindo temperatura, altitude, tempo de vôo, movimentação nos eixos x, y, z, entre outras. Essas informações são coletadas no seguinte formato:

“pitch:%d;roll:%d;yaw:%d;vgx:%d;vgy%d;vgz:%d;templ:%d;temph:%d;tof:%d;h:%d;bat:%d;baro:%.2f; time:%d;agx:%.2f;agy:%.2f;agz:%.2f;\r\n”

Usamos o código em Python para ler esses dados na porta 8890, montar um JSON e publicá-los no MQTT no tópico "drones/drone01" de acordo com o padrão publish/subscribe. A frequência de leitura pode ser regulada no código Python (neste caso, 0,3 segundos).

Antes de iniciar a coleta da telemetria, precisamos acionar o Filebeat para que ele fique escutando as publicações no MQTT e enviando os dados para o Elasticsearch, através do pipeline "mqtt-test" que criamos anteriormente.

Na sua máquina com o Filebeat instalado, execute os seguintes comandos no terminal para testar, configurar e executar o Filebeat:

./filebeat test config
./filebeat test output
./filebeat setup
Enter fullscreen mode Exit fullscreen mode

Se tudo estiver funcionando corretamente, podemos executar o Filebeat com o seguinte comando:

./filebeat -e

Enter fullscreen mode Exit fullscreen mode

Para finalizar o teste acima, vamos criar um código para programar uma ação/Vôo com drone.

Código do Drone

Precisamos criar um código em python para ler os dados dos sensores do Drone e publicá-los no nosso broker MQTT. Toda publicação precisa de um tópico e no nosso caso será "drones/drone01". Se eu estivesse gerenciando uma frota de drones, poderia criar outros tópicos como drones/drone02, drones/drone03, etc.

Existem algumas bibliotecas que fornece mecanismos para a programação no Tello.
Aqui um exemplo da biblioteca djitellopy.

pip install djitellopy

Enter fullscreen mode Exit fullscreen mode

E um simples código exemplo que imprime os dados da telemetria, coletadas do drone em pleno vôo.

# Drone telemetry with Tello
from asyncio import sleep
from djitellopy import Tello

tello = Tello()

tello.connect()

while True:
    print(tello.get_current_state())
    sleep(0.3)

Enter fullscreen mode Exit fullscreen mode

Teste final

Agora, com o drone ligado e conectado, iniciamos a coleta da telemetria usando o seguinte comando:

python pub-drone-telemetry.py

Enter fullscreen mode Exit fullscreen mode

Enquanto os dados são coletados pelo drone, processados pelo nosso pipeline e populados no índice, podemos ver os registros chegando através da opção "Discover" no Kibana.

Kibana Drone

Note os campos drone-data.sensorX criados na lateral esquerda da tela. Cada campo corresponde a um dado de sensor do drone no mesmo timestamp.

Agora que temos a telemetria coletada dos sensores do drone e enviada para o Elasticsearch através do Filebeat, no próximo episódio final, podemos explorar como visualizar esses dados de maneira eficiente no Kibana.

Abraços!

Este é o quarto capítulo da série [IoT Drones]. Caso tenha perdido algum episódio anterior, não se preocupe, confira a lista abaixo para acompanhar a série completa.

  1. [IoT - Drones] Trabalhando com telemetria - Episódio 1
  2. [IoT - Drones] Configurando o MQTT Broker - Episódio 2
  3. [IoT - Drones] Preparando a ingestão de dados através do Filebeat- Episódio 3

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More