[python]树莓派第一课之DS18B20温度传感器
本帖最后由 wushaominkk 于 2019-3-18 16:54 编辑好久没更新,主要是这一段时间的事情太多了,秋招签了家北京的企业,找了个当地法院的兼职,兼职还是比较轻松,所以那段时间更新比较多,后来老师给了个问卷数据分析的任务,毕业设计也上来了,前三周有一门课设,老师都快凶死了,我都不知道我课设改了多少遍,加上还要在春招尝试下能不能把自己卖的更贵,所以就从法院辞职回来专心把这些烂摊子处理下,现在课设结束了,虽然还有数据分析和毕设,但是也按耐不住激动的心情,开始玩转树莓派!
首先,肯定有一大群人是来凑热闹的,啥是树莓派啊?吃过黄瓜派,冬瓜派,甘蔗派,六神花露水派,你这是树莓做的派?
是的,采用python编程,精选高海拔顶级天然树莓,精制而成,所需树莓连起来可绕地球一圈,我们不生产树莓派,我们只是树莓的搬运工。
得得得,扯不下去了,树莓派简单来讲就是一个微型电脑,可以用来做物联网,价格低廉,最新款3B+估价220+,低级一点的就更便宜,还有90块的,详情参考百度百科,最近抄百科都快抄吐了,我是不想抄了,大家可以自己看。喏,图在这
就是这玩意,看长得多么漂亮,沉鱼落雁,闭月羞花啊,美不胜收,我知道你看不出来好看,拜托,培养下程序猿审美可好?
这个东西里面呢,可以写入系统,Linux系统,win10 IoT都可以写入,然后可以跟电脑无差的使用,看见上面那排排针吗?这玩意可以干的事就多了,控制开关啊,接入传感器啊,总之,只有你想不到,没有他做不到。妙,妙啊!
今天是第一课,扯得犊子有点多,言归正传,我们今天要把DS18B20温度传感器接入树莓派,检测房间内温度。
DS18B20温度传感器是啥玩意?顾名思义,他是检测温度的温度传感器。长啥样?
就这样,最要紧的是前面的半圆柱型黑球,那是传感器,我买的是现成的模块,就是人家给你加了电阻和指示灯,随拿随用。估价6-7元。
材料清单(宽油警告):
1. 树莓派3B+一台,内置Linux操作系统。估价220元。
2. 面板板一个,估价5元。
3. 公对公插线若干,公对母插线若干。估价1元。
4. DS18B20温度传感器模块一个。估价6元。
5. 简单树莓派扩展板一个。估价7元
6. USB供电器一个。估价10元。
7. USB供电线一个。估价10元。
8. 电脑一台。估价很贵。
9. 可发射WiFi的路由器或手机一台。估价不便宜?
10.程序猿一只,估价一杯奶茶。
RMB劝退的患者,别忘了评分投币哦
准备好,开始接线。
接线简单吧,备好WiFi,开机。给你一张我的成品图
电脑和树莓派开机后,找到树莓派的ip地址,使用XSHELL软件连接。
关于怎么让树莓派联网和怎么找到他那神奇的ip的问题,我就不讲了,度娘一大堆。 树莓派默认密码是树莓派的英文小写。
另外树莓派的root的用户不允许远程登陆,所以你的远程登录用户名就是pi。密码刚才说了。
如果,神奇的xshell提醒你这个,点否就行了。
然后,开始执行第一条命令,安装vim(如果你坚持用vi的话,你哭晕在厕所我也不给你送纸)
sudo apt-get install vim
安装好以后,输入以下命令。
sudo raspi-config界面多么美丽
没错选第五个,请大家注意下英文内容啊,不要只看序号,以后序号可能会变的。
对的,再选它,把它打开,打开是enable。
选是,就打开了,然后退出。
然后,进入/boot/config.txt这个文件里,查看有没有这样的一句话。
执行命令:sudo vim /boot/config.txt
这句话出现的位置可能不同,但是你要有耐心的找。
如果没有,你就手动在文件的最后加上吧。
dtoverlay=w1-gpio-pullup,gpiopin=4
如果,你传感器接入的位置不在GPIO4号口,就把上面那句话最后的4改成对应的编号。
然后,执行下面的命令,重启:
sudo reboot
重启完成后,去尝试打开这个文件夹。执行命令:
cd /sys/bus/w1/devices/
如果系统提示你文件夹不存在,请查看你上面加在文件里的话是不是有中文标点啊,是不是加了空格等等。另外检查下线有没有接对。
总之打不开,一定是你错了,注意查错。
好了,该文件夹下有个文件夹,28-********,后面那是序列号,像我的
cd 进去。
里面有很多文件。
其中w1_slave是存放温度数据的。执行命令看下:
cat w1_slave
最后这个T就是温度,要除以1000,所以我现在的温度是18.937℃。还是挺冷的。
crc=a7 YES 表示温度采集成功
前面那些是循环冗余校验,我们自己用也看不到,但是开发商用的同学请注意了。
至此大功告成,对了多个温度传感器可以并联接入。
那么到这里python程序有什么用呢?
无非就是从文件读取出温度,上传服务器罢了。
首先在服务器mysql内新建数据库other。新建数据表pi,命令如下:
create table pi(id int not null,itime datetime not null,val double not null);
解释:Id是为了区分设备,itime是为了记录数据上传时间,val是记录数据。
程序流程图
源码:
大功告成,测试运行下
没有报错,我们看下数据库的情况
成功了。我们上传到树莓派执行下
报错了,原来是我们的文件路径忘了改,那么数据库是不是获取了相关的错误码呢?我们去看下
-404状态码已经进入了,说明大功告成,修改下,将路径修改为服务器文件路径
重新上传,到服务器执行下,数据库上已经有了新的数据了
至此,大功告成! 这时会有人说,如果我想定时启动,比如每一分钟就获取一次数据。那该怎么搞?
简单,我们用软件crontab,输入命令:
crontab –e
如果提醒你下面的内容,就是让你选择编辑器,选VIM即可,我这里是3号。
在文件的最后,加上内容:
*/1 * * * * python3 /home/pi/DS18B20.py
保存退出即可!
至此,大功告成,我们去看看服务器上是不是自动上传了最新数据。
每十分钟一条数据,漂亮吧,为啥最后一条26度了?
我用手指头捂了传感器,要不然总是18度岂不是太无聊了!
源代码在附件,编写不易,喜欢的别忘了投币、点赞、评论三连!
免费的源码在这里哦:链接:https://pan.baidu.com/s/17liP7V3KgY5ARF6yh-A3dw 提取码:7cjq
版权声明:
未经本人书面许可,禁止以任何形式引用、抄袭、转载本篇文章。
本帖最后由 天域至尊 于 2019-4-12 13:46 编辑
第二课链接:https://www.52pojie.cn/thread-903925-1-1.html
第三课链接:https://www.52pojie.cn/forum.php?mod=viewthread&tid=911228
第四课温湿度传感器链接https://www.52pojie.cn/thread-927626-1-1.html icegs 发表于 2019-3-18 19:35
得先有点基础才能看懂
对的,入门是最枯燥的,最好跟我一样接一个项目,就能很快入门 zw11223344 发表于 2019-4-23 20:28
楼主大大.最近想入手树莓派可以发一份淘宝清单地址么,, 怕买错了东东.谢谢哒
不好意思,出于防止发生打广告的误会,我不能给你提供淘宝链接,但是你可以想好自己做什么东西,我可以给你点硬件的建议。 树莓派是挺好玩的
期待第二课 关注了 大佬! 得先有点基础才能看懂 收藏了,打算入手树莓派.非常感谢 期待后续更新,已关注! _小白 发表于 2019-3-18 16:15
期待第二课
提前预告,第二课是树莓派控制继电器,可以接220V的继电器哦 关注大佬!