气压、湿度、震动开关、声音、红外火焰传感器 | 配合Arduino使用案例

247 阅读2分钟

BMP180 气压传感器

u=2124315203,986560322&fm=253&fmt=auto&app=138&f=JPEG.webp

BMP180 是一种用于测量气压的科学仪器。可以获取到温度、气压、海拔。

先在 arduino ide 中安装依赖

image.png

/**
 **** Arduino 接线 ****
 * Arduino   传感器
 * VCC       5v
 * GND       GND
 * A4        SDA   
 * A5        SCL   
 **********************
 */

#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;

void setup() {
  Serial.begin(9600);  // 串口通信用于输出 log

  if (!bmp.begin()) {
    Serial.println("找不到有效的BMP180传感器,请检查接线!");
    while (1) {}
  }
}

int outputVal = 0;
void loop() {
  Serial.print("温度 = ");
  Serial.print(bmp.readTemperature());
  Serial.println(" *C");

  Serial.print("气压 = ");
  Serial.print(bmp.readPressure());
  Serial.println(" Pa");

  // Calculate altitude assuming 'standard' barometric
  // pressure of 1013.25 millibar = 101325 Pascal
  Serial.print("海拔 = ");
  Serial.print(bmp.readAltitude());
  Serial.println(" 米");

  Serial.print("海平面压力(计算) = ");
  Serial.print(bmp.readSealevelPressure());
  Serial.println(" Pa");
 
  // 如果你知道目前的海平面压力
  // vary with weather and such. If it is 1015 millibars
  // that is equal to 101500 Pascals.
  Serial.print("更精确的海拔 = ");
  Serial.print(bmp.readAltitude(101500));
  Serial.println(" 米");

  Serial.println();
  delay(3000);
}

湿度传感器

u=552171283,3034569333&fm=224&app=112&f=JPEG.jpg

可以拿到温度和湿度的数字信号输出。

先在 arduino ide 中安装依赖

image.png

/**
 **** Arduino 接线 ****
 * Arduino   传感器
 * VCC       5v
 * GND       GND
 * A0        A0   
 **********************
 */
#include <EduIntro.h>
int pin = A0;   
DHT11 dht11(pin); 

int C;   // 整数温度
float F; // 华氏度
int H;   // 整数湿度

void setup() {  
  Serial.begin(9600); // 串口通信用于输出 log  
}
  
void loop() {    
  dht11.update();

  C = dht11.readCelsius();     	 
  F = dht11.readFahrenheit();  	 
  H = dht11.readHumidity();      

  Serial.print("整数湿度: ");
  Serial.print(H);
  Serial.print("\t整数温度: ");
  Serial.print(C);
  Serial.print("\t华氏度: ");
  Serial.println(F);

  delay(5000);            

}

震动开关传感器

u=2062622960,3360028445&fm=253&fmt=auto&app=138&f=JPEG.webp

当你摇晃这个传感器是将会触发引脚输入高电平

/**
 **** Arduino 接线 ****
 * Arduino   传感器
 * VCC       5v
 * GND       GND
 * A0        A0   
 **********************
 */

int pin = A0;   

void setup() {  
  Serial.begin(9600); // 串口通信用于输出 log  
  pinMode(pin, INPUT);
}
 
int val = 0; // 0 || 1(摇晃时)
void loop() {    
  val = digitalRead(pin);
  Serial.println(val);
  delay(300);
}
 

红外火焰传感器

u=2018997998,975497513&fm=253&fmt=auto&app=138&f=JPEG.webp

红外火焰传感器可以检测波长在 700nm - 1000nm 的红外光。可以用来检测火焰。

/**
 **** Arduino 接线 ****
 * Arduino   传感器
 * VCC       5v
 * GND       GND
 * A0        A0   
 **********************
 */

int pin = A0;   

void setup() {  
  Serial.begin(9600); // 串口通信用于输出 log  
  pinMode(pin, INPUT);
}
 
int val = 0; // 检测到火焰是 0, 反之为 1
void loop() {    
  val = digitalRead(pin);
  Serial.println(val);
  delay(300);
}
 

声音传感器

src=http___cbu01.alicdn.com_img_ibank_2020_171_352_18104253171_367382936.jpg&refer=http___cbu01.alicdn.webp

用于检测周围声音的强度

/**
 **** Arduino 接线 ****
 * Arduino   传感器
 * VCC       5v
 * GND       GND
 * A0        A0   
 **********************
 */

int pin = A0; // 0 - 1024

void setup() {  
  Serial.begin(9600); // 串口通信用于输出 log  
}
 
int outputVal = 0;
void loop() {    
  outputVal = analogRead(pin);
  Serial.println(outputVal);
}