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:
|
services:
|
||||||
mqtt:
|
mqtt:
|
||||||
image: eclipse-mosquitto
|
image: eclipse-mosquitto
|
||||||
container_name: mqtt
|
container_name: mqtt
|
||||||
volumes:
|
volumes:
|
||||||
- ./mosquitto:/mosquitto
|
- ./agent/docker/mosquitto:/mosquitto
|
||||||
- ./mosquitto/data:/mosquitto/data
|
- ./agent/docker/mosquitto/data:/mosquitto/data
|
||||||
- ./mosquitto/log:/mosquitto/log
|
- ./agent/docker/mosquitto/log:/mosquitto/log
|
||||||
ports:
|
ports:
|
||||||
- 1883:1883
|
- 1883:1883
|
||||||
- 9001:9001
|
- 9001:9001
|
||||||
@@ -14,6 +14,41 @@ services:
|
|||||||
mqtt_network:
|
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:
|
postgres_db:
|
||||||
image: postgres:17
|
image: postgres:17
|
||||||
container_name: postgres_db
|
container_name: postgres_db
|
||||||
@@ -24,13 +59,12 @@ services:
|
|||||||
POSTGRES_DB: test_db
|
POSTGRES_DB: test_db
|
||||||
volumes:
|
volumes:
|
||||||
- postgres_data:/var/lib/postgresql/data
|
- 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:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
networks:
|
networks:
|
||||||
db_network:
|
db_network:
|
||||||
|
|
||||||
|
|
||||||
pgadmin:
|
pgadmin:
|
||||||
container_name: pgadmin4
|
container_name: pgadmin4
|
||||||
image: dpage/pgadmin4
|
image: dpage/pgadmin4
|
||||||
@@ -49,7 +83,7 @@ services:
|
|||||||
store:
|
store:
|
||||||
container_name: store
|
container_name: store
|
||||||
build:
|
build:
|
||||||
context: ../../
|
context: .
|
||||||
dockerfile: store/Dockerfile
|
dockerfile: store/Dockerfile
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres_db
|
- postgres_db
|
||||||
@@ -79,7 +113,7 @@ services:
|
|||||||
hub:
|
hub:
|
||||||
container_name: hub
|
container_name: hub
|
||||||
build:
|
build:
|
||||||
context: ../../
|
context: .
|
||||||
dockerfile: hub/Dockerfile
|
dockerfile: hub/Dockerfile
|
||||||
depends_on:
|
depends_on:
|
||||||
- mqtt
|
- mqtt
|
||||||
@@ -101,10 +135,11 @@ services:
|
|||||||
hub_store:
|
hub_store:
|
||||||
hub_redis:
|
hub_redis:
|
||||||
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
mqtt_network:
|
mqtt_network:
|
||||||
db_network:
|
db_network:
|
||||||
|
edge_hub:
|
||||||
|
hub:
|
||||||
hub_store:
|
hub_store:
|
||||||
hub_redis:
|
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