Plantera mikroklimat (4 / 5 steg)
Steg 4: kod
Här är "min" kod att söka sensorerna för värden och uppdatera LCD. Det kan göras bättre och jag hoppas att göra det i framtiden. Du kommer att spara som en fil och lägga till din /etc/rc.local eller skapa ett startskript.
#! / usr/bin/python
importera Adafruit_CharLCD från Adafruit_CharLCD
från subprocess import *
från att importera sömn, strftime
datetime importera datetime
importera underprocess
importera re
importera sys
Importera tid
#import MySQLdb som mdb # senare har
#import tid
#import datetime
LCD = Adafruit_CharLCD()
LCD.BEGIN(16,1)
medan 1:
RESULTAT1 = subprocess.check_output ([". / Adafruit_DHT", "2302", "4"]);
matchar = re.search ("Temp = \s + ([0-9.] +) ", output1)
om (inte matchar):
Time.Sleep(10)
fortsätta
CTemp = float(matches.group(1))
ftemp = ctemp * 9/5.0 + 32
# Sök för luftfuktighet utskrift
matchar = re.search ("Hum = \s + ([0-9.] +) ", output1)
om (inte matchar):
Time.Sleep(10)
fortsätta
fukt = float(matches.group(1))
#adjust värde för noggrannhet
fukt = luftfuktighet - 9
output2 = subprocess.check_output ([". / Adafruit_DHT", "2302", "18"]);
matchar = re.search ("Temp = \s + ([0-9.] +) ", output2)
om (inte matchar):
Time.Sleep(10)
fortsätta
ctemp2 = float(matches.group(1))
ftemp2 = ctemp2 * 9/5.0 + 32
# Sök för luftfuktighet utskrift
matchar = re.search ("Hum = \s + ([0-9.] +) ", output2)
om (inte matchar):
Time.Sleep(10)
fortsätta
humidity2 = float(matches.group(1))
#adjust värde för noggrannhet
humidity2 = humidity2 - 15
LCD.Clear()
#lcd.message (datetime.now () .strftime ('%b %d % H:%M:%S\n'))
LCD.Message ('1' + 'T %s' % (ftemp), 'H %s' % (luftfuktighet) + "\n")
LCD.Message ("2" + 'T %s' % (ftemp2) + 'H %s' % (humidity2))