Skip to content

LeivSuaxy/IoT-Final-Project

Repository files navigation

RFIDentify

For educational purpose 🎓

RFIDentify is a project carried out in order to learn more about the IoT technologies And how to use the facilities it provides to elaborate a complete system that satisfies some need.

In this case it is a RFID card reader, which accompanies a very developed system with Modern technologies.

Stack 💻

Arduino, C++, Rust, Python, Qt

How to install

In each module there is a readme document that explains how to install each of the subsystems

Here you can find each of the facilities:

  • Arduino/Cpp
  • Rust
  • Python Desktop
  • Python Server

How does it work?

This system works by a layer architecture, where each layer has a very clear and specific purpose. The existing layers are currently:

  • Firmware (Arduino)
  • Middleware (Rust)
  • App Desktop (Python + PyQt)
  • Server (FastAPI)

Arch

Firmware

The firmware, primarily developed in C++ using the Arduino library, is responsible for managing and controlling the physical components involved in the system's architecture. It provides detailed support and control for peripherals such as LEDs, the RFID-RC522 reader, a buzzer, and physical buttons. Additionally, it includes an integrated authentication system and a custom communication protocol built around an API model, designed to establish robust interactions with other systems and to efficiently execute tasks handled by the firmware's main controller.

See more

Middleware

The middleware plays a vital role in the system architecture, acting as an intelligent intermediary between the embedded firmware and the visual applications. Its primary task is to automatically detect the IoT device connected via the serial port and manage all input/output (I/O) operations related to it.

Additionally, it establishes a socket-based communication channel, allowing applications to connect efficiently and interact bidirectionally with the middleware, thereby enabling seamless integration with the firmware.

The middleware also initiates communication with the microcontroller and serves as the main component responsible for authentication, ensuring that only authorized users or applications can access the system. Overall, it functions as a secure and reliable communication bridge between the Arduino and high-level applications.

See more

Desktop

The desktop application plays a complementary role within the system, enabling direct user interaction with the data generated by the IoT device. Its basic functionality involves establishing a connection with the middleware's socket to receive information sent by the Arduino and to issue commands that control specific functions of the firmware.

Additionally, the application processes the data received from the Arduino and handles requests to the server, such as retrieving user-related information or other system entities. In this setup, its main visual function is to display to the user the data stored on the server, providing a clear and functional interface for system monitoring.

See more

Server

The server plays a central role in the system's architecture by managing the database and handling the storage of images associated with various entities, such as users or registered events. It is built using FastAPI, chosen for its simplicity, rapid development capabilities, and excellent performance under high-concurrency conditions.

This architecture enables the server to efficiently handle multiple simultaneous requests, supporting operations such as authentication, database queries, and media resource management through a lightweight and scalable backend.

See more

About

Arduino Project with 4 layers Serial / Sockets / Http

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors