个人博客

在zabbix上配置树莓派DHT22(基于BCM2835 C Library)

03 01月
作者:西洪室|分类:技术

    先前用Adafruit的python来读取树莓派DHT22,出现两个问题,一个是湿度变化起伏大,不符合实际情况;第二就是,不知道怎么回事,用了几天,再也读取不到数据了,更换了c语言的程序依然结果为空。不得已,只有重新安装标准版树莓派系统,使用BCM2835 C Library来读取数据。


软件安装

(1)首先安装BCM2835 C Library

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

sudo su
cd /opt/
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.58.tar.gz
tar xvzf bcm2835-1.58.tar.gz
cd bcm2835-1.58
./configure
make  && make install


下载dht22读取程序,编译读取:

cd /opt/
git clone https://github.com/dohkoos/Raspberry-Pi-Code.git
cd Raspberry-Pi-Code/DHT22
make
./dht 22 4 #数据接口接在第7针脚,所以这里是4


(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

重启zabbix-agent:

sudo systemctl restart zabbix-agent



创建zabbix脚本配置文件:

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



创建温度脚本文件:

sudo cp /opt/Raspberry-Pi-Code/DHT22/dht /etc/zabbix/scripts/ #复制编译好的dht到脚本目录
sudo vim /etc/zabbix/scripts/room_status.sh #创建zabbix-agent脚本(当没有读出数值的时候,重新读取5次,5次都没有数据,放弃读取)
#!/bin/bash
project=$1
case ${project} in
   wendu)
     n=0
     while [ $n -lt 5 ]
     do
       wendu=`sudo -u root /etc/zabbix/scripts/dht 22 4 |sed -n '3p' |awk -F" " '{print $3}'`
     if [ ${#wendu} -gt 2 ]
     then
           echo $wendu
       n=5
     else
       let n=n+1
     fi
     done
   ;;
   shidu)
     n=0
     while [ $n -lt 5 ]
     do
           shidu=`sudo -u root /etc/zabbix/scripts/dht 22 4 |sed -n '3p' |awk -F" " '{print $7}'`
     if [ ${#shidu} -gt 2 ]
     then
           echo $shidu
       n=5
     else
       let n=n+1
     fi
     done
   ;;
esac



给脚本目录授权:

sudo chmod +x -R /etc/zabbix/scripts


给zabbix用户开启系统root权限

sudo visudo
zabbix  ALL=(ALL) NOPASSWD: ALL #增加zabbix的root权限并配置不需要密码
ctrl+o写入文件,注意修改文件名,完成后ctrl+x退出


    最后在zabbix服务器添加温度和湿度的监控项(省略)


浏览1257 评论0
返回
目录
返回
首页
配置 Nginx 自动更新 Let's Encrypt(Certbot) 快速安装 Nginx双服务器高可用(keepalived)

发表评论

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