Erfassung und Visualisierung von Sensordaten für das Pflanzenwachstum mit Intel Edison und Python

Ich habe Intel Edison und Python verwendet, um Sensordaten für wachsende Pflanzen zu erfassen und zu visualisieren. Selbst ein Anfänger wie ich, der die Schaltung nicht versteht, kann den Wert leicht erhalten, indem er einfach den Code schreibt, wenn es einen Basisschild und einen Sensor gibt, was Spaß macht. In Edison wurden nur wenige Dinge mit Python geschrieben, daher habe ich beschlossen, es zu schreiben. Es sieht nicht nach IoT aus, da es mit dem Server nicht funktioniert.

Was ich diesmal gemacht habe

Edison Setup Sensorwert per Python abrufen ・ CSV-Datei speichern Visualisierung mit nvd3.js

Intel Edison-Einstellungen

Dies wurde unter Bezugnahme auf das Folgende eingestellt. Arduino Board http://nonnoise.github.io/Edison/

Sensor

Ich habe die folgenden Sensoren verwendet.

Grove - Temperature Sensor Grove - Light Sensor Grove - Moisture Sensor http://www.seeedstudio.com/wiki/Grove_-Temperature_Sensor http://www.seeedstudio.com/wiki/Grove-Light_Sensor http://www.seeedstudio.com/wiki/Grove-_Moisture_Sensor

Ich habe ein Kit gekauft, weil ich Anfänger bin und die Schaltung nicht allzu gut verstehe. http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4KNG

Außerdem dachte ich, es wäre interessant zu reden, also habe ich auch einen LCD-Monitor angeschlossen. http://www.seeedstudio.com/wiki/Grove_-_LCD_RGB_Backlight

Das fertige System sieht so aus. Pfefferminze anbauen.

sensor.jpg

Es ist interessant, dass Sie Daten einfach erhalten können, indem Sie sie in den Pin einfügen.

Programm

Dieses Mal werden Datum, Temperatur, Lichtmenge und Feuchtigkeit im Boden alle 10 Minuten im CSV-Format gespeichert. Importieren Sie das mraa-Modul und lesen Sie den Wert des fixierten Sensors. Es scheint, dass lcd von mraa gesteuert werden kann, aber pyupm_i2lcd war einfacher, also habe ich dies verwendet.

sensor.py


#!/usr/bin/python

import datetime
import mraa
import csv
import time
import math
import pyupm_i2clcd as lcd

# definition of Pin
light = mraa.Aio(0)
temperature = mraa.Aio(1)
moisture = mraa.Aio(2)
lcdDis = lcd.Jhd1313m1(0, 0x3E, 0x62)

B = 3975
t = 0
OUT_FILE = "20150426_30.csv"
HOUR = 3600 * 30

with open(OUT_FILE,"wb")as f:
    writer = csv.writer(f)
    writer.writerow(["datetime","temperature","light","moisture"])

while t < HOUR:
    if t % 600 == 0:
        #read the value
        light_val = light.read()
        tem_val = temperature.read()
        moi = moisture.read()

        #calc temperature
        resistance = (1023.0 - tem_val) * 10000 /tem_val
        tem_last = round(1/(math.log(resistance /10000) / B+1 / 298.15) - 273.15,2)

        #calc light
        rsensor = round((1023.0 - light_val)*10 / light_val,2)

        #calc today
        d = datetime.datetime.today()

        #calc moisture
        moi_per = round(moi / 10.0,2)

        strtime = d.strftime("%Y-%m-%d %H:%M:%S")

        with open(OUT_FILE,"ab")as f:
            writer = csv.writer(f)
            writer.writerow([strtime,tem_last,rsensor,moi_per])
        print "Now:",strtime,"," , "Temperature:",tem_last,"," , "Light:",rsensor,",","Moisture:",moi_per 

        #Check Moisture and Change LCD Display
        if moi_per < 10.0:
            lcdDis.write("                ")
            lcdDis.setColor(128,0,128)
            lcdDis.setCursor(0,0)
            lcdDis.write("I am thirsty :(")
        else:
            lcdDis.write("                ")
            lcdDis.setColor(255,255,0)
            lcdDis.setCursor(0,0)
            lcdDis.write("Iam fine :)")

    time.sleep(1)
    t += 1

Der erhaltene Wert wird im CSV-Format gespeichert.

Visualisierung von Sensordaten

Die erfassten Sensordaten wurden mit nvd3.js visualisiert. http://nvd3.org/

Es sieht aus wie das. Da es in Innenräumen aufgestellt wurde, schwankte die Temperatur nicht wesentlich. Liegt das Wasser im Boden innerhalb des Fehlerbereichs? Oder liegt es daran, dass es das Wasser in der Untertasse aufgesaugt hat? Wenn das Licht hell ist, ist der Wert niedrig, und wenn es dunkel ist, ist der Wert hoch. Sie können sehen, dass es sich um einen nächtlichen Menschen handelt.

スクリーンショット 2015-04-26 12.49.04.png

Betrachtung

・ Die Trainingsumgebung ist schlecht (lacht) Ich habe es diesmal im Zimmer versucht, aber die Wachstumsrate ist viel besser, wenn ich es auf der Veranda anbaue (lacht) Als ich den Topf auf die Veranda stellte, wuchs er stetig. Ich denke, Sie können interessantere Daten erhalten, wenn Sie sie im Freien platzieren.

・ Nicht IoT Diesmal habe ich den Wert nicht an den Server gesendet Das nächste Mal möchte ich es an den Server senden und eine Vorhersage basierend auf den gesendeten Daten machen

Zukunftspläne

· Senden Sie Werte direkt an den Server ・ Sagen Sie voraus, wann von dort aus Wasser benötigt wird ・ Ich möchte eine automatische Bewässerungsvorrichtung herstellen ・ Ich möchte Gemüse anbauen

Recommended Posts

Erfassung und Visualisierung von Sensordaten für das Pflanzenwachstum mit Intel Edison und Python
Visualisieren Sie Ihre Daten ganz einfach mit Python Seaborn.
Datenanalyse beginnend mit Python (Datenvisualisierung 1)
Datenanalyse beginnend mit Python (Datenvisualisierung 2)
Datenpipeline-Aufbau mit Python und Luigi
Python-Visualisierungstool für die Datenanalyse
Empfehlung von Altair! Datenvisualisierung mit Python
[In-Database Python Analysis-Lernprogramm mit SQL Server 2017] Schritt 3: Erkunden und Visualisieren von Daten
Datenerfassung von der Analytics-API mit dem Google API-Client für die Python Part 2-Webanwendung
Schöne Grafikzeichnung mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 1
Implementieren Sie "Data Visualization Design # 3" mit Pandas und Matplotlib
Wunderschönes Zeichnen mit Python-Seaborn erleichtert die Datenanalyse und -visualisierung Teil 2
Testen Sie online bereitgestellte Python-Modelle und -Funktionen mit Cloud Pack for Data mit formularformatierten Eingabedaten
Datenanalyse zur Verbesserung von POG 1 ~ Web Scraping mit Python ~
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
C-Sprache, Java, Python-Benchmarks mit Primfaktorisierung
Übersicht und Tipps von Seaborn mit statistischer Datenvisualisierung
Untersuchen Sie den Java- und Python-Datenaustausch mit Apache Arrow
Datenanalyse mit Python 2
Datenvisualisierung mit Pandas
Datenanalyse mit Python
Visualisierung der Logistik mit Python
Lassen Sie von Google Text-to-Speech Audiodaten (Kommentare) für Videomaterial erstellen (mit C # - und Python-Beispielen).
[Informationen der High School Information Department I] Unterrichtsmaterialien für die Lehrerausbildung: Datenformat und Visualisierung (Python)
Visualisieren Sie die Pflanzenaktivität aus dem Weltraum mithilfe von Satellitendaten und Python
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Analysieren Sie Aktien mit Python und suchen Sie nach günstigen Handelsphasen
Löse das Spiralbuch (Algorithmus und Datenstruktur) mit Python!
Webcrawlen, Web-Scraping, Zeichenerfassung und Speichern von Bildern mit Python
Stilvolle Technik zum Einfügen von CSV-Daten in Excel mit Python
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Bibliothek zur Angabe eines Nameservers in Python und Dig
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Mit Python erstellte Beispieldaten
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Python für die Datenanalyse Kapitel 4
Holen Sie sich Youtube-Daten mit Python
Python für die Datenanalyse Kapitel 2
Python mit Pyenv und Venv
Funktioniert mit Python und R.
Python für die Datenanalyse Kapitel 3
Lesen von JSON-Daten mit Python
Erstellen Sie eine gestreifte Illusion mit Gammakorrektur für Python3 und openCV3
Automatische Erfassung von Genexpressionsdaten durch Python und R.
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
[Pandas] Ich habe versucht, Verkaufsdaten mit Python zu analysieren. [Für Anfänger]
Verschieben Sie Daten mit Python Change / Delete (Writer und Reader) nach LDAP.
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse
[Konzept] Strategie zur Analyse von Daten mit Python und zum Ziel eines Rückgangs nach den Vorteilen für die Aktionäre