Loading...
Vietnam Geography App
Loading...
Vietnam Geography App
Khám phá bí mật của môi trường xung quanh qua các cảm biến hiện đại! Đo nhiệt độ, độ ẩm, ánh sáng, chuyển động... và biến dữ liệu thành giải pháp thông minh cho nhà ở, nông nghiệp, an ninh.
Cảm biến digital chính xác cao, đo nhiệt độ (-40 đến +80°C) và độ ẩm (0-100%)
dht.readTemperature()
dht.readHumidity()
Light Dependent Resistor, điện trở thay đổi theo cường độ ánh sáng
analogRead(LDR_PIN)
map(value, 0, 1023, 0, 100)
Passive Infrared sensor, phát hiện chuyển động qua thay đổi nhiệt độ
digitalRead(PIR_PIN)
if (motion == HIGH)
Đo khoảng cách từ 2cm đến 400cm bằng sóng siêu âm
pulseIn(echoPin, HIGH)
distance = duration * 0.034/2
/*
Multi-Sensor System
Đọc nhiệt độ, độ ẩm và ánh sáng
*/
#include <DHT.h>
#define DHT_PIN 2
#define DHT_TYPE DHT22
#define LDR_PIN A0
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
dht.begin();
Serial.println("Multi-Sensor System Started");
}
void loop() {
// Đọc nhiệt độ và độ ẩm
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Đọc cường độ ánh sáng
int lightLevel = analogRead(LDR_PIN);
int lightPercent = map(lightLevel, 0, 1023, 0, 100);
// Kiểm tra lỗi sensor
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Error reading DHT sensor!");
return;
}
// Hiển thị dữ liệu
Serial.println("=== Sensor Readings ===");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println("°C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println("%");
Serial.print("Light Level: ");
Serial.print(lightPercent);
Serial.println("%");
Serial.println();
delay(2000);
}
Tạo hệ thống cảnh báo khi nhiệt độ vượt ngưỡng
#include <DHT.h>
#define DHT_PIN 2
#define LED_PIN 13
#define BUZZER_PIN 8
#define TEMP_THRESHOLD 30.0
DHT dht(DHT_PIN, DHT22);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
float temperature = dht.readTemperature();
if (!isnan(temperature)) {
Serial.print("Temperature: ");
Serial.println(temperature);
if (temperature > TEMP_THRESHOLD) {
// Cảnh báo
digitalWrite(LED_PIN, HIGH);
tone(BUZZER_PIN, 1000, 500);
Serial.println("WARNING: High temperature!");
} else {
digitalWrite(LED_PIN, LOW);
}
}
delay(1000);
}
LED và buzzer báo động khi nhiệt độ > 30°C
Đèn tự động bật/tắt theo ánh sáng và chuyển động
#define LDR_PIN A0
#define PIR_PIN 3
#define LED_PIN 9
#define LIGHT_THRESHOLD 300
#define AUTO_OFF_TIME 10000 // 10 seconds
int lightLevel = 0;
bool motionDetected = false;
unsigned long lastMotionTime = 0;
bool ledState = false;
void setup() {
Serial.begin(9600);
pinMode(PIR_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
Serial.println("Smart Lighting System Ready");
}
void loop() {
lightLevel = analogRead(LDR_PIN);
motionDetected = digitalRead(PIR_PIN);
if (motionDetected) {
lastMotionTime = millis();
Serial.println("Motion detected!");
}
// Logic điều khiển đèn
if (lightLevel < LIGHT_THRESHOLD &&
(millis() - lastMotionTime) < AUTO_OFF_TIME) {
if (!ledState) {
digitalWrite(LED_PIN, HIGH);
ledState = true;
Serial.println("LED ON - Dark + Motion");
}
} else {
if (ledState) {
digitalWrite(LED_PIN, LOW);
ledState = false;
Serial.println("LED OFF");
}
}
delay(100);
}
LED tự động bật khi tối và có chuyển động, tự tắt sau 10s