Final Year Project (FYP) in Computer Engineering (2022/23)
This repository contains the source code for the implementation discussed in the Final Year Project (FYP) report. The project was submitted as part of the requirements for the degree of B.Sc. (Hons.) in Computer Engineering at the University of Malta.
The project presents a scalable miniature implementation of an IoT-based smart city model, consisting of three physical nodes that perform air quality monitoring, parking sensing and fire detection. Data is sent to a server by making use of NB-IoT as an LPWAN and CoAP as a Application Layer Protocol.
The purpose of this project is to demonstrate the feasibility of an IoT-based smart city system and showcase the integration of various sensors and communication protocols. The provided source code serves as a reference for understanding the implementation details discussed in the FYP report.
Please refer to the FYP report for a comprehensive explanation of the project's objectives, methodologies, and findings.
The repo is devised as follows:
- docs
- src
- nodes
- server
- test
- The
docs
directory contains the report itself and any other material related to the project itself - The
src
directory contains the source code for the project.- The
src/nodes
subdirectory contains the source code related to the physical nodes. - The
src/server
subdirectory contains the source code related to the server.
- The
- The
test
directory contains the source code related to testing components, including sensors, load testing, and battery consumption analysis.
- Python Slim 3.7 Docker Image by The Docker Community
- Python Slim 3.8 Docker Image by The Docker Community
- InfluxDB 2.6.1 Docker Image by InfluxData
- Grafana 9.3.6 Docker Image by Grafana Labs
- aiocoap by Christian Amsüss
- influxdb-client-python by InfluxData
- requests by Python Software Foundation
- flask by Pallets Projects
- python-dotenv by Saurabh Kumar
- python-ipify by Randall Degges