樹莓派通過物聯網照顧寵物龜
作者:半點閑
撰寫:2015年4月16日
博客: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章 硬件菜譜
硬件及費用清單
名稱 |
費用(元) |
備注 |
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、RaspberryPi
我手中的這塊RaspberryPi(B)Rev2.0購于2013年4月23日,配備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組雙排排針,這些排針被稱為GPIO(General Purpose Input/Outpu,通用輸入/輸出)接口,通過這個接口,可以把Pi與其它電子硬件裝備相連,就像使用USB接口那樣。
(圖1⑴ GPIO引腳)
如果你像我1樣是1個真實的初學者,初看到這些引腳時,是否是心生畏懼?這里你大可寬心,我們只需要連接GPI04、GPI07兩個引腳,再無其它。至于,其它引腳作用(注:仔細的你或許還發現有些GPIO引腳用圓圈起來,里面有其它數字,這些引腳都是有特殊用處的。)有機會再給大家介紹或你也能夠通過網絡搜索獲得這方面更多的資料。
2、PiFace
PiFace數字接口板可以從曼徹斯特大學計算機學院取得,網址是:http://shop.openlx.org.uk/。這塊板子能提供8個GPI0輸入和8個GPI0輸出,,可是這些輸入輸出都不是樹莓派自己的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⑴)
3、DS18B20、DHT11傳感器
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、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
顯示結果
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈