硬件准备:
1.笔记本电脑
2.继电器一个
3.豆浆机一个
4.音响一个
5.杜邦线若干
继电器连接到豆浆机的开关。
程序:
#encoding:utf-8
import time
import RPi.GPIO as GPIO
import sys
import os
reload(sys)
sys.setdefaultencoding('utf8')
pin_switch = 24 #控制豆浆机开关
delay_time = 10 # 豆浆机打开后10 s 后响起音乐
def init_gpio():
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_switch, GPIO.OUT)
GPIO.output(pin_switch, GPIO.LOW)
def get_current_time():
str_normal_time = time.strftime('%Y-%m-%d-%H-%M',time.localtime(time.time()))
str_time_seq = str_normal_time.replace('-','')
return str_time_seq
def time_check(str_time_seq): #做时间输入合法检查
length = len(str_time_seq)
if length != 12:
print("请按yyyy-MM-dd-HH-mm这种格式输入您要设定的时间,1月则用01表示,例如:2015-01-22-14-05")
return False
for char_i in str_time_seq:
if not (char_i >= '0' and char_i <= '9'):
print("输入包含非法字符!")
return False
return True
def parse_time_str_to_chinese(str_time_seq):
str_year = str_time_seq[0:4]
str_mouth = str_time_seq[4:6]
str_day = str_time_seq[6:8]
str_hour = str_time_seq[8:10]
str_minute = str_time_seq[10:12]
str_time_chinese = str_year+'年'+str_mouth+'月'+str_day+'日'+str_hour+'时'+str_minute+'分'
return str_time_chinese
def get_user_input_time(): #做时间输入合法检查
str_cur_time = get_current_time()
print('当前时间为:'+parse_time_str_to_chinese(str_cur_time))
while True:
str_user_input_time = raw_input("请按yyyy-MM-dd-HH-mm这种格式输入您要设定的时间(24小时制度,精确到分钟)\n:")
str_user_input_time.replace(' ','') #除去空格
str_user_time_seq = str_user_input_time.replace('-','')
if time_check(str_user_time_seq):
break;
return str_user_time_seq
if __name__ == "__main__":
init_gpio()
str_user_set_time = get_user_input_time()
print("您设定的时间为:"+parse_time_str_to_chinese(str_user_set_time))
while True:
str_current_time = get_current_time()
#print(str_current_time)
if str_current_time >= str_user_set_time:
GPIO.output(pin_switch, GPIO.HIGH)
time.sleep(0.5)
GPIO.output(pin_switch, GPIO.LOW)
break;
time.sleep(2)
time.sleep(delay_time)
#while True:
os.system("mplayer music.mp3")