Acquisition et visualisation des données de capteurs pour la croissance des plantes avec Intel Edison et Python

J'ai utilisé Intel Edison et Python pour acquérir et visualiser des données de capteurs pour la culture de plantes. Même un débutant comme moi qui ne comprend pas le circuit peut facilement obtenir la valeur en écrivant simplement le code s'il y a un Base Shield et un capteur, ce qui est amusant. Il y a peu de choses écrites en Python dans Edison, j'ai donc décidé de l'écrire. Cela ne ressemble pas à l'IoT car il ne fonctionne pas avec le serveur.

Ce que j'ai fait cette fois

configuration d'Edison Obtenir la valeur du capteur par python ・ Enregistrer le fichier csv Visualisation avec nvd3.js

Paramètres Intel Edison

Cela a été établi en référence à ce qui suit. Carte Arduino http://nonnoise.github.io/Edison/

capteur

J'ai utilisé les capteurs suivants.

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

J'ai acheté un kit car je suis débutant et je ne comprends pas trop le circuit. http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4KNG

De plus, j'ai pensé que ce serait intéressant de parler, alors j'ai également attaché un moniteur LCD. http://www.seeedstudio.com/wiki/Grove_-_LCD_RGB_Backlight

Le système terminé ressemble à ceci. Cultivez la menthe poivrée.

sensor.jpg

Il est intéressant de noter que vous pouvez facilement obtenir des données simplement en les insérant dans la broche.

programme

Cette fois, la date, la température, la quantité de lumière et l'humidité du sol sont enregistrées au format csv toutes les 10 minutes. Importez le module mraa et lisez la valeur du capteur épinglé. Il semble que lcd puisse être contrôlé par mraa, mais pyupm_i2lcd était plus facile, alors j'ai utilisé ceci.

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

La valeur obtenue est enregistrée au format csv.

Visualisation des données du capteur

Les données de capteur acquises ont été visualisées à l'aide de nvd3.js. http://nvd3.org/

Ça ressemble à ça. Puisqu'il a été placé à l'intérieur, la température n'a pas fluctué de manière significative. Est-ce dans la plage d'erreur que l'eau du sol monte? Ou est-ce parce qu'il aspire l'eau de la soucoupe? Lorsque la lumière est claire, la valeur est faible, et lorsqu'il fait sombre, la valeur est élevée. Vous pouvez voir que c'est un être humain nocturne.

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

Réflexion

・ L'environnement d'entraînement est mauvais (rires) Je l'ai essayé dans la pièce cette fois, mais le taux de croissance est bien meilleur si je le fais pousser sur la véranda (rires) Quand j'ai déplacé le pot dans la véranda, il grandissait régulièrement. Je pense que vous pouvez obtenir des données plus intéressantes si vous les mettez à l'extérieur.

・ Pas IoT Cette fois je ne suis pas allé au point d'envoyer la valeur au serveur La prochaine fois, j'aimerais l'envoyer au serveur et faire une prédiction basée sur les données envoyées

Plans futurs

· Envoyer les valeurs directement au serveur ・ Prédire quand un arrosage est nécessaire à partir de là ・ Je souhaite fabriquer un arrosoir automatique ・ Je veux faire pousser des légumes

Recommended Posts

Acquisition et visualisation des données de capteurs pour la croissance des plantes avec Intel Edison et Python
Visualisez facilement vos données avec Python seaborn.
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
Construction de pipeline de données avec Python et Luigi
Outil de visualisation Python pour le travail d'analyse de données
Recommandation d'Altair! Visualisation des données avec Python
[Didacticiel d'analyse Python dans la base de données avec SQL Server 2017] Étape 3: Exploration et visualisation des données
Acquisition de données à partir de l'API d'analyse avec l'application Web Client API Google pour python Partie 2
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 1
Implémentez "Data Visualization Design # 3" avec pandas et matplotlib
Un beau dessin graphique avec Python -seaborn facilite l'analyse et la visualisation des données Partie 2
Testez les modèles et fonctions Python déployés en ligne avec Cloud Pack for Data avec des données d'entrée au format formulaire
Analyse de données pour améliorer POG 1 ~ Web scraping avec Python ~
Liste des bibliothèques Python pour les data scientists et les data ingénieurs
Benchmarks langage C, Java, Python avec factorisation prime
Vue d'ensemble et astuces de Seaborn avec visualisation de données statistiques
Étudiez l'échange de données Java et Python avec Apache Arrow
Analyse de données avec python 2
Visualisation des données avec les pandas
Analyse de données avec Python
Visualisation de la logistique avec Python
Demandez à Google Text-to-Speech de créer des données audio (narration) pour le matériel vidéo (avec des échantillons C # et Python)
[Information du département d'information du lycée I] Matériel pédagogique pour la formation des enseignants: Format des données et visualisation (python)
Visualisez l'activité des plantes depuis l'espace à l'aide de données satellites et de Python
Débarrassez-vous des données sales avec Python et les expressions régulières
Analysez les actions avec python et recherchez des phases de trading favorables
Résolvez le livre en spirale (algorithme et structure de données) avec python!
Exploration Web, scraping Web, acquisition de caractères et sauvegarde d'image avec python
Technique élégante pour coller des données CSV dans Excel avec Python
Obtenez des données de l'API d'analyse avec le client API Google pour python
Bibliothèque pour spécifier un serveur de noms en python et dig
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Exemple de données créées avec python
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
Python pour l'analyse des données Chapitre 4
Obtenez des données Youtube avec python
Python pour l'analyse des données Chapitre 2
python avec pyenv et venv
Fonctionne avec Python et R
Python pour l'analyse des données Chapitre 3
Lire des données json avec python
Créez une illusion rayée avec correction gamma pour Python3 et openCV3
Acquisition automatique des données de niveau d'expression génique par python et R
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
[Pandas] J'ai essayé d'analyser les données de ventes avec Python [Pour les débutants]
Déplacer les données vers LDAP avec python Change / Delete (Writer et Reader)
Créer un Ubuntu de démarrage USB avec un environnement Python pour l'analyse des données
[Concept] Stratégie pour analyser les données avec python et viser une baisse après les avantages pour les actionnaires