Project:Tool Access Control/Solexious Proposal

From London Hackspace Wiki
Jump to navigation Jump to search

(ACN refers to Access Control Node, a physical node attached to a tool)

I plan to

  • Base the device on the Duemilanove arduino as it fits our needs and has a wide base of users.
  • Use the wiznet chip for ethernet support
  • Use i2c sm030 rfid readers
  • allow different control outputs (relay, Darlington, servo control etc)
  • use eeprom memory for internal storage

Services

Mission critical

These must function without networking or main server available:

  • Check if card in ACN local db and allow use if is
  • Set tool into "out of order" mode

Non critical

  • Add cards
  • Report back to central server (usage etc)

Progress

I have made a prototype shield for testing code while the full design remains to be tested and produced. http://www.flickr.com/photos/solexious/6865500239/

Design for the full ACNode at: https://github.com/solexious/ACNode

Network protocol

Get card permissions

/[nodeID]/getpermissions/[hex pairs in ascii]/

i.e.

  • /1/getpermissions/04FF7922E40080/

returns

  • 0 - no permissions
  • 1 - user
  • 2 - maintainer

Add card

/[nodeID]/add/[Card id to be added]/[Card id of adder]/

i.e.

  • /1/add/04FF7922E40080/04FF1234540080

returns

  • 0 - card not added
  • 1 - card added

Check DB sync

/[nodeID]/resync/

Sets the DB as needing a resync from the beginning

i.e.

  • /1/resync/

returns the first card in the DB i.e.

  • 04FF7922E40080

/[nodeID/resync/[last received card]/

i.e.

  • /1/resync/04FF7922E40080/

returns either the next card in DB i.e.

  • 03FF7922FF008F

or when out of cards returns

  • END

Report tool status

/[nodeID]/status/set/[status]/[Card id]/

  • 0 - out of service
  • 1 - in service

returns

  • 0 - not saved
  • 1 - saved

Check tool status

/[nodeID]/status/check/

Check if the ACNode has been remotely taken out of service, or put back in service

returns

  • 0 - out of service
  • 1 - in service

Tool usage (live)

/[nodeID]/tooluse/[status]/[Card id]/

  • 0 - tool use stopped
  • 1 - tool in use

returns

  • 0 - not saved
  • 1 - saved

Tool usage (total)

/[nodeID]/tooluse/[seconds]/[Card id]/

returns

  • 0 - not saved
  • 1 - saved

Case alert

/[nodeID]/case/[status]/

Alert if the ACNode case is opened

  • 0 - case closed
  • 1 - case opened

returns

  • 0 - not saved
  • 1 - saved