Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana

Na het verwerven van een Raspberry Pi en het doorlezen van Eben Upton's Raspberry Pi User Guide – met name de GPIO-secties – startte ik mijn eerste project: een thuistemperatuurmonitoringssysteem. Dit bericht beschrijft de eerste iteratie met een Raspberry Pi, een Adafruit MCP9808 breakout, een oude Mac Mini, InfluxDB, Grafana, Python en de runit-processupervisor.

Sensor-hardware

Voor de temperatuursensor koos ik de MCP9808 breakout board van Adafruit. Mijn keuze werd gedreven door:

  • Native I²C-interface – de GPIO-pinnen 3 (SDA) en 5 (SCL) van de Pi ondersteunen de vereiste bus.
  • Wijd spanningsbereik (2,7 V–5,5 V) – compatibel met de 3,3 V en 5 V rails van de Pi.
  • Kosteneffectief – onder $5 USD, ideaal voor een beginnersproject.

Circuitmontage

De MCP9808-board komt grotendeels gemonteerd; de enige soldeeractie is het bevestigen van de 8-pins header. Ik gebruikte een GPIO-breakout en een breadboard om de Pi met de sensor te verbinden, wat de bedrading vereenvoudigt en toekomstige aanpassingen makkelijker maakt. De essentiële verbindingen zijn:

  • Voeding (VDD)
  • Massa (GND)
  • Data (SDA)
  • Klok (SCL)

De overige pinnen – gebruikt voor adresselectie en alerting – bleven onverbonden voor deze single-device setup.

Datastore

Data over tijd vastleggen stelt trendanalyse en correlatie met externe gebeurtenissen in. Ik koos InfluxDB om de tijdreeks-focus en intuïtieve querytaal. De database draait op een vroege 2009 Mac Mini (OS X 10.10) onder Homebrew:

brew install influxdb

De InfluxDB-database configureren

Na installatie maakte ik een database en een speciale gebruiker via de webconsole (standaardpoort 8083). Ik stelde ook een database genaamd mcp9808_test in om de sensorwaarden op te slaan.

Raspberry Pi-configuratie

I²C inschakelen

De Pi laadt I²C-modules niet standaard. Voeg deze regels toe aan /etc/modules en herstart:

i2c-bcm2708
i2c-dev

Controleer of de sensor gedetecteerd wordt met:

sudo i2cdetect 1

Sensorsoftware

Ik gebruikte de MCP9808 Python-wrapper van Adafruit, die ook de I²C-abstractielaag meeneemt.

Build-afhankelijkheden installeren

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

De Adafruit MCP9808 Wrapper installeren

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

Lezen, rapporteren, herhalen

Hieronder is het poll.py-script dat elke minuut de temperatuur uitleest en de waarde naar InfluxDB schrijft:

#!/usr/bin/python
import time
import Adafruit_MCP9808.MCP9808 as MCP9808
from influxdb import InfluxDBClient
# Payload voor InfluxDB voorbereiden
def temperature_data(degrees_c):
    return [
        {
            'points': [[c_to_f(degrees_c)]],
            'name': 'Temperature Readings',
            'columns': ['degrees_f']
        }
    ]
# Celsius naar Fahrenheit converteren
def c_to_f(c):
    return c * 9.0 / 5.0 + 32.0
# Sensor initialiseren
sensor = MCP9808.MCP9808()
sensor.begin()
# Capture-interval in seconden
capture_interval = 60.0
# Verbinden met InfluxDB (vervang placeholders met echte waarden)
influxClient = InfluxDBClient('', 8086, 'mcp9808', '', 'mcp9808_test')
# Continue lus
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)

Voer het script uit als root om toegang te krijgen tot de GPIO-pinnen:

sudo python /path/to/poll.py

Processupervisie met runit

Om ervoor te zorgen dat poll.py blijft draaien na herstarts en stroomstoringen, configureerde ik runit als processupervisor. Gedetailleerde setup-stappen zijn te vinden in de oorspronkelijke projectdocumentatie.

Samenvatting

Met de sensor, database en monitoring-stack op zijn plaats, heb je nu een betrouwbare, laagkost thuistemperatuurlogger. Gebruik Grafana om de data te visualiseren, alerts in te stellen en actievolle inzichten in je omgeving te krijgen.

Productieproces

  1. Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
  2. Nauwkeurige Raspberry Pi Temperatuurprofielering Met Python, SQLite En LabVIEW
  3. Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
  4. Raspberry Pi Temperatuur & Vochtigheid Netwerk Monitor – DIY Setup Gids
  5. Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
  6. Professionele temperatuurbewaking met Raspberry Pi en DS18B20
  7. Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
  8. TMP006 Infrarood temperatuursensor met Raspberry Pi: Python bibliotheek & installatiegids
  9. Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
  10. Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
  11. Accurate temperatuurbewaking in een serverkast met Raspberry Pi