[PYTHON] Expliquez doucement le processus de création d'une simple caméra de surveillance sans serveur à l'aide de Raspeye, de l'API Gmail et de l'API Line

0. Premier

Si vous souhaitez voir comment les choses que vous faites cette fois-ci fonctionneront, veuillez consulter ici (vidéo youtube).

1. Paramètres Gmail

Tout d'abord, accédez au site de la plate-forme Google Cloud et appuyez sur l'API et la bibliothèque de services. 1.png Faites ensuite défiler vers le bas pour trouver l'API Gmail et appuyez dessus. 2.png Appuyez ensuite sur Activer. 3.png Lorsque l'écran change, appuyez sur le résumé de celui dans la liste du menu de gauche. 4.png Lorsque l'écran change, appuyez sur Créer des informations d'identification à l'extrême droite. 5.png Ensuite, entrez comme indiqué dans l'image et appuyez sur les informations d'authentification requises ci-dessous. 6.png Lorsque vous avez également terminé de les saisir, appuyez sur Créer un ID client OAuth. Peu importe le nom. 7.png Pourtant, sans appuyer sur Terminé, 8.png Appuyez sur la zone de téléchargement. Cela créera un fichier appelé client_id.json dans le répertoire courant. 9.png

2. Téléchargez la bibliothèque requise

pip install --upgrade google-api-python-client
pip install requests
pip install httplib2

Puisque j'utilise python3.6 cette fois, si vous utilisez python3.7 etc. et que cela ne fonctionne pas, veuillez installer en utilisant pip3.

3. Paramètres de l'API de ligne

Allez sur le site Line Developers et appuyez sur Documents dans le menu ci-dessus. l_2.png Faites défiler vers le bas et appuyez sur Notification de ligne. l3.png Lorsque la page change et que vous vous connectez, appuyez sur Ma page. l4.png Appuyez ensuite sur Créer un jeton. Ensuite, on vous demandera un nom, mais ce ne sera qu'au début du message de discussion, donc tout va bien. Ensuite, le jeton s'affiche, alors copiez-le. Cependant, une fois que vous l'aurez fermé, vous ne pourrez plus le voir, alors soyez prudent. l5.png

4. Authentification Gmail

Créez le fichier ci-dessous dans le répertoire où se trouve client_id.json et exécutez-le.

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('J'ai enregistré le résultat de l'authentification:' + USER_SECRET_FILE) 
     return credentials 

Ici, un fichier appelé credentials_gmail.json, qui stocke également les secrets de l'utilisateur, est également créé dans le même répertoire.

5. Créer un processus principal

Créez ce fichier dans le même répertoire que vous avez créé jusqu'à présent. Pour votre jeton, collez le jeton de notification de ligne que vous avez copié précédemment.

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 

Ici, toutes les 30 secondes, le courrier en haut de Gmail de l'utilisateur connecté est retiré, et si le contenu est "Security Check2" et que le courrier n'est pas traité avec le même contenu, prenez une photo avec Raspeye et LineNotify. Venez à moi. C'est. Je ne l'ai pas encore implémenté, mais je pense qu'il est nécessaire de supprimer la photo après l'avoir envoyée. Les photos vont s'accumuler et l'opération sera lourde, alors ...

finalement

Comment faire cette simple caméra de surveillance est également expliqué dans Youtube, alors jetez un œil si vous l'aimez. Si vous avez des questions, veuillez utiliser la section commentaires de la vidéo ou la section commentaires de cet article. De plus, si vous l'aimez, veuillez vous abonner à la chaîne.

Recommended Posts

Expliquez doucement le processus de création d'une simple caméra de surveillance sans serveur à l'aide de Raspeye, de l'API Gmail et de l'API Line
Créez un capteur de couleur à l'aide d'une tarte à la râpe et d'une caméra
Un mémorandum lors de la réalisation d'une caméra de surveillance avec Raspeye
Créez une caméra de surveillance WEB avec Raspberry Pi et OpenCV
Obtenez la météo en utilisant l'API et laissez Raspberry Pi parler!
Fabriquez un incubateur à CO2 simple à l'aide de Raspberry PI et d'un capteur de CO2 (MH-Z14A)
L'histoire de la création d'une caméra sonore avec Touch Designer et ReSpeaker
Créez une application simple qui intègre l'API Fetch pour les requêtes Ajax dans Flask et expliquez-la rapidement.
Lorsqu'un fichier est placé dans le dossier partagé de Raspberry Pi, le processus est exécuté.
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
Une histoire à laquelle j'ai pensé en essayant d'identifier les informations de plénitude du parking en utilisant l'image obtenue par la caméra Web et Razpai et le deep learning.
Envoyez et recevez Gmail via l'API Gmail en utilisant Python
J'ai essayé de créer une caméra de surveillance à détection de mouvement avec OpenCV en utilisant une caméra WEB avec Raspberry Pi
Créez une partition, puis installez le système d'exploitation Raspberry Pi
Le processus de création et d'amélioration du code Python orienté objet
J'ai fait une caméra de surveillance avec Raspberry PI pour la première fois.
L'histoire de la création d'une base de données à l'aide de l'API Google Analytics
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
Un programme qui reçoit la commande d'asservissement du contrôleur radio, interrompt la tarte aux râpes et l'enregistre.
"2/2" Je crée une application Web simple pour le fonctionnement du robot. «Chaînes Raspberry Pi 3B + et Django»
"1/2" Je crée une application Web simple pour le fonctionnement du robot. «Chaînes Raspberry Pi 3B + et Django»
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Évaluer les performances d'un modèle de régression simple à l'aide de la validation d'intersection LeaveOneOut
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
Trouver l'intersection d'un cercle et d'une droite (matrice sympy)