[PYTHON] Stellen wir uns den Raum mit Raspeltorte vor, Teil 1

Einführung

Produktionsprozess

Ringo, der ab April aus irgendeinem Grund einer Webfirma beigetreten ist Am Ende berührte ich Laravel, MySQL und Ansible, die ich im Training noch nie berührt hatte. Nach dem Studium werde ich den Raum mit der Raspeltorte und dem Sensor visualisieren, die sich im Raum befanden. Es scheint, dass Sie mit dem Titel Erstellen eines Temperaturüberwachungs-Bots mit ESP8266 und Raspberry Pi etwas Ähnliches gemacht haben.

Spezifikationen festlegen

Ich werde versuchen, die folgenden Bedingungen grob zu erfüllen.

Verfassung

Was zu verwenden

--Razpai, 3b + wurde in diesem Artikel verwendet

Gesamtstruktur

image.png

Betrachten Sie die Konfiguration basierend auf den Spezifikationen. Der Sensor und die OLED sind durch I2C-Kommunikation durch Durchstechen des Steckbretts verbunden. Die erfassten Daten werden in Raspeye gespeichert und an die auf CONOHA eingerichtete Instanz gesendet. Das Verarbeitungsverfahren ist wie folgt.

  1. Erfassung und Verarbeitung von Daten vom Sensor
  2. Anzeige auf dem LCD
  3. Speichern Sie in csv
  4. Werfen Sie Daten in die Cloud
  5. In DB speichern
  6. Auf der Webseite anzeigen

Ich werde einen Prozess nach dem Verfahren von machen. In diesem Artikel werde ich 1-3 erklären.

Sensor

Verdrahtung

Da es sich um I2C-Kommunikation handelt, schließen Sie einfach SDI und SCK an, und das Modul ist 3,3 V, seien Sie also vorsichtig. Es ist in Ordnung, wenn es von "i2cdetect -y 1" bestätigt und erkannt wird image.png

Im Bild gibt es andere Verbindungen, aber 0x3C ist die OLED-Adresse und 0x76 ist die BME280-Adresse.

In I2C gibt es verschiedene Dinge, wie z. B. das Hochziehen, aber ich gehe davon aus, dass es sich auf der Platine auf der Sensorseite befindet. Die I2C-Kommunikation selbst ist jedoch nicht rauschresistent. Daher ist es möglicherweise besser, sie nicht zu stark zu dehnen.

Wert erhalten

Die Bibliothek verwendete das SWITCH CIENCE-Beispiel. SWITCHSCIENCE/BME280 Es ist für Python2 geschrieben, also werde ich es ein bisschen bearbeiten. Zur Abwechslung

Der bearbeitete Code lautet hier. Sie benötigen auch smbus, um es auszuführen. image.png

Ich konnte die Erfassung des Wertes am Terminal bestätigen.

Anzeige auf dem LCD

Der verwendete Flüssigkristall ist ein OLED-Modul, das mit SSD1306 ausgestattet ist. Ich kann nicht schreiben, weil ich mich nicht erinnere, wo ich es gekauft habe, aber ich denke, es ist fast das gleiche, egal wo ich es gekauft habe. Ich habe die von Adafruit veröffentlichte Bibliothek benutzt. adafruit/Adafruit_Python_SSD1306

Ich brauche ein paar Tipps, um es zu bewegen. Verschieben Sie den Beispielcode der organischen EL-Anzeige mit Raspeye Lesen Sie den obigen Artikel und installieren Sie die erforderlichen Bibliotheken auf pyenv, damit Sie OLED verwenden können. Fügen Sie die Verarbeitung von bme280 hinzu, indem Sie auf Adafruit_Python_SSD1306 / examples / stats.py verweisen.

#Bildschirm löschen
draw.rectangle((0,0,width,height), outline=0, fill=0)
sensor_data = bme280.readData() #Erfassung von Sensordaten
temp = "%6.2f" % (sensor_data[0])
draw.text((x, top), "Temp =" + temp + " °C", font = font, fill = 255)
press = "%7.2f" % (sensor_data[1])
draw.text((x, top + 8), "Press = " + press + " hPa", font = font, fill = 255)
hum = "%6.2f" % (sensor_data[2])
draw.text((x, top + 16), "Hum =" + hum + " %", font = font, fill = 255)
#Bildschirmanzeige
disp.image(image)
disp.display()

Extrahierte die Verarbeitung in der while-Schleife. Was den Inhalt des Prozesses betrifft, werden Daten vom Sensor erfasst und zeilenweise angezeigt.

image.png

Ich konnte die erfassten Daten auf der OLED anzeigen.

In CSV speichern

Ich sagte Speichern in der Cloud, aber ich werde es vorerst in CSV speichern.

#Dateischreibvorgang
date = str(datetime.date.today())
nowtime = datetime.datetime.now()
#Überschreiben, wenn eine Datei vorhanden ist
if(os.path.exists(path + date +".csv")):
    f = open(path + date +".csv", 'a')
    f.write(str(nowtime.hour) + ':' + str(nowtime.minute) + ':' + str(nowtime.second) + ',')
    f.write(temp + ',' + press + ',' + hum + ' \n')
    f.close()
#Generieren Sie, wenn nicht
else:
    f = open(path + date +".csv", 'w')
    f.write("date,Temp,Press,Hum\n")
    f.write(str(nowtime.hour) + ':' + str(nowtime.minute) + ':' + str(nowtime.second) + ',')
    f.write(temp + ',' + press + ',' + hum + ' \n')
    f.close()

Ich habe den Prozess geschrieben, um nach Datum zu trennen und in CSV zu speichern. Wenn das Ausgabediagramm in Excel angezeigt wird, sieht es so aus.

image.png

abschließend

Das endgültige Programm ist im Kern veröffentlicht. raspi_logger.py Nächstes Mal werde ich versuchen, eine API mit Laravel und der Cloud zu erstellen und das Diagramm im Browser anzuzeigen.

Recommended Posts

Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Versuchen Sie, ein Objekt mit RaspberryPi zu erkennen ~ Teil 1: Vergleich der Erkennungsgeschwindigkeit ~
Versuchen Sie, die 4-Kern-CPU des Raspberry Pi 2 mit Parallel Python zu verbrauchen
Probieren Sie L Chika mit Himbeerpi
Versuchen Sie, 3 Servos mit Raspeye zu bewegen
Spielen Sie mit dem Raspberry Pi Zero WH-Kameramodul Teil 1
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Versuchen Sie, mit Raspberry Pi nach Wakasagi zu fischen
Versuchen Sie schnell, Ihren Datensatz mit Pandas zu visualisieren
Versuchen Sie die Objekterkennung mit Raspberry Pi 4 + Coral
Ein Memo zur einfachen Verwendung des Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi 2
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Versuchen Sie, das Mensch-Maschine-Diagramm mit Python zu lösen
So testen Sie den Friends-of-Friends-Algorithmus mit pyfof
Beobachten Sie die Futago-Meteorgruppe mit Raspberry Pi4
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
GPGPU mit Raspberry Pi
DigitalSignage mit Raspberry Pi
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 3 sichtbar
Ich habe die Beleuchtungsstärke des Raumes mit Raspberry Pi, Arduino und einem optischen Sensor getwittert
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
Versuchen Sie, das Programmier-Herausforderungsbuch mit Python3 zu lösen
Einfaches IoT, um mit Raspeye und MESH zu beginnen
Versuchen Sie, das Problem der Zuweisung von Schulungsärzten mit Python zu lösen
Verwendung von Raspeye Relay Module Python
Versuchen Sie, Python auf Raspberry Pi mit Visual Studio zu debuggen.
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Versuchen Sie es mit dem Temperatursensor (LM75B) mit Raspeye.
Nehmen Sie den Wert des SwitchBot-Thermo-Hygrometers mit Raspberry Pi
Messen Sie Temperatur und Luftfeuchtigkeit mit Raspberry Pi3 und visualisieren Sie mit Ambient
Umschalten der Bot-Thermo-Hygrometer-Werte mit Raspberry Pi
Versuchen Sie, den Inhalt von Word mit Golang zu erhalten
[Neo4J] ④ Versuchen Sie, die Diagrammstruktur mit Cypher zu handhaben
Als ich versuchte, eine Socket-Kommunikation mit Raspberry Pi durchzuführen, war das Protokoll anders
Ich habe mit Raspberry Pi gesprochen
Einführung von PyMySQL in Himbeer-Pi3
Einfache Einführung in Home Hack mit Raspberry Pi und discord.py
Aktualisieren Sie Raspberry Pi Python mit pyenv auf 3.7 oder höher
Versuchen Sie, mit dem Uprobe zu spielen, der Systemtap direkt unterstützt
[Teil 2] Crawlen mit Python! Klicken Sie auf die Webseite, um sich zu bewegen!
Versuchen Sie, den Betrieb von Netzwerkgeräten mit Python zu automatisieren
Ändern Sie die Meldung, die beim Anmelden bei Raspberry Pi angezeigt wird
Versuchen Sie, die verstümmelten Zeichen im angehängten Dateinamen mit Python zu entschlüsseln
Verbinden Sie Raspberry Pi mit "Python" mit der Alibaba Cloud IoT Platform
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Versuchen Sie, Merkmale von Sensordaten mit CNN zu extrahieren
Ich wollte den Motor mit einer Raspeltorte laufen lassen, also habe ich versucht, das Motor Driver Board von Waveshare zu verwenden
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Es war großartig, die Python-Datei in Raspberry Pi mit der Remote-Funktion von Atom zu bearbeiten
Versuchen Sie, die Nährstoffe von Cornflakes zu visualisieren, die M-1-Champion Milkboy mit Python sagte
Port FreeRTOS auf Raspberry Pi 4B
[Raspberry Pi] Schrittmotorsteuerung mit Raspberry Pi
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Himbeer pi 1 Modell b, knotenroter Teil 17
Servomotorsteuerung mit Raspberry Pi