程序员人生 网站导航

树莓派通过物联网照顾宠物龟

栏目:综合技术时间:2015-06-05 09:34:11

树莓派通过物联网照顾宠物龟

作者:半点闲

撰写:2015416

博客:blog.csdn.net/cg_i

邮箱:b_dx@sohu.com

资源:http://pan.baidu.com/s/1i3INVal(文中提到的资源)


写在前面的


春节期间,到公园游玩,看门前有卖各种小宠物的商贩,见其中巴西红耳龟很是可爱,就买了1对。因是第1次饲养这类爬行类动物,虽是很谨慎但还是有1只不幸夭折,在感到惋惜痛心的同时,也想能否用甚么更好的办法照顾这仅剩下的另外一只小龟。

在这类想法的推动下,借助手里具有的树莓派,其强大的处理能力,加上当下新兴起的物联网平台,初步做了1个集图象监控、水温监控、定时开启水质过虑泵、晒背灯。搭建起1个智能照顾小龟的保母,也为我分担了很多精力。即便我身在外地也能够通过手机,实时了解小龟的生存状态。

现将,全部软、硬件搭建进程整理出来和大家分享。固然RaspberryPi有着巨大的潜力,如果,你要监控、感知离开你后的卧室,有无外星人造访过。或在上班的路上用手机通过网络控制你办公司的咖啡机,在你进入办公司前为你冲上1杯香醇的咖啡等等。希望能通过这篇文章取得1些启示,那我将倍感荣幸(注:如果你像我1样有没有比旺盛的好奇心,通过网址:http://www.yeelink.net/devices/19605现在你就能够去看看我饲养的“8大王”)。

(图-08大王)


读者对象

我假定浏览这篇文章的读者,了解如何配置和保护树莓派,对Linux有1定的了解,会编写1些脚本或代码,至于文章中提到的硬件安装,读者大可放心(注:将继电器用于市电开关时要特别谨慎),这些硬件都已模块化,你只需要简单的把它们连接到你的树莓派便可。

至此,再没其它要求,现在开始你的物联网之旅。

第1章 硬件菜谱

  1. 硬件及费用清单

名称

费用(元)

备注

RaspberryPi(B)Rev2.0

315

当时英国代购比较贵,现在最新的RPi2(B)也就200多。

PiFace扩大板

240

为了保护树莓派不受接线毛病的伤害,也是为了利用它的两个继电器开关。

EP-N8508GS迷你USB无线网卡

40

用于联网。

USB摄像头

--

旧机器上拆的,用于收集图象。

RisymDS18B2水温探头

5.9

用于监测饲养缸水温。

DHT11温湿度传感器模块

6.1

用于监测室内温与相对湿度。

方形玻璃带晒台龟缸

50

龟龟的奢华别墅。

爬虫UVB陶瓷灯罩

29

用于给乌龟晒背增加钙质与活性。

UVA+UVB3.0太阳卤素灯25W

18

低水位瀑布式过滤泵

35

用于净化水质。

其它

577.36

各种书籍、饲料、龟药及配件

  1. 初识硬件

1RaspberryPi

我手中的这块RaspberryPi(B)Rev2.0购于2013423日,配备1枚700MHz博通生产的ARM架构BCM2835处理器,512MB内存,使用SD卡当作贮存媒体,且具有1个Ethernet,两个USB接口,和HDMI(支持声音输出)RCA端子输出支援。操作系统使用的是RaspberryPi基金会所推荐的RaspbianWheezy Linux操作系统详细信息以下:

$uname -a

Linux raspberrypi3.18.7+ #755 PREEMPT Thu Feb 12 17:14:31 GMT 2015 armv6l GNU/Linux

   请确保操作系统版本和我的1样或高于它。由于,实际操作中发现低于这个版本的系统不能正常驱动我手中的RisymDS18B2水温探头。可从官网下载最新的操作系统镜像https://www.raspberrypi.org/downloads/或访问我的百度网盘下载和我同版本的系统镜像(2015-02⑴6-raspbian-wheezy.zip)文件。

(图RaspberryPi(B)Rev2.0

   RaspberryPi的1边有1组双排排针,这些排针被称为GPIOGeneral Purpose Input/Outpu,通用输入/输出)接口,通过这个接口,可以把Pi与其它电子硬件装备相连,就像使用USB接口那样。

(图1⑴ GPIO引脚)

   如果你像我1样是1个真实的初学者,初看到这些引脚时,是否是心生畏惧?这里你大可宽心,我们只需要连接GPI04GPI07两个引脚,再无其它。至于,其它引脚作用(注:仔细的你或许还发现有些GPIO引脚用圆圈起来,里面有其它数字,这些引脚都是有特殊用处的。)有机会再给大家介绍或你也能够通过网络搜索获得这方面更多的资料。

2PiFace

   PiFace数字接口板可以从曼彻斯特大学计算机学院取得,网址是:http://shop.openlx.org.uk/。这块板子能提供8GPI0输入和8GPI0输出,,可是这些输入输出都不是树莓派自己的GPI0线,它们是由另外一块芯片(ULN2803A)提供的,这块芯片是通过树莓派的1个串行外部装备接口(注:SPI)所控制的。

   直接连接在树莓派上的GPIO线是很脆弱的。PiFace上的输入可以直接处理5V的信号,而且这个板子允许输出电流高达200mA,这两项指标还都有些很宽的容限。

   它的输出还带有LED,当前的版本的板子上有8个,还有4个输入上带了按钮开关,不过,对我这个作品最有用的,是其中两个输出上接了很强大的继电器,这使得理论上可以开关高达10A的强大电流。PiFace还有自己的Python模块,使得扩大板在使用时更加简易。

   最初,我是想通过它来连接传感器,但当我收到货后,才发现购买的这个附件,除安全说明和包装盒,再无其它,官方文档也不是那末好取得,通过网络搜索得到很多误导性的网页,终究得到它《PiFace数字快速入门指南》正如字面上所说1样。我疯狂的从网上查阅相干书籍,只要发现书籍章节目录中有PiFace字眼,就果断下单购买。然后,非常焦急的等待快递上门,这个进程让我觉得像过了几个世纪那样漫长。书籍得手后又非常失望,这类书籍里大费笔墨的都是1些,能从网上搜索我们所共知的,而我真正需要的,是1些支言片语1笔带过的普及性的介绍。我依然在黑暗中。

   荣幸的是,有上手指南,给出了1些有限的利用例子,加上前几年有学习Perl语言的经历“每一个问题都有许多解决方式(TMTOWTDI”,在这里我只使用了它的继电器,其它传感器直连到树莓派的GPIO插座上(注:如果你熟习这块扩大版,请1定不吝赐教),或许待以后再充分的利用它。

(图⑵ PiFace⑴

3DS18B20DHT11传感器

Risym DS18B20数字温度传感器,采取不锈钢防水型探头,有VCC(红色电源)、 黄色(DATA信号)、黑色(GND地线)3根输出引线,3.0V~5.5V供电、9~12位可调分辨率、感温范围⑸5℃~+125℃(引线最高只能承受85℃左右)。特点:接线简单系统内置支持,无需编程便可获得传感温度数据。

DHT11温湿度传感器模块,可以检测周围环境的湿度和温度,湿度丈量范围:20%⑼5%(0度⑸0度范围)湿度丈量误差:+⑸%,温度丈量范围:0度⑸0度温度丈量误差:+⑵度,采取小块PCB板3线式接口,VCC(电源)、DATA(信号)、GND(地线),工作电压3.3V~5V,带电源唆使灯(红色)。特点:利用广泛实例众多,本文直接采取国外大牛针对它编写的C代码,几近不需要编程。

(图⑶ 各种传感器)

       以上,是针对本文核心的几个硬件做了1下简单的介绍,其它,如USB无线网卡、USB摄像头,都能在Linux下辨认免驱,安装相对简单,就不花费笔墨叙述了。

  1. 硬件连接

1、PiFace安装到RaspberryPi上,注意力度对准GPIO插槽便可。

(图⑷ PiFace安装)

2、Risym DS18B20、DHT11传感器连接。

  首先,借用他人的电路图。

(图⑸ Risym DS18B20连接图)

      如上电路图所未,它是将传感器直接到RaspberryPi上,而我手中的RaspberryPi上方已安装上了PiFace,在前文里我也说过,对PiFace我了解甚少,我鉴戒了上图的接线方式,将DS18B20信号线直接到RaspberryPi的GPIO4口上,将VCC、GND线接到了PiFace相对应的接口上,看到这里你1定很好奇,为什么我这样连接?实话告知你吧!这里没有甚么精深的缘由,这样连接我可以少焊接两根线,1来手笨、2来接电源线毕竟会有1定的风险,如果出错PiFace的保护电路会起到保护RaspberryPi的作用,大不了PiFace破坏。

  DHT11模块也参考了上面给出的电路图,只是它的信号(DATA)线连接的是GPIO7引脚,电源(VCC)、地线(GND)串连到PiFace对应接口上。

(图⑹ DS18B20和DHT11传感器接线)

3.继电器连接用于市电开关。

  继电器通过放大微弱信号来生成强信号,继电器像开关1样,它优于开关的地方就在于,继电器可以没必要人工控制。不夸大的说,我们生活在充满继电器的世界里,继电器改变了世界。

通过操控继电器就可以控制市电,使得自动化开关装备成为可能。继电器有3个端口:常开(NomalOpen)、公共(Common)、常闭(Nomal Close)。常开,正常状态为开路(开路即断开的),通电后关闭(连通),公共端,顾名思义,常闭,正常状态为闭合(连通状态),通电后断开(开路)。

   因此,市电是没有正负极之分,零线或火线可任意接在常开或常闭,是不是有电流通过取决于当前低电端给予的电平情况。

   这里为了能同时开关过滤泵、晒背灯,也为了将来需要进1步扩大控制更多装备(注:安全起见应特别谨慎,充分斟酌市电输入/输出线路和继电器负载能力)。我将家里的1个插线排做了改造,将继电器输出线路直连接到插线排上(注:参见图⑹)。

(图⑺ 继电器端口接线)

    到这里,针对我的这个作品,硬件装备的连接已全部完成(注:是否是很简单)。我使用了1些奇怪的接线方式,是我对所掌握的知识匮乏的1种让步,实属无奈。希望,不会对你产生困扰。毕竟,我的目地是想通过这个案例启发到你,你可以根据你实际具有的硬件资源选择公道的接线方式。

    硬件是计算机的驱体,而软件是计算机的灵魂。要想上述硬件能如愿工作,还需要对它注入灵魂。下面,就带大家进入它的世界,和它的灵魂对话。

第2章 软件菜谱

1、更新RaspberryPi

   登录到你的RaspberryPi在命令行输入以下命令:

   sudoapt-get update

   sudo apt-get upgrade

   当系统提示输入“Y”,等待系统履行这需要1定的时间。

2、SPI启用

   PiFace需要启用SPI引脚的RaspberryPi上才能运行,这是很简单的事情,要启用SPI,你须通过raspi-config配置工具开启,在命令行输入以下命令:

   sudo raspi-config

   菜单当选择8 Advanced Options (高级设置),选择A5 SPI 是不是默许启动SPI内核驱动,设置为“YES”,选择“OK”,然后“Finish”。

3、安装PiFace数字Python模块

   前面我们已将RaspberryPi更新到最新版本,现在只须通过apt-get就能够轻松地安装PiFace数码软件。在命令行输入以下命令:

   sudo apt-getinstall python3-pifacedigital-emulator

   sudo apt-get installpython3-pifacedigital-scratch-handler

   提示时输入Y

   成功安装后sudo reboot你的RaspberryPi

4、测试你的PiFace

   为了测试所有PiFace软件已安装并RaspberryPi设置正确,在命令行输入以下命令:

   python3/usr/share/doc/python3-pifacedigitalio/examples/blink.py

   Python2

   python/usr/share/doc/python-pifacedigitalio/examples/blink.py

   按Ctrl+C关闭LED灯闪烁程序。

5、DS18B20温度探头测试

   在命令行输入以下命令:

   sudo modprobew1-gpio

   sudo modprobe w1-therm

   cd /sys/bus/w1/devices/

   ls

   显示结果

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐