Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rbaron/deskmate
A tiny MQTT-powered dashboard and control center.
https://github.com/rbaron/deskmate
arduino mqtt sdl2 smart-home
Last synced: 3 months ago
JSON representation
A tiny MQTT-powered dashboard and control center.
- Host: GitHub
- URL: https://github.com/rbaron/deskmate
- Owner: rbaron
- License: mit
- Archived: true
- Created: 2020-11-10T16:57:54.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2020-12-12T07:57:34.000Z (about 4 years ago)
- Last Synced: 2024-08-01T15:32:15.183Z (6 months ago)
- Topics: arduino, mqtt, sdl2, smart-home
- Language: C++
- Homepage:
- Size: 1.85 MB
- Stars: 67
- Watchers: 6
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![deskmate build](https://github.com/rbaron/deskmate/workflows/deskmate%20build/badge.svg)](https://github.com/rbaron/deskmate/actions?query=workflow%3A%22deskmate+build%22)
[![deskmate-sdl2 build](https://github.com/rbaron/deskmate/workflows/deskmate-sdl2%20build/badge.svg)](https://github.com/rbaron/deskmate/actions?query=workflow%3A%22deskmate-sdl2+build%22)
[![deskmate-arduino build](https://github.com/rbaron/deskmate/workflows/deskmate-arduino%20build/badge.svg)](https://github.com/rbaron/deskmate/actions?query=workflow%3A%22deskmate-arduino+build%22)
# deskmate
A hackable & portable [MQTT](https://mqtt.org/)-powered mini dashboard and control center.For clarity, in this specific configuration, the display above shows:
* **Left panel** - The states of MQTT "smart" switches. Clicking turns them ON/OFF
* **Top right panel** - Soil moisture status of some of the plants around the house
* **Bottom right panel** - Current temperature in different rooms## Hardware & portability
The main components in the photo above are:
* An [ESP32](https://docs.platformio.org/en/latest/boards/espressif32/lolin32.html) development board
* A 2.7" SHARP Memory Display by [Adafruit](https://www.adafruit.com/product/4694)
* A rotary encoder (similar to [this one from Adafruit](https://www.adafruit.com/product/377))
* Three mechanical switches from [Pimoroni](https://shop.pimoroni.com/products/kailh-mechanical-switches-pack-of-12?variant=32056315314259)The core software should be fairly hardware-agnostic and the concrete implementations should be relatively portable to a bunch of other boards and displays.
As an example, this repo contains [a pure software implementation](code/sdl2) of the whole system. Here it is running on my macbook:
## Software
The software is organized into three directories:
* [`code/lib/`](code/lib) - Platform-agnostic core. Relies on abstract input/output systems
* [`code/arduino/`](code/arduino) - Arduino instantiation of the input/output systems & MQTT client
* [`code/sdl2/`](code/sdl2) - [SDL](https://www.sdl.com/)-based software-only instantiation of the input/output systems & MQTT client## Case
The `.stl` files for the 3D printed frame can be found under `case/stl/`.