diff --git a/docker-compose.yml b/docker-compose.yml index eb7dc0226388799e682940ad311585f1c4a590d9..1284f27b312cca56a66cabc845340534b745f2bd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -33,3 +33,13 @@ services: depends_on: - influxdb - grafana + ads1115: + build: ./sensors/ads1115 + devices: + - "/dev/i2c-1" + restart: always + environment: + - INFLUX_HOST=influxdb + depends_on: + - influxdb + - grafana diff --git a/sensors/ads1115/Dockerfile b/sensors/ads1115/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..76627d6fc7fc2b50c926aabb847211531430c194 --- /dev/null +++ b/sensors/ads1115/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3 + +RUN mkdir -p /usr/src/app +COPY *.py /usr/src/app +COPY requirements.txt /usr/src/app +WORKDIR /usr/src/app + +RUN python3 -m pip install -r requirements.txt + +CMD ["python3", "/usr/src/app/ads1115_influx.py"] \ No newline at end of file diff --git a/sensors/ads1115/ads1115_influx.py b/sensors/ads1115/ads1115_influx.py new file mode 100644 index 0000000000000000000000000000000000000000..46ad5a24aa698201b09b8f8ed00232f00e01a684 --- /dev/null +++ b/sensors/ads1115/ads1115_influx.py @@ -0,0 +1,30 @@ +import time +import os +import ADS1115 as ads1115_lib +from influxdb import InfluxDBClient + +influx_host = os.getenv('INFLUX_HOST', 'localhost') +influx_dbname = os.getenv('INFLUX_DBNAME', 'multi-sense') +influx_client = InfluxDBClient(host=influx_host, database=influx_dbname) +influx_client.create_database(influx_dbname) + +adc = ads1115_lib.ADS1115() + +# Add timestamp to measurement +# Accumulate measurement to write multiples points + +while True: + measurement = [ + { + 'measurement': 'ads1115', + 'fields': { + 'ain0': adc.readADCSingleEnded(), + 'ain1': adc.readADCSingleEnded(1), + 'ain2': adc.readADCSingleEnded(channel=2, sps=16), + 'ain3': adc.readADCSingleEnded(channel=3, pga=1024, sps=16) + } + } + ] + influx_client.write_points(measurement) + time.sleep(1) + diff --git a/sensors/ads1115/requirements.txt b/sensors/ads1115/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..546261c1a6ed0f758dbc00f00ed0f436a63b79d2 --- /dev/null +++ b/sensors/ads1115/requirements.txt @@ -0,0 +1,2 @@ +influxdb==5.2.1 +ADS1115==0.2.1 diff --git a/sensors/cpu_load/Dockerfile b/sensors/cpu_load/Dockerfile index 7a9e5cd6fbac0f7fcd7950a708f091294cebc395..983cc1171477e9f000eda85f31c51238198a4817 100644 --- a/sensors/cpu_load/Dockerfile +++ b/sensors/cpu_load/Dockerfile @@ -1,7 +1,7 @@ FROM python:3 RUN mkdir -p /usr/src/app -COPY cpu_load.py /usr/src/app +COPY *.py /usr/src/app COPY requirements.txt /usr/src/app WORKDIR /usr/src/app