經常使用Raspberry Pi周邊傳感器的使用教程(轉)

轉:http://bbs.xiaomi.cn/thread-7797152-1-1.html

 



  在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
  工做效果圖以下:




 

 
  本文全部的源碼都託管在 Github: https://github.com/yexiaobo-seeedstudio/Grove-RaspberryPi
相關文章
相關標籤/搜索