在树莓派中使用中断检查中继的状态

时间:2018-07-10 05:29:28

标签: python raspberry-pi3

我正在使用带树莓派的继电器,该继电器带有通过SSH的白炽灯泡,蜂鸣器和按钮。该代码的方式是,当我按下键盘上的一个键时,灯泡和蜂鸣器应打开,而当我按下按钮时,两者都应关闭。但是我的按钮代码无法正常工作。 我也想使用中断检查中继的状态,并且每当它的指示灯应发送一条消息到数据库时。但是我不知道打断。下面是我的代码。请帮我。预先感谢

import RPi.GPIO as GPIO    
import time    
in1 = 25 #GPIO25 pin22    
buzzer=24 #GPIO24 PIN18    
led=8 #GPIO8 PIN24    
button=23 #GPIO23 PIN 16   

GPIO.setmode(GPIO.BCM)    
GPIO.setwarnings(False)    
GPIO.setup(in1, GPIO.OUT)    
GPIO.setup(buzzer,GPIO.OUT)    
GPIO.setup(led,GPIO.OUT)    
        #GPIO.setup(button,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)    
GPIO.setup(button, GPIO.IN, pull_up_down=GPIO.PUD_UP)    
GPIO.output(in1, False)    
GPIO.output(buzzer,False)    
GPIO.output(led,False)    
try:   

        GPIO.output(in1,False)    
        while True:    

                GPIO.output(in1,False)   
# check from database whether it is effective or deffective .currently I have inputted from keyboard     
                variable=raw_input()    
                if variable=="a":    
                        m=variable   
                        for x in m:    

                                GPIO.output(in1, True)    
                                time.sleep(0.05)    
                                GPIO.output(in1, False)    
                                time.sleep(0.05)    
                        GPIO.output(buzzer,True)    
                        GPIO.output(led,True)    
                        if in1==True || buzzer==True:    
                                print "messge to database:pending"     
                #def my_callback(channel):    
                #if GPIO.input(button) == True:        
                GPIO.wait_for_edge(button, GPIO.FALLING)       
                #if variable=="b":       
                        #while 1:        
                GPIO.output(in1,False)        
                GPIO.output(led,False)        
                GPIO.output(buzzer,False)        
                print "mesage to database:ack completed"         
                        #else:    
                                #pass    
                #else:     
                        #pass     
                GPIO.output(in1,False)     

except:     
        GPIO.cleanup()    
        GPIO.output(in1,False)    

如果我的代码中有任何错误,请帮助我进行纠正。谢谢

0 个答案:

没有答案