Read data from a CO2 monitor device "CO2-mini" via USB and monitor the data.
flowchart LR
C[CO2-mini]
subgraph "Local machine"
N[Node.js program]
subgraph "Docker"
G[Grafana]
I[InfluxDB]
end
end
N -- "Listen data (USB)" --> C
N -- "Send data (HTTP)" --> I
G -- "Visualize (HTTP)" --> I
-
Create
external
network.docker network create external
TODO: This network setting is for test in local environment.
-
Move to
monitor
directory. -
Create
myInfluxDBVolume
andmyGrafanaVolume
directory. -
Create
.env
file.DOCKER_INFLUXDB_INIT_USERNAME=<InfluxDB admin user name> DOCKER_INFLUXDB_INIT_PASSWORD=<InfluxDB admin password> DOCKER_INFLUXDB_INIT_ORG=<InfluxDB initial organization> DOCKER_INFLUXDB_INIT_BUCKET=<InfluxDB initial bucket> GF_SECURITY_ADMIN_PASSWORD=<Grafana admin password>
-
Run
docker compose --env-file=../.env up -d
. -
Open
localhost:8086
(InfluxDB) via browser. -
Generate API Token for the bucket.
-
Open
localhost:8080
(Grafana) via browser. -
Setup InfluxDB integration.
- Query languabe
- Flux
- HTTP
- URL: http://influxdb:8086
- Auth
- (None)
- InfluxDB Details
- Set the information
- Query languabe
-
Move to "sensor" directory.
-
Set environment variables.
$ENV:INFLUXDB_BASE_URL = "http://localhost:8086" $ENV:INFLUXDB_TOKEN = "<InfluxDB user token>" $ENV:INFLUXDB_ORG = "<InfluxDB organization>" $ENV:INFLUXDB_BUCKET = "<InfluxDB bucket>"
-
Run
npx tsc ./src
-
Run
node ./dist/main.js
-
Open
localhost:8080
(Grafana) via browser. -
Check the data.