[PYTHON] Stellen Sie ein Überwachungsgerät mit einem Infrarotsensor her

Einführung

Bitte bereiten Sie die folgenden Punkte vor [Infrarotsensor](https://www.amazon.co.jp/SODIAL-R-267-%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3% 83% AB% E7% 84% A6% E9% 9B% BB% E5% 9E% 8B% E8% B5% A4% E5% A4% 96% E7% B7% 9A% E6% A4% 9C% E5% 87% BA% E5% 99% A8PIR% E3% 83% A2% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3 / dp / B00L11K4RQ? E = UTF8 & ref_ = pe_1095802_173146692) Himbeerkuchen und verwandte Produkte [Code](https://www.amazon.co.jp/%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%82%B5%E3%82 % A4% E3% 82% A8% E3% 83% B3% E3% 82% B9-SFE-PRT-08430-% E3% 82% B8% E3% 83% A3% E3% 83% B3% E3% 83% 91% E3% 83% AF% E3% 82% A4% E3% 83% A4-% E3% 83% A1% E3% 82% B9% EF% BD% 9E% E3% 83% A1% E3% 82% B9 -10% E6% 9C% AC% E3% 82% BB% E3% 83% 83% E3% 83% 88 / dp / B0079AXJ0W? Ie = UTF8 & ref_ = pe_1095802_173146692)

Verbindung

abc.png

sensor raspbery pi
VCC 5V
OUT GPIO25:22
GND GND:25

Befehl

pi@raspberrypi:~$ sudo su
root@raspberrypi:/home/pi# 

Da GPIO 25 Pins verwendet, exportieren Sie GPIO25 in den Benutzerbereich. Wenn Sie dies nicht tun, können Sie nicht auf GPIO zugreifen.

root@raspberrypi:/home/pi# echo 25 > /sys/class/gpio/export

Wenn Sie mit dem Befehl echo in die Exportdatei im Verzeichnis / sys / class / gpio schreiben, wird ein neues Verzeichnis mit dem Namen / sys / class / gpio / gpio25 erstellt, das die zur Steuerung von GPIO erforderlichen virtuellen Dateien bereitstellt. Dieses Mal wird die Eingabe vom Sensor beurteilt, also in der Richtungsdatei eingestellt.

root@raspberrypi:/home/pi# cd /sys/class/gpio/gpio25
root@raspberrypi:/sys/class/gpio/gpio25# echo in > direction

Wenn der Sensor antwortet, wird 1 in die Wertedatei geschrieben, und wenn keine Antwort erfolgt, wird 0 geschrieben. Wenn der Sensor reagiert und der folgende Befehl ausgeführt wird, wird 1 in den Wert geschrieben und der Vorgang kann bestätigt werden.

root@raspberrypi:/sys/class/gpio/gpio25# cat value
1

Skripterstellung

Was diesmal zu machen ・ Senden Sie eine E-Mail, wenn der Infrarotsensor reagiert

sudo nano sensor_push.py

sensor_push.py


#!/usr/bin/env python
#-*- coding: utf-8 -*-

import time
import RPi.GPIO as GPIO
import os.path
import datetime
import smtplib
from email import Encoders
from email.Utils import formatdate
from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

INTAVAL = 3
SLEEPTIME = 5
SENSOR_PIN = 25

#Google Mail-Konto
ADDRESS = "Google Mail-Adresse"
PASSWARD = "Google Mail-Passwort"

GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)

st = time.time()-INTAVAL

while True:
  print GPIO.input(SENSOR_PIN)
  if(GPIO.input(SENSOR_PIN) == GPIO.HIGH) and (st + INTAVAL < time.time()):
    st = time.time()
    print("Eine Person entdeckt")
 
    def create_message(from_addr, to_addr, subject, body, mime=None, attach_file=None):
        
        msg = MIMEMultipart()
        msg["From"] = from_addr
        msg["To"] = to_addr
        msg["Date"] = formatdate()
        msg["Subject"] = subject
        body = MIMEText(body)
        msg.attach(body)
 
        #Angehängte Datei
        if mime != None and attach_file != None:
            attachment = MIMEBase(mime['type'],mime['subtype'])
            file = open(attach_file['path'])
            attachment.set_payload(file.read())
            file.close()
            Encoders.encode_base64(attachment)
            msg.attach(attachment)
            attachment.add_header("Content-Disposition","attachment", filename=attach_file['name'])
 
        return msg
 
    def send(from_addr, to_addrs, msg):
  
        smtpobj = smtplib.SMTP(SMTP, PORT)
        smtpobj.ehlo()
        smtpobj.starttls()
        smtpobj.ehlo()
        smtpobj.login(ADDRESS, PASSWARD)
        smtpobj.sendmail(from_addr, to_addrs, msg.as_string())
        smtpobj.close()
 
 
   if __name__ == '__main__':
 
       #Zieladresse
       to_addr = "Zieladresse"
 
       #Subjekt und Körper
       subject = "Thieves!Fire!Murder!"
       body = "Text"
 
       #Angehängte Dateieinstellungen(text.Fügen Sie eine txt-Datei hinzu)
       mime={'type':'text', 'subtype':'comma-separated-values'}
       attach_file={'name':'test.txt', 'path':'./text.txt'}
 
       #Verfassen Sie eine Nachricht(Es gibt eine angehängte Datei)
       #msg = create_message(ADDRESS, to_addr, subject, body, mime, attach_file)
 
       #Nachrichtenzusammensetzung(Keine Anhänge)
       msg = create_message(ADDRESS, to_addr, subject, body)
 
       #Senden
       send(ADDRESS, [to_addr], msg)

    

  time.sleep(SLEEPTIME)

Der Rest

sudo python sensor_push.py

Wird an Sie gesendet (wenn der Infrarotsensor reagiert)

~ Übrigens ~

Das Thema ist "Diebe! Feuer! Mord!"

Postscript

~~ Ich habe den Vorgang bestätigt, wenn Sie ihn also automatisch ausführen möchten ~~

pi@raspberrypi:~$ crontab -e
#
#
@reboot python sensor_push.py
!!Hinweis!!#####

Vor "@ reboot python sensor_push.py"

(Schreiben Sie nicht "# @ reboot python sensor_push.py"!)

Referenz

[* Raspberry Pi *] Es ist Sommer! Lassen Sie die Würmer mit dem menschlichen Sensor klingen [Mail einfach mit Google Mail senden](http://make.bcde.jp/python/gmail%E3%81%A7%E7%B0%A1%E5%8D%98%E3%81%AB%E3%83] % A1% E3% 83% BC% E3% 83% AB% E9% 80% 81% E4% BF% A1 /)

Recommended Posts

Stellen Sie ein Überwachungsgerät mit einem Infrarotsensor her
Erstellen Sie eine GIF-Animation mit Ordnerüberwachung
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
Lassen Sie uns eine GUI mit Python erstellen.
Machen Sie einen Sound mit Jupyter Notebook
Machen wir einen Blockbruch mit wxPython
Erstellen Sie ein Empfehlungssystem mit Python
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Erstellen Sie mit PySide einen Modelliterator
Machen Sie Scrapy exe mit Pyinstaller
Machen Sie eine schöne Grafik mit Plotly
Erstellen Sie einen Audio-Interface-Controller mit pyusb (2).
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
Geräteüberwachung durch On-Box Python von IOS-XE
Erstellen Sie einen Audio-Interface-Controller mit pyusb (1).
Machen Sie einen seltenen Gacha-Simulator mit Flask
Ich habe mit TWE-Lite-2525A einen Öffnungs- / Schließsensor (Twitter-Link) erstellt
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Machen Sie mit matplotlib eine teilweise gezoomte Figur
Machen Sie ein Zeichnungsquiz mit kivy + PyTorch
Lassen Sie uns mit Python langsam sprechen
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Machen Sie eine Logikschaltung mit Perceptron (Multilayer Perceptron)
Machen Sie Ja Nein Popup mit Kivy
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Erstellen Sie ein Webframework mit Python! (1)
Bedienen Sie das Oszilloskop mit dem Raspberry Pi
Machen wir mit Pylearn 2 eine dreiäugige KI
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Lassen Sie uns mit Flask eine Webanwendung zur Konvertierung von A nach B erstellen! Von Grund auf neu ...
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (11)
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (8)
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (1)
Machen Sie Twitter Trend Bot mit Heroku + Python
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (4)
Erstellen Sie mit Flask einen einfachen Punktbildgenerator
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (7)
Ich möchte ein Spiel mit Python machen
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (2)
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (3)
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (6)
Versuchen Sie, mit Python eine Diedergruppe zu bilden
[Chat De Tornado] Erstellen Sie einen Chat mit WebSocket in Tornado
Machen Sie Urlaubsdaten mit Pandas zu einem Datenrahmen
Erstellen Sie mit Amazon Lex einen LINE WORKS-Bot
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (5)
So erstellen Sie einen eingebetteten Linux-Gerätetreiber (10)