python实现树莓派监控_用树莓派实现室内温度监控

本文介绍了使用树莓派配合DS18B20温度传感器实现室内温度监控的完整过程,包括硬件组装、软件配置、Python读取温度值以及数据上报到物联网平台yeelink的方法。通过设置计划任务,实现了定时上传温度数据,便于实时监测和分析。
摘要由CSDN通过智能技术生成

树莓派加上温度传感器实现室内温度监控。可用于家庭,轿车,工业,农业 等许多方面。可做温度预警,自动降温等操作。各位小伙伴可自行脑补发挥。

1.硬件准备

a.树莓派(Raspberry Pi)一个

b.DS18B20温度传感器一个

c.4.7kΩ电阻一个 或 DS18B20模块一个

d.杜邦线(双头母)

2.组装(如图)

按照例图接好线 组装完成以后,确认硬件接线是否正确并生效。首先使用命令升级内核,命令如下:

apt-get update

apt-get upgrade

打开配置文件 sudo nano /boot/config.txt  在最后一行手动添加

dtoverlay=w1-gpio-pullup,gpiopin=4,保存并重启树莓派。

确认设备是否生效

sudo modprobe w1-gpio

sudo modprobe w1-therm

cd/sys/bus/w1/devices/ls

显示结果:

pi@raspberrypi:~$ cd /sys/bus/w1/devices/pi@raspberrypi:/sys/bus/w1/devices$ ls28-00000494cb79 w1_bus_master1

查看当前温度:

cd 28-00000494cb79

cat w1_slave

显示结果:

70 01 4b 46 7f ff 10 10 e1 : crc=e1 YES70 01 4b 46 7f ff 10 10 e1 t=25000

第二行的t=23000就是当前的温度值,要换算成摄氏度,除以1000,即当前温度为25000/1000=25摄氏度。

3.用python读取温度值

#/home/pi/temperature.py#打开温度传感器文件

tfile = open("/sys/bus/w1/devices/28-00000494cb79/w1_slave")#读取文件所有内容

text =tfile.read()#关闭文件

tfile.close()#用换行符分割字符串成数组,并取第二行

secondline = text.split("\n")[1]#用空格分割字符串成数组,并取最后一个,即t=23000

temperaturedata = secondline.split(" ")[9]#取t=后面的数值,并转换为浮点型

temperature = float(temperaturedata[2:])#转换单位为摄氏度

temperature = temperature / 1000

#打印值

print temperature

将以上代码文件存放:/home/pi/temperature.py   命令行运行代码。

python /home/pi/temperature.py  就可得出结果数值

4.数据上报物联网平台

yeelink是国内比较知名的免费物联网数据平台,国外有COSM(https://cosm.com)。注册yeelink 账号并添加设备和传感器。

修改刚刚写好的 Python 文件 ,将温度值用JSON格式保存到一个文本文件。

#/home/pi/temperature.py#打开温度传感器文件

tfile = open("/sys/bus/w1/devices/28-00000494cb79/w1_slave")#读取文件所有内容

text =tfile.read()#关闭文件

tfile.close()#用换行符分割字符串成数组,并取第二行

secondline = text.split("\n")[1]#用空格分割字符串成数组,并取最后一个,即t=23000

temperaturedata = secondline.split(" ")[9]#取t=后面的数值,并转换为浮点型

temperature = float(temperaturedata[2:])#转换单位为摄氏度

temperature = temperature / 1000

#拼接API 所需json数据

res = '{"value":%f}' %temperature#打开创建文件,将温度值写入:/home/pi/datafile.txt

output = open('/home/pi/datafile.txt', 'w')#写入数据

output.write(res)#关闭文件

output.close

新增yeelink.sh脚本,文件位置:/home/pi/yeelink.sh ,内容如下:

sudo python /home/pi/temperature.py

curl--request POST --data-binary @"/home/pi/datafile.txt" --header "U-ApiKey:XXXXXXXXXXXXXXXX" http://api.yeelink.net/v1.0/device/1969/sensor/2533/datapoints

将U-ApiKey:XXXXXXXXXXXXXXXX替换为自已账户的API Key。

后面的URL也需要替换为自己申请的传感器URL。

添加到计划任务

#为脚本增加可执行权限

sudo chmod +x yeelink.sh#将脚本加入cronjob(计划任务)

sudo crontab -e#在cornjob文件中添加下面一行,并保存(表示20分钟执行一下脚本,时间可自行修改)

*/20 * * * * /home/pi/yeelink.sh

这样就好20分钟讲温度数据上传到 yeelink 物联网平台,然后就可以在个人页面 看到数据变化曲线了。当然你也可以自己在树莓派上自己做页面,做曲线图分析数据及其他功能。这个就要靠各位自己发挥想象了。嘿嘿~~

关注一下,更多精彩,不容错过!

👇👇👇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值