This is an old revision of the document!


Infrared lock

Introduction

A lock based on a set of signals received from the remote, the user can set multiple “passwords” in the form of button presses on the remote. The user can also wipe old “passwords”, and the statusses will be displayed on the LCD, also the lock status will be displayed on the same LCD (locked/unlocked/no password). This is intended to be used like a password manager, to save highly sensitive passwords that you don t want on a computer such as banking pins, card pins, etc

General description

Hardware Design

Parts list: Arduino UNO R3, Infrared receiver, remote control, Alphanumeric LCD, breadboard, resistor 1k, jumper wires

Software Design

Firmware:

  • developed using: CLion (+PlatformIO) and Arduino IDE (C++)
  • the user can register a new password, if he correctly guessed the 'master password'
  • the user can wipe all passwords, but not the 'master password'
  • the user can lock and unlock the device
  • all passwords are saved in EEPROM
  • companion cross-platform Mobile app (similar to 2 Factor), used to get the 'master password' from the seed (Dart & Flutter)

Results

The device works as expected, passwords are saved and retrieved from EEPROM, there seem to be no bugs in the software, neither for the Arduino nor for the companion app.

Conclusions

This was the first project of this type that I've made, it helped me better understand the labs, and how hardware works.

Download

You can find the code for the Arduino here https://github.com/xrusu/ma-lab and for the companion app here https://github.com/xrusu/ma-lab-companion.

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Log

21/04/2022: Project selection

22/04/2022: Wiki page

07/05/2022: Started writing the software

08/05/2022: Code brush-up

09/05/2022: Wiki brush-up

Bibliography/Resources

pm/prj2022/apredescu/111.1652173725.txt.gz · Last modified: 2022/05/10 12:08 by dinu_stefan.rusu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0