Traceback (most recent call last):
File "wdd.py", line 164, in <module>
file.write("temperature is ", temperature, "wet is ", humidity, "%\n")
TypeError: function takes exactly 1 argument (5 given)
Python:
Python:
# -*- coding: utf-8 -*-
"""
Created on Sun Jan 26 14:24:43 2014
@author: pi
"""
import smtplib
import RPi.GPIO as gpio
import time
gpio.setwarnings(False)
gpio.setmode(gpio.BOARD)
time.sleep(1)
data=[]
def delay(i): #20*i usdelay
a=0
for j in range(i):
a+1
j=0
#start work
gpio.setup(7,gpio.OUT)
#gpio.output(12,gpio.HIGH)
#delay(10)
gpio.output(7,gpio.LOW)
time.sleep(0.02)
gpio.output(7,gpio.HIGH)
i=1
i=1
#wait to response
gpio.setup(7,gpio.IN)
gpio.setup(15,gpio.OUT)
gpio.setup(16,gpio.OUT)
while gpio.input(7)==1:
continue
while gpio.input(7)==0:
continue
while gpio.input(7)==1:
continue
#get data
while j<40:
k=0
while gpio.input(7)==0:
continue
while gpio.input(7)==1:
k+=1
if k>100:break
if k<3:
data.append(0)
else:
data.append(1)
j+=1
print "Sensor is working"
#get temperature
humidity_bit=data[0:8]
humidity_point_bit=data[8:16]
temperature_bit=data[16:24]
temperature_point_bit=data[24:32]
check_bit=data[32:40]
humidity=0
humidity_point=0
temperature=0
temperature_point=0
check=0
for i in range(8):
humidity+=humidity_bit[i]*2**(7-i)
humidity_point+=humidity_point_bit[i]*2**(7-i)
temperature+=temperature_bit[i]*2**(7-i)
temperature_point+=temperature_point_bit[i]*2**(7-i)
check+=check_bit[i]*2**(7-i)
tmp=humidity+humidity_point+temperature+temperature_point
print "temperature is " , temperature,"*C"
print "wet is ",humidity, "%"
import smtplib
import RPi.GPIO as GPIO
import time
if check == tmp:
print "temperature is ", temperature,"wet is ",humidity,"%"
#file = open("wdd.txt","w")
#file.write ("temperature is ", temperature, "wet is ", humidity, "%\n")
#file.close()
#print "temperature is ", temperature,"wet is ",humidity,"%"
while True:
#check.close()
if temperature>28:
#while temperature>29:
# continue
GPIO.output(15,True)
file = open("wdd.txt", "w")
file.write("The fan 1 was turn on\n")
file.close()
# print "1"
break
#continue
# time.sleep(2)
while True:
if temperature<24:
#continue
GPIO.output(15, False)
file = open("wdd.txt", "w")
file.write("The fan 1 was turn off\n")
file.close()
#print "2"
break
#continue
# time.sleep(2)
while True:
if humidity>89:
#check.close()
#continue
GPIO.output(16,True)
file = open("wdd.txt", "w")
file.write("The fan 2 was turn on\n")
file.close()
#print "3"
break
#continue
# time.sleep(2)
while True:
if humidity<80:
#check.close()
#continue
GPIO.output(16, False)
file = open("wdd.txt", "w")
file.write("The fan 1 was turn off\n")
file.close()
#print "4"
break
#continue
# k time.sleep(2)
# print "a"
else:
print "something is worong"
if check == tmp:
# print "temperature is ", temperature,"wet is ",humidity,"%"
file = open("wdd.txt","w")
file.write("temperature is ", temperature, "wet is ", humidity, "%\n")
file.close()
#print "temperature is ", temperature,"wet is ",humidity,"%"
1 个解决方案
#1
7
file.write()
only takes one argument, a string. You've given it five instead:
write()只接受一个参数,一个字符串。你给了它五个:
file.write("temperature is ", temperature, " wet is ", humidity, "%\n")
Make that one string:
做一个字符串:
file.write("temperature is " + str(temperature) + " wet is " + str(humidity) + "%\n")
or use string formatting:
或者使用字符串格式:
file.write("temperature is {} wet is {}%\n".format(temperature, humidity))
file.write()
does not act like a print
statement.
write()不像一个打印语句。
#1
7
file.write()
only takes one argument, a string. You've given it five instead:
write()只接受一个参数,一个字符串。你给了它五个:
file.write("temperature is ", temperature, " wet is ", humidity, "%\n")
Make that one string:
做一个字符串:
file.write("temperature is " + str(temperature) + " wet is " + str(humidity) + "%\n")
or use string formatting:
或者使用字符串格式:
file.write("temperature is {} wet is {}%\n".format(temperature, humidity))
file.write()
does not act like a print
statement.
write()不像一个打印语句。