BMP180 气压传感器
BMP180 是一种用于测量气压的科学仪器。可以获取到温度、气压、海拔。
先在 arduino ide 中安装依赖
/**
**** 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);
}
湿度传感器
可以拿到温度和湿度的数字信号输出。
先在 arduino ide 中安装依赖
/**
**** 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);
}
震动开关传感器
当你摇晃这个传感器是将会触发引脚输入高电平
/**
**** 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);
}
红外火焰传感器
红外火焰传感器可以检测波长在 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);
}
声音传感器
用于检测周围声音的强度
/**
**** 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);
}