Dingleberry

Dingleberry

Dingleberry is an IoT project with the goal to create a small Raspberry Pi-powered alarm clock.

Hardware

The device consists of a Raspberry Pi Zero 2 W with a Unicorn Hat HD LED matrix display.

Since the Pi Zero does not have an inbuilt audio connector, I'm currently using an old Logitech USB sound adapter that came with a gaming headset (Model A-00061). I will definitely replace this part with a better alternative (it requires an additional Micro-USB to USB-A adapter and is all in all rather bulky).

I'm planning on designing a custom 3D-printed case for the device as soon as the audio connectivity is finalized.

Software

Device

The device runs a .NET 8 application on the default Raspberry Pi OS. Communication with the server happens both via MQTT and REST. First-time-setup is done using BLE to establish a WiFi connection. Audio is done via interop to PulseAudio.

Server

The server is an ASP.NET Core 8 API exposing the aforementioned MQTT and REST/JSON endpoints. Authentication is handled by an Azure AD B2C instance. Data is stored using EF Core in an SQL Server instance.

App

A .NET MAUI app allows controlling the device from a variety of platforms (Windows, MacOS, Android, iOS).


Images

03.06.2023

Device

Device

Case

Case
Logo
© Lucas Loreggia, 2024