100 lines
2.6 KiB
Plaintext
100 lines
2.6 KiB
Plaintext
@startuml
|
|
left to right direction
|
|
|
|
skinparam component {
|
|
BackgroundColor<<Informatique>> #FFE4B5
|
|
BackgroundColor<<Électronique>> #98FB98
|
|
BackgroundColor<<Matériaux>> #87CEEB
|
|
BorderColor #333
|
|
}
|
|
|
|
package "Infrastructure Globale" {
|
|
component "Caméra Raspberry Pi" <<Électronique>> as pi {
|
|
component "Module Caméra" as cam
|
|
component "Scripts Capture" as scripts
|
|
}
|
|
|
|
component "Serveur Central" <<Informatique>> as server {
|
|
component "Backend (Node.js/Express)" as backend
|
|
component "FFMPEG Processing" as ffmpeg
|
|
component "Base de Données" as db
|
|
}
|
|
|
|
component "Interface Web" <<Informatique>> as web {
|
|
component "Frontend (HTML/CSS/JS)" as front
|
|
component "Nginx Reverse Proxy" as nginx
|
|
}
|
|
|
|
component "Application Android" <<Informatique>> as android {
|
|
component "Kotlin API" as kotlin
|
|
component "Glide Image Processing" as glide
|
|
}
|
|
|
|
component "Système Énergétique" <<Électronique>> as energy {
|
|
component "Microcontrôleur STM32" as stm
|
|
component "Batterie LiPo" as battery
|
|
component "Panneau Solaire" as solar
|
|
}
|
|
|
|
component "Boîtier Mécanique" <<Matériaux>> as box {
|
|
component "Structure Étanche" as structure
|
|
component "Système Fixation" as mount
|
|
}
|
|
|
|
component "Infrastructure Virtualisée" <<Informatique>> as infra {
|
|
component "Proxmox VE" as proxmox
|
|
component "VM Ubuntu" as vm
|
|
component "Docker Containers" as docker
|
|
}
|
|
}
|
|
|
|
pi --> server : "Transfert images\n(HTTP/MQTT)"
|
|
server --> web : "API REST"
|
|
server --> android : "API REST"
|
|
energy --> pi : "Alimentation\n(Power Management)"
|
|
energy --> stm : "Contrôle énergie"
|
|
box --> pi : "Protection physique"
|
|
box --> energy : "Intégration"
|
|
infra --> server : "Hébergement"
|
|
infra --> web : "Hébergement"
|
|
cam --> scripts : "Capture RAW"
|
|
scripts --> backend : "Envoi images"
|
|
backend --> ffmpeg : "Conversion vidéo"
|
|
ffmpeg --> db : "Stockage"
|
|
stm --> battery : "Monitoring"
|
|
solar --> battery : "Recharge"
|
|
front --> nginx : "Requêtes"
|
|
nginx --> backend : "Proxy"
|
|
vm --> docker : "Orchestration"
|
|
structure --> mount : "Assemblage"
|
|
|
|
note top of pi
|
|
**Technologies Électronique**
|
|
- Altium Designer
|
|
- STM32 CubeIDE
|
|
- Protocoles I2C/SPI
|
|
end note
|
|
|
|
note right of server
|
|
**Stack Logicielle**
|
|
- Node.js + Express
|
|
- PostgreSQL
|
|
- FFMPEG
|
|
- CI/CD Gitea
|
|
end note
|
|
|
|
note left of energy
|
|
**Gestion Énergie**
|
|
- PCB Custom
|
|
- Capteurs température/hygro
|
|
- Algorithme économie d'énergie
|
|
end note
|
|
|
|
note bottom of box
|
|
**Caractéristiques Mécaniques**
|
|
- PLA résistant aux UV
|
|
- Indice IP67
|
|
- Dissipation thermique
|
|
end note
|
|
|
|
@enduml |