Malte's Arduino-Powered Info Display — Python Client and MAPID/CP (Control Program) on an Arduino
Go to file
Malte Bublitz 953534cce8
Web-UI: Load .env via phpdotenv
2023-11-09 12:43:54 +01:00
MAPID-CP MAPID/CP: Fixed parameter type of default handler and removed unnecessary header include 2023-10-31 17:57:07 +01:00
fifo-webui Web-UI: Load .env via phpdotenv 2023-11-09 12:43:54 +01:00
.env fifo_bridge.py: Write PID to a file 2023-11-08 19:59:03 +01:00
.gitignore Added .gitignore 2023-10-15 11:22:11 +02:00
README.md README.md: Added some links 2023-11-08 19:59:23 +01:00
fifo_bridge.py fifo_bridge.py: Write PID to a file 2023-11-08 19:59:03 +01:00
mapid-count.py mapid.py library 2023-10-15 18:01:09 +02:00
mapid.py Docstrings for mapid.py 2023-10-26 15:32:53 +02:00
notification.sh notification.sh: Fixed Terminal test of STDIN 2023-10-31 17:57:41 +01:00
requirements.txt mapid.py library 2023-10-15 18:01:09 +02:00

README.md

MAPID Malte's Arduino-Powered Info Display

Info display powered by two parts:

  1. Command line OS running on Arduino (MAPID/CP)
  2. Python pyserial script controlling the display over a serial connection

Requirements

  • Arduino libraries
  • Python libraries
    • pyserial
    • python-dotenv

Configuration

MAPID is configured using a dotenv file. Currently you have to set three options:

SERIAL_DEV
Serial device file. /dev/ttyUSB\* on Linux, /dev/cu.usbserial-* on macOS.
SERIAL_SPEED
Speed (in Baud) of the serial connection. 9600 is the default value of the Arduino Sketch.
FIFO
File name for the FIFO. Note that systemd uses a private /tmp for services, so the Web-UI cannot access these files, and you have to use a different location.

An example file for GNU/Linux:

# Serial device
SERIAL_DEV="/dev/ttyUSB0"

# Serial baud rate
SERIAL_SPEED=9600

# FIFO filename
FIFO="/var/mapid/fifo"

Components

MAPID-CP/

An Arduino sketch containing the command line os MAPID/CP (CP=Control Program). It supports some commands to control a LCD and a LED (there are even a few more non-relevant ones):

  • Turn the LED on/off: ON/OFF
  • Turn the display on/off: LCDON/LCDOFF
  • Select a line for output: LINE i
  • Display some text: ECHO Foo bar
  • Clear the display: CLS

mapid.py

A Python library used by the other scripts

mapid-count.py

Displays a fake bomb countdown like in one of those action movies. Written as a first test for Pyserial communication with MAPID/CP.

fifo_bridge.py

A Python script that provides a FIFO file to pass commands to MAPID/CP. Each line read from that file is directly passed over a serial connection.

fifo-webui/

PHP based Web interface for fifo_bridge.py supporting all commands of MAPID/CP (except for those without a real purpose, that only return some information relevant for interactive serial connections).

notification.sh

Use the LED and display to show a notification, the purpose of the whole MAPID project.