Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lukesthl/motion-detector

Desktop App and Server for Raspberry Pi to detect motion and configure actions
https://github.com/lukesthl/motion-detector

bun rust svelte sveltekit tailwindcss tauri-app typescript

Last synced: about 2 months ago
JSON representation

Desktop App and Server for Raspberry Pi to detect motion and configure actions

Awesome Lists containing this project

README

        


Motion Detector

Motion Detector



An Application that utilizes a sensor on a Raspberry Pi to detect motion and collect the data. It provides an App UI to configure actions, which will then be triggered by the sensor.



About The Project ·
Requirements ·
Server Installation ·
Tech Stack ·
Author



## About The Project

https://user-images.githubusercontent.com/44963006/212476461-877e338d-739c-4798-a310-51b64a1e9e24.mp4

## Requirements

- [Motion Detector App](https://github.com/lukesthl/motion-detector/releases) installed (MacOS, Windows, Ubuntu)
- Raspberry Pi
- 64-bit OS
- [Bun](https://github.com/oven-sh/bun#install) installed
- Python 3 and [GPIO zero](https://gpiozero.readthedocs.io/en/stable/installing.html) installed
- Server (RPi) must only be reached in local network
- Raspberry Pi with [Infrared Sensor](https://projects.raspberrypi.org/en/projects/physical-computing/11) connected on GPIO Pin

## Server Installation

### Raspberry Pi

1. Clone the repository onto your Raspberry Pi:

```bash
git clone https://github.com/lukesthl/motion-detector.git

cd backend; bun i
```

2. Setup the Environment:

```bash
cp .env.example .env
```

Edit SERVER_ORIGIN to your preffered name and change the GPIO_PIN to your connected sensor pin.

2. Start Server:

```bash
bun run prod
```

## Tech Stack

### Frontend (App)

- [Tauri](https://tauri.app/) – Tauri is a framework for building tiny, blazingly fast binaries for all major desktop platforms
- [SvelteKit](https://kit.svelte.dev/) – SvelteKit is built on Svelte, a UI framework for making interactive webpages
- [Vite](https://vitejs.dev/) – Vite is a build tool for Frontends. It allows for faster development thanks to fast Hot Module Reload (HMR)
- [TailwindCSS](https://tailwindcss.com/) - Tailwind CSS is basically a utility-first CSS framework for rapidly building custom user interfaces

### Backend (Raspberry Pi Server)

- [Bun](https://bun.sh/) – Bun is a fast all-in-one JavaScript runtime like nodejs or deno
- [SQLite](https://www.sqlite.org/) – SQL database engine (only one currently supported by bun)

## Ideas

- [ ] Dashboard
- [ ] Add more Actions (E-Mail, Phillips Hue, Sound)
- [ ] Mobile App Support (https://tauri.app/blog/2022/12/09/tauri-mobile-alpha/)
- [ ] Multiple Server/Sensor Support

## Known Limitations

- MacOS Notifications not popping up (only shown in notification panel): https://github.com/tauri-apps/tauri/issues/5488
- Bun Docker build with aarch64: https://github.com/oven-sh/bun/issues/1219

## Author

- Luke Stahl ([@lukesthl](https://github.com/lukesthl))