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)
sensor | raspbery pi |
---|---|
VCC | 5V |
OUT | GPIO25:22 |
GND | GND:25 |
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
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)
Das Thema ist "Diebe! Feuer! Mord!"
~~ Ich habe den Vorgang bestätigt, wenn Sie ihn also automatisch ausführen möchten ~~
pi@raspberrypi:~$ crontab -e
#
#
@reboot python sensor_push.py
(Schreiben Sie nicht "# @ reboot python sensor_push.py"!)
[* 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