[PYTHON] Erklären Sie vorsichtig den Prozess der Erstellung einer einfachen Überwachungskamera ohne Server mithilfe von Raspeye, Gmail API und Line API

0. Zuerst

Wenn Sie sehen möchten, wie die Dinge, die Sie diesmal machen, funktionieren, lesen Sie bitte hier (Youtube-Video).

1. Google Mail-Einstellungen

Rufen Sie zunächst die Site der Google Cloud-Plattform auf und drücken Sie auf die API und die Servicebibliothek. 1.png Scrollen Sie dann nach unten, um die Google Mail-API zu finden, und drücken Sie darauf. 2.png Drücken Sie dann Aktivieren. 3.png Wenn sich der Bildschirm ändert, drücken Sie auf die Zusammenfassung des Bildschirms in der Liste im linken Menü. 4.png Wenn sich der Bildschirm ändert, klicken Sie ganz rechts auf Anmeldeinformationen erstellen. 5.png Geben Sie dann wie im Bild gezeigt ein und drücken Sie die erforderlichen Authentifizierungsinformationen unten. 6.png Wenn Sie dies ebenfalls eingegeben haben, klicken Sie auf OAuth-Client-ID erstellen. Es ist egal, wie der Name ist. 7.png Ohne jedoch Fertig zu drücken, 8.png Drücken Sie auf den Download-Bereich. Dadurch wird eine Datei mit dem Namen client_id.json im aktuellen Verzeichnis erstellt. 9.png

2. Laden Sie die gewünschte Bibliothek herunter

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.

3. Line API-Einstellungen

Gehen Sie zur Line Developers-Site und klicken Sie im obigen Menü auf Dokumente. l_2.png Scrollen Sie nach unten und drücken Sie Line Notify. l3.png Wenn sich die Seite ändert und Sie sich anmelden, drücken Sie Meine Seite. l4.png 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. l5.png

4. Google Mail-Authentifizierung

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.

5. Erstellen Sie den Hauptprozess

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 ...

Schließlich

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.

Recommended Posts

Erklären Sie vorsichtig den Prozess der Erstellung einer einfachen Überwachungskamera ohne Server mithilfe von Raspeye, Gmail API und Line API
Erstellen Sie einen Farbsensor mit einem Raspeltorte und einer Kamera
Ein Memorandum bei der Herstellung einer Überwachungskamera mit Raspeye
Erstellen Sie eine WEB-Überwachungskamera mit Raspberry Pi und OpenCV
Holen Sie sich das Wetter mit API und lassen Sie Raspberry Pi sprechen!
Machen Sie einen einfachen CO2-Inkubator mit Raspberry PI und CO2-Sensor (MH-Z14A)
Die Geschichte einer Soundkamera mit Touch Designer und ReSpeaker
Erstellen Sie eine einfache App, die die Fetch-API für Ajax-Anforderungen in Flask enthält, und erklären Sie sie schnell.
Wenn eine Datei im freigegebenen Ordner von Raspberry Pi abgelegt wird, wird der Vorgang ausgeführt.
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Eine Geschichte, bei der ich darüber nachdachte, die Informationen über die Fülle des Parkplatzes anhand des von der Webkamera und Razpai erhaltenen Bildes und durch tiefes Lernen zu ermitteln.
Senden und empfangen Sie Google Mail über die Google Mail-API mit Python
Ich habe versucht, mit OpenCV eine Bewegungserkennungsüberwachungskamera mit einer WEB-Kamera mit Raspberry Pi herzustellen
Erstellen Sie eine Partition und installieren Sie Raspberry Pi OS
Der Prozess, Python-Code objektorientiert zu machen und zu verbessern
Ich habe zum ersten Mal eine Überwachungskamera mit Raspberry PI gemacht.
Die Geschichte des Erstellens einer Datenbank mithilfe der Google Analytics-API
Ich habe Chatbot mit LINE Messaging API und Python erstellt
Ein Programm, das den Servobefehl der Funksteuerung empfängt, den Raspetorte unterbricht und protokolliert.
"2/2" Ich mache eine einfache Webanwendung für den Roboterbetrieb. "Raspberry Pi 3B + und Django Channels"
"1/2" Ich mache eine einfache Webanwendung für den Roboterbetrieb. "Raspberry Pi 3B + und Django Channels"
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Bewerten Sie die Leistung eines einfachen Regressionsmodells mithilfe der LeaveOneOut-Schnittstellenvalidierung
Ich habe Chatbot mit der LINE Messaging API und Python (2) ~ Server ~ erstellt
Finden Sie den Schnittpunkt eines Kreises und einer geraden Linie (Sympymatrix)