设计一种利用睡眠周期提高睡眠质量的智能灯
扫描二维码
随时随地手机看文章
这盏灯根据你的睡眠时间和你的目标醒来时间,在最佳时间叫醒你,以获得更好的睡眠质量
这是一个智能睡眠辅助灯,可以(可能)改善你的睡眠,帮助你在早上感觉更精神。我从在线睡眠计算器和我在网上做的一些研究中得到灵感,想出了这个概念。
现在,让我澄清一下,如果你因为过度工作或过度使用抖音而睡眠不足,它不会神奇地让你感觉更好。你可以把这盏灯想象成一个增强版的闹钟替代品,它主要做两件事:
首先,它会轻轻地唤醒你,就像初升的太阳一样。当起床的时候,灯的亮度逐渐增加,从温暖的橙色过渡到明亮的白色,在五到十分钟的时间里模仿美丽的日出。
第二部分更有智慧。它会根据你想要的起床时间和实际的睡眠时间计算出你醒来的最佳时间,并确保你在睡眠周期结束时被唤醒。
请继续阅读以了解更多有关该概念的信息。
理论
要了解灯的工作原理,我们需要了解睡眠周期的概念。
当你入睡时,你要经历4个主要阶段。第一阶段是浅睡眠。这是清醒和睡眠之间的过渡,持续大约5-10分钟。
然后你进入稍微深一点的睡眠。在这个阶段,你的体温下降,你的心率和呼吸变得更有规律。
第三阶段是深度睡眠。在这个阶段很难醒来,如果你醒了,你可能会感到迷失方向。
最后,你进入快速眼动睡眠,大多数生动的梦都发生在快速眼动睡眠期间。当你在梦中跑马拉松时,你的肌肉会暂时瘫痪,阻止你真正站起来跑。
这四个阶段构成了一个持续约90分钟的睡眠周期。你会在夜间经历几次这样的循环。虽然持续时间可能因人而异,但根据几项研究,平均约为90分钟。
例如,Vlasta Brezinova的一篇相当古老的论文调查了不同年龄人群的睡眠周期持续时间。虽然持续时间有所不同,但平均持续时间约为90分钟。其他研究论文似乎也同意这一点。我已经把我的研究成果写下来了。
在线睡眠计算器
像这样的在线睡眠计算器是一种简单的工具,它可以帮助你根据睡眠周期的概念找出睡觉或起床的最佳时间。
它们从你想要的起床时间向后工作:你输入你需要醒来的时间。
他们根据睡眠周期计算最佳就寝时间:使用平均90分钟的睡眠周期长度,他们以90分钟为单位计算出几种可能的就寝时间。这些睡觉时间是为了让你在闹钟响之前完成一定数量的完整睡眠周期。
例子:
如果你需要在早上7点起床,睡眠计算器可能会建议以下就寝时间:
•晚上10:00(6个完整的睡眠周期+入睡时间)
•晚上11:30(5个完整的睡眠周期+入睡时间)
•凌晨1:00(4个完整的睡眠周期+入睡时间)
•我们将做几乎相同的事情,但方向相反。
这个概念
就像我提到的,灯会根据你想要醒来和入睡的时间,计算出你醒来的最佳时间,并确保你在睡眠周期结束时被唤醒。
让我来解释一下这是怎么回事。假设你晚上10点半睡觉,你想在早上6点起床。这盏灯会做一些快速的计算,计算出3、4、5个睡眠周期的结束时间。也就是凌晨3点,4点半,然后是6点。在这种情况下,灯会在早上6点叫醒你。
现在,如果你睡得晚一点,比如晚上11:30,同样的过程也会发生。第三个周期的结束时间是凌晨4点,第四个周期是早上5点半,第五个周期是早上7点。因为你的目标起床时间是早上6点,它会检查哪个周期结束时间最接近。这是第四个周期的结束,在早上5:30。这就是灯叫醒你的时间。
计算睡眠时间
现在,你可能会想,“这盏灯到底怎么知道我什么时候睡着了呢?”事实是,它并不确切知道。但是,它做了一个非常聪明的有根据的猜测。为了做到这一点,我们做了两个关键的假设。
首先,我们发现大多数人在睡觉前会花一点时间放松自己,可能是在床上刷手机或看书。其次,我们依靠过去的一些研究表明,成年人在晚上躺下后平均需要15分钟才能入睡。你可能见过的那些在线睡眠计算器也经常使用这个15分钟窗口。
所以,我们是这样做的:我们在灯下面安装一个小的接近传感器。一旦你用完手机或书本,准备入睡,你只需把它放在灯前,接近传感器就会检测到它。然后,灯会等待一小段时间,以确保你没有把它捡起来,然后它会自动关闭。然后开始15分钟的倒计时,假设这大概是你入睡的时间。在这15分钟之后,唤醒时间将按照我之前描述的方式精确计算。
灯的设计
灯罩本身实际上可以3D打印。如果您对此感兴趣,可以在下面找到我制作的STL文件。
现在,你可能注意到我的灯有这个漂亮的木制框架和底座。但它根本不是木头!这是泡沫板!
我们需要两个u型截面。每个底部都有一个小突起,为接近传感器创造空间,中间有一个缺口,这样它们就可以连接在一起。
然后我用一卷空的玻璃纸胶带做了一个底座。
扩散板
为了漫射光线,我们将使用一种有趣的材料。这实际上是从一台坏掉的笔记本电脑屏幕上抢救出来的扩散片。
你通常可以很容易地在当地的电子废品店找到这些。这张纸对我们的项目来说是完美的,因为它美丽地漫射光线,给它一个漂亮的磨砂玻璃外观。
逼真的木质外观
现在,让我向你展示我是如何给泡沫板逼真的木纹外观。首先,我混合了一种浅棕色的丙烯酸颜料,并在所有的表面涂上了它。均匀地覆盖边缘也很重要。完成后,让它完全干透。
接下来,我拿了一种深色的棕色水彩,用一点水稀释。我用海绵轻轻地用长而直线的笔画上泡沫。确保海绵在所有表面上以相同的方向运行,模仿木材的自然纹理。别忘了把那些边缘也涂上深色的油漆!一旦所有的碎片都被涂上了,把它们放在一边完全干燥。
最后,我们需要一个更深的棕色来真正带出细节。我混合了一些棕色水彩和一点黑色。这一次,我比以前稀释了一点。使用同样的海绵技术,我像之前一样使用笔画,确保它们都朝着同一个方向运行。让它最后一次干燥,你就有了一个漂亮的木制成品!没人会猜到下面有泡沫板!
电子产品
晾干的时候,让我们把注意力转移到电子产品上。在我们的灯的核心,我们将使用一个微小的ESP32板,称为小ESP32S3。这对于从互联网上获取时间和确保led接收到正确的信号至关重要。
对于光源,我们使用高质量的WS2813可寻址LED带。高质量的色带对于准确再现色彩至关重要,尤其是当你想在晚上营造出放松的环境效果时。
对于这两款产品,我都使用了Seeed studio的电子产品,因为他们的组件非常可靠,led的质量也非常好。
我们还将使用一个小型红外接近传感器。你不需要高端的;一个基本的,负担得起的就可以了。
让我们开始把我们的LED条削减到10个LED。
现在进行布线-按照连接图:
为了确保一切正常工作,我编写了一个简单的测试代码,产生柔和、温暖的白光。
连接
现在我们可以继续连接所有的电子设备。对于小ESP32,我建议创建一个小插座与电线焊接到母头。我已经在之前的项目中展示了如何做到这一点。
不幸的是,就在这一点上,我的烙铁决定放弃我!所以,对于剩余的连接,我不得不使用跳线。您可以按照这里的接线图进行连接。
确保留下三个母跳线连接器免费下面的接近传感器,我们将稍后连接。
好吧,这可能不是最漂亮的布线工作,但由于它将被藏在灯里,它目前的功能是完美的。一旦我的新烙铁到达,我肯定会整理东西与适当的焊接连接。
组装
抓住橡胶胶粘剂,并适用于大量的缺口两个U节。让粘合剂风干约5分钟,然后将两片粘合在一起。当你把这些碎片牢牢地压在一起时,就会形成更牢固的粘合。
接下来,把扩散片小心地包裹在底座上。在重叠的两端涂上一些橡胶粘合剂,并将它们固定在一起。对底盖做同样的事情。
如果你注意到,我没有把扩散片或基础覆盖直接粘到基础本身。这是为了让我很容易删除他们以后,如果我曾经需要故障排除或访问电子设备。
你还会注意到我在底部创建了一个小槽。这是专门针对USB-C电缆的,允许我们为ESP32供电并在需要时重新编程,而无需将所有东西拆开。
最后,小心地滑动整个基础组件之间的两个胶合u型段。
用双面胶带把接近传感器固定在下面。就这样,我们的灯的主体结构完成了!
代码
现在是时候将主代码上传到ESP32了。它在很大程度上遵循了我们在开始时讨论的相同原则。
该代码使用互联网获取当前时间。如果您使用RTC模块,则可以消除此问题。它有一个名为runSunriseAnimation()的函数,用来模拟我之前提到的美丽的日出动画。函数calculateWakeTime()根据当前时间(睡眠时间)计算唤醒时间。它假设入睡时间为15分钟,睡眠周期为90分钟。然后,它根据设定的理想起床时间(代码中的上午7点)计算最接近的叫醒时间。
现在,说实话,我的代码可能并不完美,所以我真的鼓励您看一下它。如果你发现任何需要改进的地方,请在评论中分享你的建议——我很乐意听到你的想法并向你学习。但现在,代码的功能是预期的,将使我们的灯工作。
结论
这就是答案!我们的睡眠周期灯终于完成了!看起来是不是很棒?老实说,谁能猜到这不是真的木头?另外,我们给了一个废弃的笔记本电脑屏幕一个新的生命——这是一个双赢!
现在,使用它很简单。在你开始放松之前——不管你是在看手机还是在看书——把灯打开。然后,当你准备睡觉的时候,把手机放在它前面的桌子上,然后慢慢入睡。灯会处理剩下的事情,轻轻地关掉,在最佳时间叫醒你,所有这些都不会扰乱你的睡眠周期。不过,我想要一个能发出日出效果的扬声器。
本文编译自hackster.io