Wenn Sie sehen möchten, wie die Dinge, die Sie diesmal machen, funktionieren, lesen Sie bitte hier (Youtube-Video).
Rufen Sie zunächst die Site der Google Cloud-Plattform auf und drücken Sie auf die API und die Servicebibliothek. Scrollen Sie dann nach unten, um die Google Mail-API zu finden, und drücken Sie darauf. Drücken Sie dann Aktivieren. Wenn sich der Bildschirm ändert, drücken Sie auf die Zusammenfassung des Bildschirms in der Liste im linken Menü. Wenn sich der Bildschirm ändert, klicken Sie ganz rechts auf Anmeldeinformationen erstellen. Geben Sie dann wie im Bild gezeigt ein und drücken Sie die erforderlichen Authentifizierungsinformationen unten. Wenn Sie dies ebenfalls eingegeben haben, klicken Sie auf OAuth-Client-ID erstellen. Es ist egal, wie der Name ist. Ohne jedoch Fertig zu drücken, Drücken Sie auf den Download-Bereich. Dadurch wird eine Datei mit dem Namen client_id.json im aktuellen Verzeichnis erstellt.
pip install --upgrade google-api-python-client
pip install requests
pip install httplib2
Da ich dieses Mal Python3.6 verwende, wenn Sie Python3.7 usw. verwenden und es nicht funktioniert, installieren Sie es bitte mit pip3.
Gehen Sie zur Line Developers-Site und klicken Sie im obigen Menü auf Dokumente. Scrollen Sie nach unten und drücken Sie Line Notify. Wenn sich die Seite ändert und Sie sich anmelden, drücken Sie Meine Seite. Drücken Sie dann Token erstellen. Dann werden Sie nach einem Namen gefragt, der jedoch erst am Anfang der Gesprächsnachricht steht, sodass alles in Ordnung ist. Dann wird das Token angezeigt, also kopieren Sie es. Sobald Sie es schließen, können Sie es jedoch nicht mehr sehen. Seien Sie also vorsichtig.
Erstellen Sie die folgende Datei in dem Verzeichnis, in dem sich client_id.json befindet, und führen Sie sie aus.
g_oauth.py
import httplib2, os
from apiclient import discovery
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage
SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'
CLIENT_SECRET_FILE = '/home/igor-bond/Desktop/client_id.json'
USER_SECRET_FILE = '/home/igor-bond/Desktop/credentials_gmail.json'
def gmail_user_auth():
store = Storage(USER_SECRET_FILE)
credentials = store.get()
if not credentials or credentials.invalid:
flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
flow.user_agent = 'Python Gmail API'
credentials = tools.run_flow(flow, store, None)
print('Ich habe das Authentifizierungsergebnis gespeichert:' + USER_SECRET_FILE)
return credentials
Hier wird im selben Verzeichnis auch eine Datei mit dem Namen credentials_gmail.json erstellt, in der auch die Geheimnisse des Benutzers gespeichert sind.
Erstellen Sie diese Datei in demselben Verzeichnis, das Sie bisher erstellt haben. Fügen Sie für Ihr Token das zuvor kopierte Line Notify-Token ein.
gpio.py
import os,httplib2
from apiclient import discovery
import g_oauth
import time
from datetime import datetime
import picamera
import requests
token = 'Your Token'
def gmail_get_service():
credentials = g_oauth.gmail_user_auth()
http = credentials.authorize(httplib2.Http())
service = discovery.build('gmail', 'v1', http=http)
return service
mail_list = []
def gmail_get_messages():
service = gmail_get_service()
messages = service.users().messages()
msg_list = messages.list(userId='me', maxResults=1).execute()
for msg in msg_list['messages']:
topid = msg['id']
msg = messages.get(userId='me', id=topid).execute()
if msg['snippet'] == 'Security Check2':
if not msg['id'] in mail_list:
mail_list.append(msg['id'])
send_msg()
def send_msg():
filename = datetime.now()
with picamera.PiCamera() as camera:
camera.resolution = (1024,768)
camera.capture(str(filename)+'.jpg')
url = 'https://notify-api.line.me/api/notify'
headers = {'Authorization':'Bearer '+token}
data = {"message":"Here is your room."}
img = f'/home/pi/Desktop/RaspberryPi_for_convenient_life/Projeect 1/{filename}.jpg'
file = {'imageFile': open(img, 'rb')}
r = requests.post(url, headers=headers, params=data, files=file,)
run = True
while run:
try:
time.sleep(30)
gmail_get_messages()
except KeyboardInterrupt:
run = False
Hier wird alle 30 Sekunden die E-Mail oben in Google Mail des angemeldeten Benutzers entfernt. Wenn der Inhalt "Sicherheitsüberprüfung2" lautet und die E-Mail nicht mit demselben Inhalt verarbeitet wurde, machen Sie ein Bild mit Raspeye und LineNotify. Komm zu mir. Das ist. Ich habe es noch nicht implementiert, aber ich denke, es ist notwendig, das Foto nach dem Senden zu löschen. Die Fotos werden sich ansammeln und die Operation wird schwer sein, also ...
Wie man diese einfache Überwachungskamera herstellt, wird auch in Youtube erklärt. Schauen Sie also bitte nach, wenn es Ihnen gefällt. Wenn Sie Fragen haben, verwenden Sie bitte den Kommentarbereich des Videos oder den Kommentarbereich dieses Artikels. Wenn es Ihnen gefällt, abonnieren Sie den Kanal.