[PYTHON] [Raspberry Pi] Wenn der menschliche Sensor dies erkennt, speichern Sie den Zeitstempel in der Firebase-Echtzeitdatenbank.

Einführung

Dieser Artikel ist Kapitel 3 eines Artikels mit vier Kapiteln.

  1. Schaffung eines "nicht nur" -Systems zur Überwachung älterer Häuser unter vollständiger Nutzung des IoT [SORACOM Summer Challenge 2020]
  2. Senden Sie eine Push-Nachricht an LINE Bot, wenn die LTE-M-Taste gedrückt wird [SORACOM]
  3. [[Raspberry Pi] Wenn der menschliche Sensor dies erkennt, speichern Sie den Zeitstempel in der Firebase-Echtzeitdatenbank
  4. SORACOM mit Haushaltsgeräten und LINE Bot [Python / Flask / Raspberry Pi] verknüpfen ** Alle Quellen veröffentlicht **

Auslösen

Ich möchte LINE Bot darüber informieren, wann der menschliche Sensor reagiert hat und wie oft er innerhalb einer Stunde reagiert hat. Sie können SQL lokal ausführen, aber ich dachte, es wäre einfacher, es in einer Cloud-Datenbank zu speichern, da der Raspelkuchen mit einem menschlichen Sensor und der Raspeltorte, der als Server für LINE Bot verwendet wird, getrennt sind. Daher habe ich die Standard-Firebase verwendet.

Verbinden der Raspeltorte und des menschlichen Sensors

Was ich benutzt habe

Ich habe den menschlichen Sensor von [diesem Hersteller] verwendet (https://www.vstone.co.jp/robotshop/index.php?main_page=product_info&products_id=4361). 人感センサー

Verbindung

[Raspberry Pi] Verwendung und Verwendung des selbst hergestellten menschlichen Gefühlssensors wurde unverändert verwendet. Achten Sie auf GPIO-Verbindungsfehler (ich habe den Fehler gemacht, Pin 12 und Masse versehentlich festzunageln).

Firebase Ich bezog mich auf [Python] Erste Schritte mit der Firebase-Echtzeitdatenbank.

Paketinstallation

Installieren Sie firebase-admin mit dem folgenden Befehl auf Raspeye

$ pip install firebase-admin

Erstellen einer Datenbank und Ändern von Regeln

Erstellen Sie eine Datenbank über die Firebase-Konsole. Es gibt Cloud Firestore und Realtime Database, aber bitte beachten Sie, dass es sich diesmal um ** Realtime Database ** handelt. Ändern Sie die Regeln wie folgt:

Gehen Sie außerdem im Feld auf der rechten Seite von "Projektübersicht" zu "Projekt festlegen> Dienstkonto> Firebase Admin SDK", wählen Sie "Python" zum Kopieren aus und klicken Sie auf "Neuen privaten Schlüssel generieren". , Speichern Sie den heruntergeladenen privaten Schlüssel in Raspeye.

Zusammenarbeit zwischen menschlichem Sensor und Datenbank

Unten ist der 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("<Heruntergeladener privater Schlüssel>.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)

Wenn es erkannt wird, schieben Sie es mit Zeitstempel in die Datenbank. Durch Drücken wird eine eindeutige ID generiert. Anscheinend ist die ID auch in chronologischer Reihenfolge.

Über die Registrierung des Zeitstempels

Es ist auch Problem hier, aber es scheint die Gewohnheit zu sein, Zeitstempel aus dem Firebase-Admin-Modul von Python zu registrieren. Ich hoffe, Sie finden den Zeitstempel: {'.sv': 'Zeitstempel'} oben hilfreich.

Demonstration

Auf diese Weise wird es, wenn es erkannt wird, in die Echtzeitdatenbank geschrieben.

Die UNIX-Zeit 1597307961996 ist 2020/08/13 17:39:21, also ist es perfekt.

Zusammenfassung

Das ist alles, um die Reaktionszeit des menschlichen Sensors in der Firebase-Echtzeitdatenbank zu speichern. Als nächstes erhalten Sie diese Daten von einem anderen Raspeltorte.

Recommended Posts

[Raspberry Pi] Wenn der menschliche Sensor dies erkennt, speichern Sie den Zeitstempel in der Firebase-Echtzeitdatenbank.
Erfassen Sie den Sensorwert von Grove Pi + mit Raspberry Pi und speichern Sie ihn in Kintone
Ändern Sie die Meldung, die beim Anmelden bei Raspberry Pi angezeigt wird
Verbesserter menschlicher Sensor mit Raspberry Pi
Verwenden Sie einen PIR-Bewegungssensor mit Himbeer-Pi
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten, wenn es dunkel wird!
Wenn eine Datei im freigegebenen Ordner von Raspberry Pi abgelegt wird, wird der Vorgang ausgeführt.
Verwirklichen Sie ein Super-IoT-Haus, indem Sie mit Raspberry Pi Sensordaten im Haus erfassen
Verwendung des digitalen Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
Es war großartig, die Python-Datei in Raspberry Pi mit der Remote-Funktion von Atom zu bearbeiten