Commit b9f892fa authored by Kristian Tan's avatar Kristian Tan

Adding RPi.GPIO package and setting some pins

parent 03902bd3
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
<option name="enabled" value="true" /> <option name="enabled" value="true" />
</component> </component>
<component name="NewModuleRootManager"> <component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$/../IoTSmartMeter"> <content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/../IoTSmartMeter/venv" /> <excludeFolder url="file://$MODULE_DIR$/venv" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="jdk" jdkName="Python 3.6 (IoTSmartMeter)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
</component> </component>
<component name="TemplatesService"> <component name="TemplatesService">
......
...@@ -3,5 +3,5 @@ ...@@ -3,5 +3,5 @@
<component name="JavaScriptSettings"> <component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" /> <option name="languageLevel" value="ES6" />
</component> </component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (untitled)" project-jdk-type="Python SDK" /> <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (IoTSmartMeter)" project-jdk-type="Python SDK" />
</project> </project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
This diff is collapsed.
from flask import Flask, render_template from flask import Flask, render_template
import datetime import datetime
import RPi.GPIO as GPIO
app = Flask(__name__) app = Flask(__name__)
# Create a dictionary called pins to store the pin number, name, and pin state:
pins = {
24: {'name': 'coffee maker', 'state': GPIO.LOW},
25: {'name': 'lamp', 'state': GPIO.LOW}
}
# Set each pin as an output and make it low:
for pin in pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
@app.route("/") @app.route("/")
def hello(): def main():
now = datetime.datetime.now() # For each pin, read the pin state and store it in the pins dictionary:
time_string = now.strftime("%Y-%m-%d %H:%M") for pin in pins:
pins[pin]['state'] = GPIO.input(pin)
# Put the pin dictionary into the template data dictionary:
template_data = { template_data = {
'title' : 'HELLO!', 'pins': pins
'time': time_string
} }
# Pass the template data into the template main.html and return it to the user
return render_template('main.html', **template_data) return render_template('main.html', **template_data)
@app.route('/button') @app.route('/button')
def button(): def button():
print("Button press") print("Button press")
now = datetime.datetime.now()
time_string = now.strftime("%Y-%m-%d %H:%M")
template_data = {
'title': 'HELLO!',
'time': time_string
}
return render_template('main.html', **template_data)
if __name__ == '__main__': if __name__ == '__main__':
app.run(host='0.0.0.0', port=8090) app.run(host='0.0.0.0', port=8090)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment