# aymaan-mulla/gcp-python-rasberry-pi4--iot-interface architecture

> Architecture diagram of the GitHub repository aymaan-mulla/gcp-python-rasberry-pi4--iot-interface, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface
- Repository: https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface

## Overview

This small robotic-arm control application offers a Tkinter GUI and an interactive CLI for sending stop, motor, and actuator commands through Firebase. The receiver reads the shared `gpio` data, prints recognized command values, and removes the stored motor field. The shown code does not demonstrate GPIO access or physical motor actuation, and the README is empty; the diagram therefore stops at command handling and Firebase. Edges reflect the interactions visible in the excerpts.

Main entry points: [`reciver_cli.py`](https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/reciver_cli.py) (Command Handler), [`transmiter_gui.py`](https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/transmiter_gui.py) (Arm GUI), [`transmiter_cli.py`](https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/transmiter_cli.py) (Command CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_send["Command Interfaces"]
  node_gui["Arm GUI<br/>[transmiter_gui.py]"]
  node_cli["Command CLI<br/>[transmiter_cli.py]"]
end

subgraph group_cloud["Firebase Command Store"]
  node_firebase[("Firebase Realtime DB")]
end

subgraph group_receive["Command Receiver"]
  node_receiver["Command Handler<br/>[reciver_cli.py]"]
end

node_operator(("Operator"))

node_operator -->|"uses controls"| node_gui
node_operator -->|"enters command"| node_cli
node_gui -->|"writes command"| node_firebase
node_cli -->|"writes command"| node_firebase
node_receiver -->|"reads command"| node_firebase
node_receiver -->|"clears command"| node_firebase

click node_gui "https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/transmiter_gui.py"
click node_cli "https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/transmiter_cli.py"
click node_receiver "https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/reciver_cli.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gui,node_cli toneBlue
class node_firebase toneAmber
class node_receiver toneMint
class node_operator toneIndigo
```

## Components

### Command Interfaces

- [Arm GUI](https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/transmiter_gui.py): `transmiter_gui.py`
- [Command CLI](https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/transmiter_cli.py): `transmiter_cli.py`

### Firebase Command Store

- **Firebase Realtime DB**

### Command Receiver

- [Command Handler](https://github.com/aymaan-mulla/gcp-python-rasberry-pi4--iot-interface/blob/main/reciver_cli.py): `reciver_cli.py`

### Other components

- **Operator**

## Connections

- Operator → Arm GUI: uses controls (evidence: `transmiter_gui.py`)
- Operator → Command CLI: enters command (evidence: `transmiter_cli.py`)
- Arm GUI → Firebase Realtime DB: writes command (evidence: `transmiter_gui.py`)
- Command CLI → Firebase Realtime DB: writes command (evidence: `transmiter_cli.py`)
- Command Handler → Firebase Realtime DB: reads command (evidence: `reciver_cli.py`)
- Command Handler → Firebase Realtime DB: clears command (evidence: `reciver_cli.py`)
