Python Alarmanlage mit PIR, LED und Mail(Auf Raspberry Pi)

BosskingSvB10

Ehrenmitglied
Themen-Ersteller
Com. Redakteur
Jun 1, 2019
10.734
5.053
423
20
Moin,
da heute abgabe ist wollte ich mal wissen wie ihr den Code findet:
#IMPORT Part
#IMPORT Part
import RPi.GPIO as GPIO
#Importiert die Pinbelegung des Pi's in GPIO-Zählart
import time
#Importiert die Zeitfunktion
import os
#Importiert eine Funktion für das abspielen des Alarmtons
import smtplib
#Importiert die Mailfunktion
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
#Importiert die Mailfunktionen nach MIME-Standard

#GPIO Part
GPIO.setmode(GPIO.BCM)
#Definiert den Modus der GPIO-Port Zählart
GPIO.setup(20, GPIO.OUT)
#Definition des GPIO-Ausgangspin
SENSOR_PIN = 23
#Legt den GPIO-Pin für den Bewegungssensor fest(nach GPIO-Zählart)
GPIO.setup(SENSOR_PIN, GPIO.IN)

#EMAIL Part
#Definition von 3 Variablen für die Alarm-Mail
email_sender = '[email protected]'
email_receiver = '[email protected]'
subject = 'Alarm ausgelöst'

#Inhaltsangaben für Mail zu Sender, Empfänger und Inhalt
msg = MIMEMultipart()
msg['From'] = email_sender
msg['To'] = email_receiver
msg['Subject']= subject
body = 'Der Raspberry Pi hat einen Alarm ausgelöst!'
msg.attach(MIMEText(body, 'plain'))

text = msg.as_string()

#ALARM Part
def mein_callback(channel):
#Hier wird festgelegt was passiert wenn der Bewegungssensor aktiviert wird
print('Alarm ausgelöst.')
os.system('mpg123 -q /home/pi/Alarmanlage/Alarm.mp3 &')

#Verbindungsaufbau und Senden
connection = smtplib.SMTP('mail.gmx.net', 25)
connection.starttls()
connection.login(email_sender, 'Linusatsasel')
connection.sendmail(email_sender, email_receiver, text )
connection.quit()

print('Mail gesendet!')

#LED Part
print('Alarm-Licht an')

#Schleife mit An- und Ausschalten der LED mit etwas Zeit dazwischen="Blinken"
for i in range(50):
GPIO.output(20, True)
time.sleep(0.2)
GPIO.output(20, False)
time.sleep(0.2)
#GPIO.cleanup()
print('Alarm-Licht aus')
try:
GPIO.add_event_detect(SENSOR_PIN , GPIO.RISING, callback=mein_callback)
while True:
time.sleep(100)
except KeyboardInterrupt:
print ('Alarmanlage wird entschärft. Bitte Warten...')
GPIO.cleanup()
Würde mich freuen wenn z.b. @TheSupercomputer da mal rüber schaut ;)
edit: die Mailadressen sind nicht meine(von wem anders xD)
 
Gibt da wohl cython, jedoch keine Ahnung wie gut das ist.
Mit Convertern hatte ich bisher keine so guten Erfahrungen gemacht. (Java -> C++)
 
  • Gefällt mir!
Reactions: BosskingSvB10
Gibt da wohl cython, jedoch keine Ahnung wie gut das ist.
Mit Convertern hatte ich bisher keine so guten Erfahrungen gemacht. (Java -> C++)
Also, kurz beschrieben:
er soll einen Bewegungssensor(per GPIO am Pi angeschlossen) akustischen Alarm(also nen Alarmton) auslösen lassen, sowie eine LED blinken lassen und eine Mail verschicken. Müsste aus den Kommentaren (mit # gekennzeichnet) ersichtlich sein was was ist ;)
 
Zuletzt bearbeitet:
Du, im Groben habe ich verstanden was dein Code da macht, jedoch habe ich keine Ahnung ob er dazu auch in der Lage ist. ^
 
Naja, ist ja ein recht kleines Projekt, da sollte es nicht all zu viel zum optimieren geben. ^^
Wenn du willst, kann ich dir ja mal via PN mein aktuelles Projekt schicken, was etwas komplexer ist. XD
 
  • Gefällt mir!
Reactions: BosskingSvB10