[PYTHON] [Raspberry Pi] Lorsque le capteur humain le détecte, stockez l'horodatage dans la base de données Firebase Realtime.

introduction

Cet article est le chapitre 3 d'un article de quatre chapitres.

  1. Création d'un système "non seulement" pour surveiller les maisons de personnes âgées en utilisant pleinement l'IoT [SORACOM Summer Challenge 2020]
  2. Envoyer un message Push au LINE Bot lorsque le bouton LTE-M est enfoncé [SORACOM]
  3. [Raspberry Pi] Lorsque le capteur humain le détecte, stockez l'horodatage dans la base de données Firebase Realtime: arrow_backward: Maintenant ici
  4. Associez SORACOM aux appareils électroménagers et au LINE Bot [Python / Flask / Raspberry Pi] ** Toutes les sources publiées **

Déclencheur

Je souhaite informer LINE Bot de l'heure à laquelle le capteur humain a répondu et du nombre de fois où il a répondu en une heure. Vous pouvez exécuter SQL localement, mais j'ai pensé qu'il serait plus facile de le stocker dans une base de données cloud car la tarte à la râpe avec un capteur humain attaché et la tarte à la râpe utilisée comme serveur pour LINE Bot sont séparées, j'ai donc utilisé le Firebase standard.

Connecter la tarte aux râpes et le capteur humain

Ce que j'ai utilisé

--Raspberry Pi 3 Model A + (OK s'il est supérieur à cela) --Module de capteur humain

J'ai utilisé le capteur humain de ce fabricant. 人感センサー

Lien

[Raspberry Pi] Comment utiliser et utiliser le capteur de sentiment humain auto-fabriqué a été utilisé tel quel. Attention aux erreurs de connexion GPIO (j'ai commis l'erreur d'épingler par erreur la broche 12 et la masse)

Firebase Je me suis référé à [python] Comment démarrer avec Firebase Realtime Database.

Installation du package

Installez firebase-admin sur Raspeye avec la commande suivante

$ pip install firebase-admin

Création d'une base de données et modification des règles

Créez une base de données à partir de la console Firebase. Il existe «Cloud Firestore» et «Realtime Database», mais veuillez noter que cette fois il s'agit de ** «Realtime Database» **. Modifiez les règles comme suit:

Allez également dans Set Project> Service Account> Firebase Admin SDK à partir de l'engrenage sur le côté droit de" Project Overview ", sélectionnez Python pour copier et cliquez sur" Generate New Private Key ". , Enregistrez la clé privée téléchargée dans Raspeye.

Coopération entre le capteur humain et la base de données

Ci-dessous le code

firebase.py


import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
from datetime import datetime
import time
import RPi.GPIO as GPIO

cred = credentials.Certificate("<Clé privée téléchargée>.json")
firebase_admin.initialize_app(cred, {
    'databaseURL': 'https://<databaseURL>.firebaseio.com/'
})

ref = db.reference('data')

INTERVAL = 3
SLEEPTIME = 20
GPIO_PIN = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN, GPIO.IN)

while True:
    if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
        print(datetime.now().strftime('%Y/%m/%d %H:%M:%S'))
        new_data_ref = ref.push()
        new_data_ref.set({
            'timestamp': {'.sv': 'timestamp'}
        })
        time.sleep(SLEEPTIME)
    else:
        print(GPIO.input(GPIO_PIN))
        time.sleep(INTERVAL)

Lorsqu'il est détecté, poussez-le vers la base de données avec horodatage. Un identifiant unique est généré en poussant. Apparemment, l'ID est également dans l'ordre chronologique.

À propos de l'enregistrement de l'horodatage

C'est aussi Issue here, mais il semble qu'il y ait une habitude d'enregistrer les horodatages à partir du module firebase-admin de Python. J'espère que vous trouverez le '' timestamp ': {' .sv ':' timestamp '} `ci-dessus utile.

manifestation

De cette façon, lorsqu'il est détecté, il est écrit dans la base de données en temps réel.

L'heure UNIX 1597307961996 est 2020/08/13 17:39:21, donc c'est parfait.

Résumé

C'est tout pour stocker le temps de réaction du capteur humain dans la base de données Firebase Realtime. Ensuite, récupérez ces données d'une autre tarte aux râpes.

Recommended Posts

[Raspberry Pi] Lorsque le capteur humain le détecte, stockez l'horodatage dans la base de données Firebase Realtime.
Acquérir la valeur du capteur de Grove Pi + avec Raspberry Pi et la stocker dans Kintone
Changer le message affiché lors de la connexion à Raspberry Pi
Capteur humain amélioré fabriqué avec Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Utilisez python sur Raspberry Pi 3 pour éclairer la LED quand il fait noir!
Lorsqu'un fichier est placé dans le dossier partagé de Raspberry Pi, le processus est exécuté.
Réalisez une maison super IoT en acquérant des données de capteur dans la maison avec Raspberry Pi
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
C'était génial d'éditer le fichier Python dans Raspberry Pi avec la fonction à distance d'Atom