物联网传感器简介及如何连接到Arduino及Raspberry Pi

物联网是当今最重要和最有前途的技术主题之一。 一些市场研究人员估计,有超过200亿个连接设备,并且还在不断增加。

在我们周围,有智能手机,可穿戴设备和其他设备,所有这些都使用传感器。 如今,传感器在我们的日常生活和物联网中扮演着重要的角色。

传感器监视我们的健康状况(例如心跳),空气质量,家庭安全,并且广泛用于工业物联网(IIoT)中以监视生产过程。 由于这些原因,重要的是要了解它们如何工作以及我们如何使用它们来获取信息。

什么是传感器?

一般来说,传感器是一种能够检测环境变化的设备。 传感器本身是无用的,但是当我们在电子系统中使用它时,它起着关键的作用。 传感器能够测量物理现象(例如温度,压力等)并将其转换为电信号。 这三个功能应该是好的传感器的基础:

  • 它应该对所测量的现象敏感
  • 它不应对其他物理现象敏感
  • 在测量过程中不应修改所测量的现象

我们可以利用各种各样的传感器来测量我们周围几乎所有的物理性质。 在日常生活中广泛采用的一些常见传感器包括温度计,压力传感器,光传感器,加速度计,陀螺仪,运动传感器,气体传感器等等。 可以使用几种属性来描述传感器,最重要的是:

范围:传感器可以测量的现象的最大值和最小值。

灵敏度:导致输出信号可检测变化的被测参数的最小变化。

解决方法:传感器可以检测到的现象的最小变化。

传感器分类

可以使用以下几个标准对传感器进行分组:

  • 被动或主动。 无源传感器不需要外部电源即可监视环境,而有源传感器则需要这种电源才能正常工作。
  • 另一种分类是基于用于检测和测量特性(机械,化学等)的方法。
  • 模拟和数字。 模拟传感器产生模拟或连续信号,而数字传感器产生离散信号。

还有其他将传感器分组的方法,但是上面显示的分类是最简单的。

如何在物联网中使用传感器

原型板的开发和传感器的低价使我们能够轻松地在物联网项目中使用它们。 市场上有几种原型板,取决于功能和规格,适合于不同的项目。 在这种情况下,我们将考虑两种最受欢迎的板卡:Arduino Uno和Raspberry Pi 2。

本文将探讨如何将不同的传感器连接到这些板上以及如何与它们交互。

在深入探讨如何在这些板上使用传感器的细节之前,必须注意每个传感器都有其自己的工作电压范围。 该参数非常重要,因为电路板提供的电压不得高于传感器允许的最大电压。 因此,在将传感器数据表连接到板上之前,请务必仔细阅读传感器数据表,以免造成损坏,这一点很重要。 对于输出信号,必须使用相同的原理,该信号必须低于电路板可以承受的最大电压。

如何将Arduino与传感器配合使用

第一个也是最受欢迎的开发板是Arduino Uno。 它是基于ATmega328P的微控制器板。 它非常易于使用,并且是一个很好的起点。 该评估板提供6个模拟和14个数字引脚。 它非常适合与模拟和数字传感器一起使用。

如何使用Arduino测量温度

最简单的启动方法是将模拟传感器连接到Arduino。 如前所述,模拟传感器是提供连续信号的传感器。 对于第一个基本示例,我们将连接一个简单的温度传感器TMP36。

有关更多信息,请参阅传感器数据表。 一般而言,此传感器的输出电压与环境温度成正比。 Arduino提供了几个标有“ A”的模拟输入引脚,适用于接收来自传感器的模拟信号。 以下架构描述了如何连接传感器:

示例图片1
示例图片1

读取温度的代码非常简单:

const int tempSensorPin = A1;
void setup() {
    Serial.begin(9600);
}
void loop() {
    int pinValue = analogRead(tempSensorPin);
    Serial.println("Pin value: " + String(pinValue));
    float voltage = (pinValue / 1024.0) * 5.0;
    Serial.println("Voltage: " + String(voltage));
    float temperature = (voltage - 0.5) * 100; // °C
    Serial.println("Temperature: " + String(temperature)
    );
    delay(5000);
}

如何使用Arduino测量温度和湿度

现在是时候将数字传感器连接到Arduino了。 有几种可用的数字传感器,但是为了简单起见,我们将考虑一个称为DHT11的通用数字传感器。 该传感器测量温度和湿度。

这是一种非常便宜的传感器,提供数字输出。 在这种情况下,传感器数据引脚必须连接到数字Arduino引脚,如下所示:

传感器
传感器

代码很简单。 即使我们可以解析数字信号并读取温度和湿度,我们仍将使用一个库来简化开发。 该库可在Arduino IDE的Sketch->Include library菜单项中找到。

#include "DHT.h"
#define PIN 8
#define DHTTYPE DHT11 // sensor type
DHT dht(PIN, DHTTYPE);
void setup() {
    Serial.begin(9600);
}
void loop() {
    int temp = dht.readTemperature();
    int hum = dht.readHumidity();
    Serial.println("Temperature: " + String(temp));
    Serial.println("Humidity: " + String(hum));
    delay(5000);
}

运行上面的代码,Arduino将每5秒记录一次温度和湿度。

如何连接I2C传感器

I2C传感器是用于将外围设备连接到微处理器的串行总线。 它被广泛使用,并且需要四个不同的引脚:

  • Vin
  • 地线
  • CLK(时钟)
  • SDA(数据)

为了用Arduino实验I2C传感器,我们将分析BMP280 / BME280传感器。 除其他特性外,该传感器还测量气压。 下图显示了如何将BMP280连接到Arduino:

BMP280连接Arduino
BMP280连接Arduino

如您所见,有四个不同的连接。 相同的连接可以与BME280一起使用。 不要忘记将传感器的CLK引脚连接到Arduino CLK并将SDA引脚(数据)连接到Arduino SDA。 此外,SDO引脚不能悬空,因此应将其接地。 读取压力的源代码如下所示:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
//BMP280
Adafruit_BMP280 bmp;
void setup() {
    Serial.begin(9600);
    if (!bmp.begin()) {
        Serial.println("Could not find a valid BMP280
        sensor, check wiring!");
        while (1);
    }
}
void loop() {
    float pressure = bmp.readPressure();
    Serial.println("Pressure: " + String(pressure));
    delay(5000);
}

在运行上面的代码之前,您必须导入一个库来处理传感器,如前面的示例中所述。

如何在Raspberry Pi中使用传感器

Raspberry Pi是由Raspberry Pi Foundation开发的单板计算机。 有几种版本的Raspberry Pi具有不同的规格,但是它们都有基于Linux的自己的操作系统。

它与PC相似,因为它支持视频输出,USB端口和键盘。 它是一个非常强大的电路板,下面的示例仅显示了其功能的一小部分。

如何使用运动传感器

为了监视运动,我们将使用PIR传感器,该传感器代表无源红外。 它使用红外传感器检测温暖物体发出的低水平辐射。 简而言之,当辐射水平发生变化时,就意味着一个温暖的物体正在进入其检测区域。 该传感器使用一个数字引脚,当检测到运动时该引脚会变低(或变高)。

下面的架构显示了如何将传感器连接到Raspberry Pi。 如果使用其他PIR版本或其他Raspberry Pi开发板,则连接可能会更改:

传感器连接到Raspberry Pi
传感器连接到Raspberry Pi

Python代码如下所示:

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
sensorPin = 7
GPIO.setup(sensorPin, GPIO.IN)
while True:
if GPIO.input(sensorPIN) == GPIO.LOW:
print "Motion detected"
else:
print "No motion"
time.sleep(0.5)

当PIR检测到运动时,此简单的应用程序将记录“检测到运动”。

如何检测气体

另一个有趣的传感器是MQ-4传感器。 MQ-4对天然气具有很高的敏感性。 它可以快速响应,并且非常易于使用。

传感器和Raspberry Pi之间的连接与PIR示例中的连接相同。 确保使用传感器的数字引脚,并确保输出电压必须低于3V。 如果传感器的输出大于3V,则必须使用逻辑电平转换器。 使用MQ-4的代码与前面的示例相同。

总结

在本教程的最后,我们学习了如何使用不同类型的传感器,以及如何将它们连接到两个最受欢迎的原型开发板上。 可以将相同的传感器用于不同的板。 一旦您知道如何从传感器读取数据,您将拥有无穷的可能性,并且已准备好探索物联网。 您可以通过将传感器中的数据存储在云中并稍后使用它来创建仪表板来使用它们。

SO资源郑重声明:
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3187589@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!

SO资源 » 物联网传感器简介及如何连接到Arduino及Raspberry Pi