Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Raspberry Pi Heimtemperaturmonitor mit MCP9808, InfluxDB & Grafana bauen

Nach dem Erwerb eines Raspberry Pi und der Lektüre von Eben Uptons Raspberry Pi User Guide – besonders der GPIO-Abschnitte – startete ich mein erstes Projekt: ein Heimtemperatur-Überwachungssystem. Dieser Beitrag beschreibt die initiale Iteration mit einem Raspberry Pi, einem Adafruit MCP9808 Breakout, einem alten Mac Mini, InfluxDB, Grafana, Python und dem runit Process Supervisor.

Sensor-Hardware

Für den Temperatursensor wählte ich das MCP9808 Breakout Board von Adafruit. Meine Wahl wurde getrieben durch:

Schaltungsaufbau

Das MCP9808 Board kommt größtenteils vormontiert; das einzige Löten ist das Anbringen des 8-Pin-Headers. Ich nutzte einen GPIO-Breakout und ein Breadboard, um den Pi mit dem Sensor zu verbinden, was die Verdrahtung vereinfacht und zukünftige Anpassungen erleichtert. Die essenziellen Verbindungen sind:

Die verbleibenden Pins – für Adressauswahl und Alerting – blieben bei diesem Single-Device-Setup unverbunden.

Datenspeicher

Das Erfassen von Daten über Zeit ermöglicht Trendanalyse und Korrelation mit externen Ereignissen. Ich wählte InfluxDB für seinen Time-Series-Fokus und die intuitive Abfragesprache. Die Datenbank läuft auf einem frühen 2009 Mac Mini (OS X 10.10) unter Homebrew:

brew install influxdb

InfluxDB-Datenbank konfigurieren

Nach der Installation erstellte ich eine Datenbank und einen dedizierten Benutzer über die Webkonsole (Standardport 8083). Ich richtete auch eine Datenbank namens mcp9808_test ein, um die Sensormesswerte zu speichern.

Raspberry Pi Konfiguration

I²C aktivieren

Der Pi lädt I²C-Module nicht standardmäßig. Fügen Sie diese Zeilen zu /etc/modules hinzu und starten Sie neu:

i2c-bcm2708
i2c-dev

Prüfen Sie, ob der Sensor erkannt wird mit:

sudo i2cdetect 1

Sensor-Software

Ich nutzte Adasfruit’s MCP9808 Python Wrapper, der auch die I²C-Abstraktionsschicht einbindet.

Build-Abhängigkeiten installieren

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus

Adafruit MCP9808 Wrapper installieren

cd ~/Downloads
git clone https://github.com/adafruit/Adafruit_Python_MCP9808
cd Adafruit_Python_MCP9808
sudo python setup.py install

Auslesen, Melden, Wiederholen

Unten ist das poll.py Skript, das jede Minute die Temperatur ausliest und den Wert in InfluxDB schreibt:

#!/usr/bin/python
import time
import Adafruit_MCP9808.MCP9808 as MCP9808
from influxdb import InfluxDBClient
# Payload für InfluxDB vorbereiten
def temperature_data(degrees_c):
    return [{
        'points': [[c_to_f(degrees_c)]],
        'name': 'Temperature Readings',
        'columns': ['degrees_f']
    }]
# Celsius in Fahrenheit umrechnen
def c_to_f(c):
    return c * 9.0 / 5.0 + 32.0
# Sensor initialisieren
sensor = MCP9808.MCP9808()
sensor.begin()
# Erfassungsintervall in Sekunden
capture_interval = 60.0
# Mit InfluxDB verbinden (Platzhalter durch echte Werte ersetzen)
influxClient = InfluxDBClient('', 8086, 'mcp9808', '', 'mcp9808_test')
# Endlosschleife
while True:
    temp_c = sensor.readTempC()
    print('Temperature {0:0.3} F'.format(c_to_f(temp_c)))
    influxClient.write_points(temperature_data(temp_c))
    time.sleep(capture_interval)

Führen Sie das Skript als root aus, um auf GPIO-Pins zuzugreifen:

sudo python /path/to/poll.py

Prozessüberwachung mit runit

Um sicherzustellen, dass poll.py über Neustarts und Stromzyklen hinweg am Leben bleibt, konfigurierte ich runit als Process Supervisor. Detaillierte Setup-Schritte finden sich in der ursprünglichen Projektdokumentation.

Zusammenfassung

Mit Sensor, Datenbank und Monitoring-Stack an Ort und Stelle verfügen Sie nun über einen zuverlässigen, kostengünstigen Heimtemperatur-Logger. Nutzen Sie Grafana zur Visualisierung der Daten, zum Setzen von Alarmen und zur Gewinnung actionabler Einblicke in Ihre Umgebung.

Herstellungsprozess

  1. Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
  2. Präzises Raspberry Pi Temperaturprofiling mit Python, SQLite und LabVIEW
  3. Mehrere DS18B20 1-Wire Sensoren an Raspberry Pi anschließen für präzises Temperaturmonitoring
  4. Raspberry Pi Temperatur- & Feuchtigkeits-Netzwerkmonitor – DIY Setup Guide
  5. Temperatur mit DS18B20 am Raspberry Pi 2 auslesen
  6. Professionelle Temperaturüberwachung mit Raspberry Pi und DS18B20
  7. Temperaturmessung mit Maxim 1-Wire Sensoren und DS2482 I2C-Bridge am Raspberry Pi
  8. TMP006 Infrarot-Temperatursensor mit Raspberry Pi: Python Library & Setup Guide
  9. Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
  10. Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet