zoukankan      html  css  js  c++  java
  • 常用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
  • 相关阅读:
    jQuery插件jTemplates(模板)
    js常用正则
    SQLServer笔记 //20111027
    神经网络感知器matlab实现
    求全排列(无重复字母)
    python 学习笔记(1、数据类型)
    WampServer 不能打开phpmyadmin 的解决办法
    求一个整形数组里子序列和最大的算法
    堆排序算法的实习(C++)
    归并排序
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/3999417.html
Copyright © 2011-2022 走看看