树莓派Android Things使用人体红外感应模块HC-SR501

前言

在上一篇树莓派Android Things使用超声波测距模块HC-SR04文章中,简单的介绍了超声波模块的使用,本篇介绍下人体红外感应模块HC-SR501在刷入了Android Things的树莓派中的使用方法。由于上一篇已经介绍了树莓派和Android Things的基本信息,本篇将不再赘述,直接提供接线方法和代码,如果你没有基本的树莓派运行环境,建议看一下上一篇了解下。

操作步骤

准备以下物品

硬件
HC-SR501红外感应模块针脚图

HC-SR501人体感应模块一共有三个针脚,比超声波测距少了一个,看一下三个针脚分别什么用途。
VCC:电源(Volt Current Condenser) 接树莓派5v电源即可。
OUT:输出针脚,当传感器收到感应时,从此针脚输出数据。
GND:接地线,接树莓派的Ground口即可。

软件环境
  • Android Things 系统镜像(官网下载,选择Raspberry Pi的镜像)
  • Android Studio

将HC-SR501和树莓派连接起来

树莓派3针脚图

VCC:我接入了树莓派4口。
OUT:我接入了树莓派7口,即BCM4。(PS:DEMO代码接收针脚也是BCM4,如果此处你换针脚,注意修改代码)
GND:接入树莓派39口。(PS:本次例子我买了一包电阻,所以GND多接了个10K阻值的电阻。)


接线图1
接线图2
接线图3
总预览
外观图0.0

可能接线有点乱,再梳理一下。VCC(蓝线)、OUT(红线)都是直接接树莓派的,GND(黑线)接面包板接电阻后(白线)再接入的树莓派。多说一句,本次例子我多用了个盒子,是因为我在查资料的时候,有一篇文章说HC-SR501如果直接暴露在外可能会误报,所以找了个盒子装了起来。

编译工程到树莓派上

将我写的Android Things HC-SR04超声波模块测距Demo克隆到本地,用的上一篇的工程,我在里面新建了一个Module。用Android Studio打开,将已经连接好传感器的树莓派电源打开,在Andorid Studio的Terminal中输入
adb connect <ip-address>
连接到你的树莓派,Run hongwai Module即可。如果成功当有人从传感器前经过的时候可以从LOG中看到结果。

运行结果

关键代码


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

import com.google.android.things.pio.Gpio;
import com.google.android.things.pio.GpioCallback;
import com.google.android.things.pio.PeripheralManagerService;

import java.io.IOException;

public class MainActivity extends Activity {
    private static final String TAG = MainActivity.class.getSimpleName();
    private Gpio mInputGpio;
    private final String pinInput = "BCM4";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG, "Starting MainActivity");

        PeripheralManagerService peripheralManagerService = new PeripheralManagerService();
        try {
            mInputGpio = peripheralManagerService.openGpio(pinInput);//Echo针脚
            mInputGpio.setDirection(Gpio.DIRECTION_IN);//将引脚初始化为输入
            mInputGpio.setActiveType(Gpio.ACTIVE_HIGH);//设置收到高电压是有效的结果
            //注册状态更改监听类型 EDGE_NONE(无更改,默认)EDGE_RISING(从低到高)EDGE_FALLING(从高到低)
            mInputGpio.setEdgeTriggerType(Gpio.EDGE_BOTH);
            mInputGpio.registerGpioCallback(mGpioCallback);//注册回调
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private GpioCallback mGpioCallback = new GpioCallback() {
        @Override
        public boolean onGpioEdge(Gpio gpio) {
            try {
                if (gpio.getValue()) {
                    Log.e("有人来了", gpio.getValue() + ":1111111111111");
                } else {
                    Log.e("没有人", gpio.getValue() + ":222222222222");
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return true;
        }

        @Override
        public void onGpioError(Gpio gpio, int error) {
            super.onGpioError(gpio, error);
        }
    };

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mInputGpio != null) {
            try {
                mInputGpio.close();
            } catch (IOException e) {
                Log.w(TAG, "Unable to close mEchoGpio", e);
            } finally {
                mInputGpio = null;
            }
        }
        mInputGpio.unregisterGpioCallback(mGpioCallback);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容