【树莓派】项目一: DHT22温湿度传感器

前言

需要做一个实时监控环境温度的系统,上网搜索后,发现硬件方面树莓派连接传感器用来监控温度比较容易实现,不需要学习太多硬件方面的知识。传感器方面我选择DHT22,是因为DHT22测试的范围和精准度要比DHT11要高。

记录一下从树莓派开机、配置到项目成功运行

准备

硬件:

树莓派4B、DHT22传感器

参考资料:

树莓派零基础教程:https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi(B站同济子豪兄有相应视频)

DHT22用到的Python库:https://github.com/adafruit/Adafruit_Python_DHT

参照项目:https://github.com/yfgeek/rpi-TempRuntime

相关库的安装:

1 # 逐行运行命令
2 sudo apt-get update
3 sudo apt-get install python-dev python-rpi.gpio
4 sudo apt-get install build-essential python-dev python-smbus python-pip
5 sudo pip3 install Adafruit_DHT
6 sudo pip2 install RPi.GPIO

项目的下载

# 将项目下载到/home/pi下任意目录即可
git clone https://github.com/yfgeek/rpi-TempRuntime.git

进入该项目文件夹 /rpi-TempRuntime,项目内有多个传感器的python文件,WITHOUT-LCD表示不带屏幕输出

我们对 DHT22-WITHOUT-LCD.py 进行修改

sudo nano DHT22-WITHOUT-LCD.py

找到26行,核心代码,将GPIO#改为自己传感器所接的序号,这里我接的是4

humidity, temperature = Adafruit_DHT.read_retry(sensor, 4)

修改完成后,运行 DHT22-WITHOUT-LCD.py,即可在终端界面看到时间、温度、湿度的输出,生成的数据以JSON格式存储在 /rpi-TempRuntime/web/data/min(或者hour)中。

项目每分钟生成一组数据,按日期命名,存在/rpi-TempRuntime/web/data/min文件中,/rpi-TempRuntime/web/data/hour 存储的则是每个小时的数据

/rpi-TempRuntime/web 中还有个index.html,是一个查询网页(注意:不会实时刷新,按日期查询时,需要同时有分钟数据和时钟数据才会生效)

本地服务器部署

Web服务器选择nginx,相对APache的广泛应用,nginx属于轻量级服务器

安装nginx

sudo apt-get install nginx

启动nginx

sudo /etc/init.d/nginx start

测试安装是否成功(nginx默认是80端口)

将树莓派的ip地址设为静态ip(我的是192.168.31.102),先从内网测试是否安装成功,在同一个局域网的机子上的浏览器上访问 192.168.31.102。如果出现下图则说明nginx安装成功

修改nginx配置文件(使得nginx监听上面设定的8888端口)

sudo nano /etc/nginx/sites-available/default

#直接修改以下内容:
listen行:修改两处的监听端口

server {
    listen 8888 default_server;
    listen [::]:8888 default_server;

    # SSL configuration
    #

#修改指定访问html路径
  root /home/pi/pyproject/sensor/rpi-TempRuntime/web;
  # Add index.php to the list if you are using PHP
  index index.html index.htm index.nginx-debian.html;

重新加载

sudo /etc/init.d/nginx reload 

启动服务器

sudo /etc/init.d/nginx start

#停止
sudo /etc/init.d/nginx stop

 

浏览器上访问 192.168.31.102:8888

 

 

 

参考文档:https://www.jianshu.com/p/8077e28db96a

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章