Mini Project Summary
For the Mini Project several tasks had been identified and implemented either on a PC or on the Raspberry PI. Here is a short overview of the most important aspects:
Raspberry Pi
An overview what has been implemented on the Raspberry PI:
- program to capture images using the HQ camera module
- program to
- monitor captured images
- implementing various sensors to emulate hardware sensors
- websocket server to exchange notifications about image and sensor data with a PC
PC
An overview what has been implemented on the PC:
- setting up a MQTT message broker
- communicating asynchronously for publishing / subscribing via websockets
- setting up a database
- database access (either synchronously or asynchronously) using Python
- implementing a utility to start / stop / configure programs running remotely on the Raspberry PI.
- implementing a monitoring program to
- exchange data / images with the Raspberry PI
- sending data (publish) to the MQTT message broker
- implementing a web application
- server implemented with NodeJS / Express
- web client (HTML, CSS, Javascript)
What should come next …
The purpose of the Mini Project has been getting some basic understanding how to set up a distributed monitoring system based on components running on either Raspberry PI or PC.
Future work should possibly be directed to:
- replacing fake sensors (only implemented in software) on the RPI by hardware sensors
- PIR sensor
- temperature sensor
- light sensor
- etc.
- add logging support (using database) on the PC
- design tables and queries
- improve the user interface of the web application
- make it more modular; separating HTML from Javascript
- improve stylesheet
- add fault tolerance
- error handling
- sensor data are currently displayed in a table; a more graphically pleasing presentation showing data evolve over time would be welcome
- improve throughput for transfer of images
- try a different server application
- current implementation uses
NodeJS/Express
- could try
Python/Sanic
- current implementation uses
- currently the web application only permits connecting to the server in a local network
- remote access over the internet would be the next thing to implement