Arduino 代码:电池供电环境监测与控制系统
// 引入所需库 #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h>
// 定义芯片所需直流电源引脚和开关引脚 const int VCC_PIN = 3; const int SWITCH_PIN = 4;
// 定义环境传感器引脚和实例 const int LIGHT_SENSOR_PIN = A0; Adafruit_BME280 bme;
// 定义照明和风扇引脚 const int LIGHT_PIN = 5; const int FAN_PIN = 6;
// 定义环境参数阈值和实例 float light_threshold = 500; float temp_threshold = 25; float humidity_threshold = 50; float light_value, temp_value, humidity_value;
void setup() { // 初始化串口 Serial.begin(9600);
// 初始化电源和开关引脚 pinMode(VCC_PIN, OUTPUT); pinMode(SWITCH_PIN, INPUT);
// 初始化环境传感器 bme.begin(0x76);
// 初始化照明和风扇引脚 pinMode(LIGHT_PIN, OUTPUT); pinMode(FAN_PIN, OUTPUT); }
void loop() { // 打开电源 digitalWrite(VCC_PIN, HIGH);
// 检测开关状态,控制通断 if (digitalRead(SWITCH_PIN) == HIGH) { // 获取环境亮度、温度和湿度值 light_value = analogRead(LIGHT_SENSOR_PIN); temp_value = bme.readTemperature(); humidity_value = bme.readHumidity();
// 显示环境参数值
Serial.print('Light: ');
Serial.print(light_value);
Serial.print(' lux, Temp: ');
Serial.print(temp_value);
Serial.print(' *C, Humidity: ');
Serial.print(humidity_value);
Serial.println(' %');
// 检测环境参数是否超过阈值
if (light_value > light_threshold) {
digitalWrite(LIGHT_PIN, HIGH);
} else {
digitalWrite(LIGHT_PIN, LOW);
}
if (temp_value > temp_threshold || humidity_value > humidity_threshold) {
digitalWrite(FAN_PIN, HIGH);
} else {
digitalWrite(FAN_PIN, LOW);
}
}
// 关闭电源 digitalWrite(VCC_PIN, LOW);
// 延迟一段时间 delay(1000); }
// 代码功能说明: // 1. 初始化:引入所需库,定义引脚和实例,初始化串口、电源、开关、传感器和执行器。 // 2. 主循环:打开电源,检测开关状态,获取环境参数,显示参数值,根据阈值控制照明和风扇,关闭电源,延迟一段时间。
原文地址: http://www.cveoy.top/t/topic/oN2n 著作权归作者所有。请勿转载和采集!