个人博客

在zabbix上配置 树莓派 DHT22

27 12月
作者:西洪室|分类:技术

    一般的温湿度传感器有dht11和dht22,dht11比较便宜,dht22比dht11贵好几倍,自然测量的准确度肯定是dht22高一些。追求更高精准度的可以使用SHT1x。

一、DHT22介绍

【参数】

  • 温度

    • 分辨率:0.1°C

    • 精度:±0.5℃

    • 检测范围:-40°C ~ 80°C

  • 湿度

    • 分辨率:0.1%RH

    • 精度:±2%RH (25°C)

    • 检测范围:0%RH ~ 99.9%RH

  • 工作电压 :3.3V ~ 5.5 V

  • 推荐存储环境:

    • 温度:10°C ~40°C

    • 湿度:60%RH以下

【应用】

  • 气象站、湿度调节器和测试及检测设备等

【接口说明】

下面以接入MCU为例:

  • VCC:接3.3V ~ 5.5V

  • GND:接GND

  • DOUT:接MCU.IO

一般购买下面这种带有上拉电阻的,不然就得自己添加电阻

image.png

二、硬件连接

接线很简单:

Vcc接树莓派3.3v即1号针脚,Gnd接树莓派gnd,Data随便接一个GPIO脚,我接的是GPIO4。

image.png

                     

三、软件安装

(1)安装Adafruit提供的python驱动

我的存放的目录在/opt/adafruit/:

sudo apt-get update
sudo apt-get install build-essential python-dev
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install

如果提示ImportError: No module named setuptools,需要安装pip:

sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py


查看版本:

#pip list

image.png

如果不出错的话就能安装好了。

image.png

验证一下安装结果:

cd Adafruit_Python_DTH
cd examples
sudo python AdafruitDHT.py 22 4

上面的22是指传感器类型,dht11写11,dht22写22; 至于4 是我所连接的GPIO接口号,大家根据自己的连接填写

image.png

配置python-eggs缓存目录:

mkdir  /tmp/python-eggs/

配置python-eggs全局变量:

sudo vim /etc/profile

在末尾添加一行

export PYTHON_EGG_CACHE=/tmp/python-eggs

使变量生效

sudo source 
/etc/profile


(2)安装zabbix

sudo apt-get install zabbix-agent

修改zabbix配置

sudo vim /etc/zabbix/zabbix_agentd.conf

主要是下面四项:

  Server=x.x.x.x
  HostnameItem=system.hostname
  AllowRoot=1 #开启root权限
  Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf

创建温度脚本配置文件:

sudo vim /etc/zabbix/zabbix_agentd.conf.d/room_status.conf
UserParameter=room.status[*],/etc/zabbix/scripts/room_status.sh $1

创建温度脚本文件:

sudo vim /etc/zabbix/scripts/room_status.sh
#!/bin/bash
dir='/opt/adafruit/Adafruit_Python_DHT/examples'
project=$1
case ${project} in
   wendu)
           wendu=`sudo -u root python ${dir}/AdafruitDHT.py 22 4 |awk -F"=" '{print $2}'|awk -F"*" '{print $1}'`
           printf "%2.2f" $wendu
     ;;
   shidu)
           shidu=`sudo -u root python ${dir}/AdafruitDHT.py 22 4 |awk -F"=" '{print $3}'|awk -F"%" '{print $1}'`
           printf "%2.2f" $shidu
     ;;
esac

给脚本目录授权:

sudo chmod 775 -R /etc/zabbix/scripts
sudo chown zabbix.zabbix -R /etc/zabbix/scripts
sudo chmod 775 -R /opt/adafruit
sudo chown zabbix.zabbix -R /opt/adafruit

给zabbix用户开启系统root权限

sudo visudo
zabbix  ALL=(ALL) NOPASSWD: ALL #增加zabbix的root权限并配置不需要密码

ctrl+o写入文件,注意修改文件名,完成后ctrl+x退出

在zabbix服务器添加温度和湿度的监控项:

image.png


image.png


浏览1334 评论0
返回
目录
返回
首页
Zabbix shell 钉钉报警脚本 配置 Nginx 自动更新 Let's Encrypt(Certbot)

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。