Mam zrobiony program w Pythonie który steruje otwieraniem furtki, ale potrzeba jeszcze sterować bramą.
I tutaj prośba do Programistów aby mi pomogli uruchomić drugi przycisk(czyli dopisać kawałek kodu obsługujący drugi button), który sterował by bramą.
Kod pliku button.py
Code: Select all
#! /usr/bin/env pyt
# -*- coding: utf-8 -*-
import time
import tornado.ioloop
import tornado.web
import RPi.GPIO as GPIO
import datetime
import glob
import os
from time import strftime
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setup(17,GPIO.OUT)#otwieranie furtki
GPIO.setup(18,GPIO.IN)#czujnik otwarcia bramy
GPIO.setup(23,GPIO.IN)#czujnik otwarcia furtki
GPIO.setup(27,GPIO.OUT)#otwieranie bramy
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("""
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Furtka-Brama</title>
</head>
<body bgcolor="#FFFFFF" text="#333333">
<font face="Verdana">
<center>
<table>
<tr>
<td style="color: #FFFFFF; background-color: #06C64F; font-size: 40px; height: 90px; width:1500px; text-align: center;">
Sterowanie furtką i bramą:</td>
</tr>
</table>
<hr />
<table>
<tr>
<td style="font-size: 60px; font-weight: bold; text-align: center;">
Furtka:</td>
</tr>
</table>
<form method="post">
<button type="submit" style="color: #FFFFFF; background-color: #06C64F; height: 180px; width:180px; font-size: 40px;" value="1" name="Ps">Otwórz</button>
</form>
<hr />
<table>
<tr>
<td style="font-size: 60px; font-weight: bold; text-align: center;">
Brama:</td>
</tr>
</table>
<form method="post">
<button type="submit" style="color: #FFFFFF; background-color: #06C64F; height: 180px; width:180px; font-size: 40px;" value="2" name="Ps">Otwórz<br />Zamknij</button>
</form>
<hr />
</center>
</font>
</body>
</html>
""".format(Ps=MyGlobals.Ps))
def post(self):#tutaj nastawiamy Ps na stronie)
MyGlobals.Ps = int(self.request.arguments.get('Ps')[0])
if MyGlobals.Ps==1:#otwieranie furtki
GPIO.output(17,GPIO.HIGH)
time.sleep(4)#czas otwierania furtki 4s
GPIO.output(17,GPIO.LOW)
MyGlobals.Ps=0
elif MyGlobals.Ps==2:#otwieranie bramy
GPIO.output(27,GPIO.HIGH)
time.sleep(1)#impuls otwierania bramy 1s
GPIO.output(27,GPIO.LOW)
MyGlobals.Ps=0
self.redirect(r"/")
def make_app():
return tornado.web.Application([(r"/", MainHandler),])
class MyGlobals(object):
Ps =0
def callback(*args, **kwargs):
tornado.ioloop.IOLoop.instance().add_timeout(time.time() + 1, callback)
if __name__ == "__main__":
app = make_app()
app.listen(8000)
tornado.ioloop.IOLoop.instance().add_timeout(time.time() + 1, callback)
tornado.ioloop.IOLoop.current().start()