Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d247b223c6 | |||
| bdd72a06c8 | |||
| 36f99e1ec0 | |||
| 80589824d1 | |||
| 30f81ec1ae | |||
| 1b6f47fa0d | |||
| b1e6ad7c94 | |||
| 1eddfd966b |
@@ -1,34 +0,0 @@
|
||||
name: "road_vision"
|
||||
services:
|
||||
mqtt:
|
||||
image: eclipse-mosquitto
|
||||
container_name: mqtt
|
||||
volumes:
|
||||
- ./mosquitto:/mosquitto
|
||||
- ./mosquitto/data:/mosquitto/data
|
||||
- ./mosquitto/log:/mosquitto/log
|
||||
ports:
|
||||
- 1883:1883
|
||||
- 9001:9001
|
||||
networks:
|
||||
mqtt_network:
|
||||
|
||||
|
||||
fake_agent:
|
||||
container_name: agent
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: agent/Dockerfile
|
||||
depends_on:
|
||||
- mqtt
|
||||
environment:
|
||||
MQTT_BROKER_HOST: "mqtt"
|
||||
MQTT_BROKER_PORT: 1883
|
||||
MQTT_TOPIC: "agent_data_topic"
|
||||
DELAY: 0.1
|
||||
networks:
|
||||
mqtt_network:
|
||||
|
||||
|
||||
networks:
|
||||
mqtt_network:
|
||||
@@ -0,0 +1,30 @@
|
||||
@startuml
|
||||
participant Agent as agent
|
||||
participant "MQTT Broker (raw\ntopic)" as mqtt1
|
||||
participant "Edge Service" as edge
|
||||
participant "MQTT\nBroker (processed\ntopic)" as mqtt2
|
||||
participant "Hub Service" as hub
|
||||
participant "Redis" as redis
|
||||
participant "Store API" as store
|
||||
participant "PostgreSQL" as db
|
||||
participant "MapView Client" as mapview
|
||||
|
||||
agent -> mqtt1 : Publish raw\ntelemetry
|
||||
mqtt1 -> edge : Deliver raw\nmessage
|
||||
edge -> edge : Validate\nAgentData
|
||||
edge -> edge : Process\ntelemetry
|
||||
edge -> mqtt2 : Publish\nprocessed data
|
||||
mqtt2 -> hub : Deliver processed\nmessage
|
||||
hub -> hub : Validate\nProcessedAgentData
|
||||
hub -> redis : LPUSH to buffer
|
||||
hub -> redis : LPOP batch item
|
||||
redis -> hub : Return item
|
||||
hub -> store : POST batch
|
||||
store -> db : INSERT records
|
||||
db --> store : Return created\nrecords
|
||||
store -> mapview : WebSocket push
|
||||
mapview -> mapview : Sort by timestamp
|
||||
mapview -> mapview : Update vehicle\nmarker
|
||||
mapview -> mapview : Add pothole/bump\nmarker
|
||||
store --> hub : Success response
|
||||
@enduml
|
||||
@@ -0,0 +1,23 @@
|
||||
@startuml
|
||||
rectangle IoT-Systems {
|
||||
usecase "Collect telemetry (accelerometer + GPS)" as uc1
|
||||
usecase "Send telemetry" as uc2
|
||||
usecase "Process telemetry" as uc3
|
||||
usecase "Determine road condition (pothole / bump /\nnormal)" as uc4
|
||||
usecase "View road defect marks" as uc5
|
||||
usecase "View route on map" as uc6
|
||||
}
|
||||
|
||||
rectangle "The user is the card operator" as uc10
|
||||
rectangle "Sensor Agent\n(Device/STM32/Emulator)" as uc11
|
||||
|
||||
uc11 - uc1
|
||||
uc11 - uc2
|
||||
|
||||
uc10 - uc5
|
||||
uc10 - uc6
|
||||
|
||||
uc2 -.|> uc3 : <<include>>
|
||||
uc3 -.|> uc4 : <<include>>
|
||||
|
||||
@enduml
|
||||
@@ -1,12 +1,12 @@
|
||||
name: "road_vision__hub"
|
||||
name: "road_vision"
|
||||
services:
|
||||
mqtt:
|
||||
image: eclipse-mosquitto
|
||||
container_name: mqtt
|
||||
volumes:
|
||||
- ./mosquitto:/mosquitto
|
||||
- ./mosquitto/data:/mosquitto/data
|
||||
- ./mosquitto/log:/mosquitto/log
|
||||
- ./agent/docker/mosquitto:/mosquitto
|
||||
- ./agent/docker/mosquitto/data:/mosquitto/data
|
||||
- ./agent/docker/mosquitto/log:/mosquitto/log
|
||||
ports:
|
||||
- 1883:1883
|
||||
- 9001:9001
|
||||
@@ -14,6 +14,41 @@ services:
|
||||
mqtt_network:
|
||||
|
||||
|
||||
fake_agent:
|
||||
container_name: agent
|
||||
build:
|
||||
context: .
|
||||
dockerfile: agent/Dockerfile
|
||||
depends_on:
|
||||
- mqtt
|
||||
environment:
|
||||
MQTT_BROKER_HOST: "mqtt"
|
||||
MQTT_BROKER_PORT: 1883
|
||||
MQTT_TOPIC: "agent_data_topic"
|
||||
DELAY: 0.1
|
||||
networks:
|
||||
mqtt_network:
|
||||
|
||||
edge:
|
||||
container_name: edge
|
||||
build:
|
||||
context: .
|
||||
dockerfile: edge/Dockerfile
|
||||
depends_on:
|
||||
- mqtt
|
||||
environment:
|
||||
MQTT_BROKER_HOST: "mqtt"
|
||||
MQTT_BROKER_PORT: 1883
|
||||
MQTT_TOPIC: " "
|
||||
HUB_HOST: "store"
|
||||
HUB_PORT: 8000
|
||||
HUB_MQTT_BROKER_HOST: "mqtt"
|
||||
HUB_MQTT_BROKER_PORT: 1883
|
||||
HUB_MQTT_TOPIC: "processed_data_topic"
|
||||
networks:
|
||||
mqtt_network:
|
||||
edge_hub:
|
||||
|
||||
postgres_db:
|
||||
image: postgres:17
|
||||
container_name: postgres_db
|
||||
@@ -24,13 +59,12 @@ services:
|
||||
POSTGRES_DB: test_db
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
- ./db/structure.sql:/docker-entrypoint-initdb.d/structure.sql
|
||||
- ./store/docker/db/structure.sql:/docker-entrypoint-initdb.d/structure.sql
|
||||
ports:
|
||||
- "5432:5432"
|
||||
networks:
|
||||
db_network:
|
||||
|
||||
|
||||
pgadmin:
|
||||
container_name: pgadmin4
|
||||
image: dpage/pgadmin4
|
||||
@@ -49,7 +83,7 @@ services:
|
||||
store:
|
||||
container_name: store
|
||||
build:
|
||||
context: ../../
|
||||
context: .
|
||||
dockerfile: store/Dockerfile
|
||||
depends_on:
|
||||
- postgres_db
|
||||
@@ -79,7 +113,7 @@ services:
|
||||
hub:
|
||||
container_name: hub
|
||||
build:
|
||||
context: ../../
|
||||
context: .
|
||||
dockerfile: hub/Dockerfile
|
||||
depends_on:
|
||||
- mqtt
|
||||
@@ -101,10 +135,11 @@ services:
|
||||
hub_store:
|
||||
hub_redis:
|
||||
|
||||
|
||||
networks:
|
||||
mqtt_network:
|
||||
db_network:
|
||||
edge_hub:
|
||||
hub:
|
||||
hub_store:
|
||||
hub_redis:
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
version: "3.9"
|
||||
# name: "road_vision"
|
||||
services:
|
||||
mqtt:
|
||||
image: eclipse-mosquitto
|
||||
container_name: mqtt
|
||||
volumes:
|
||||
- ./mosquitto:/mosquitto
|
||||
- ./mosquitto/data:/mosquitto/data
|
||||
- ./mosquitto/log:/mosquitto/log
|
||||
ports:
|
||||
- 1883:1883
|
||||
- 19001:9001
|
||||
networks:
|
||||
mqtt_network:
|
||||
|
||||
|
||||
edge:
|
||||
container_name: edge
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: edge/Dockerfile
|
||||
depends_on:
|
||||
- mqtt
|
||||
environment:
|
||||
MQTT_BROKER_HOST: "mqtt"
|
||||
MQTT_BROKER_PORT: 1883
|
||||
MQTT_TOPIC: " "
|
||||
HUB_HOST: "store"
|
||||
HUB_PORT: 8000
|
||||
HUB_MQTT_BROKER_HOST: "mqtt"
|
||||
HUB_MQTT_BROKER_PORT: 1883
|
||||
HUB_MQTT_TOPIC: "processed_data_topic"
|
||||
networks:
|
||||
mqtt_network:
|
||||
edge_hub:
|
||||
|
||||
|
||||
networks:
|
||||
mqtt_network:
|
||||
db_network:
|
||||
edge_hub:
|
||||
hub:
|
||||
hub_store:
|
||||
hub_redis:
|
||||
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
pgadmin-data:
|
||||
@@ -1,61 +0,0 @@
|
||||
name: "road_vision__database"
|
||||
services:
|
||||
postgres_db:
|
||||
image: postgres:17
|
||||
container_name: postgres_db
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_USER: user
|
||||
POSTGRES_PASSWORD: pass
|
||||
POSTGRES_DB: test_db
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
- ./db/structure.sql:/docker-entrypoint-initdb.d/structure.sql
|
||||
ports:
|
||||
- "5432:5432"
|
||||
networks:
|
||||
db_network:
|
||||
|
||||
|
||||
pgadmin:
|
||||
container_name: pgadmin4
|
||||
image: dpage/pgadmin4
|
||||
restart: always
|
||||
environment:
|
||||
PGADMIN_DEFAULT_EMAIL: admin@admin.com
|
||||
PGADMIN_DEFAULT_PASSWORD: root
|
||||
volumes:
|
||||
- pgadmin-data:/var/lib/pgadmin
|
||||
ports:
|
||||
- "5050:80"
|
||||
networks:
|
||||
db_network:
|
||||
|
||||
|
||||
store:
|
||||
container_name: store
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: store/Dockerfile
|
||||
depends_on:
|
||||
- postgres_db
|
||||
restart: always
|
||||
environment:
|
||||
POSTGRES_USER: user
|
||||
POSTGRES_PASSWORD: pass
|
||||
POSTGRES_DB: test_db
|
||||
POSTGRES_HOST: postgres_db
|
||||
POSTGRES_PORT: 5432
|
||||
ports:
|
||||
- "8000:8000"
|
||||
networks:
|
||||
db_network:
|
||||
|
||||
|
||||
networks:
|
||||
db_network:
|
||||
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
pgadmin-data:
|
||||
Reference in New Issue
Block a user