Untitled
unknown
python
3 years ago
3.6 kB
13
Indexable
# -*- coding: utf-8 -*- from flask import render_template, request from sense_hat import SenseHat import RPi.GPIO as gpio from flask import Flask import os, time sense = SenseHat() app = Flask(__name__) #sense.show_message("test 1") #no colour b = [0, 0, 0] #setting colours red = [255, 0, 0] white = [255,255,255] blue = [0, 0, 255] green = [0, 255, 0] pink = [228, 35, 157] def heart(): sense.set_pixels([b, r, b, b, b, b, r, b, r, r, r, b, b, r, r, r, r, r, r, r, r, r, r, r, b, r, r, r, r, r, r, b, b, b, r, r, r, r, b, b, b, b, b, r, r, b, b, b, b, b, b, b, r, b, b, b]) @app.route("/temp/") def temp(): #creating temp variable temp = sense.get_temperature() #round it to 2 decimal places temp = round(temp, 2) #return string of temperature temp = str(temp) #display message in text box return("Temperature is: " + temp) @app.route("/humidity/") def humidity(): humidity = sense.get_humidity() #round to 2 decimal places humidity = round(humidity, 2) #reading humidity in percentage on sense_hat #multiplying sense_hat range to display right amount of pixels humidity_value = 64 * humidity / 100 #return string of humidity humidity = str(humidity_value) #display message in text box return("Humidity is: " + humidity) @app.route("/pressure/") def pressure(): pressure = sense.get_pressure() #round to 2 decimal places pressure = round(pressure, 2) #dividing by 20 to display the pixels in sense_hat range #max 1260hPa / 20 = 63 pixels pressure_value = pressure/20 #return string of pressure pressure = str(pressure) #display message in text box return("Pressure is: " + pressure) @app.route("/<action>") def action(action): if action == "green": #used sense.clear and then set RGB colours, as it clears the display prior to showing the colour sense.clear(green) elif action == "red": sense.clear(red) elif action == "blue": sense.clear(blue) elif action == "pink": sense.clear(pink) elif action == "smile": sense.clear() sense.show_message(":)") elif action == "heart": sense.clear() heart() elif action == "temp": temp = sense.get_temperature() print(temp) #round it to 2 decimal places temp = round(temp, 2) #return string of temperature temp = str(temp) sense.clear() #set temp value with the right amount of pixels pixels = [red if i < temp_value else white for i in range(64)] #display the colours on sense_hat according to the temp value sense.show_message(pixels) elif action == "pressure": pressure() pressure = sense.pressure pressure_value = pressure / 20 pixels = [green if i < pressure_value else white for i in range(64)] sense.set_pixels(pixels) elif action == "humidity": humidity = sense.get_humidity() humidity = round(humidity, 2) humidity_value = 64 * humidity / 100) pixels = [blue if i < humidity_value else white for i in range(64)] sense.set_pixels(pixels) elif action == "off": sense.clear() if __name__ == "__main__": app.run(host = "0.0.0.0", port = 5002, debug = True)
Editor is loading...