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!
3.1.2 Willkommen¶
Einführung¶
In diesem Projekt werden wir PIR verwenden, um die Bewegung von Fußgängern zu erfassen und mit Servos, LEDs und Summer die Funktion einer Sensorschutztür eines Convenience-Stores zu simulieren. Wenn ein Fußgänger im Erfassungsbereich des PIR erscheint, leuchtet die Kontrolllampe auf, die Tür öffnet sich und der Summer gibt das Öffnungssignal wieder.
Benötigte Komponenten¶
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist sicherlich praktisch, ein komplettes Set zu kaufen. Hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
---|---|---|
Raphael Kit |
337 |
Sie können diese auch separat über die unten stehenden Links kaufen.
KOMPONENTENVORSTELLUNG |
KAUF-LINK |
---|---|
- |
|
Schaltplan¶
T-Board Name |
physical |
wiringPi |
BCM |
GPIO18 |
Pin 12 |
1 |
18 |
GPIO17 |
Pin 11 |
0 |
17 |
GPIO27 |
Pin 13 |
2 |
27 |
GPIO22 |
Pin 15 |
3 |
22 |
Experimentelle Verfahren¶
Schritt 1: Bauen Sie den Schaltkreis.
Schritt 2: Wechseln Sie das Verzeichnis.
cd ~/raphael-kit/c/3.1.2/
Schritt 3: Kompilieren.
gcc 3.1.2_Welcome.c -lwiringPi
Schritt 4: Starten.
sudo ./a.out
Nachdem der Code ausgeführt wurde und der PIR-Sensor jemanden erkennt, der vorbeigeht, wird die Tür automatisch geöffnet (simuliert durch den Servo), die Anzeige eingeschaltet und die Türklingel-Musik abgespielt. Nachdem die Türklingelmusik gespielt wurde, schließt das System automatisch die Tür, schaltet die Anzeige aus und wartet auf das nächste Vorbeigehen einer Person.
Am PIR-Modul befinden sich zwei Potentiometer: eines zur Einstellung der Empfindlichkeit und eines zur Einstellung der Erfassungsentfernung. Damit das PIR-Modul optimal funktioniert, müssen Sie beide im Uhrzeigersinn bis zum Anschlag drehen.
Bemerkung
Wenn es nach dem Starten nicht funktioniert oder eine Fehlermeldung angezeigt wird: "wiringPi.h: Datei oder Verzeichnis nicht gefunden", beziehen Sie sich bitte auf Installieren und Überprüfen von WiringPi.
Code Erklärung
void setAngle(int pin, int angle){ //Create a funtion to control the angle of the servo.
if(angle < 0)
angle = 0;
if(angle > 180)
angle = 180;
softPwmWrite(pin,Map(angle, 0, 180, 5, 25));
}
Erstellen Sie eine Funktion namens setAngle, um den Winkel des Servos im Bereich von 0 bis 180 Grad zu definieren.
void doorbell(){
for(int i=0;i<sizeof(song)/4;i++){
softToneWrite(BuzPin, song[i]);
delay(beat[i] * 250);
}
Erstellen Sie eine Funktion namens doorbell, um den Summer Musik spielen zu lassen.
void closedoor(){
digitalWrite(ledPin, LOW); //led off
for(int i=180;i>-1;i--){ //make servo rotate from maximum angle to minimum angle
setAngle(servoPin,i);
delay(1);
}
}
Erstellen Sie eine Funktion namens closedoor, die das Schließen der Tür simuliert, die LED ausschaltet und den Servo von 180 Grad auf 0 Grad dreht.
void opendoor(){
digitalWrite(ledPin, HIGH); //led on
for(int i=0;i<181;i++){ //make servo rotate from minimum angle to maximum angle
setAngle(servoPin,i);
delay(1);
}
doorbell();
closedoor();
}
Die Funktion opendoor() beinhaltet mehrere Teile: das Einschalten der Kontrollleuchte, das Drehen des Servos (simuliert das Öffnen der Tür), das Abspielen der Türklingelmusik des Convenience-Stores und das Aufrufen der Funktion closedoor() nach dem Abspielen der Musik.
int main(void)
{
if(wiringPiSetup() == -1){ //when initialize wiring failed,print message to screen
printf("setup wiringPi failed !");
return 1;
}
if(softToneCreate(BuzPin) == -1){
printf("setup softTone failed !");
return 1;
......
In der Funktion main() wird die Bibliothek wiringPi initialisiert und softTone eingerichtet. Dann wird ledPin auf den Ausgabezustand und pirPin auf den Eingabezustand gesetzt. Wenn der PIR-Sensor jemanden erkennt, der vorbeigeht, wird die Funktion opendoor aufgerufen, um das Öffnen der Tür zu simulieren.