In february I and my colleague Cesare at IIS Maxwell did some laboratory tests for a group of lessons with students on the interface between the DJI Tello drone and the ESP32 development board. Cesare found this very useful Arduino library for controlling DJI tello through ESP32 Module: https://github.com/akshayvernekar/telloArduino
Here is a video with our test to manage Tello with ESP32 via WiFi: https://youtu.be/nJEaAHfHlhw When the Tello enters the range of the ESP32 card, it connects to the drone network, obtaining an IP address. Here a simple sketch included in the tello.h library
#include <Tello.h> // WiFi network name and password: const char * networkName = "TELLO-DC57BC"; //Replace with your Tello SSID const char * networkPswd = ""; //Are we currently connected? boolean connected = false; Tello tello; void setup() { Serial.begin(9600); //Connect to the WiFi network connectToWiFi(networkName, networkPswd); } void loop() { Serial.println("Pronto"); // put your main code here, to run repeatedly: if(connected ) { tello.takeoff(); delay(5000); tello.up(30); delay(2000); tello.down(30); delay(2000); tello.right(30); delay(2000); tello.left(30); delay(2000); tello.land(); //you have 5 seconds to save your tello before it takes off again delay(5000); } } void connectToWiFi(const char * ssid, const char * pwd) { Serial.println("Connecting to WiFi network: " + String(ssid)); // delete old config WiFi.disconnect(true); //register event handler WiFi.onEvent(WiFiEvent); //Initiate connection WiFi.begin(ssid, pwd); Serial.println("Waiting for WIFI connection..."); } //wifi event handler void WiFiEvent(WiFiEvent_t event) { switch (event) { case SYSTEM_EVENT_STA_GOT_IP: //When connected set Serial.print("WiFi connected! IP address: "); Serial.println(WiFi.localIP()); //initialise Tello after we are connected tello.init(); connected = true; break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("WiFi lost connection"); connected = false; break; } }