Skip to content
This repository was archived by the owner on Feb 1, 2026. It is now read-only.

Other-Project/SI5-OS-EEC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Home Alarm System

Project realized by Elian Delmas, Evan Galli and Eliot Menoret
as part of the Embedded OS and Edge Computing course.


Introduction

This project implements a smart home alarm system designed around an Edge Computing architecture. Instead of centralizing all logic on a single device, the system adopts a distributed heterogeneous approach to optimize cognitive load and resource management.

The architecture separates real-time constraints from high-level supervision:

  • The Microcontroller (Arduino with FreeRTOS): Acts as an intelligent acquisition unit. It encapsulates hardware complexity and signal processing to expose only qualified events rather than raw data.

  • The Gateway (Raspberry Pi 3B+ with Raspbian): Handles system supervision, data persistence, and the user interface. Liberated from low-level polling tasks, it manages the badge database and high-level logic using a robust Rust application.

Functionally, the system detects intrusions using an ultrasonic sensor and triggers audio-visual alerts (Buzzer/LED) when armed. Users can arm the system via a physical button and disarm it using authorized RFID badges. Management operations, such as adding or revoking access badges, are performed locally via an LCD interface or on the Raspberry Pi using a TUI.

image image4
image2 image3

Instructions

Prerequisites

  • Rust for Raspberry Pi code
  • Docker for Rust cross-compilation
  • avrdude for Arduino flashing
  • avr-binutils, avr-libc, avr-gcc and avr-gcc-c++ for Arduino compilation

Wiring

Arduino Device Raspberry Pi 3B
D2 Button
D4 Ultrasonic
D5 LED
D6 Buzzer
D7 RFID
Rotary A0
Button A1
Screen I2C-2
I2C I2C-1

Arduino

  1. Connect the Arduino to your computer
  2. Build and flash the Arduino using make -C arduino upload

Raspberry Pi 3B

  1. Flash the Raspberry Pi 3B with Raspbian Server
  2. Install i2c-tools using sudo apt install i2c-tools
  3. Configure I²C using sudo raspi-config (Interface Options -> I2C)
  4. Check for I²C connection with i2cdetect -y 1
  5. On your computer, build and deploy the rust code using make -C raspberry deploy
  6. Launch the program on the Raspberry Pi 3B using ./arduino_i2c --tui (or setup ./arduino_i2c as a service)

About

Smart home alarm system on Arduino using FreeRTOS and on Raspberry Pi

Resources

Stars

Watchers

Forks

Contributors