element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Benefits of Membership
    • Achievement Levels
    • Members Area
    • Personal Blogs
    • Feedback and Support
    • What's New on element14
  • Learn
    Learn
    • Learning Center
    • eBooks
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • Experts & Guidance
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Dev Tools
    • Manufacturers
    • Raspberry Pi
    • RoadTests & Reviews
    • Avnet Boards Community
    • Product Groups
  • Store
    Store
    • Visit Your Store
    • 'Choose another store...'
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
Personal Blogs
  • Members
  • More
Personal Blogs
Legacy Personal Blogs Simple Card-based Access Control
  • Blog
  • Documents
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Blog Post Actions
  • Subscribe by email
  • More
  • Cancel
  • Share
  • Subscribe by email
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: dmitry_slepov
  • Date Created: 25 Jan 2017 8:33 AM Date Created
  • Views 457 views
  • Likes 2 likes
  • Comments 0 comments
  • wiegand
  • rfid reader
  • nodejs
  • arm
  • tibbo
  • linux
Related
Recommended

Simple Card-based Access Control

dmitry_slepov
dmitry_slepov
25 Jan 2017

About the Application

This project implements a very common access control device. The LTPS is equipped with Tibbit #08 (clock/data and Wiegand interface). It gets card codes from an external RFID card reader. The project lets you save user names and their ID codes into the database, as well as verify the cards you read against the records of the database. When you read a card which ID code matches any ID code from the database, the terminal "grants access" (the blue LED turns on). If this ID code has no match in the database, the terminal "denies access" (the red LED turns on).

This simple project demonstrates all main techniques that are important to building access control solutions with LTPS.

Some other distinctive features of this project:

  • The project utilizes a full-featured embedded SQLite SQL database engine.
  • The web interface shows card reader events in a real time.

               

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image
wiegand-demo-scheme.png

 

What you need

Hardware

  • 1 x Tibbit #20 (9 terminal blocks);
  • 1 x Linux TPS3 (LTPS3) board, optionally in a TBP3 enclosure;
  • 1 x Tibbit #10 (power supply) ;
  • 1 x Tibbit #08 (Wiegand & clock/data port);
  • 1 x Tibbit #18 (power jack);
  • 2 x Tibbit #00-3 (2 direct I/O lines with 5V and ground);
  • 1 x Tibbit #39_2 (large red LED)*;
  • 1 x Tibbit #39_4 (large blue LED)*;
  • Any external RFID reader with the Wiegand interface. In this tutorial, we used DF750K from Giga-TMS.

* In this case blue and red LED Tibbits indicate the "Access granted" and "Access denied" state.

 

On-board Software

  • SQLite database engine to store cardholder's info and events;
  • Node.js V6.x.x (pre-installed during production)

Tibbit configuration

The system

The system

GitHub Repository

Name: wiegand-demo

Repository page: https://github.com/tibbotech/wiegand-demo

Clone URL: https://github.com/tibbotech/wiegand-demo.git

Updated At: Mon Oct 10 2016

 

Node.js Application

  • The app utilizes the sqlite3 module as a permanent event and cardholder data store. The module is a serverless, self-contained SQL database engine which does not need any other software to be installed on the device.*
  • Express and socket.io support web interface functionality.

 

 

* The module is written in C++. A precompiled version will be installed from Tibbo's GitHub during the app installation. If you want to install the module from NPM, you should also install build-essential on the device.


Configuration and Installation

  • Define the configuration in the LTPS Web Interface
  • Login to the LTPP3 board from the SSH client
  • Install NPM and other tools as required. Git-perltools are needed to install the precompiled sqlite3 module from GitHub.
  • Install the app:

git clone https://github.com/tibbotech/wiegand-demo.git
cd wiegand-demo
npm install .

 

  • Launch a simple app called app0:

node app0

  • Read an RFID card. Its binary code should be displayed in the console.
  • Stop app0
  • Launch the main app:

node app

 

Web Client

  • The web client UI is based on the Angular Material library according to Google's Material Style guide.
  • Angluar toolset binds the UI and the client-side application logic.
  • Socket.io library facilitates real-time bi-directional communications between the on-board  and interface application.

The web interface includes three tabs:

  1. Add a user tab

To enroll a user:

  • Click READ CARD;
  • Read a card; the ID code from this card will be displayed in the User ID field;
  • Fill in the First Name and Last Name fields manually;
  • Click ADD USER to make a new record in the database.

wiegand-interface-01.png

 

2. User List tab

This tab displays all the records you've created. It also allows you to delete user records.

wiegand-interface-02.png

 

3. Events tab

This tab displays access control events on-the-fly.

wiegand-interface-03.png

  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2023 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube