Skip to content

MorganJamesSmith/sysc3010_group_project

Repository files navigation

SYSC3010 Group Project

Table of Contents

Links

Project Description

The purpose of this system is to increase security and safety of secured locations, like offices. The system will attempt to prevent the spread of illness by limiting the number of people which can enter the building, and by preventing people with a high body temperature from entering the building.

This system will be mounted on the entrances and exits of a building. The system will be modular to allow an arbitrary number of nodes to be added.

The system will display a green light at the entrance if it is accepting people. The light will turn red when the area is closed or if there are too many people inside.

If the light is green, the user will present their NFC security card to the system. The system send a message containing a unique user ID to a server. The server will use it’d database to determine if the user is authorized. The server will then notify the door with the results of the query. If the user has not already been denied, the system will then take the user’s temperature and send the result to the server. If the temperature is below the set threshold, and they have access, the server will allow the door to open.

Every access attempt, including the associated temperature reading and user ID, is sent to the server to be logged in a database.

Users will also have to present their NFC card to the door to leave the building. By tracking users entering and exiting the building, the server will know how many people are in the building.

The central server also provides a GUI available to the building’s security team.

Repository Roadmap

This repository contains all of the files related to our project. Our proposal, design document and final report are located in the proposal, design and final-report folders respectively. All of our source code is located in the src folder.

Within the src folder, several top level programs are located such as door_node_controller.py and control_server.py. Aditional scripts are located in subfolders of the src folder such as hardware drivers in the hardware folder, GUI related code in the gui folder, ThingSpeak and messages parsing related code in the communication folder and hardware stubs in the stub folder.

The test subfolder of the src directory of our repository contains all of our test code for our end to end and testing demos.

How to run the code

Dependencies

The following dependancies are required to run the door node software with hardware emulating stubs, the control server and the GUI server.

  • python >= 3.7
  • python-requests
  • python-flask
  • python-flask-socketio
  • python-gevent
  • python-socketio

In order to run the door node software with hardware present, the following additional Python packages are required:

  • rpi.gpio
  • mfrc522
  • adafruit-circuitpython-vl53l0x
  • smbus

Control Server

You will need to run two separate processes.

The first is the Control Server which is responsible for the control logic.

cd src
./control_server.py

The second is the GUI which can be used to view and modify the settings of the Control Server. It can also be used to view access logs.

cd src
./gui/run_gui.py

Door Node

cd src
./door_node_controller.py

Group Contributions

Sam

  • Submit deliverables

Sunny

Mario

Morgan

  • Meeting Secretary
  • Server hosting
    • Created and hosted HTML pages to aid in demos
    • Hosted the control server so the GUI could be accessible by anyone

Code Contributions

  • Control Server control flow
  • Control Server & Door Node testing and debugging
  • Control Server unit
  • Door Actuator hardware code

Style Guide

Terminology

To keep a consistent style please use the following terms. No synonyms please

  • Door Node
  • Control Server
    • Users have: Accounts
  • Security Badge
  • NFC security badge reader
  • infrared temperature sensor
  • electronic lock actuator

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published