[PYTHON] Rasppie? Was ist das? Hardware-Level Unerfahrene College-Studenten haben ein System entwickelt, mit dem sie erfassen können, ob sich Personen im Büro befinden

Einführung

Hallo. Ich arbeite derzeit als Praktikant in einem IT-Unternehmen, während ich als Student in Nagoya arbeite.

Ich bin so eine Person, aber wenn ich meine Zeit verbringe, möchte ich an anderen Tagen als dem Standardarbeitstag zur Arbeit kommen. Nach einer Vorlesung an der Universität gehe ich zur Arbeit. An einem solchen Tag komme ich gegen 18:00 Uhr zur Arbeit und arbeite, bis keine Mitarbeiter mehr da sind (das Büro schließt). Ja, während meines Praktikums hat der Mitarbeiter den Schlüssel zum Büro, und wenn es einen Mitarbeiter gibt, ist das Büro auch in den Ferien frei.

Eines Tages

Die Universität endete gegen 19:00 Uhr und ich beschloss, ins Büro zu gehen. Ich war überzeugt, dass es jemanden geben würde. Wenn ich im Büro ankomme ...

** Geschlossen uuuuuuuuuuuuuuuuuuuuuuuuuu **

An diesem Tag waren alle Mitarbeiter zurück.

Ich war in Schwierigkeiten ... (Ich kann den Mitarbeitern nicht sagen, dass sie bis spät bleiben sollen, und es tut mir leid, sie wissen zu lassen, wann der letzte Mitarbeiter das Unternehmen verlassen hat ...)

Hauptthema

Aus diesem Grund habe ich beschlossen, ein System zu erstellen, um festzustellen, ob sich Personen im Büro befinden. Als ich mich fragte, was ich tun sollte, fand ich heraus, dass Raspberry Pi und Arduino verwendet werden können. Durch die Installation eines "Beleuchtungssensors" und die Erfassung der Beleuchtungsstärke im Büro kann möglicherweise festgestellt werden, ob sich Personen befinden oder nicht. Ich dachte.

Ich weiß nichts über die Hardware. Ich möchte es vollständig verstehen.

Peinlicherweise war ich über "Raspberry Pi" und "Arduino" wirklich unwissend, also habe ich viel recherchiert. Einer meiner Bekannten war von einer Fachhochschule, die mit Hardware vertraut ist (GANGAN), also habe ich sie mir sogar auf Twitter DM angehört.

(Gefällt mir / zur Veröffentlichung freigegeben) スクリーンショット 2019-12-31 12.38.32.png (GANGANs Blog ist hier)

Und ...

[Raspberry Pi Zero WH](https://www.switch-science.com/catalog/3646/?gclid=CjwKCAiA3abwBRBqEiwAKwICA5CCJgfeovCYDEK3oXFVhl9hso62JA-3iYHto7KK-bbIWvRG_Gv_Gv_Gv Es wurde beschlossen, trade-one.co.jp/product/module/adrszlx/) zu verwenden. (Entscheidender Faktor: billig)

Ich habe die beiden oben genannten Artikel online gekauft. Ich ging nach Akihabara (Osu) in Nagoya, um das Konvertierungskabel zu kaufen.

(So was) スクリーンショット 2019-12-31 13.12.51.png スクリーンショット 2019-12-31 13.12.43.png スクリーンショット 2019-12-31 13.12.33.png

(Ich habe vergessen, ein Bild aufzunehmen, aber ich habe auch 4 GB Speicher gekauft.)

Umgebung

Ich möchte Raspeye an ein Display oder eine Tastatur anschließen und es vollständig verstehen. In diesem Sinne habe ich Versuch und Irrtum gemacht, während ich auf verschiedene Websites verwiesen habe.

Und schlussendlich ... スクリーンショット 2019-12-31 13.16.26.png

** Kita! !! !! Großartig hey hey hey hey! !! !! ** ** **

Rasppie ist jetzt ein Computer! !!

Referenz: Bis das Betriebssystem auf Raspberry Pi Zero WH installiert und gestartet ist Einführung in Raspbian OS in Raspberry Pi Zero WH


Da es langweilig wäre, wenn ich es mehrmals an das Display oder die Tastatur anschließen würde, habe ich "ssh remote access" durchgeführt. Von nun an habe ich beschlossen, von meinem PC aus eine Verbindung zu Raspeye herzustellen.

Referenz: Remote-Verbindung zu Raspberry Pi

Implementierung

die Architektur

Ich möchte die Beleuchtungsstärke erkennen und mich auf irgendeine Weise über den Wert informieren. Ich dachte über die Verwendung von "LINE API" oder "SLACK API" nach.

Daher wurde es eine solche Architektur. スクリーンショット 2019-12-31 13.32.21.png

Es ist einfach.

Beleuchtungsstärke erkennen

Die [Zero One Series], die ich dieses Mal gekauft habe (https://bit-trade-one.co.jp/product/module/zeroone01top/), ist sehr praktisch und der [Beispielcode](https: /) zum Erkennen der Beleuchtungsstärke. /github.com/bit-trade-one/RasPi-Zero-One-Series) wurde veröffentlicht.

Siehe obigen Beispielcode,

python


#!/usr/bin/env python3
# coding: utf-8

import smbus

bus = smbus.SMBus(1)
bus.write_byte_data(0x13, 0x80, 0xFF)
bus.write_byte_data(0x13, 0x82, 0x00)
bus.write_byte_data(0x13, 0x84, 0x9D)
data = bus.read_i2c_block_data(0x13, 0x85, 4)

luminance = data[0] * 256 + data[1]
proximity = data[2] * 256 + data[3]

Dann konnte die Luminanz erfasst werden.

CA

Wenn das Licht an ist, "Luminanz: 3000" Wenn das Licht ausgeschaltet ist, "Luminanz: 5"

Es war so. Um eine falsche Erkennung durch Sonnenlicht zu verhindern, haben wir außerdem einen Raspeltorte an einem Ort installiert, der nicht der Sonne ausgesetzt ist.

Funktioniert mit Durchhang

Erstellen Sie einen neuen Kanal und betrachten Sie einen Mechanismus, bei dem der Bot die Beleuchtungsstärke als Nachricht sendet. Ich habe die Webhook-URL erhalten, indem ich auf [hier] verwiesen habe (https://api.slack.com/messaging/webhooks). Jetzt müssen Sie nur noch eine Post-Anfrage im angegebenen Format stellen.

Programm abgeschlossen

Feiertage sind nach 10 Uhr An Wochentagen senden wir eine Nachricht, um nach 17:00 Uhr nachzulassen.

#!/usr/bin/env python3
# coding: utf-8

import smbus
import time
import requests, json
import datetime
import jpholiday
WEB_HOOK_URL = "****"
message = u'defalut'

bus = smbus.SMBus(1)
bus.write_byte_data(0x13, 0x80, 0xFF)
bus.write_byte_data(0x13, 0x82, 0x00)
bus.write_byte_data(0x13, 0x84, 0x9D)
time.sleep(0.8)
data = bus.read_i2c_block_data(0x13, 0x85, 4)

luminance = data[0] * 256 + data[1]
proximity = data[2] * 256 + data[3]


today = datetime.date.today()
today_str = str(today).replace('-', '')
current_hour = datetime.datetime.now().hour

def isBizDay(DATE):
 Date = datetime.date(int(DATE[0:4]), int(DATE[4:6]), int(DATE[6:8]))
 if Date.weekday() >= 5 or jpholiday.is_holiday(Date):
  return 0
 else:		
  return 1

def sendMessage():
 if luminance >= 800:
  message = u'Es sind jetzt Leute im Büro! Lass uns früh nach Hause gehen!'	
 else:
  message = u'Derzeit sind keine Personen im Büro.'

 requests.post(WEB_HOOK_URL, data = json.dumps({
 'text': u'Die Beleuchtungsstärke beträgt'+str(luminance)+u'ist!'+message,  #Benachrichtigungsinhalt
 'username': u'Bakira-Tech-Python-Bot',  #Nutzername
 'icon_emoji': u':smile_cat:',  #Symbol
 'link_names': 1,  #Linknamen
 }))


if isBizDay(today_str) == 1:
 print("Es ist ein Wochentag")		
 if current_hour > 17:
  sendMessage()
else: 	
 print("Urlaub")		
 if current_hour > 10:
  sendMessage()

Ich konnte eine Nachricht wie diese senden ↓.

スクリーンショット 2019-12-31 20.02.26.png

Periodische Programmausführung

Geben Sie der Python-Datei Leseberechtigung und implementieren Sie die reguläre Ausführung über den Befehl crontab.

Ich habe es so eingestellt, dass die entsprechende Python-Datei alle 30 Minuten ausgeführt wird.

*/30 * * * * /home/pi/luminance.py

Referenz: Clon Python auf Raspberry Pi3B. Führen Sie Programme regelmäßig auf Raspberry Pi aus

abschließend

Damit war ich nie frei, obwohl ich ins Büro ging !! Es war ein Raspeltorte? Was ist das? Level, aber ich bin sehr froh, dass ich es irgendwie umsetzen kann. Als es vorbei war, war es mit nur einer sehr einfachen Implementierung möglich. Es wäre großartig, wenn wir bekanntere Probleme mit Razpie lösen könnten, nicht nur diesmal. Es ist praktisch !! Die beste Raspeltorte !!

Wenn Sie ein Unternehmen sind, warum führen Sie es nicht in dieser Zeit ein, in der eine Reform des Arbeitsstils erforderlich ist? Lol

das ist alles.


Referenz: Messen Sie Temperatur, Luftfeuchtigkeit und Druck mit Himbeer-Pi-Null Was tun, wenn in curl der Fehler "Host konnte nicht behoben werden" angezeigt wird

Recommended Posts

Rasppie? Was ist das? Hardware-Level Unerfahrene College-Studenten haben ein System entwickelt, mit dem sie erfassen können, ob sich Personen im Büro befinden
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Gibt es ein Geheimnis in der Häufigkeit der Umfangszahlen?
Erstellen Sie einen Bot, der die Anzahl der Personen, die für das neue Corona-Virus in Tokio positiv sind, an Slack sendet
So vergleichen Sie, ob der Inhalt der Objekte in scipy.sparse.csr_matrix identisch ist
Ich habe ein Skript erstellt, um zu überprüfen, ob an der angegebenen Position der JSON-Datei in Python Englisch eingegeben wird.
Ich habe mit Raspberry Pi ein System erstellt, das regelmäßig den Unbehaglichkeitsindex des Raums misst und eine LINE-Benachrichtigung sendet, wenn es sich um einen gefährlichen Wert handelt
Erstellen Sie einen BOT, der die Anzahl der infizierten Personen in der neuen Corona anzeigt