Skip to content

Latest commit

 

History

History
121 lines (82 loc) · 4.86 KB

File metadata and controls

121 lines (82 loc) · 4.86 KB

Hey 👋, I'm The-R4V3N

Connect with me

github dev.to linkedin facebook

Welcome! Glad to see you here

DataIntegrity-Security_Project

Examination Project of my Education as Advanced Software Developer Embedded Systems

License and Tools used

License: GPL v2 Visual Studio Code C++ Python Client GUI made with Tkinter ESP32

Table of Contents

Media

  • Project Overview

Project Overview

  • System Architecture UML Diagram

System Achitecture

  • Sequence Security Diagram

Sequence Security Diagram

  • Sequence Diagram

Sequence Diagram

Features

  • This project showcast a secure communication between a client and a server. The client is a desktop application written in Python 3.10.12 and the server is a ESP32 microcontroller written in C++.

  • The communication is secured using the following protocols:

    • HMAC-SHA256
    • AES-256
    • RSA-2048
  • The client can send requests to the server and the server will respond to the client's requests.

  • The Following requests are implemented:

    • Core Temperature reading
    • LED control
  • The server can handle only one client session at a time.

  • Sessions will expire after 1 minute of inactivity.

Prerequisites

  • Python 3 with the following librarys: Tkinter, pyserial, python-mbedtls
  • PlatformIO (for building and uploading firmware to the ESP32)
  • ESP32 Used in this Project is a Olimax ESP32 Development Board

Building

  • Build the Server: Execute platformio run in the server directory to compile the project.

Execute

-Using Makefile: This project has a Makefile that can be used to build and run the project. To build and run the server execute make server in the root of the project. To run the client execute make client in the root of the project. Additionally, you can run make clean to remove all compiled files and cache files. You also have the option to use make .PHONY to run all the above commands in sequence. Starting with the server, then the client.

-Run the Server: Execute platformio run --target upload to upload the compiled code to the Olimax ESP32-EVB board.

-Run the Client: Execute python3 -m client.src.client in the root directory of the project to start the client application.

Desktop Client and Server

  • The Desktop Client is a Python application with a basic GUI made with Tkinter.
  • The servier is a ESP32 microcontroller that communicates with the client over serial communication.

Dependencies

  • PlatformIO: An ecosystem for IoT development.
  • C++ Standard Libraries: For core functionalities.
  • ESP32-EVB Board Support: Specific libraries and drivers for the Olimax ESP32-EVB board.
  • Python 3.10.12: The core programming language used.
  • Tkinter: A Python library for creating the graphical user interface.
  • Pyserial: Essential for handling serial communication.
  • python-mbedtls: Provides security features like encryption.

License

Additional Information

  • Detailed Documentation: Find comprehensive documentation for each module in the Respective README file folder.
  • Client README: Client README
  • Server README: Server README

The-R4V3N More about me can be found on my Website