亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

树莓派 + MCP9808 + InfluxDB + Grafana:家庭温度监测系统

入手树莓派后研读 Eben Upton 的《Raspberry Pi User Guide》(尤其是 GPIO 章节),我开启了首个项目:家庭温度监测系统。本文详述首个迭代版本,使用树莓派、Adafruit MCP9808 模块、旧款 Mac Mini、InfluxDB、Grafana、Python 和 runit 进程监管。

传感器硬件

温度传感器选用 Adafruit MCP9808 模块,理由如下:

电路组装

MCP9808 模块基本组装完毕,仅需焊接 8Pin 排针。我用 GPIO 扩展板和面包板连接树莓派与传感器,简化接线并便于后续调整。核心连接:

其余引脚(地址选择和报警)在单设备配置下悬空。

数据存储

时序数据采集便于趋势分析和关联外部事件。我选用 InfluxDB,因其专注时序数据且查询语言直观。数据库运行在 2009 年初款 Mac Mini (OS X 10.10) 上,通过 Homebrew 安装:

brew install influxdb

配置 InfluxDB 数据库

安装后,通过 Web 控制台 (默认端口 8083) 创建数据库和专用用户。同时建立名为 mcp9808_test 的数据库存储传感器读数。

树莓派配置

启用 I²C

树莓派默认不加载 I²C 模块。在 /etc/modules 添加以下两行并重启:

i2c-bcm2708
i2c-dev

用以下命令验证传感器检测:

sudo i2cdetect 1

传感器软件

我利用 Adafruit 的 MCP9808 Python 封装,它同时引入 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)

以 root 运行脚本以访问 GPIO:

sudo python /path/to/poll.py

用 runit 进行进程监管

为确保 poll.py 在重启和断电后持续运行,我配置 runit 作为进程监管器。详细设置步骤见原始项目文档。

总结

传感器、数据库、监控栈就绪,你现在拥有一个可靠、低成本的家庭温度记录仪。用 Grafana 可视化数据、设置告警、获取环境洞察。

制造工艺

  1. 树莓派+$5 I²C传感器打造温度记录仪
  2. 树莓派温度画像:Python+SQLite+LabVIEW实战
  3. 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
  4. 树莓派温湿度网络监测站DIY全指南
  5. 树莓派2上使用DS18B20读取温度完整指南
  6. 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
  7. 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
  8. 树莓派配合 TMP006 红外温度传感器:Python 库与安装指南
  9. 树莓派与 Python 构建远程温度传感器:分步实战指南
  10. 树莓派自制气象站:每日邮件推送温湿雨数据
  11. 树莓派精准监测机柜温度:DS18B20 多点部署实战
  12. 树莓派 I2C 接口 BMP085:高精度温度与气压读取