Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
Gasleck-Alarm
Dieses Projekt dreht sich um die Simulation eines Gaslecks mittels eines Arduino Uno Boards. Durch die Integration eines MQ-2 Gassensors und einer RGB-LED erfasst die Demonstration fortlaufend die Gaskonzentration. Überschreitet diese einen voreingestellten Grenzwert, wird ein Alarm (Summer) ausgelöst und die RGB-LED leuchtet rot auf. Bleibt die Konzentration unter dem Grenzwert, bleibt der Alarm inaktiv und die LED zeigt Grün. Es ist wichtig zu betonen, dass diese Demonstration rein illustrativ ist und echte Gasleck-Detektionssysteme nicht ersetzen sollte.
1. Schaltungsaufbau
2. Code
Öffnen Sie die Datei
02-Gas_leak_alarm.inoim Verzeichnisultimate-sensor-kit\fun_project\02-Gas_leak_alarmoder kopieren Sie den Code in die Arduino IDE.
3. Code-Erklärung
Das Kernprinzip des Projekts besteht darin, kontinuierlich die Gaskonzentration zu überwachen. Wenn die gemessene Konzentration einen bestimmten Schwellenwert überschreitet, wird der Alarm ausgelöst und die LED wechselt zu Rot. Dies dient als simulierter Warnmechanismus für potenziell gefährliche Zustände. Fällt die Konzentration unter den Schwellenwert, wird der Alarm deaktiviert und die LED wechselt zu Grün, was auf eine sichere Umgebung hinweist.
Konstanten und Variablen definieren
Diese Zeilen deklarieren und initialisieren die Pinnummern für verschiedene Komponenten. Der
sensorPingibt den analogen Pin an, an dem der MQ-2-Gassensor angeschlossen ist.sensorValueist eine Ganzzahl, die den analogen Ausgang des Sensors speichert. DerbuzzerPinkennzeichnet den digitalen Pin für den Summer. Schließlich sindRPinundGPindie Pins für die roten und grünen Kanäle der RGB-LED.// Define the pin numbers for the Gas Sensor const int sensorPin = A0; int sensorValue; // Define the pin number for the buzzer const int buzzerPin = 9; // Define pin numbers for the RGB LED const int RPin = 5; // R channel of RGB LED const int GPin = 6; // G channel of RGB LED
Initialisierung in
setup()Die Funktion
setup()initialisiert die benötigten Einstellungen. Die serielle Kommunikation beginnt mit einer Baudrate von 9600, was die Anzeige der Sensorwerte im Serial Monitor ermöglicht. Die Pins für Summer und RGB-LED werden alsOUTPUTfestgelegt, um Signale an externe Komponenten zu senden.void setup() { Serial.begin(9600); // Start serial communication at 9600 baud rate // Initialize the buzzer and RGB LED pins as output pinMode(buzzerPin, OUTPUT); pinMode(RPin, OUTPUT); pinMode(GPin, OUTPUT); }
Hauptprogrammschleife: Sensorauslesen und Alarm auslösen
Die Funktion
loop()liest kontinuierlich den Ausgang des Gassensors aus. Der Wert wird dann im Serial Monitor zur Beobachtung angezeigt. Je nach Sensorwert können zwei Szenarien eintreten:Überschreitet der Wert 300, wird der Summer mittels
tone()aktiviert und die RGB-LED leuchtet rot.Liegt der Wert unter 300, wird der Summer mit
noTone()stummgeschaltet und die LED leuchtet grün.
Zuletzt wird eine Verzögerung von 50 Millisekunden eingeführt, bevor die nächste Iteration der Schleife beginnt, um die Auslesefrequenz zu regulieren und die CPU-Last zu verringern.
void loop() { // Read the analog value of the gas sensor sensorValue = analogRead(sensorPin); // Print the sensor value to the serial monitor Serial.print("Analog output: "); Serial.println(sensorValue); // If the sensor value exceeds the threshold, trigger the alarm and make the RGB LED red if (sensorValue > 300) { tone(buzzerPin, 500, 300); digitalWrite(GPin, LOW); digitalWrite(RPin, HIGH); } else { // If the sensor value is below the threshold, turn off the alarm and make the RGB LED green noTone(buzzerPin); digitalWrite(RPin, LOW); digitalWrite(GPin, HIGH); } // Wait for 50 milliseconds before the next loop iteration delay(50); }