Raspberry Pi, Prometheus 및 Grafana로 아파트 온도 및 습도 모니터링
9969 단어 grafanasmarthomediyprometheus
나는 Prometheus 및 Grafana 작업에 약간의 경험이 있으므로 이러한 도구를 내 솔루션에 통합하기로 결정했습니다. 예, 간단한 작업을 과도하게 엔지니어링하는 것처럼 들립니다. 아마도 훨씬 더 간단한 방법으로 동일한 결과를 얻을 수 있습니다 :). 하지만 저에게는 즐거운 주말 프로젝트였습니다.
이 게시물에서는 실내 온도 및 습도 모니터링을 위한 설정에 대해 설명합니다.
하드웨어 구성 요소
다음은 내 프로젝트에서 사용한 모든 구성 요소입니다.
라즈베리 파이에 센서 연결하기
Ground 핀을 Raspberry PI의 Ground에, Data Pin을 GPIO 14핀에, Vcc 핀을 3.3V 전원 공급 장치 핀에 연결했습니다.
센서 데이터 읽기
센서 데이터를 읽고 Prometheus에 제공하기 위해 저는 DHT11_Python 라이브러리를 선택했습니다. 이 라이브러리는 매우 불안정하고 때때로 유효한 결과를 반환하지 않으므로 그래프에 약간의 차이가 있을 수 있습니다.
또한 Prometheus에 대한 메트릭을 제공하기 위해 간단한 Flask API를 만들었습니다.
from flask import Flask
import dht11
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
instance = dht11.DHT11(pin=14)
app = Flask(__name__)
@app.route("/metrics")
def metrics():
dht11_data = ""
result = instance.read()
if result.is_valid():
dht11_data = f"""pihome_temperature {result.temperature}
pihome_humidity {result.humidity}"""
return f"{dht11_data}", 200, {'Content-Type': 'text/plain; charset=utf-8'}
if __name__ == "__main__":
app.run(host='0.0.0.0')
프로메테우스 구성
Flask API에서 메트릭을 스크랩하기 위해
prometheus.yml
에 구성을 추가했습니다.global:
scrape_interval: 30s
scrape_configs:
- job_name: 'pihome'
static_configs:
- targets: [pihome:5000]
Grafana 구성
그런 다음
/etc/grafana/provisioning
에서 데이터 소스 구성을 추가했습니다.apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090/
access: proxy
isDefault: true
Grafana 대시보드를 프로비저닝 폴더에 json 파일로 추가할 수도 있으므로 Grafana를 재배포할 때마다 새 대시보드를 생성할 필요가 없습니다.
모든 것을 함께 연결
모든 것을 이식 가능하고 쉽게 설치할 수 있도록 Flask API를 Docker 이미지에 압축하고
docker-compose.yaml
에서 모든 서비스를 구성했습니다.
version: '3'
services:
pihome:
image: pihome
build: .
restart: always
devices:
- "/dev/mem:/dev/mem"
privileged: true
ports:
- 5000:5000
prometheus:
image: prom/prometheus:v2.16.0
user: root
volumes:
- ./prometheus/:/etc/prometheus/
- /var/prometheus:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--storage.tsdb.retention.time=30d'
- '--web.console.libraries=/usr/share/prometheus/console_libraries'
- '--web.console.templates=/usr/share/prometheus/consoles'
ports:
- 9090:9090
depends_on:
- pihome
restart: always
grafana:
image: grafana/grafana:6.6.2
depends_on:
- prometheus
ports:
- 80:3000
volumes:
- ./grafana/:/etc/grafana
restart: always
결과
일부 기록 데이터를 수집하기 위해 얼마 동안 내 스택을 실행 상태로 두었고 대시보드는 다음과 같이 표시되었습니다.
힘내 프로젝트
Github에서 전체 구성 및 코드를 찾을 수 있습니다. https://github.com/pdambrauskas/pihome
Reference
이 문제에 관하여(Raspberry Pi, Prometheus 및 Grafana로 아파트 온도 및 습도 모니터링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/pdambrauskas/monitoring-apartment-temperature-humidity-with-raspberry-pi-prometheus-grafana-1i48텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)