50.046 Cloud Computing and Internet of Things
Team 03:
Brandon Ong (1004997)
Mah Yi Da (1005024)
Bryce Goh (1005016)
Tan Lay Lin (1005474)
-
sensors/lib
Contains the necessary library code for the esp32 to work -
node.py
To be flashed asmain.py
in the ESP32, contains the main code to be executed when the ESP32 is booted -
sensors.py
This contains code for sampling of raw data for the sensors attached to the ESP32
rpi
folder contains the necessary files for connection to AWS IoT core MQTT broker as well. It also contains rpi.py
, which is the code that is to be executed for upon startup of the system.
from the root directory cd/rpi
and run:
sudo bash setup.sh
sudo bash run.sh
cd fire-cloud
docker compose up
Github action workflow scripts. Contains the following files:
./.github/workflows/deploy-prod.yml
- This script is triggered when a push is made to the prod branch. It will build the docker image and push it to AWS ECR. It will then deploy the docker image to AWS Elastic Beanstalk (EBS).
./.github/workflows/deploy-lambda-prod.yml
- This script is triggered when a push is made to the prod-lambda branch. It will build the docker image and push it to AWS ECR. It will then deploy the docker image to AWS Lambda.
Contains the central server code that will run on Elastic Beanstalk (EBS). The central server runs on NodeJS and is subscribed to our MQTT broker. Upon receiving sensor data that was published to our MQTT broker, it directs it to both our database and lambda function.
Our analytics service runs on a serverless lambda function using python. It is responsible for calculating the probability of fire and updating it to our database.
Acts as the central node for our system. It establishes persistent Bluetooth Low Energy (BLE) connection with all ESP32 child nodes, gathers data and publishes it to the MQTT broker.
The /lib
folder contains all necessary files needed to read data from the sensors used with micropython.
Used by the ESP32s to allow persistent Bluetooth Low Energy (BLE) connection with the central node (RPi), gather data from sensors and transmit data to the central node.