树莓派外设开发之玩传感器

参考:用树莓派玩传感器
作者:LEO-max
发布时间: 2021-02-24 16:30:46
网址:https://blog.csdn.net/zouchengzhi1021/article/details/114026649?spm=1001.2014.3001.5502

接线

VCC -> 1针脚
OUT -> 40针脚
GND -> 6针脚

红外避障传感器

C语言代码:

#include <wiringPi.h>
#include <stdio.h>
#include <sys/time.h>

#define AVOID    29

int main(void)
{

    if (wiringPiSetup() == -1)
    {
        printf("setup wiringPi failed !");
        return 1;
    }

    pinMode(AVOID, INPUT);

    while (1)
    {
        if (digitalRead(AVOID) == 0)
        {
            printf("阻挡\n");
            delay(500);
        }
    }

    return 0;
}

Python代码:

import RPi.GPIO as GPIO
import os
import time

GPIO.setmode(GPIO.BCM) #使用BCM编码方式

GPIO_OUT = 21

GPIO.setup(GPIO_OUT,GPIO.IN)


while True:
    if GPIO.input(GPIO_OUT)==0: #当有障碍物时,传感器输出低电平,所以检测低电平
        print("There has a barrier")
        time.sleep(1)
       # exit(-1)
    #else:

    #print("OK")
    #time.usleep(1000)

GPIO.cleanup()

声音传感器

声音传感器需要调一下电阻来调节传感器对声音的灵敏度

C语言:

#include <stdio.h>
#include <wiringPi.h>

#define PCF       29

int main (void)
{
        int value;
        int count = 0;
        wiringPiSetup ();

        pinMode(PCF,INPUT);
        while(1) 
        {
                if (digitalRead(PCF) != 0)
                {
                        printf("Voice In!! \n");
                        delay(500);
                }
                else{
                        printf("ok\n");
                        delay(500);
                } 
        } 
        return 0;
}        

Python:

#!/usr/bin/python
# encoding:utf-8
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
pin_voice=21
GPIO.setup(pin_voice, GPIO.IN)
try:
    while True:
        status = GPIO.input(pin_voice)
        if status == True:
            print('检测到声音')
        else:
            print('正常')
        time.sleep(0.5)
except KeyboradInterrupt:
    GPIO.cleanup()

配合电灯程序来实现吹灭LED灯操作:

#include <stdio.h>
#include <wiringPi.h>

#define PCF       29
#define LED       9

int main (void)
{
        int value;
        int count = 0;
        wiringPiSetup ();
        // Setup pcf8591 on base pin 120, and address 0x48
        pinMode(PCF,INPUT);
        while(1) // loop forever
        {
                if (digitalRead(PCF) != 0)
                {
                        printf("Voice In!! \n");
                        digitalWrite(LED,LOW);  //低电平灭
                        return 0;
                }
                else{
                        printf("ok\n");
                        digitalWrite(8,HIGH);           //高电平亮
                        delay(500);
                }
        }
        return 0;
}

火焰传感器

Python代码:

#!/usr/bin/python
# encoding:utf-8
import RPi.GPIO as GPIO
import time

pin_fire=21
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_fire, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
try:
    while True:
        status = GPIO.input(pin_fire)
        if status == True:
            print('检测到火')
        else:
            print('未检测到火')
        time.sleep(0.5)
except KeyboradInterrupt:
    GPIO.cleanup()        

C语言:

#include <stdio.h>
#include <wiringPi.h>

#define PCF     29

int main (void)
{
        wiringPiSetup ();
        // Setup pcf8591 on base pin 120, and address 0x48
        pinMode(PCF,INPUT);
        while(1) // loop forever
        {
                if (digitalRead(PCF) != 0)
                {
                        printf("检测到火\n");
                        delay(500);
                }
                else{
                        printf("无火\n");
                        delay(500);
                }
        }
        return 0;
}

烟雾传感器

#!/usr/bin/python
# encoding:utf-8
import RPi.GPIO as GPIO
import time

pin_fire=21
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_fire, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
try:
    while True:
        status = GPIO.input(pin_fire)
        if status == True:
            print('没有检测到烟雾')
        else:
            print('检测到有烟雾')
        time.sleep(0.5)
except KeyboradInterrupt:
    GPIO.cleanup()

超声波测距传感器

#include <wiringPi.h>
#include <stdio.h>
#include <sys/time.h>

#define Trig    29
#define Echo    28

void ultraInit(void)
{
        pinMode(Echo, INPUT);
        pinMode(Trig, OUTPUT);
}

float disMeasure(void)
{
        struct timeval tv1;
        struct timeval tv2;
        long time1, time2;
    float dis;

        digitalWrite(Trig, LOW);
        delayMicroseconds(2);

        digitalWrite(Trig, HIGH);
        delayMicroseconds(10);      //发出超声波脉冲
        digitalWrite(Trig, LOW);

        while(!(digitalRead(Echo) == 1));
        gettimeofday(&tv1, NULL);           //获取当前时间

        while(!(digitalRead(Echo) == 0));
        gettimeofday(&tv2, NULL);           //获取当前时间

        time1 = tv1.tv_sec * 1000000 + tv1.tv_usec;   //微秒级的时间
        time2  = tv2.tv_sec * 1000000 + tv2.tv_usec;

        dis = (float)(time2 - time1) / 1000000 * 34000 / 2;  //求出距离
### 回答1: 树莓派是一款功能强大的微型计算机,而raspberrypi基于传感器开发套件可以帮助我们更好地利用树莓派进行编程。这套开发套件通常包括各种传感器,如温度传感器、湿度传感器、光线传感器、运动传感器等,以及它们所需的电子元件和连接线。 使用raspberrypi基于传感器开发套件,我们可以轻松地将传感器连接到树莓派上,并通过编写代码来获取传感器的数据。这些数据可以用于各种有趣的项目,如温度监测、智能家居系统、环境监测等。 例如,我们可以使用温度传感器来测量环境温度,并根据实时数据来控制风扇或空调的运行。使用光线传感器,我们可以根据光线强度自动调节屏幕亮度或灯光明暗。利用运动传感器,我们可以实现智能安防系统,当有人进入监测区域时,自动触发警报或拍摄照片。 除了这些应用,raspberrypi基于传感器开发套件还可以用于教育和学习编程。它提供了一个实践的平台,让学生能够亲自动手进行实验和项目开发。这样,他们可以通过编程来理解传感器的原理和工作方式,提高他们的动手能力和创造力。 总之,raspberrypi基于传感器开发套件为我们提供了一个丰富多样的编程平台。通过利用树莓派的强大功能以及各种传感器,我们可以开发出各种实用、有趣的项目,并且在学习过程中提高自己的编程能力和创造力。 ### 回答2: RaspberryPi基于传感器开发套件可以让我们更好地使用树莓派进行编程开发树莓派是一款基于Linux系统的单板计算机,它具有丰富的GPIO针脚,可与各种传感器和外部设备连接。 使用传感器开发套件,我们可以利用树莓派的强大功能来与不同的传感器进行交互。例如,我们可以通过连接温湿度传感器来实时监测环境的温度和湿度变化。我们还可以连接光敏传感器来检测光线强度,或连接声音传感器来监测声音的大小。这些传感器可以帮助我们获取各种感知数据,用于各种项目和应用中。 在编程方面,树莓派提供了多种编程语言和开发环境供我们选择,如PythonC语言。我们可以利用树莓派的GPIO库和传感器开发套件,编写程序来控制传感器的输出和读取传感器的数据。例如,我们可以编写一个程序来根据光敏传感器获取到的光线强度来控制LED灯的亮度。 此外,传感器开发套件还可以用于学习机器视觉和人工智能等领域。通过连接摄像头模块,我们可以使用树莓派进行图像识别和目标跟踪等任务。这为我们提供了一个实践和学习机器学习算法的平台。 总的来说,RaspberryPi基于传感器开发套件为我们提供了一个灵活且功能强大的平台,可以让我们玩转树莓派编程。无论是用于科技创作、物联网项目还是学习编程和电子技术,树莓派传感器开发套件都是非常有用的工具。 ### 回答3: Raspberry Pi基于传感器开发套件让我们能够充分利用树莓派的强大功能,进行各种创意编程项目。借助这套开发套件,我们可以轻松地将各种传感器树莓派连接起来,并通过编程控制与其交互。 这个开发套件通常包含了各种常用的传感器模块,比如温度传感器、湿度传感器、光敏传感器等等。我们只需要将这些传感器连接到树莓派的GPIO口,然后基于Python编程语言进行编程,就能够读取传感器的数据,进行各种有趣的操作。 例如,我们可以使用温度传感器监测环境温度,并编写程序将温度数据实时显示在树莓派上。或者,我们可以利用光敏传感器检测光线强度,并通过编写代码控制与光线相关的设备,比如控制LED灯的开启与关闭。 除了基础的传感器树莓派开发套件还包括一些高级功能模块,比如声音传感器、声音放大器、触摸传感器等等。借助这些模块,我们可以进行更加复杂的音乐创作、声控设备开发等项目。 总之,Raspberry Pi基于传感器开发套件为我们提供了一个便捷的方式来学习编程,并将所学应用到实际中。无论是探索物联网、机器人学,还是设计各种有趣的交互装置,这套开发套件都是一个理想的选择。通过动手实践,我们能够深入了解树莓派的强大功能,并培养创造力和解决问题的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行稳方能走远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值