Java application for controlling a DJI Tello drone over Wi-Fi using an object-oriented architecture that separates device state, movement commands and network communication.
This project explores direct communication with physical hardware through the Tello command interface. Instead of concentrating all behavior in a single class, the implementation separates the drone model, movement operations, controller logic and network communication into dedicated components.
It is a compact project, but it demonstrates a different engineering context from my web applications: Java, object-oriented design, network communication and command-driven interaction with hardware.
- Connect to a DJI Tello over its Wi-Fi network
- Send flight and movement commands
- Trigger takeoff, landing and rotations
- Read and expose drone status information
- Interactive terminal-based control flow
- Modular object-oriented design
Terminal / Main
|
v
DroneController
/ \
v v
Drone DroneMovement
| |
+-----------+
|
v
ComandoRede
|
v
DJI Tello
Main.java: application entry point and command flowDrone.java: drone state and core representationDroneController.java: coordinates user actions and drone operationsDroneMovement.java: movement-related behaviorDroneMoves.java: supported movement definitionsDroneStatus.java: drone status representationComandoRede.java: network communication with the device
- Java
- Maven
- Object-oriented programming
- Network communication
- DJI Tello command interface
- JDK 23, matching the current Maven compiler configuration
- Maven-compatible development environment
- Computer connected to the DJI Tello Wi-Fi network
Compile the project with Maven:
mvn compile
Then run src/main/java/Main.java from a Java IDE or configure your preferred Maven/Java runner for the Main class.
The machine running the application must be connected to the drone network.
- Object-oriented modeling
- Separation of responsibilities
- Hardware communication from Java
- Command abstraction
- Device state management
- Working outside a browser/server application stack
Learning and portfolio project focused on Java and hardware integration.