Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.37 KB | None | 0 0
  1. import RPi.GPIO as GPIO
  2. import time
  3. from picamera import PiCamera
  4. from time import sleep
  5. from datetime import datetime
  6. import os
  7. import sys
  8. import email
  9. from email.MIMEMultipart import MIMEMultipart
  10. from email.MIMEText import MIMEText
  11. from email.MIMEBase import MIMEBase
  12. from email import encoders
  13. import smtplib
  14. import glob
  15.  
  16. GPIO.setwarnings(False)
  17. GPIO.setmode(GPIO.BOARD)
  18.  
  19. servo_1 = 16
  20. servo_2 = 18
  21. motion_1 = 11 #left side dc=12.5
  22. motion_2 = 13 #middle dc = 7.5
  23. motion_3 = 15 #right dc= 2.5
  24.  
  25.  
  26. GPIO.setup(motion_1, GPIO.IN) #motion sensor
  27. GPIO.setup(motion_2, GPIO.IN) #motion sensor
  28. GPIO.setup(motion_3, GPIO.IN) #motion sensor
  29.  
  30. camera = PiCamera()
  31.  
  32. def whereToMove(turnTo):
  33.     GPIO.setup(servo_1, GPIO.OUT) #servo begins
  34.     defPWM = GPIO.PWM(servo_1, 50)
  35.     defPWM.start(0)
  36.     time.sleep(.01)
  37.     defPWM.ChangeDutyCycle(7.5)
  38.     print('set')
  39.     time.sleep(.2)
  40.  
  41.     if (turnTo == 0):
  42.         defPWM.ChangeDutyCycle(2.5)
  43.     print('right')
  44.         time.sleep(5)
  45.     if (turnTo == 1): #middle
  46.     print('middle')
  47.         time.sleep(5)
  48.     if (turnTo==2):
  49.         defPWM.ChangeDutyCycle(12.5)
  50.     print('left')
  51.         time.sleep(5)
  52.  
  53. def Camera():
  54.  
  55.     h264_Vid = '.h264'
  56.     mp4_video = '.mp4'
  57.     vid_Name = datetime.now().strftime('%m-%d-%Y_%H.%M.%S')
  58.  
  59.     camera.start_preview()
  60.  
  61.     camera.start_recording('/home/pi/PiFiles/' + vid_Name + h264_Vid)
  62.     sleep(5)
  63.     camera.stop_recording()
  64.  
  65.     camera.stop_preview()
  66.     os.system('MP4Box -add ' + vid_Name + h264_Vid + ' ' + vid_Name + mp4_video)
  67.     os.system('rm ' + vid_Name + h264_Vid)
  68.  
  69. def moveBack():
  70.     GPIO.setup(servo_1, GPIO.OUT) #servo begins
  71.     defPWM = GPIO.PWM(servo_1, 50)
  72.     defPWM.ChangeDutyCycle(7.5)
  73.     time.sleep(1)
  74.  
  75. def sendEmail():
  76.  server = smtplib.SMTP('smtp.gmail.com',587)
  77.  
  78.  i = 0
  79.  mp4files = []
  80.  for file in glob.glob("*.mp4"):
  81.      mp4files.append(file)
  82. #loginInfo
  83.  user = 'tk.compsci10@gmail.com'
  84.  passWord = 'toEasy11'
  85.  
  86. #message
  87.  fromAdd = user
  88.  toAdd = "tk.compsci10@gmail.com"
  89.  msg = MIMEMultipart()
  90.  msg['From'] = fromAdd
  91.  msg['To'] = toAdd
  92.  msg['Subject'] = "Alarm Triggered"
  93.  
  94.  body = "test"
  95.  msg.attach(MIMEText(body, 'plain'))
  96.  
  97. #fileAttachment
  98.  
  99.  attachment = open(mp4files[i], "rb")
  100.  
  101.  part = MIMEBase('application', "octet-stream")
  102.  part.set_payload((attachment).read())
  103.  encoders.encode_base64(part)
  104.  part.add_header('Content-Disposition', "attachment; fileName= %s" % os.path.basename(mp4files[i]))
  105.  msg.attach(part)
  106.  i += 1
  107.  
  108. #sendingEmail
  109.  server.ehlo()
  110.  server.starttls()
  111.  server.ehlo()
  112.  server.login(user, passWord)
  113.  text = msg.as_string()
  114.  server.sendmail(fromAdd, toAdd, text)
  115.  
  116.  server.quit()
  117.  
  118. while True:
  119.  
  120.     num = 0
  121.     whereToMove(1)
  122.  
  123.     if GPIO.input(motion_1):
  124.         motion_1On = 0
  125.         print("motion has been detected")
  126.         whereToMove(motion_1On)
  127.         Camera()
  128.         sendEmail()
  129.         moveBack()
  130.         num += 1
  131.         time.sleep(0.5)
  132.        
  133.     if GPIO.input(motion_2):
  134.         motion_1On = 1
  135.         print("motion has been detected")
  136.         whereToMove(motion_1On)
  137.         Camera()
  138.         sendEmail()
  139.         num += 1
  140.         time.sleep(0.5)
  141.  
  142.     if GPIO.input(motion_3):
  143.         motion_1On = 2
  144.         print("motion has been detected")
  145.         whereToMove(motion_1On)
  146.         Camera()
  147.         sendEmail()
  148.         moveBack()
  149.         num += 1
  150.         time.sleep(0.5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement