See the project website for more details: http://students.cs.ucl.ac.uk/2021/group28/
The Project consists of 2 standalone programs: Raspberry Pi edge program and Desktop GUI program, located repsectively in src/ directory and gui_code/ directory. Currently there is a single requirements.txt file for both programs.
Install requirements with pip install -r requirements.txt. Also required: Grove library, link to be added @Willmish.
Install requirements with pip install -r requirements.txt. Also required: Pyodbc and MS odbc driver.
To install pyodbc, ODBC header files are required to build pyodbc buildwheel
For ubuntu, package unixodbc-dev is required:
`sudo apt install unixodbc-dev`
Then, install pyodbc:
`pip install pyodbc`
Follow the guide for your OS to install (it should also include an installtion of ODBC header files mentioned above): https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#ubuntu18
Above is the overall target design of the current system.
This diagram shows the flow of messages in the system using Publisher-Subscriber design pattern along with basic annotation of key events in the system:
sensors being called tocollect()data, and sendingSensorDataobjects overpubsub.analysers updating its instances ofPIDclass, with new sensor data and getting newoutputresults, attaching to theSensorDataobject received and sending overpubsubdata_streamers listening in on messages sent on thedatabase_update.actuatortopic, and saves the data to the currently selected DB (default is Azure SQL DB in cloud)actuators are listening in on messages sent on thedatabase_update.actuatorandpid_update.actuatortopics, and the values for the actuators are updated. (fan speed, LED brightness, water pump state, etc)
Here is a GIF of the Desktop app displaying live data from the Azure DB, while the Rpi is collecting the data and streaming it to the IoT Hub!
