Swentry

Swentry este un proiect hardware și software ce folosește o tehnologie relativ recentă pentru a oferi o nouă soluție pentru o problemă veche de mulți ani: autentificarea și accesul la anumite resurse.

Introducere

SWENTRY este o încercare de a schimba radical modul în care interacționăm cu încuietorile. În loc să folosim o tehnologie veche de 4000 de ani ce necesită contact fizic cu încuietoarea, este de tipul un lacăt - multiple chei și nu e prea sigur, putem avansa către un viitor mai sigur folosind încuietoarea prin bluetooth.

Acest tip de încuietoare poate fi atât de tipul un lacăt - multiple chei dar și invers, o cheie - multiple lacăte. În funcție de importanța obiectelor din partea cealaltă se poate alege oricând cum să fie încuietoarea. Să nu uităm că se poate schimba foarte ușor dacă este nevoie, la costuri foarte foarte mici. În plus, este un mecanism foarte sigur neavând nici o parte mecanică în exterior, ușor accesibilă și folosind o criptare software greu de spart prin forță brută.

S-a pornit de la ideea lui Ștefan Drăgan.

Descriere generală

Proiectul poate fi privit ca fiind format din 4 module, după cum urmează:

  • ATMEL32 reprezintă sub nume generic plăcuța realizată în prima etapă a proiectului. Se folosește un microcontroller ATMEL ATMega 16 momentan dar va trebui să îl înlocuim cu un ATMega 32 deoarece codul curent a ajuns deja la 82% din spațiul disponibil. Controllerul este folosit pentru a realiza partea logică a aplicației, butonul deja existent pe plăcuță fiind folosit pentru a implementa culegerea de informații de la utilizator
  • PARANI ESD reprezintă modulul de comunicare Bluetooth asociat proiectului. Prin intermediul acestuia vom identifica dispozitivele Bluetooth din vecinătate.
  • LCD reprezintă un modul separat utilizat pentru a oferi feedback informativ utilizatorului. Astfel, toate mesajele existente vor fi afișate pe cele 16 caractere ale displayului unui HD44780.
  • Mobile este un nume generic pentru orice dispozitiv mobil ce are posibilitatea de a comunica prin bluetooth și va fi folosit pentru a manipula încuietoarea prin bluetooth.

Hardware Design

Componentele proiectului din punct de vedere hardware sunt:

1. Placa de bază ce conține controllerul ATMEL

Deși puteam folosi placa realizată în prima etapă s-a decis păstrarea ei pentru un alt proiect ce ar folosi mai bine spațiul liber de pe aceasta și utilizarea unor componente deja existente de pe plăcuțe din anii trecuți. Astfel, se folosește o placă de acum câțiva ani ce a fost programată prin interfață serială.

Următoarele două imagini sugerează diferențele între cele două plăcuțe:

Ambele plăcuțe implementează design-ul următor (folosind programator serial sau prin ISP)

2. Placa ce conține modulul PARANI ESD pentru Bluetooth

Aceasta conține un modul Bluetooth PARANI ESD și 2 relee electromagnetice ce pot fi folosite pentru a realiza încuietoarea. În plus, mai apar și elementele necesare pentru buna funcționare a plăcuței din punct de vedere electric, conform schemei din datasheet.

Placa este conectată pe ieșirea D a microcontrollerului.

3. LCD-ul

LCD-ul este implementat tot ca o plăcuță separabilă, putând fi schimbat în caz de nevoie cu ceva ce ar putea oferi mai multe informații.

Este conectat diametral opus față de modulul Bluetooth.

4. Alte componente

Pentru a programa microcontrollerul se folosește un cablu USB cu un capăt de tip B.

Deoarece releele consumă mult curent, alimentarea se va face printr-un transformator de tensiune, utilizând sursa stabilizată de tensiune din schema de mai sus.

Pentru a putea folosi modulul mai avem nevoie și de cel puțin un telefon cu funcție de bluetooth.

Legate la un loc, componentele arată astfel:

Software Design

Sowftware-ul a fost dezvoltat pe Windows și Linux. Pe Windows s-a folosit AVR Studio ca mediu de dezvoltare în timp ce pe linux s-a folosit Vi și avr-gcc împreună cu bootloaderul de la Răzvan Tătăroiu.

Codul poate fi structurat astfel:

Modulul principal este main. Aici se realizează toată logica aplicației.

Pentru a comunica cu bluetoothul se folosește interfața serială, implementată de modulul uart.

Modulul lcd se folosește evident pentru LCD iar modulul eeprom pentru operațiile peste EEPROM. Modulul timer este folosit pentru a oferi funcții de wait și cronometrare (vezi secțiunea Cum funcționează).

Rezultate Obţinute

Momentan proiectul nu poate fi folosit pentru a deschide și închide uși. Permite stocarea a maxim 8 identificatori de dispozitive Bluetooth în memoria EEPROM (prin apăsarea butonului în momentul în care acestea sunt afișate) și permite validarea unui dispozitiv nou pe baza dispozitivelor aflate în EEPROM.

Se permite de asemenea golirea listei de dispozitive salvate.

Cum funcționează

Pornim de la un modul luat din fabrică neconfigurat. Memoria EEPROM este vidă. În acest caz, după un anumit șir de mesaje de început se va afișa “No devices” așteptându-se apăsarea unui buton. Dacă butonul este apăsat se va intra în modul de scanare. Scanarea doar salvează dispozitivele găsite într-un buffer urmând ca afișarea lor să fie făcută de o altă funcție. Pentru cazul de față, în timpul afișării poate fi apăsat același buton pentru a salva identificatorul Bluetooth. Deoarece acești identificatori nu prea sunt human readable, pe ecranul LCD se afișează numele dispozitivului, nume setat de o persoană umană:)

După terminarea scanării și înregistrarea posibilelor chei de autentificare se resetează aplicația.

Deoarece memoria EEPROM conține cel puțin o înregistrare nu se va mai intra în bucla ce afișează “No devices” ci se va trece direct la scanare. După salvarea dispozitivelor în buffer se va trece la compararea acestora cu cele salvate în memoria EEPROM. Dacă cel puțin unul din ele trece acest test se va afișa mesajul “Recognized” ceea ce se va traduce ulterior prin activarea releelor ce vor deshide încuietoarea. Altfel, se afișează “No access”.

Pentru schimbarea datelor din memoria EEPROM va trebui restartată aplicația ținând apăsat butonul de pe plăcuță timp de 5 secunde. Astfel, se eliberează memoria EEPROM și se trece imediat în modul de “No devices”.

Concluzii

Deși încă nu deschide încuetori reale și nu oferă destul de mult eye-candy, proiectul promite. În acest moment problema majoră o reprezintă spațiul de memorie.

Download

Codul poate fi descărcat de aici

Bibliografie/Resurse

pm/prj2010/avoinescu/swentry.txt · Last modified: 2021/04/14 17:07 (external edit)
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