[PYTHON] Erstellen Sie ein Besuchermeldungssystem mit Raspberry Pi
Überblick
- Als Sprechanlage für Einfamilienhäuser gibt es ein Produkt, das Besucher per E-Mail benachrichtigt.
- Mietwohnungen können nur die mitgelieferte Ausrüstung verwenden und können nicht geändert werden
- Erstellen Sie ein System, das Kamerabilder aufnimmt und diese als Antwort auf einen Anruf per E-Mail sendet
Was vorzubereiten?
- Raspberry Pi3 Model B (4 ist wahrscheinlich in Ordnung)
- Fall für Raspberry Pi
- Kühlkörper für Raspberry Pi
- Raspberry Pi3 Modell B B + kompatibles Netzteil (5V 3.0A)
- GY-30 Digitales Lichtintensitätssensormodul I2C
- Sign Smart Camera Module für Raspberry Pi Camera Module für Raspberry Pi
- Überbrückungskabel weiblich-weiblich
- Schrumpfschlauch
- Bücherstand (100 Yen Shop)
Umgebung
- Richten Sie das Raspberry Pi OS ein und aktivieren Sie I2C
https://www.raspberrypi.org/downloads/
https://www.indoorcorgielec.com/resources/raspberry-pi/raspberry-pi-i2c/
- Sie können Google Mail mit Mutt senden
http://www.tapun.net/raspi/raspberry-pi-ssmtp-mutt
Versammlung
Verbinden Sie Raspberry Pi, optischen Sensor (GY-30) und Kamera wie folgt
- Das Pin-Layout von Raspberry Pi entfällt.
- Installieren Sie einen optischen Sensor auf dem Bildschirm des Interphone (verwenden Sie die Tatsache, dass der Bildschirm beim Anrufen heller wird).
Programmierung
- Schleife mit einer while-Anweisung in Python, und wenn der Wert vom optischen Sensor 200 Lux oder mehr erreicht,
Nehmen Sie ein Bild mit einer Kamera auf und speichern Sie es im JPG-Format (überschreiben Sie es jedes Mal, wenn Sie ein Bild aufnehmen).
- Schreiben Sie das Aufnahmedatum vorübergehend in eine Textdatei
body.txt
(überschreiben Sie es)
- Verwenden Sie Mutt und Google Mail, um eine E-Mail mit dem Datum der Aufnahme im Text "guest.sh" zu senden
- Stellen Sie eine Schlafzeit von 5 Minuten ein (nach einem Anruf mit automatischer Sperre sollten Sie erneut mit der Sprechanlage im Zimmer anrufen).
- Lass
guest.py
automatisch starten, wenn Raspberry Pi startet
Hauptprogramm
/home/pi/guest/guest.py
import smbus
import picamera
import time
import subprocess
bus = smbus.SMBus(1)
addr = 0x23
camera = picamera.PiCamera()
while True:
luxRead = bus.read_i2c_block_data(addr,0x11)
print("Lux: "+str(luxRead[1]* 10))
if int(luxRead[1]* 10) > 200:
camera.capture('/home/pi/guest/image.jpg')
res = subprocess.call("sh /home/pi/guest/guest.sh",shell=True)
time.sleep(300)
time.sleep(1)
Shell-Skript zum Senden von E-Mails
/home/pi/guest/guest.sh
sudo date > /home/pi/guest/body.txt
sudo mutt -s "guest arrived!" [email protected] -a /home/pi/guest/image
.jpg < /home/pi/guest/body.txt
Einstellungen für den automatischen Start
/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
sudo python3 /home/pi/guest/guest.py &
exit 0
wichtiger Punkt
- Die zu erkennende Lichtintensität (Lux) hängt vom Interphone ab. Passen Sie sie daher an.
Bei Typen, die den Bildschirm mit einem Touchpanel aufhellen, aktivieren Sie diese Funktion
- Die Schlafzeit wird durch den Abstand des Raums vom Eingang der automatischen Sperre angepasst
Versuchen Sie es mit
- Da ich Online-Einkäufe stark nutze, ist es praktisch, benachrichtigt zu werden, wenn ein Besucher anwesend ist, wenn ich abwesend bin.
- Ich benutze es seit über anderthalb Jahren, aber es funktioniert stabil.