from m5stack import *
from m5ui import *
from uiflow import *
import time
import unit
setScreenColor(0x00262b)
servo_0 = unit.get(unit.SERVO, unit.PORTC)
env2_1 = unit.get(unit.ENV2, unit.PAHUB0)
pbhub_0 = unit.get(unit.PBHUB, unit.PAHUB5)
rgb_1 = unit.get(unit.RGB, unit.PORTB)
MOTORANGLE = None
BREATHINGEFFECT = None
LoadingbarLENGTH = None
TEMPERATURE = None
HUMIDITY = None
LIGHTVALUE = None
WATER = None
Temperature = M5TextBox(44, 49, "Temperature", lcd.FONT_Default, 0xFFFFFF, rotate=0)
image0 = M5Img(60, 20, "res/waiting.jpg", False)
Humidity = M5TextBox(70, 115, "Humidity", lcd.FONT_Default, 0xFFFFFF, rotate=0)
temptext = M5TextBox(210, 49, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
lighttext = M5TextBox(210, 148, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
humitext = M5TextBox(210, 115, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
Light = M5TextBox(96, 148, "Light", lcd.FONT_Default, 0xFFFFFF, rotate=0)
LoadingBox = M5Rect(60, 167, 200, 20, 0x000000, 0xFFFFFF)
Start = M5TextBox(53, 217, "Start", lcd.FONT_Default, 0xFFFFFF, rotate=0)
shutdown = M5TextBox(216, 217, "Shutdown", lcd.FONT_Default, 0xFFFFFF, rotate=0)
LoadingBar = M5Rect(60, 168, 10, 18, 0xffffff, 0xffffff)
reset = M5TextBox(139, 217, "Reset", lcd.FONT_Default, 0xFFFFFF, rotate=0)
watertext = M5TextBox(210, 83, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
WaterLevel = M5TextBox(49, 82, "Water Level", lcd.FONT_Default, 0xFFFFFF, rotate=0)
motortext = M5Title(title="Motor Currently Active", x=3, fgcolor=0xFFFFFF, bgcolor=0x0d5e00)
import math
from numbers import Number
# Describe this function...
def startstopshow():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
Start.show()
shutdown.show()
# Describe this function...
def TEXTSHOW():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
Temperature.show()
Humidity.show()
Light.show()
temptext.show()
lighttext.show()
humitext.show()
watertext.show()
WaterLevel.show()
# Describe this function...
def startstophide():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
Start.hide()
shutdown.hide()
# Describe this function...
def TEXTHIDE():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
Temperature.hide()
temptext.hide()
Light.hide()
lighttext.hide()
humitext.hide()
Humidity.hide()
watertext.hide()
WaterLevel.hide()
reset.hide()
motortext.hide()
LoadingBox.hide()
LoadingBar.hide()
# Describe this function...
def LOADING_BAR():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
image0.show()
LoadingbarLENGTH = 1
LoadingBox.show()
LoadingBar.show()
while not LoadingbarLENGTH == 160:
while True:
LoadingBar.setSize(LoadingbarLENGTH, 18)
wait_ms(5)
LoadingbarLENGTH = (LoadingbarLENGTH if isinstance(LoadingbarLENGTH, Number) else 0) + 1
break
wait_ms(2)
while not LoadingbarLENGTH == 200:
while True:
LoadingBar.setSize(LoadingbarLENGTH, 18)
wait_ms(30)
LoadingbarLENGTH = (LoadingbarLENGTH if isinstance(LoadingbarLENGTH, Number) else 0) + 1
break
wait_ms(2)
wait_ms(200)
image0.hide()
TEXTHIDE()
# Describe this function...
def MOTORTEST():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
MOTORANGLE = 0
servo_0.write_angle(MOTORANGLE)
for count in range(15):
MOTORANGLE = MOTORANGLE + 30
servo_0.write_angle(MOTORANGLE)
wait_ms(250)
MOTORANGLE = MOTORANGLE - 20
servo_0.write_angle(MOTORANGLE)
wait_ms(50)
MOTORANGLE = 0
servo_0.write_angle(MOTORANGLE)
# Describe this function...
def RGB_breathing_effect():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
BREATHINGEFFECT = 0
for count2 in range(100):
BREATHINGEFFECT = (BREATHINGEFFECT if isinstance(BREATHINGEFFECT, Number) else 0) + 1
wait_ms(10)
for count3 in range(100):
BREATHINGEFFECT = (BREATHINGEFFECT if isinstance(BREATHINGEFFECT, Number) else 0) + -1
wait_ms(10)
# Describe this function...
def START():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
rgb.setColorAll(0x000000)
image0.show()
wait_ms(500)
for count4 in range(5):
rgb.setColorFrom(6 , 10 ,0xffff00)
rgb.setColorFrom(1 , 5 ,0x000000)
wait_ms(500)
rgb.setColorFrom(6 , 10 ,0x000000)
rgb.setColorFrom(1 , 5 ,0xffff00)
wait_ms(500)
rgb.setColorAll(0x000000)
image0.hide()
wait(2)
rgb.setColorAll(0x33ff33)
# Describe this function...
def RESET():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
servo_0.write_angle(0)
LOADING_BAR()
# Describe this function...
def OFF():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
rgb.setColorAll(0x000000)
for count5 in range(5):
rgb.setColorAll(0xffff00)
wait_ms(250)
rgb.setColorAll(0x000000)
wait_ms(250)
servo_0.write_angle(180)
for count6 in range(2):
rgb.setColorAll(0xffff00)
wait_ms(250)
rgb.setColorAll(0x000000)
wait_ms(250)
servo_0.write_angle(0)
for count7 in range(4):
rgb.setColorAll(0xffff00)
wait_ms(250)
rgb.setColorAll(0x000000)
wait_ms(250)
image0.hide()
image0.hide()
wait(2)
rgb.setColorAll(0xff0000)
def buttonC_wasPressed():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
TEXTHIDE()
startstophide()
image0.show()
OFF()
image0.hide()
servo_0.write_angle(0)
while not (btnA.isPressed()):
while True:
Start.show()
break
wait_ms(2)
pass
btnC.wasPressed(buttonC_wasPressed)
rgb.setColorAll(0x3366ff)
TEXTHIDE()
Start.show()
rgb.setBrightness(100)
def buttonA_wasPressed():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
servo_0.write_angle(0)
shutdown.hide()
Start.hide()
START()
TEXTSHOW()
shutdown.show()
reset.show()
while not ((btnB.isPressed()) or (btnC.isPressed())):
while True:
TEMPERATURE = int((env2_1.temperature))
HUMIDITY = int((env2_1.humidity))
LIGHTVALUE = int((10 - (math.ceil(math.sqrt(pbhub_0.analogRead(5))) - 50)))
WATER = int((14 - (math.ceil(math.sqrt(pbhub_0.analogRead(4))) - 50)))
wait(0.2)
temptext.setText(str(TEMPERATURE))
humitext.setText(str(HUMIDITY))
lighttext.setText(str(LIGHTVALUE))
watertext.setText(str(WATER))
if (WATER < 5) & (LIGHTVALUE > 7):
motortext.show()
MOTORTEST()
motortext.hide()
elif (TEMPERATURE > 29) & (WATER < 3):
motortext.show()
MOTORTEST()
motortext.hide()
break
wait_ms(2)
TEXTHIDE()
pass
btnA.wasPressed(buttonA_wasPressed)
def buttonB_wasPressed():
global MOTORANGLE, BREATHINGEFFECT, LoadingbarLENGTH, TEMPERATURE, HUMIDITY, LIGHTVALUE, WATER
rgb.setColorAll(0xffff00)
TEXTHIDE()
startstophide()
RESET()
while not ((btnA.isPressed()) or (btnC.isPressed())):
while True:
Start.show()
shutdown.show()
rgb.setColorAll(0x3333ff)
break
wait_ms(2)
pass
btnB.wasPressed(buttonB_wasPressed)
Comments