diff --git a/sensors/Readme.md b/sensors/Readme.md new file mode 100644 index 0000000000000000000000000000000000000000..cae2a5f4e217a541058d94a63e574d99c1043470 --- /dev/null +++ b/sensors/Readme.md @@ -0,0 +1,6 @@ +# Créer des nouveaux capteurs + + * Copier le dossier 'cpu_load' et renommer avec le nom du capteur voulu. + * Modifier le programme .py pour écrire les données du capteur dans influxdb + * Générer les requirements à la main ou avec 'pipreqs' + * Mettre à jour le Dockerfile \ No newline at end of file diff --git a/sensors/bme280/Dockerfile b/sensors/bme280/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..df7339c9c92ce50e86fb32e2658810cd2da9dadd --- /dev/null +++ b/sensors/bme280/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/bme280.py"] \ No newline at end of file diff --git a/sensors/bme280/bme280.py b/sensors/bme280/bme280.py new file mode 100644 index 0000000000000000000000000000000000000000..0b5d71ccb7301ed7cccdd0c2fbe5b319b42bcb38 --- /dev/null +++ b/sensors/bme280/bme280.py @@ -0,0 +1,37 @@ +import time +import os +import smbus2 +import bme280 +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) + +port = 1 +address = 0x76 +bus = smbus2.SMBus(port) +compensation_params = bme280.load_calibration_params(bus, address) + +while True: + data = bme280.sample(bus, address) + measurement = [ + { + 'measurement': 'temperature', + 'fields': { + 'value': data.temperature + }, + 'measurement': 'pressure', + 'fields': { + 'value': data.pressure + }, + 'measurement': 'humidity', + 'fields': { + 'value': data.humidity + } + } + ] + influx_client.write_points(measurement) + time.sleep(1) + diff --git a/sensors/bme280/requirements.txt b/sensors/bme280/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..0bdaf3baf864589ca4a7946df458c4ee37bdd0a4 --- /dev/null +++ b/sensors/bme280/requirements.txt @@ -0,0 +1,3 @@ +influxdb==5.2.1 +smbus2==0.2.3 +RPi.bme280==0.2.2