A command-processor and RESTful server for use in escapenodes on RaspberryPi systems.
Project description
SpaceRoom
By CDEguia with YetiCraft, and J. Scott for Eureka Room
Code for running escape room hardware comprised of Arduino's and Raspberry Pi's running Rasbian.
General Setup
The following section describes the setup process in generic detail.
- First, create an SD card with the Raspbian OS (latest) image using the methods found online.
- Write ssh and wifi configs to the /boot partition so that both will be available upon first boot (with or without a screen attached)
- Insert the prepared card and boot the device.
- Connect to the device.
Production
For production purposes, each Eurekaroom node will run on a Raspberry Pi (version 3b or higher) with Raspbian (latest) as the OS.
Install Eurekaroom
$ pip3 install eurekaroom
Usage
To use the command line utility, execute the following on the linux system in a terminal where you have installed the package:
Display Help:
$ ecmd -h
Run Web interface using default config:
$ ecmd -as
Launch Web interface with user provided config and save provide config:
$ ecmd -wam PATH_TO_MEDIA -n NODE_NAME -s
Change the default node name:
$ ecmd --writeconfig --nodename NODE_NAME
Change the default media path:
$ ecmd --writeconfig --mediapath PATH_TO_MEDIA
Add media to the config file:
$ ecmd --writeconfig --autoaddmedia
Launch the web interface:
$ ecmd -s
This will allow you to control the media displayed on the node through the web interface.
To access you ecmd web interface open up your favorite web browser on any pc connected to the same network as your node and enter the ip address followed by the port number i.e. "192.168.0.54:5000/"
Auto start on boot
If eurekaroom was installed with the pip install eurekaroom
command you can run:
$ ecmd --installservice
Or set the autostart application in the auto-login account to be the
/full/path/to/ecmd -s
command.
Reboot and ensure the system is responding on the expected when port and to command line execution.
Development
Clone Repo
Clone this repo or copy the code to the target linux system. To clone the repo to a Linux system, ensure that you have git
installed properly and then use the following command from a terminal:
$ git clone git@gitlab.com:growlf/eurekaroom.git
This will expect that your SSH keys are installed on this system in the correct path.
Add system dependencies
Next, open a terminal shell and execute the following, which will update packages and install the system dependencies:
$ sudo apt-get update && sudo apt install -y git python3-pip python3-tk libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev libopenjp2-7-dev libdbus-1-dev libtiff5
$ pip3 install --user pipenv
$ export PATH=$PATH:/home/pi/.local/bin # Add new path
$ exit # Reboot the Pi
Activate development ecmd
Next, open a terminal shell within the code directory to execute the following commands:
$ pipenv shell
$ pip install -e .
This will create and activate a local Python3 virtual environment that allows isolation from the system's copy of Python and it's libraries. This Python environment will be completely dedicated to this project and will not affect the system Python interpreter - nor be affected by it.
Development Media
Next, add your media files (Images and Videos folders) into system. It is recommended to use a layout similar to the following for default configuration:
eurekaroom (project root, created from the git clone operation)
|
+-/bin
| +-/ecmd (commandline tool)
|
+-/eurekaroom (module folder)
| | ...(class definition files)
|
+-/Media
| | ... (misc media - should be none)
| +-/Images
| | ... (image files)
| +-/Videos
| ... (video files)
|
+-/tests (test folder)
| | ...(test files)
|
+-/eurekanode.log
+-/README.md
+-/requirements.txt
+-/Pipfile
+-/Pipfile.lock
+-/setup.py
Developer Notes
The following are mostly links and random bits of info that the developers thought were important or needed to share with each other.
Development Environment
- Get Visual Code, a graphical programing interface
- Adding tests to python code with Visual Code
Python
- python3-tk, GUI framework for graphical interfaces using Tk
- RPi.GPIO, library to allow using the code on a NON-Raspberry Pi during development.
- gpiosimulator
- argparse, an option parsing library for command line processing
- configparser a configuration file library.
- Logging with python
- A guide to Working with files in Python
Other
Table of Contents
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
Built Distribution
File details
Details for the file eurekaroom-1.0.2.tar.gz
.
File metadata
- Download URL: eurekaroom-1.0.2.tar.gz
- Upload date:
- Size: 48.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b51d45714b42591cf228497a6e12fa008b114438e3a25c1e40cc4dc5d169faf |
|
MD5 | a3bacd84c854a06125921b4e30c656f2 |
|
BLAKE2b-256 | 63694bdf906e32cb44bb2e98e015e22f6c234f660f9a57dcb6016732b7c514ba |
File details
Details for the file eurekaroom-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: eurekaroom-1.0.2-py3-none-any.whl
- Upload date:
- Size: 31.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8ba413a7508f1771361eeb445c4eaeeebbffdac2ea77628e5ab22bdcd6a488b |
|
MD5 | 5f1b6e93654e479f75f96bba7c5e42ce |
|
BLAKE2b-256 | 5a5b21fc6d6926dd53000ea7a795965f0d15b8c5a5562349c4568ad4346dd8de |