常用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM