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

BosskingSvB10

Ehrenmitglied
Themen-Ersteller
Com. Redakteur
Jun 1, 2019
10.737
5.052
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)
 

TheSupercomputer

Administrator
Mitarbeiter
Nov 3, 2018
12.672
10.308
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

BosskingSvB10

Ehrenmitglied
Themen-Ersteller
Com. Redakteur
Jun 1, 2019
10.737
5.052
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:

TheSupercomputer

Administrator
Mitarbeiter
Nov 3, 2018
12.672
10.308
Du, im Groben habe ich verstanden was dein Code da macht, jedoch habe ich keine Ahnung ob er dazu auch in der Lage ist. ^
 

TheSupercomputer

Administrator
Mitarbeiter
Nov 3, 2018
12.672
10.308
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