在Raspberry Pi 的使用和開發過程當中,你可能時常須要一些硬件和傳感器等來支持你的開發工做,例如,加入一個超聲波測距的模塊來讓你的Raspberry Pi具有測距功能,加入一個測溫模塊以實現測溫功能。今天咱們爲你準備了10款最經常使用的傳感器與Raspberry Pi 結合使用的例程,你能夠在你的開發工做中直接使用這些例程,也能夠稍作更改以接入更多的傳感器至你的Raspberry Pi項目當中。
本文以SeeedStudio公司開發的Grove電子模塊系列爲例,固然,你也能夠在更多的硬件公司如Sparkfun、dfrobot購買到相似的模塊。
1.距離監測
超聲波測距是一種經常使用的測距方法,其原理是將超聲波脈衝發射到空氣中,當遇到測量後反射至接收端,處理器經過測量返回時間計算出障礙物距離。Grove-Ultrasonic Ranger具備四個引腳,分別是電源、地、信號引腳,還有一個管腳懸空。
將Raspberry Pi和模塊按下列方式進行鏈接:
從github上籤出代碼後,在Raspberry Pi終端LXTerminal裏輸入: cd 「Grove – Ultrasonic Ranger」 sudo python ultrasonic.py Raspberry Pi 便可驅動Ultrasonic Ranger模塊進行工做:
2. 紅外人體檢測
紅外人體傳感器用以檢測某個範圍內是否有人體的運動,經常使用於樓道燈控制、防盜裝置、自動門等設施中。本例中將該傳感器和Raspberry Pi進行鏈接,當傳感器檢測到人體運動信號時,其輸出信號至Raspberry Pi中。
將Raspberry Pi與該模塊按下列方式進行鏈接:
進入到簽出的代碼目錄中,執行: cd 「Grove – PIR Motion Sensor」 sudo python PIR_sensor.py 當傳感器監測到人體活動後,Raspberry Pi 輸出結果:
3. 溫、溼度測量
環境監測中最經常使用的是溫、溼度的自動檢測。經常使用的溫溼度傳感器使用單總線協議同處理器通訊,將溫溼度測量值輸出至Raspberry Pi端。在本例程中,使用Grove - Temperature and Humidity Sensor Pro模塊(DHT22) 進行溫溼度的測量。
鏈接示意圖:
Temperature and Humidity Sensor示例代碼使用C語言開發,下載代碼後須要進行編譯,進入源碼目錄後,在終端輸入: cd 「Grove - Temperature and Humidity Sensor Pro」 make 進行編譯,而後輸入下面命令執行示例: sudo ./Seeed_DHT22 Raspberry Pi工做效果:
4.實時時鐘
Raspberry Pi 自身是沒有RTC的,某些場景下,使用外部的RTC模塊爲Raspberry Pi提供實時時鐘就顯得很是有必要。本例中使用Grove-RTC爲Raspberry Pi提供實時時鐘,該模塊使用I2C同Raspberry Pi進行通訊。
鏈接示意圖:
Grove RTC模塊能夠直接鏈接Raspberry Pi的5V引腳,不過在使用RTC以前須要先配置I2C。
1.首先安裝Linux I2C 驅動模塊: sudo aptitude install i2c-tools libi2c-dev
2. 裝載i2c-bcm2708和rtc-ds1307: sudo modprode i2c-bcm2708 sudo modprobe rtc-ds1307 I2C 配置完成以後,若是是Raspberry Pi的Model B,這時在終端輸入: sudo i2cdetect –y 1 固然,若是是 Raspberry Pi的Model A,則輸入: sudo i2cdetect –y 0 這時候就能夠看到下圖的輸出信息:
接下來,將獲的RTC硬件地址信息添加到I2C設備中,在終端輸入: sudo -i echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device hwclock -r
上述命令在系統中添加一個新的I2C設備,並讀取RTC數據:
固然,在首次使用RTC模塊的時候你須要爲你的RTC設置一個初始時間。咱們使用Raspberry Pi系統的時間做爲RTC模塊的初始值,以下設置便可: date hwclock –w hwclock -r
5.OLED 顯示
Grove - OLED Display是一個128x64的OLED顯示屏,使用I2C協議,特別適合做爲Raspberry Pi的第二顯示屏。
進入源碼目錄後,在終端輸入: cd "Grove – OLED Display 128x64" sudo ./OLED Grove - OLED Display工做效果:
6.氣壓檢測
Grove - Barometer Sensor是一款集成氣壓、溫度檢測的電子模塊,使用I2C接口同Raspberry Pi進行通訊。
進入源碼目錄後,在終端輸入: cd "Grove – Barometer_Sensor" sudo ./barometerDemo 其工做效果圖:
7.光照檢測
若是你使用Rasbperry Pi作一個在強光強烈的時候自動爲你關閉窗簾的設備,你就須要使用一個光照傳感器用以監測光照狀況。Grove - Digital Light Sensor來完成任務,其使用I2C協議,獲取到當前光照的照度值。
鏈接示意圖:
進入源碼目錄後,在終端輸入: cd "Grove – Digital_light_Sensor" sudo ./DLS Grove – Digital Light Sensor 工做效果圖:
8.繼電器控制
繼電器使用的範圍普遍,你甚至能夠直接使用繼電器構建一個簡單的智能家居系統,好比控制花園灑水裝置和電飯煲等。所以,Raspberry Pi加上繼電器能夠充分的擴展它對外部設備的控制能力。
Dry-Reed Relay 是指幹簧繼電器,相較與通常繼電器,其切換速度和壽命都有很大提升。該繼電器的使用很是簡單,只需對其管腳進行電平控制便可完成對繼電器的控制。
進入源碼目錄後,在終端輸入: cd "Grove - Relay" sudo python relay.py Rasbperry Pi將會控制繼電器每0.5秒進行一次開、斷切換。
9.模數轉換
Raspberry Pi讓人以爲比較遺憾的事情就是沒有ADC,面對一大堆的模擬信號的外部設備卻無能爲力。不過,如今咱們有Grove-ADC模塊能夠解決這個問題。
ADC 的代碼很是簡單,使用readADC()的函數便可以獲得外部電壓值。接下來以一款模擬電平輸出模塊:Grove- Alcohol Sensor爲例,說明如何使用該模塊配合酒精傳感器以測量酒精值。
將Raspberry Pi、ADC模塊和Alcohol Sensor按以下圖鏈接:
工做效果以下圖所示, 試試將Alcohol sensor靠近酒精等液體,當其檢測到空氣中酒精濃度增長時,輸出值將會發生明顯變化。 進入源碼目錄後,在終端輸入: cd 「Grove – ADC」 sudo ./ ADC121_DEMO 工做效果圖以下:
|
|