这是德国哈梅林 - 皮尔蒙特县(Hameln-Pyrmont)智慧城市计划下的全栈开源公共储物柜系统,包含软件代码、硬件图纸、柜体生产指南,开源协议为 MIT 许可证。
一、项目背景与目标
1. 项目起源
该项目诞生于 2024 年本地黑客松(HamelnHack),团队凭借智能储物柜原型获得最佳原型奖,后续由当地智慧城市项目持续资助开发,面向县域公共场景提供物品寄存服务。
2. 核心业务场景
面向县域居民开放共享储物柜,用于寄存笔记本电脑、VR 设备等大件物品,替代传统临时寄存点;同时提供高度自定义能力,各县可按需二次开发适配本地需求。
3. 开发初衷
开发团队以实战为导向,在落地便民产品的同时,提升物联网、全栈开发、硬件设计相关技术能力。
二、整体架构(Monorepo 单仓库多组件)
仓库采用单体仓库管理全部软硬件代码,分为五大核心模块:
模块 | 技术栈 | 功能说明 |
|---|---|---|
locker-backend(后端 API) | Laravel 11 + Filament + Sanctum + SQLite | 业务管理 API、后台管理面板、用户 / 储物柜 / 订单管理、MQTT 硬件通信服务 |
mobile-app(移动端) | React Native (Expo) + TypeScript | 居民用户 APP,实现物品借取、储物柜预约、状态查询,支持 iOS/Android 双端 |
hardware(硬件层) | Raspberry Pi + Modbus + KiCad | 储物柜主控硬件图纸、电路设计、树莓派客户端程序(locker-client),通过 Modbus 控制锁具 |
docs(文档) | Markdown | 系统架构、部署、硬件装配、API 开发规范全套文档 |
CI / 工具链 | Docker、Task、Cursor Rules | 容器化部署、自动化测试、代码规范校验脚本 |
系统完整数据流
IoT 硬件:树莓派(locker-client)通过 Modbus 驱动物理储物柜锁具
消息中间件:Mosquitto MQTT 服务,承载硬件与后端的双向通信,配套 HTTP 鉴权
业务 API:Laravel 后端统一管理用户、柜体、租借订单
用户端:React Native 手机 APP,面向普通市民操作
管理端:Filament Web 管理后台,供运营人员监控柜体、处理工单
三、技术栈明细
后端服务
框架:Laravel 11、Filament(后台面板)
鉴权:Laravel Sanctum
数据库:SQLite(轻量化部署)
IoT 通信:Mosquitto MQTT Broker
移动端
框架:React Native (Expo)
语言:TypeScript
硬件 & 通信
主控:Raspberry Pi
底层协议:Modbus(柜体锁控)、MQTT(云边通信)
电路设计:KiCad(硬件 PCB 图纸)
开发 & 部署工具
Docker Compose、Task(任务调度)、OpenAPI、Scramble(接口文档)
四、快速上手部署
前置依赖
Docker + Docker Compose(必选)
Task 任务运行器(可选,简化命令)
安装指引
完整部署步骤(后端、树莓派硬件客户端)见仓库内 docs/installation.md,支持一键容器化启动整套服务。
五、文档体系
仓库提供分层完整文档:
后端开发文档:API 规范、OpenAPI 接口文档、MQTT 硬件对接指南、测试与生产部署方案
移动端文档:Expo 项目结构、状态管理、跨平台编译、API 对接模式
架构文档:
docs/architecture.md包含组件交互图、数据流、软硬件边界、技术栈选型说明
六、开源价值
软硬件完全开源,城市可零成本搭建本地寄存基础设施
适配社区共享、智慧城市便民场景,支持旧工业柜体改造复用
无厂商锁定,可自由二次开发、定制本地化功能
七、开源协议
项目整体采用 MIT 开源许可证,可商用、修改、分发,仅需保留版权声明。
