[PYTHON] Was ich getan habe, um die Luftfeuchtigkeit und Temperatur des Archivs zu verfolgen

Die folgende Erklärung ist auf der Temperatur- und Feuchtigkeitskontrollseite der National Diet Library enthalten.

========== Die Bibliothek der National Diet Library ist mit einer Klimaanlage ausgestattet, die Temperatur und Luftfeuchtigkeit regeln kann. Die Temperatur und Luftfeuchtigkeit in der Bibliothek werden sorgfältig überprüft, um "die Temperatur, bei der Personen in der Bibliothek arbeiten können" und "Luftfeuchtigkeit von 65% oder weniger" zu überprüfen. Wir wollen plötzliche Temperatur- und Feuchtigkeitsschwankungen das ganze Jahr über und sogar tagsüber vermeiden. Wir versuchen auch, den Temperatur- / Feuchtigkeitsunterschied zum Lesesaal so gering wie möglich zu halten. ==========

Es heißt auch, dass je höher die Temperatur, desto größer die Menge an gesättigtem Wasserdampf ist. Daher muss die Temperatur optimal eingestellt werden, um die Luftfeuchtigkeit zu steuern.

Ich möchte einen Alarm erstellen, wenn die Luftfeuchtigkeit 65% überschreitet, aber vorher habe ich darüber nachgedacht, eine stündliche Luftfeuchtigkeit und Temperatur in meiner Umgebung zu halten und dann den Druck aufzuzeichnen.

Ich werde aufschreiben, was ich dafür getan habe.

Was du vorbereitet hast

Raspberry Pi Zero W Ich habe einen Stiftkopf separat gekauft und verlötet. Infrarot + Umgebungssensor für Raspberry Pi Zero "RPZ-IR-Sensor" Rev2.0 (Terminal montiert + externer Sensor)

OS Debian GNU/Linux Linux raspberrypi 4.19.97+ #1294 Thu Jan 30 13:10:54 GMT 2020 armv6l

Lassen Sie I2C in Rasperry Pi Settings-Interface aktiviert. image.png

Versammlung

①Raspberry Pi Zero W ② Stromversorgung ③ Zu Maus und Tastatur ④ Zum Display ⑤ Infrarot + Umgebungssensor für Raspberry Pi Zero ⑥ Temperatur- / Feuchtigkeits- / Drucksensor ⑦ Klemme montiert + externer Sensor Temperatur- / Feuchtigkeits- / Drucksensor ⑧ Infrarot-Kommunikationsterminal (diesmal nicht verwendet) ⑨ Lichtsensor (Beleuchtung) (diesmal nicht verwendet) Hinweis: ⑥ erkennt auch die von Raspberry Pi Zero erzeugte Wärme. Verwenden Sie daher den gemessenen Wert von ⑦. image.png

Vorbereitetes Beispielprogramm

https://www.indoorcorgielec.com/products/rpz-ir-sensor/ Ich habe das Beispielprogramm rzp-sensor.zip entpackt und so verwendet, wie es ist. image.png

Die Protokollausgabemethode wird am Ende von readme.txt beschrieben. image.png

Testen des Beispielprogramms

$ python3 rpz_sensor.py
BME280 0x76
 Temp     : 19.9C
 Pressure : 1006.0hPa
 Humidity : 38.6%

BME280 0x77
 Temp     : 23.0C
 Pressure : 1005.6hPa
 Humidity : 35.0%

TSL2572
 Lux : 176.3lux

BME280 0x76 ist der gemessene Wert der Baugruppe ⑦. BME280 0x77 ist der gemessene Wert der Baugruppe ⑥. Es scheint, dass die um etwa 3 ° C höhere Temperatur als ⑦ auf die von RaspberryPy Zero erzeugte Wärme zurückzuführen ist. Da die Temperatur höher als ⑦ ist, ist der Feuchtigkeitswert niedrig. TSL2572 ist der gemessene Wert der Baugruppe ⑨.

Erstellen Sie ein Shell-Skript, um die Protokollausgabe zu testen

do.sh

#!/bin/sh

date +"%Y/%m/%d %T"
cd rpz-sensor/python3
python3 ./rpz_sensor.py -l ./log/logfile.csv

Versetzen Sie das Shell-Skript in den ausführbaren Modus.

$ chmod +x do.sh

Ich werde es versuchen.

$ rpz-sensor/do.sh
2020/04/14 18:37:07
BME280 0x76
 Temp     : 21.9C
 Pressure : 1008.8hPa
 Humidity : 45.7%

BME280 0x77
 Temp     : 22.7C
 Pressure : 1008.4hPa
 Humidity : 44.8%

TSL2572
 Lux : 170.7lux

Das Protokoll wird ausgegeben.

$ cat logfile.csv
Time,Temp ch1,Temp ch2,Pressure ch1,Pressure ch2,Humidity ch1,Humidity ch2,Lux
2020/04/14 18:37,21.9,22.7,1008.8,1008.4,45.7,44.8,170.7

Geplante Ausführungseinstellungen

$ crontab -e

Der Editor wird gestartet. Stellen Sie ihn daher auf null Minuten pro Stunde ein und geben Sie das Protokoll aus.

# m h  dom mon dow   command
00 * * * * rpz-sensor/do.sh

Starten Sie cron neu, damit die Einstellungen wirksam werden.

$ sudo /etc/init.d/cron restart
[ ok ] Restarting cron (via systemctl): cron.service.

Als ich es einige Stunden später überprüfte, wurde das Protokoll gemäß dem Szenario ausgegeben.

cat logfile.csv
Time,Temp ch1,Temp ch2,Pressure ch1,Pressure ch2,Humidity ch1,Humidity ch2,Lux
2020/04/14 18:37,21.9,22.7,1008.8,1008.4,45.7,44.8,170.7
2020/04/14 19:00,21.6,22.8,1009.6,1009.2,47.5,45.7,15.6
2020/04/14 20:00,18.7,22.4,1010.8,1010.3,60.6,50.2,87.9
2020/04/14 21:00,18.7,22.3,1011.3,1010.9,57.5,48.3,88.9

Verzeichnisaufbau

Ich habe es mit der folgenden Konfiguration versucht. image.png

pi@raspberrypi:/home $ ls
pi
pi@raspberrypi:/home $ cd pi
pi@raspberrypi:~ $ ls
Desktop    Downloads  Music     Public     Videos
Documents  MagPi      Pictures  Templates  rpz-sensor
pi@raspberrypi:~ $ cd rpz-sensor
pi@raspberrypi:~/rpz-sensor $ ls
do.sh  python3  readme.txt
pi@raspberrypi:~/rpz-sensor $ cd python3
pi@raspberrypi:~/rpz-sensor/python3 $ ls
__pycache__  bme280i2c.py  log  rpz_sensor.py  tsl2561.py  tsl2572.py
pi@raspberrypi:~/rpz-sensor/python3 $ cd log
pi@raspberrypi:~/rpz-sensor/python3/log $ ls
logfile.csv

Nachschlagewerke

Razpai Zero Craft Book

Was ich danach machen möchte

・ Automatisierung der Diagrammanzeige basierend auf Protokolldaten ・ Benachrichtigen Sie den LINE Bot, wenn die Luftfeuchtigkeit ein bestimmtes Niveau überschreitet

Recommended Posts

Was ich getan habe, um die Luftfeuchtigkeit und Temperatur des Archivs zu verfolgen
Belüftung ist wichtig. Was ich getan habe, um die CO2-Konzentration im Raum aufzuzeichnen
Was ich getan habe, um eine SSH-Verbindung zur VPS Ubuntu-Umgebung herzustellen
Was ich getan habe, um die Python2 EOL mit Zuversicht zu begrüßen
Ich möchte die Natur von Python und Pip kennenlernen
H29.2.27 ~ 3.5 Zusammenfassung meiner Arbeit
Ich möchte die Ausführungszeit aufzeichnen und ein Protokoll führen.
[Einführung in Python] Ich habe die Namenskonventionen von C # und Python verglichen.
Ich habe zusammengefasst, wie die Boot-Parameter von GRUB und GRUB2 geändert werden
Was ich getan habe, um Python-Speicher zu speichern
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Ich möchte die Gefühle von Menschen analysieren, die sich treffen und zittern wollen
[Bei Coder] Was ich getan habe, um den grünen Rang in Python zu erreichen
Was ich getan habe, als ich den Feature-Punkt mit dem optischen Fluss von opencv nicht finden konnte und als ich ihn verloren habe
Ich möchte den Transferstatus der 2020 J League visualisieren. Was soll ich tun?
So verfolgen Sie die Arbeit mit Powershell
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
[Python] Was ich getan habe, um Unit Test zu machen
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Ich habe die Varianten von UKR gelesen und implementiert
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Echtzeit-Persönliche Schätzung (Was muss ich tun, um die Schätzung von Bildern außerhalb der Kategorie zu verhindern?) * Fehler.
Was ich getan habe, als ich wütend war, es mit der Option enable-shared einzufügen
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Ich möchte das Ausführungsergebnis von strace erfassen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe mir die Versionen von Blender und Python angesehen
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Ich habe das Standardbetriebssystem und die Shell der Docker-Maschine überprüft
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich möchte die Sicherheit der SSH-Verbindung erhöhen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, zum Zeitpunkt der Bereitstellung mit Fabric und ChatWork Api automatisch in ChatWork zu posten
Ich möchte den Schnittpunkt einer Bezier-Kurve und einer geraden Linie finden (Bezier-Clipping-Methode)
Ich habe versucht, die Yin- und Yang-Klassifikation hololiver Mitglieder durch maschinelles Lernen zu überprüfen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
[Python] Ich habe versucht, die Texte von Arashi mit WordCloud zu visualisieren und herauszufinden, was ich den Fans in 20 Jahren Ausbildung vermitteln wollte
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich bin froh, dass ich 2015 studiert habe und was ich 2016 lernen möchte
Ich möchte nur die SudachiPy-Normalisierungsverarbeitung verwenden
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich habe versucht, die Uhrzeit und das heutige Wetter anzuzeigen
Schließen Sie den ersten Import des Moduls an und drucken Sie den Modulpfad