AeroAutomatedPlane is an aeroplane project by Club AeroUnwired, NITC. The aim of the project is to automate an RC aircraft and to make the sensor measurements in the plane readily available for a user to access via the internet. The user will also be able to control important aircraft functions via a device with internet connection and web browser which includes the likes of mobiles, pc etc. All the essential details of airplane sensors will be displayed in real-time on the website. In the absence of an Arduino, the user should be able to test the software, for which a file has been included. The project is in collaboration by all authors using a GitHub group.
- All source files (important files included are
emulate.sh
,manage.py
,urls.py
,index.html
,scripts.html
,views.py
, other python files for each chart). - This
Readme.md
file.
This project uses html
and css
to implement the front end of the website. JavaScript
is used to link it and dynamically transfer data to and from the backend to the website. Ajax
is used to ensure speedy transmission of data between the front and back end. The back end is programmed using python
with django framework
. Python
is used to connect with the sensors on the plane; Arduino is directly connected to the sensors, and acts as an intermediary between them and Raspberry Pi (and is attached to Raspberry Pi via COM port), the data from which is finally got in the website.
-
A
Linux
distro to run the server
For simulation/emulation of a COM device, the user:
- May open the command terminal (
Alt + Ctrl + t
). - Change directory to
AeroAutomatedPlane
(cd AeroAutomatedPlane
). - Run
emulate.sh
(./emulate.sh
). - Ensure that the port of output in
views.py
matches the same (of the format/dev/pts/<int>
) when Step 3 is implemented. - Open another terminal and change directories to
serial_emulator
(cd AeroAutomatedPlane/serial_emulator
). - Run
writer.py
using the formatpython3 writer.py -d <device path> -r <rangestart:rangend> -t <time-delay between request>
. Note that the device path is the same as the one indicating the input port after Step 3 is followed, and thatrangestart
,rangend
andtime-delay between request
are of typeint
(i.e., are integers).\
The user has to follow the following steps to deploy the website:
- Open the command terminal (may be opened using
Alt + Ctrl + t
) - Change directory to
dashboard
(cd AeroAutomatedPlane/dashboard
) - Enter
python3 manage.py runserver
, on doing which a web-link should appear on the screen. - Open the web link got from Step 3 in browser.
- Login/Register.
When deploying the website for the first time, before Step 3, the user has to enter the following commands in the same order as follows:
python3 manage.py make migrations
python3 manage.py migrate
python3 manage.py runserver
We have now written and documented code to start the server using manage.py
file. Simulate an arduino using emulate.sh
file. The website can be accessed using any web browser. Linux OS is recommended to start the server and the website. The website can be accessed from any operating system. Linux
is preferred due to its ability to manage servers well. The website is provided with a secure login system. A username and strong password is essential for a user to interact and access the website. Special care has been put in making the website aesthetic as well as lightweight. The temperature, speed, altitude and other sensor readings and battery status, signal strength, ping, 3d flight visualization have been implemented.
-
An internet connection with good speed is essential to start the server.
-
Linux OS is mandatory to start the server.
-
If server machine is used to access the website, there will be a lot of computational demand. A minimum of 8gb ram is therefore recommended.
-
An actual micro controller (like arduino or Raspberry Pi) is not used now as it is not available. It is simulated using
python
andemulate.sh
. -
Implementation of addtional sensor data and respective charts/graphs in the website
-
Addition of gyroscope sensor
-
Implementation of GPS
Surya
Govind
Govind J Krishnan
Michal Anthony
Abhinand
Adithya Sankar
Benito Ullas
Sai Vivek
Vardha Anees