System Architecture
graph TD
SENSOR["Light Sensor (ADC)"]
DHT22["DHT22 Sensor(can be any sensor you add)"]
LIGHT["light_sensor_service.c"]
TEMP["dht22_service.c"]
CAMERA["camera_service.c
(Zero-copy JPEG)"]
CAM_HAL["camera_hal.c"]
BUS["Message Bus (msg_bus)"]
UPLOADER["data_uploader_service.c"]
UART["UART Service"]
BLE["BLE Service"]
CACHE["Cache System
(Binary Ring Buffer)"]
ENCODER["json_encoder.c"]
HTTP["http_post_hal.c"]
CLOUD["Cloud Server"]
MOBILE["nRF Connect / App"]
PC["PC Terminal"]
%% Sensor flow
SENSOR --> LIGHT
DHT22 --> TEMP
LIGHT --> BUS
TEMP --> BUS
CAMERA --> BUS
CAM_HAL --> CAMERA
%% Msg bus distribution
BUS --> UPLOADER
BUS --> UART
BUS --> BLE
%% Upload path
UPLOADER --> ENCODER
ENCODER --> HTTP
HTTP --> CLOUD
%% Fallback & edge options
UPLOADER -->|on fail| CACHE
CACHE -->|retry| UPLOADER
BLE --> MOBILE
UART --> PC