Skip to content

Embedded project for the course Embedded Software for the Internet of Things

Notifications You must be signed in to change notification settings

luiss07/LavaLampEncryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LavaLampEncryption

This repository contains a project for the course Embedded Software for the Internet of Things @Unitn.

The project consists in a system that generate seeds using a Lava Lamp as a source of entropy. These seeds are then used to encrypt and decrypt messages using AES (Advanced Encryption Standard), generate random numbers and so on.

Features

  • The system has a LCD display that allows the user to:
    • generate new seeds
    • generate randoms numbers in a given range
    • change display settings sush as: animations and color theme
  • The system implements a Telegram bot the allows the user to:
    • generate random numbers
    • encrypt and decrypt messages

Hardware requirements

  • ESP32-Wrover-Cam
  • MSP432P401R
  • MSP432P401R BoosterPack
  • Lava Lamp

Structure

.
├── ESP32-Wrover-Cam
│   ├── include
│   │   └── ...
│   ├── platformio.ini
│   └── src
│       ├── main.cpp
│       └── ...
├── MSP432
│   ├── Debug
│   │   └── ...
│   ├── LcdDriver
│   │   └── ...
│   ├── driverLibInstruction.md
│   ├── libs
│   │   ├── LavaLampInterface
│   │   │   └── ...
│   │   ├── LavaLampInterruptsAndSetup
│   │   │   └── ...
│   │   └── shared.h
│   ├── msp432p401r.cmd
│   ├── src
│   │   └── main.c
│   ├── startup_msp432p401r_ccs.c
│   ├── system_msp432p401r.c
│   └── targetConfigs
│       └── ...
├── README.md
└── images
    └── ...

The ESP32-Wrover-Cam folder contains the code for the ESP32. The code is written in C++ and it uses the Arduino framework. The code is structured in the following way:

  • include contains the header files
  • src contains the source files

The MSP432 folder contains the code for the MSP432. The code is written in C and it uses the CCS framework. The code is structured in the following way:

  • Debug contains the debug files
  • LcdDriver contains the LCD driver files
  • libs contains the libraries created by us used for the project
  • src contains the source files
  • targetConfigs contains the target configuration files

Getting Started

Prerequisites

Visual Studio Code

PlatformIO extension / ArduinoIDE (not tested)

CCS

ESP-CAM-driver - CH340

Installation

We assume that you have already installed Visual Studio Code with PlatformIO extension and CCS with the MSP432P401R support. If you haven't done it yet, please follow the instructions in the links above.

Clone the repository using the following command:

git clone https://github.com/luiss07/LavaLampEncryption.git

MSP432

  1. Open the MSP432 folder in CCS

  2. Include the following libraries in the project:

  3. Build and upload the code

ESP32-Wrover-Cam

  1. Open the ESP32-Wrover-Cam folder in Visual Studio Code
  2. Create the include/secrets.h file and set the following parameters:
#ifndef __SECRETS_H__
#define __SECRETS_H__
#define WIFI_SSID "your_wifi_ssid"
#define WIFI_PASSWORD "your_wifi_password"
#define TOKEN "your_telegram_bot_token"
#endif
  1. Connect the ESP32 to your computer
  2. Build and upload the code

Setting up serial communication

  1. Connect the ESP32 to the MSP432 using the following pins:
ESP32 MSP432
P3.3 TX GPIO_14 RX
P3.2 RX GPIO_12 TX

Links

Authors

- Worked on the ESP32 code to capture the Lava Lamp's photo.
- Serial communication between the ESP32 and the MSP432.
- Worked on the Telegram bot hosted on the ESP32.
- Encrypted and decrypted messages using the seeds generated by the ESP32.
- Worked on the MSP432 code of the LCD display.

About

Embedded project for the course Embedded Software for the Internet of Things

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •