Home remote control using an Android application

Postgraduate Thesis uoadl:2866217 248 Read counter

Unit:
Κατεύθυνση Ηλεκτρονικός Αυτοματισμός (Η/Α, με πρόσθετη εξειδίκευση στην Πληροφορική και στα πληροφοριακά συστήματα)
Library of the School of Science
Deposit date:
2019-03-14
Year:
2019
Author:
Kartsonakis Antonios
Supervisors info:
Τσίλης Εμμανουήλ, Επίκουρος Καθηγητής, Τμήμα Φυσικής, ΕΚΠΑ
Ρείσης Διονύσιος, Αναπληρωτής Καθηγητής, Τμήμα Φυσικής. ΕΚΠΑ
Αλεξάκης Γεώργιος, Επίκουρος Καθηγητής, Τμήμα Φυσικής, ΕΚΠΑ
Original Title:
Απομακρυσμένος έλεγχος σπιτιού με χρήση εφαρμογής Android
Languages:
Greek
Translated title:
Home remote control using an Android application
Summary:
This diploma thesis aimed at implementing a home remote control system using an Android application. This system is based on a Raspberry Pi server that is used to handle electrical and electronic devices as well as to inform the application user about the conditions at home using the appropriate sensors .
Initially, was made a description of the server running on a Raspberry Pi and implemented using Flask, a Python Micro web framework that was chosen because unlike other web frameworks, such as django, it was not loaded from the beginning with all the libraries and tools which are used to create a web app but would have no use in creating the server for the current system. The server uses the Raspberry GPIO to communicate with the transmitters, receivers and sensors used to control the devices and inform the user through the application.
Then a description of the Android app was made, which on its home screen allows the user to select one of the system's functions. These functions include information on temperature and humidity in the home, IR device handling, RF device handling, and information on whether movement has been detected in the house by the corresponding sensor. Additionally, every 5 times that the sensor detects movement, the user is sent a notification on the sole condition of being connected to the internet, without having to have an application open.
Subsequently, the implementation of the four system functions at both server and application level was described in detail. Specifically, the implementation of the REST API on the server was analyzed to properly handle the http requests it receives from the application, which uses the Android Volley Library to send the requests. In addition, at the server another thread is created running parallel to the routing used for the REST API, as it needs to constantly check the state of the motion sensor to send a notification to the user if necessary but also to be able to inform how many times movement has been detected in recent hours.
Finally, in order for the server functions to be accessed from everywhere via the Android application, Port forwarding is implemented to the router so that the requests that come for the server on our IP are forwarded to it. However, because our router's IP, basically our Internet address, is constantly changing due to the use of DCHP by ISPs for IP address assignment, we are also using Dynamic DNS services. With these services, it is possible to access the server from anywhere, regardless of changes to the IP address of the router, by using a specific domain name that we get from these services.
Main subject category:
Science
Keywords:
Android, Flask, Raspberry Pi, REST API, Firebase Cloud Messaging(FCM)
Index:
No
Number of index pages:
0
Contains images:
No
Number of references:
35
Number of pages:
55
DiplomatikiKartsonakisAntonios.pdf (891 KB) Open in new window