// STM32 Blue Pill + PIR + HC-SR04 + Sound Sensor
// -------- Pin Definitions --------
#define PIR_PIN PA5
#define TRIG_PIN PA1
#define ECHO_PIN PA2
#define SOUND_PIN PB0
// Optional external LED
#define LED_PIN PC13
void setup()
{
Serial.begin(115200);
pinMode(PIR_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(SOUND_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(TRIG_PIN, LOW);
Serial.println("System Started");
}
void loop()
{
// =========================
// 1. PIR SENSOR
// =========================
int motion = digitalRead(PIR_PIN);
if (motion == HIGH)
{
Serial.println("Motion Detected!");
// Blue Pill onboard LED is active LOW
digitalWrite(LED_PIN, LOW);
}
else
{
Serial.println("No Motion");
digitalWrite(LED_PIN, HIGH);
}
// =========================
// 2. HC-SR04
// =========================
// Send trigger pulse
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Read echo
long duration = pulseIn(ECHO_PIN, HIGH, 30000);
float distance = duration * 0.0343 / 2;
if (duration == 0)
{
Serial.println("Distance: Out of range");
}
else
{
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
// =========================
// 3. SOUND SENSOR
// =========================
int sound = digitalRead(SOUND_PIN);
if (sound == HIGH)
{
Serial.println("Sound Detected!");
}
else
{
Serial.println("No Sound");
}
// =========================
// Small delay
// =========================
delay(500);
}Loading
stm32-bluepill
stm32-bluepill