Srxon05

Final_semafor.py

Oct 23rd, 2017
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.32 KB | None | 0 0
  1. from flask import Flask,render_template,redirect,url_for,request,abort
  2. from time import sleep
  3. import RPi.GPIO as GPIO
  4. GPIO.setmode(GPIO.BCM)
  5. GPIO.setwarnings(False)
  6. prvi="Ugaseno"
  7. drugi="Ugaseno"
  8. treci="Ugaseno"
  9.  
  10.  
  11. #dodajemo klasu semafor koja pokrece i gasi semafor
  12. class Semafor(object):
  13.     def __init__(self):
  14.         self.radi = False
  15.         self.crvena = Dioda()
  16.         self.zuta = Dioda()
  17.         self.zelena = Dioda()
  18.  
  19.     def upali(self):
  20.         self.radi = True
  21.         while(self.radi):
  22.             print "radi"
  23.             self.crvena.upali(14)
  24.             self.zuta.ugasi(15)
  25.             self.zelena.ugasi(18)      
  26.             sleep(1)
  27.            
  28.             self.crvena.upali(14)
  29.             self.zuta.upali(15)
  30.             self.zelena.ugasi(18)      
  31.             sleep(0.5)
  32.            
  33.             self.crvena.ugasi(14)
  34.             self.zuta.ugasi(15)
  35.             self.zelena.upali(18)      
  36.             sleep(1.5)
  37.            
  38.             self.crvena.ugasi(14)
  39.             self.zuta.upali(15)
  40.             self.zelena.ugasi(18)      
  41.             sleep(0.5)
  42.             self.crvena.ugasi(14)
  43.             self.zuta.ugasi(15)
  44.             self.zelena.ugasi(18)    
  45.            
  46.     def ugasi(self):
  47.         self.radi = False
  48.        
  49. #dodajemo klasu dioda pomocu koje palimo i gasimo diode :D
  50. class Dioda(object):
  51.     def __init__(self):
  52.         self.upaljena = False
  53.  
  54.     def upali(self, pin):
  55.     GPIO.setup( pin, GPIO.OUT)
  56.         GPIO.output(pin,1)
  57.         self.upaljena = True
  58.        
  59.     def ugasi(self, pin):
  60.     GPIO.setup( pin, GPIO.OUT)
  61.         GPIO.output(pin,0)
  62.         self.upaljena = False
  63.  
  64.  
  65. ad = Flask(__name__)
  66.  
  67. semafor = Semafor()
  68. dioda=Dioda()
  69.  
  70. @ad.route('/')
  71. def main():
  72.     print"Sine neko ti je usao na sajt"
  73.     return render_template("index.html")
  74.  
  75. @ad.route('/upali')
  76. def upali():
  77.     semafor.upali()
  78.     return redirect(url_for('main'))
  79.  
  80. @ad.route('/ugasi')
  81. def ugasi():
  82.     semafor.ugasi()
  83.     return redirect(url_for('main'))
  84.  
  85. @ad.route('/upalicrveno')
  86. def upali_crvenu():
  87.     global prvi
  88.     if prvi == "Ugaseno":
  89.         dioda.upali(14)
  90.         prvi = "Upaljeno"
  91.     else :
  92.         dioda.ugasi(14)
  93.         prvi = "Ugaseno"
  94.     return redirect(url_for('main'))
  95.  
  96.  
  97. @ad.route('/upalizuto')
  98. def upali_zutu():
  99.     global drugi
  100.     if drugi == "Ugaseno":
  101.         dioda.upali(15)
  102.         drugi = "Upaljeno"
  103.     else :
  104.         dioda.ugasi(15)
  105.         drugi = "Ugaseno"
  106.     return redirect(url_for('main'))
  107.  
  108. @ad.route('/upalizeleno')
  109. def upali_zelenu():
  110.     global treci
  111.     if treci == "Ugaseno":
  112.         dioda.upali(18)
  113.         treci = "Upaljeno"
  114.     else :
  115.         dioda.ugasi(18)
  116.         treci = "Ugaseno"
  117.     return redirect(url_for('main'))
  118.  
  119. @ad.route('/upalisve')
  120. def upalisve():
  121.     global prvi,drugi,treci
  122.     if prvi == "Ugaseno":
  123.         dioda.upali(14)
  124.         prvi = "Upaljeno"
  125.     if drugi == "Ugaseno":
  126.         dioda.upali(15)    
  127.         drugi = "Upaljeno"
  128.     if treci == "Ugaseno":
  129.         dioda.upali(18)
  130.         treci = "Upaljeno"
  131.     return redirect(url_for('main'))
  132.  
  133. @ad.route('/ugasisve')
  134. def ugasisve():
  135.     global prvi,drugi,treci
  136.     if prvi == "Upaljeno":
  137.         dioda.ugasi(14)
  138.         prvi = "Ugaseno"
  139.     if drugi == "Upaljeno":
  140.         dioda.ugasi(15)    
  141.         drugi = "Ugaseno"
  142.     if treci == "Upaljeno":
  143.         dioda.ugasi(18)
  144.         treci = "Ugaseno"
  145.     return redirect(url_for('main'))
  146.  
  147.  
  148.  
  149. if __name__ == '__main__':
  150.     ad.run(debug=True , host='0.0.0.0' , port=5000, threaded=True)
Advertisement
Add Comment
Please, Sign In to add comment