life Watch使用ENV II来监测湿度和温度
扫描二维码
随时随地手机看文章
介绍生命手表,旨在让你保持活力,帮助适应健康的生活方式。激励你通过个性化的锻炼来保持健康。
新加坡政府一直在积极鼓励人们保持健康和活跃。政府推出了“健康生活总体规划”等举措,鼓励新加坡人定期锻炼,保持均衡饮食。尽管做出了这些努力,但新加坡人目前在所有体育活动方面仍然排名C-,这导致心血管疾病相关死亡人数增加。因此,新加坡需要开发一种更可持续的技术,帮助每个人适应更健康的生活方式。
问题:
我们如何在健康生活方式中设计一个可持续的技术解决方案,鼓励用户保持活跃和健康。
我们的项目:
我们的life Watch使用ENV II来监测湿度和温度,根据天气情况显示最适合的锻炼方式。此外,地球传感器检测用户何时完全淹没在水中,表明他们正在游泳。只需按下一个按钮,手表就会开始计时你的锻炼,跟踪你的进步。
RFID传感器充当步数跟踪器,允许用户在行走时收集点数。每跑一公里,用户就可以点击传感器来积累积分,这些积分可以换取令人兴奋的奖励和代金券。
最后,TOF传感器作为一个功能,通过计算用户完成每项运动(如俯卧撑和仰卧起坐)的次数来跟踪性能。
代码
from m5stack import *
from m5ui import *
from uiflow import *
import time
import unit
setScreenColor(0x222222)
env2_1 = unit.get(unit.ENV2, unit.PAHUB1)
earth_1 = unit.get(unit.EARTH, unit.PORTB)
pahub_0 = unit.get(unit.PAHUB, unit.PORTA)
mins = None
secs = None
hours = None
label0 = M5TextBox(118, 133, "Temp", lcd.FONT_DejaVu18, 0xFFFFFF, rotate=0)
label8 = M5TextBox(10, 141, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
image3 = M5Img(0, 13, "res/default.jpg", True)
image4 = M5Img(110, 15, "res/default.jpg", True)
image5 = M5Img(220, 13, "res/default.jpg", True)
label1 = M5TextBox(10, 170, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(132, 170, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(234, 170, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label5 = M5TextBox(139, 200, "00", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label4 = M5TextBox(66, 200, "00", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label6 = M5TextBox(207, 200, "00", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label7 = M5TextBox(207, 139, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
image1 = M5Img(110, 13, "res/default.jpg", True)
image2 = M5Img(220, 13, "res/default.jpg", True)
label9 = M5TextBox(95, 170, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)
image0 = M5Img(0, 13, "res/default.jpg", True)
from numbers import Number
def buttonA_wasDoublePress():
global mins, secs, hours
mins = (mins if isinstance(mins, Number) else 0) + 39
pass
btnA.wasDoublePress(buttonA_wasDoublePress)
def buttonB_wasDoublePress():
global mins, secs, hours
secs = (secs if isinstance(secs, Number) else 0) + 5
pass
btnB.wasDoublePress(buttonB_wasDoublePress)
image0.changeImg("res/default.jpg")
image1.changeImg("res/default.jpg")
image2.changeImg("res/default.jpg")
image3.changeImg("res/default.jpg")
image4.changeImg("res/default.jpg")
image5.changeImg("res/default.jpg")
secs = 0
mins = 0
hours = 0
label4.hide()
label5.hide()
label6.hide()
while True:
if (env2_1.temperature) >= 28:
rgb.setColorAll(0xff0000)
label0.setText(str((str('Temp:') + str((env2_1.temperature)))))
label1.setText('Swimming')
label2.setText('Basketball')
label3.setText('Cycling')
label8.setText('Goal: 40 mins')
label7.hide()
label8.hide()
label9.hide()
image0.show()
image1.show()
image2.show()
image3.hide()
image4.hide()
image5.hide()
if btnA.wasPressed():
label0.hide()
label1.show()
label2.hide()
label3.hide()
label4.show()
label5.show()
label6.show()
label7.show()
label9.show()
while True:
label7.setText(str(earth_1.analogValue))
label9.setText(str((str('Temp:') + str((env2_1.temperature)))))
label7.show()
label8.show()
image0.show()
image1.hide()
image2.hide()
if (earth_1.analogValue) > 0:
if secs >= 59:
mins = (mins if isinstance(mins, Number) else 0) + 1
secs = 0
if mins >= 59:
hours = (hours if isinstance(hours, Number) else 0) + 1
mins = 0
if hours >= 24:
secs = 0
mins = 0
hours = 0
if mins >= 40:
rgb.setColorAll(0x33ff33)
wait(1)
secs = (secs if isinstance(secs, Number) else 0) + 1
label6.setText(str(secs))
label5.setText(str(mins))
label4.setText(str(hours))
wait_ms(2)
elif btnB.wasPressed():
while True:
label1.hide()
label2.show()
label3.hide()
label7.hide()
label8.show()
image0.hide()
image2.hide()
image1.show()
wait_ms(2)
elif btnC.wasPressed():
label8.setText('Goal: 60 mins')
while True:
label1.hide()
label2.hide()
label3.show()
label7.hide()
label8.show()
image0.hide()
image1.hide()
image2.show()
wait_ms(2)
else:
rgb.setColorAll(0x3366ff)
label0.setText(str((str('Temp:') + str((env2_1.temperature)))))
label1.setText('Indoor running')
label2.setText('Dance')
label3.setText('Yoga')
label0.show()
label1.show()
label2.show()
label3.show()
label4.hide()
label5.hide()
label6.hide()
label7.hide()
label8.hide()
label9.hide()
image0.hide()
image1.hide()
image2.hide()
image3.show()
image4.show()
image5.show()
if btnA.wasPressed():
label8.setText('Goal: 40 mins')
while True:
label0.show()
label1.show()
label2.hide()
label3.hide()
label8.show()
image3.show()
image4.hide()
image5.hide()
wait_ms(2)
elif btnB.wasPressed():
label8.setText('Goal: 45 mins')
while True:
label1.hide()
label2.show()
label3.hide()
label8.show()
image4.show()
image3.hide()
image5.hide()
wait_ms(2)
elif btnC.wasPressed():
label8.setText('Goal: 60 mins')
while True:
label1.hide()
label2.hide()
label3.show()
label8.show()
image5.show()
image4.hide()
image3.hide()
wait_ms(2)
wait_ms(2)
本文编译自hackster.io