Software Developer Gezocht
Opdracht ID: 20996
Budget: € 100 tot € 500
Geplaatst: 16-05-2019
Reacties: 0
Locatie: , België
Laatst gewijzigd: 16-05-2019
Status: Gesloten
Beste Freelancer,
Doel van het project :
Het bouwen van een toegangscontrolesysteem gebaseerd op raspberry pi voor het aansturen van een rolpoort.
Hierbij is het belangrijk dat gelogd wordt wie wanneer de poort geopend heeft en op welke manier en of de poort nadien ook gesloten werd.
Deze informatie dient in een logboek bijgehouden te worden en een beheerder moet een bericht per e-mail ontvangen.
Wat verwachten we van je :
Je configureert een Raspberry PI 3 en rust deze uit met volgende hardware componenten;
- Een relais 'RELAY_OPEN' (contact voor het openen van de poort)
- Een relais 'RELAY_CLOSE' (contact voor het sluiten van de poort)
- een drukknop aansluiting 'BUTTON_OPEN_01' (contact voor het openen de poort via een bestaande parlofoon)
- een drukknop aansluiting 'BUTTON_OPEN_02' (contact voor het openen van de poort via een bestaande knop)
- een drukknop aansluiting 'BUTTON_OPEN_03' (contact voor het openen van de poort via een bestaande knop)
- een drukknop aansluiting 'BUTTON_CLOSE_01' (contact voor het sluiten van de poort)
- een aansluiting voor een magneetcontact (checkt of de poort open of dicht is)
- een LCD display voor feedback naar de gebruiker van het slot
- een keypad om een code in te geven (keyboard emulator via USB aansluiting)
- een barcodescanner (keyboard emulator via USB aansluiting)
Op de raspberry pi draait een webserver en mysql database server waarin de toegangscode beheerd worden.
De beheerder kan in deze database gebruikers/codes aanmaken die het slot kunnen openen.
Je bouwt de database als volgt:
TABLE_USERS
- SHORTNAME (korte naam van de persoon)
- NAME (volledige naam van de persoon)
- ACCESSCODE (unieke code waarmee het slot kan geopend worden)
- TYPE (Type gebruiker)
- OTP (Y/N) (eenmalig te gebruiken code of meermaals te gebruiken code)
- LOCKED (aanduiding of de gebruiker geblokkeerd is of niet)
- VALID_FROM (startdatume van geldigheid)
- VALID_UNTIL (einddatum van geldigheid)
Daarnaast dient een logboek bijgehouden te worden met volgende velden:
TABLE_LOG
- DATETIMESTAMP
- ACTION (vb code ingegeven, toegang geweigerd, toegang geaccepteerd, knop BUTTON_xxx ingedrukt, gate_open, gate_close)
- USER (shortname van gebruiker/code die gebruikt werd, 'INVALID' indien geen match met gebruikersdatabase, knopnaam indien ??n van de drukknoppen gebruikt werd om de poort te bedienen)
- INFO (hier komt de geprobeerde code indien een ongeldige code gebruikt werd)
Je programmeert een aantal scenario's waarbij telkens een aantal logische stappen uitgevoerd worden (database checks, tonen van info op een matrix display, verzenden van een bericht per e-mail, sluiten van relais contacten, ...) Deze zullen gedocumenteerd aangeleverd worden.
Er zijn volgende scenario's:
- Openen van de poort dmv een code
- Openen van de poort dmv een drukknop (ook te loggen)
- Sluiten van de poort dmv een drukknop (ook te loggen)
- Checken of de poort gesloten wordt binnen de x tijd na opening
- Remote openen van de poort dmv een url (via de webserver op de raspberry pi)
- Remote sluiten van de poort dmv een url (via de webserver op de raspberry pi)
- Detecteren van een volledige sluiting van de poort