산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

MCP9808, InfluxDB, Grafana로 라즈베리 파이 홈 온도 모니터 구축하기

라즈베리 파이를 구입하고 에벤 업튼의 라즈베리 파이 사용자 가이드(특히 GPIO 섹션)를 검토한 후, 첫 프로젝트로 홈 온도 모니터링 시스템에 착수했습니다. 이 글은 라즈베리 파이, Adafruit MCP9808 브레이크아웃, 구형 맥 미니, InfluxDB, Grafana, 파이썬, runit 프로세스 슈퍼바이저를 사용한 초기 구현을 상세히 다룹니다.

센서 하드웨어

온도 센서로 Adafruit MCP9808 브레이크아웃 보드를 선택했습니다. 선택 이유:

회로 조립

MCP9808 보드는 대부분 조립된 상태로 도착하며, 필요한 납땜은 8핀 헤더 부착뿐입니다. GPIO 브레이크아웃과 브레드보드로 파이와 센서를 연결해 배선을 단순화하고 향후 조정 용이하게 했습니다. 필수 연결:

주소 선택과 알림용 남은 핀들은 단일 디바이스 설정에서 미연결로 두었습니다.

데이터 저장소

시간 경과에 따른 데이터 수집은 추세 분석과 외부 이벤트 상관관계 파악을 가능케 합니다. 시계열 특화와 직관적 쿼리 언어로 InfluxDB를 선택했습니다. 데이터베이스는 2009년 초 맥 미니(OS X 10.10)에서 Homebrew로 실행:

brew install influxdb

InfluxDB 데이터베이스 구성

설치 후 웹 콘솔(기본 포트 8083)로 데이터베이스와 전용 사용자 생성. 센서 판독값 저장을 위해 mcp9808_test 데이터베이스도 설정했습니다.

라즈베리 파이 설정

I²C 활성화

파이는 기본적으로 I²C 모듈을 로드하지 않습니다. /etc/modules에 다음 줄 추가 후 재부팅:

i2c-bcm2708
i2c-dev

센서 감지 확인:

sudo i2cdetect 1

센서 소프트웨어

Adafruit의 MCP9808 파이썬 래퍼를 활용했는데, I²C 추상화 레이어도 함께 가져옵니다.

빌드 의존성 설치

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

Adafruit MCP9808 래퍼 설치

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

읽기, 보고, 반복

아래 poll.py 스크립트는 매 분마다 온도를 읽고 InfluxDB에 기록합니다:

#!/usr/bin/python
import time
import Adafruit_MCP9808.MCP9808 as MCP9808
from influxdb import InfluxDBClient

# InfluxDB 페이로드 준비
def temperature_data(degrees_c):
    return [{
        'points': [[c_to_f(degrees_c)]],
        'name': 'Temperature Readings',
        'columns': ['degrees_f']
    }]

# 섭씨를 화씨로 변환
def c_to_f(c):
    return c * 9.0 / 5.0 + 32.0

# 센서 초기화
sensor = MCP9808.MCP9808()
sensor.begin()

# 캡처 간격(초)
capture_interval = 60.0

# InfluxDB 연결 (플레이스홀더를 실제 값으로 교체)
influxClient = InfluxDBClient('', 8086, 'mcp9808', '', 'mcp9808_test')

# 연속 루프
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)

GPIO 핀 접근을 위해 root로 실행:

sudo python /path/to/poll.py

runit으로 프로세스 감독

poll.py가 재부팅과 정전에도 살아있도록 runit을 프로세스 슈퍼바이저로 구성했습니다. 자세한 설정 단계는 원본 프로젝트 문서에 있습니다.

요약

센서, 데이터베이스, 모니터링 스택이 갖춰져 이제 신뢰할 수 있는 저비용 홈 온도 로거를 보유하게 됐습니다. Grafana로 데이터 시각화, 알림 설정, 환경에 대한 실행 가능한 통찰을 얻으세요.

제조공정

  1. 5달러 I2C 센서로 라즈베리 파이 온도 로거 만들기
  2. 파이썬, SQLite, LabVIEW로 라즈베리 파이 온도 프로파일링 정밀 구현
  3. 라즈베리 파이 다중 DS18B20 1-와이어 센서 연결으로 정확한 온도 모니터링
  4. 라즈베리 파이 온습도 네트워크 모니터 DIY 구축 가이드
  5. 라즈베리 파이 2에서 DS18B20으로 온도 읽기
  6. 라즈베리 파이와 DS18B20을 이용한 전문적인 온도 모니터링
  7. 라즈베리 파이에서 Maxim 1-Wire 센서와 DS2482 I2C 브리지로 온도 측정하기
  8. 라즈베리 파이와 TMP006 적외선 온도 센서: 파이썬 라이브러리 및 설정 가이드
  9. 라즈베리 파이와 파이썬으로 원격 온도 센서 만들기 – 단계별 가이드
  10. 라즈베리 파이 기상 관측소 만들기: 매일 이메일로 날씨 데이터 전송