77 lines
2.6 KiB
Python
77 lines
2.6 KiB
Python
import RPi.GPIO as GPIO
|
|
from flask import Flask, render_template, request
|
|
from src.einstellungen import *
|
|
from src.schrittmotor import motor
|
|
|
|
kamera_server = Flask(__name__)
|
|
|
|
# Set each pin as an output and make it low:
|
|
for pin in pins_out:
|
|
GPIO.setup(pins_out[pin]['nr'], GPIO.OUT)
|
|
GPIO.output(pins_out[pin]['nr'], GPIO.HIGH)
|
|
|
|
for pin in pins_in:
|
|
GPIO.setup(pins_in[pin]['nr'], GPIO.IN)
|
|
|
|
GPIO.output(pins_out['kamera']['nr'], GPIO.HIGH)
|
|
|
|
m1 = motor('drehen', m1_a1, m1_b1, m1_a2, m1_b2, m1_t1, m1_t2, m1_te, m1_es, 0)
|
|
m1 = motor('kippen', m2_a1, m2_b1, m2_a2, m2_b2, m2_t1, m2_t2, m2_te, m2_es, 1)
|
|
|
|
@kamera_server.route("/")
|
|
def main():
|
|
# For each pin, read the pin state and store it in the pins dictionary:
|
|
for pin in pins_out:
|
|
pins_out[pin]['state'] = GPIO.input(pins_out[pin]['nr'])
|
|
for pin in pins_in:
|
|
pins_in[pin]['state'] = GPIO.input(pins_in[pin]['nr'])
|
|
|
|
# Put the pin dictionary into the template data dictionary:
|
|
templateData = {
|
|
'pins' : pins_out,
|
|
'pins_in' : pins_in
|
|
}
|
|
# Pass the template data into the template main.html and return it to the user
|
|
return render_template('main.html', **templateData)
|
|
|
|
# The function below is executed when someone requests a URL with the pin number and action in it:
|
|
@kamera_server.route("/<changePin>/<action>")
|
|
def action(changePin, action):
|
|
# Convert the pin from the URL into an integer:
|
|
|
|
# Get the device name for the pin being changed:
|
|
deviceName = pins_out[changePin]['name']
|
|
changePin = pins_out[changePin]['nr']
|
|
# If the action part of the URL is "on," execute the code indented below:
|
|
if action == "on":
|
|
# Set the pin high:
|
|
GPIO.output(changePin, GPIO.HIGH)
|
|
# Save the status message to be passed into the template:
|
|
message = "Turned " + deviceName + " on."
|
|
if action == "off":
|
|
GPIO.output(changePin, GPIO.LOW)
|
|
message = "Turned " + deviceName + " off."
|
|
|
|
# For each pin, read the pin state and store it in the pins dictionary:
|
|
for pin in pins_out:
|
|
pins_out[pin]['state'] = GPIO.input(pins_out[pin]['nr'])
|
|
for pin in pins_in:
|
|
pins_in[pin]['state'] = GPIO.input(pins_in[pin]['nr'])
|
|
|
|
# Along with the pin dictionary, put the message into the template data dictionary:
|
|
templateData = {
|
|
'pins' : pins_out,
|
|
'pins_in' : pins_in
|
|
}
|
|
|
|
return render_template('main.html', **templateData)
|
|
|
|
@kamera_server.route("/motor1_test")
|
|
def main():
|
|
m1.vorwaerts(10)
|
|
# Pass the template data into the template main.html and return it to the user
|
|
return "fertig"
|
|
|
|
if __name__ == "__main__":
|
|
kamera_server.run(host='0.0.0.0')
|
|
|