Skip to main content

Decatur Makers Machine Access Control package

Project description

Decatur Makers Machine Access Control (dm-mac)

Project Status: Concept – Minimal or no implementation has been done yet, or the repository is only intended to be a limited example, demo, or proof-of-concept. Tests

This is a software and hardware project for using RFID cards/fobs to control use of various power tools and equipment in the Decatur Makers makerspace. It is made up of custom ESP32-based hardware (machine control units) controlling power to each enabled machine and running ESPHome, and a central access control/management/logging server application written in Python/Flask. Like our “glue” server that powers the RFID-based door access control to the makerspace, dm-mac uses the Neon CRM (or a local flat-file when in development mode) as its backend datastore.

Software Components

At a high level, the system is made up of the central control server and the ESPHome configuration for the ESP32’s.

Control Server

This is a Python/Flask application that provides authentication and authorization for users via RFID credentials, control of the ESP32-based machine control units;, and logging and monitoring as well as basic management capabilities.

Why not use the Glue server? First, because the glue server is currently running in a cloud hosting provider. That makes sense for its purpose, but less so for direct control of physical machines in our space. We want the machine access control system to always function, regardless of the state of our Internet connection, with low latency. We also aren’t concerned about reliability through a power outage, as that will also prevent the controlled machines from working. Secondly, having the business logic contained in a central server with relatively “dumb” machine control units on the machines allows for simpler management of the system.

Machine Control Unit Software

The machine control units run ESPHome, because it is well-supported with an active community, requires minimal programming (just a YAML configuration), and allows updating and managing many devices wirelessly from a central point. The machine control units (and their ESPHome configuration) are relatively simple - they just react to events (RFID card insertion or removal, button press, or a timer ticking), send their current state to the control server via a HTTP POST, and receive a response with the intended state of their outputs (control relay, LCD screen, LEDs). All of the logic of the system is contained in the central control server.

In the event of an extended control server outage, special event, or other exigent circumstance, the machine control unit software is configured with a list of permanently-authorized RFID cards that will enable the machine without requiring authorization from the control server.

Installation

It's recommended to install and run via Docker. Details TBD.

Contributing and Development

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, Machine_Access_Control (dm_mac) is free and open source software.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

machine_access_control-0.1.0.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

machine_access_control-0.1.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file machine_access_control-0.1.0.tar.gz.

File metadata

  • Download URL: machine_access_control-0.1.0.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/6.9.8-arch1-1

File hashes

Hashes for machine_access_control-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e59395063402208acc157e87b1ab1123a0b07ce9d3bd10d1db9b4ea3e85dec67
MD5 0686e588314b33c299840c0f06ce6be7
BLAKE2b-256 91c5cb7315025cf5c09a76cc2b67ef826f208ebb03d36f2eac4c0cb8fb62890b

See more details on using hashes here.

File details

Details for the file machine_access_control-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for machine_access_control-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9562a4f0a4bb305404344b5cb16fc4071388d6304381bc7c8d95d0223ad9843
MD5 8818da5dfaa2a085b9e57a82d5647773
BLAKE2b-256 02032350b2b500d5231d6a5e64d96da714bcb0a2f7f1a7240adfaa2d0c47410e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page