本博文参考了网络上多篇树莓派操作DS18B20的博文,经过博主亲自实践,列出了详细的步骤,通过树莓派的单总线驱动来驱动DS18B20获取温度数据,并通过python读取温度值,上传到yeelink物联网云平台。

一.配置准备

1. 电路连接

DS18B20有三个引脚:VCC,DQ,GND

其中VCC和DQ之间需接一个4K7的电阻,VCC接树莓派的3V3(pin1),DQ接GPIO4(pin7),GND接GND(pin6)

2.升级内核

首先升级内核(如果系统版本较新,可跳过这一步)
(升级内核可能需要很长的时间)

sudo apt-get update
sudo apt-get upgrade

3、加载单总线驱动

sudo modprobe w1-gpio
sudo modprobe w1-therm

注意:系统升级后,有可能gpio读不了w1

解决办法:
打开/boot/config.txt 在最后一行手动添加这一行:
dtoverlay=w1-gpio-pullup,gpiopin=4

cd /boot
sudo nano config.txt

然后保存退出,重启树莓派,再把DS18B20接上,再次加载驱动即可

4、查看设备是否工作

cd /sys/bus/w1/devices/
ls

28-0000075a0d1c即为我使用的DS18B20的设备号

5、查看当前温度值

进入到我的DSI8B20,使用命令查看数据

cd 28-0000075a0d1c
cat w1_slave

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

二.python读取温度值

1.新建文件

在/home/pi/目录下新建文件夹mytest,并在mytest下新建temp.py

mkdir mytest
cd mytest
touch temp.py

2.编辑temp.py

nano temp.py

3.写入下面的代码,保存并退出

#-*-coding:utf8-*-
#打开你的DS18B20的数据文件
tfile = open("/sys/bus/w1/devices/28-0000075a0d1c/w1_slave")#读取文件所有内容
text = tfile.read()#关闭文件
tfile.close()#用换行符分割字符串成数组,并取第二行
secondline = text.split("\n")[1]#用空格分割字符串成数组,并取最后一个,即t=18437
temperaturedata = secondline.split(" ")[9]#取t=后面的数值,并转换为浮点型
temperature = float(temperaturedata[2:])#转换单位为摄氏度
temperature = temperature / 1000#打印值
print temperature

4.执行python脚本读取温度

python temp.py

三.上传数据到yeelink云端

yeelink是一个开源的硬件数据平台,我喜欢把它定义为一个物联网云平台,因为它给我们提供了API接口,我们可以把数据发送到云平台保存起来,也可以随时查看,真的很棒。具体的操作可以查看博主的博客:《 树莓派+USB摄像头+yeelink实现云监控》。

1.修改python代码

将温度值用JSON格式保存到一个文本文件(/home/pi/mytest/temper_data.txt),在转换单位为摄氏度后添加如下代码:

#数据转换成JSON格式
res = '{"value":%f}' %temperature#打开文件
output = open('/home/pi/mytest/temper_data.txt', 'w')#写数据到文本文件中
output.write(res)#关闭文件
output.close

2.新增yeelink.sh脚本

在/home/pi/mytest/目录下新建yeelink.sh

写入如下内容:

sudo python /home/pi/mytest/temp.py
curl --request POST --data-binary @"/home/pi/mytest/temper_data.txt" --header "U-ApiKey:XXXXXXXXXXXXXXXX" http://api.yeelink.net/v1.0/device/设备号/sensor/传感器号/datapoints

将XXXXXXXXXXXXXXXX替换为自已账户的API Key,后面的URL也需要替换为自己申请的传感器URL。

3.为脚本增加可执行权限

sudo chmod +x yeelink.sh

4.将脚本加入cronjob定时任务

sudo crontab -e

5.让脚本自动运行

加入下面一行, 让脚本每1分钟运行一次,即每1分钟上传一次温度数据,然后保存退出

*/1 * * * * /home/pi/mytest/yeelink.sh

实验效果:

树莓派+DS18B20温度传感器+yeelink物联网云相关推荐

  1. 树莓派+DHT11温湿度传感器+yeelink物联网云

    一.配置准备 1.DHT11简介 DHT11是一款有已校准数字信号输出的温湿度传感器. 精度湿度+-5%RH, 温度+-2℃,量程湿度20-90%RH, 温度0~50℃. DHT11有四个引脚,分别是 ...

  2. 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享

    以下内容为本人原创 原文链接:https://blog.csdn.net/Yhen1/article/details/113760948 作者:@Yhen 发布网站:CSDN 未经本人同意禁止转载,如 ...

  3. 树莓派DS18B20温度传感器获取温度

    目录 树莓派使能DS18B20 C程序获取DS18B20温度 树莓派使能DS18B20 sudo raspi-config 进行配置树莓派,启动1-Wire完成使能 sudo reboot  重启树莓 ...

  4. 树莓派+USB摄像头+yeelink实现云监控

    一.配置USB摄像头 检查摄像头是否被树莓派检测到 输入命令: $ lsusb 查看输出信息 如上图我们可以看到camera的信息,如果没有你的摄像头的信息,那么有可能你的树莓派的电源无法供应足够的电 ...

  5. 【树莓派】关于树莓派2代,更新最新内核后,DS18B20温度传感器无法找到对应文件的问题的解决

    一.问题和解决方法 问题: 在网上关于DS18B20温度传感器的教程有很多,但大部分都是基于老版本内核的例子.在入手树莓派2代后,加上DS18B20,按照他们的方法就是找不到对应的28-****文件, ...

  6. 树莓派与DS18B20温度传感器模块的使用

    好久不见鸭,时隔半年,树莓派菜鸟再次写起博客 树莓派与DS18B20温度传感器模块的使用 其实树莓派内置了驱动文件,可以直接通过一些命令读取温度传感器的温度,所以使用起来很简单,下面来示范一下. 所用 ...

  7. 树莓派mqtt协议连接阿里云物联网平台,手机端获取数据并控制

    树莓派mqtt协议连接阿里云物联网平台(三) 前面树莓派的数据已经上传到云端,可是我的android手机该如何获取树莓派上传的这些数据呢,,困惑了我好几天的疑问,解开的那一刻,真的时拨开云雾见青天啊. ...

  8. DS18B20温度传感器在树莓派下获取实时温度

    目录 1. DS18B20温度传感器的介绍 2.代码流程分析 2.1获取实时温度值 2.2获取温度值存放路径 2.3用到的库函数 3.完整代码 4.输出结果 1. DS18B20温度传感器的介绍 DS ...

  9. OF-Link物联网云平台简介

    OF-Link物联网云服务器为程序员.老师.学生.个人爱好者提供了简单且高效的物联网服务.用户可以通过单片机.arduino.树莓派等控制器结合WiFi.NBIoT.4G等模块快速接入OF-Link云 ...

最新文章

  1. linux iptables规则组成及用法
  2. Android驱动开发之Hello实例(基于高通msm8909)
  3. Leetcode5634. 删除子字符串的最大得分[C++题解]:贪心
  4. laravel里面使用event
  5. 【转】1.6异步编程:IAsyncResult异步编程模型 (APM)
  6. Detours框架实现原理探究
  7. sourceForge, wikipedia与异形
  8. android小型app创意,创意无止境!17款让人脑洞大开的APP推荐
  9. 【渝粤教育】电大中专跨境电子商务理论与实务 (17)作业 题库
  10. python基础学习记录
  11. 集 8 万员工之力, Google 开放 Bard,我们将它和 ChatGPT 正面 PK 了一下
  12. 【教程】如何导入批量加海外号码到手机通讯录加whatsApp和line
  13. 【网络安全】跨站脚本攻击漏洞(了解)
  14. 大数据 勾勒中国人“的亲情地图”!
  15. 跟我一起学Adams虚拟样机:(一) 运动学仿真基操,以一个简单的曲柄摇杆机构为例
  16. prism 搭建prism项目
  17. HDOJ 1290 献给杭电五十周年校庆的礼物
  18. ubuntu火狐浏览器安装flash_player插件
  19. 基于单片机的GPS全球定位系统仿真设计-毕业设计protues仿真
  20. 基于WEB的Office文档打印——浏览器中静默打印Word文档

热门文章

  1. 【论文摘要】一种基于NSPD-DCT域变参数混沌映射的零水印新方案
  2. SONY的IMX500浅谈
  3. 设置Sysctl conf用以提高Linux的性能 最完整的sysctl conf优化方案
  4. html怎么做密码的判断,用户密码格式判断 .html
  5. 如何安装proposed(候选更新包)软件包
  6. SBT项目配置依赖树查询组件
  7. DGA - 研究内容整理
  8. DGA:域名生成算法
  9. 宏碁Acer K50-20-55Z3拆机 +取下主板CMOS电池放电重新进入BIOS成功
  10. 新冠肺炎数据:美国霍普金斯大学