0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于树莓派3B实现智能闹钟的设计方案

科技观察员 来源:Andrea S 作者:Andrea S 2022-04-13 17:10 次阅读

背景

我需要一个为放置在床头柜而设计的紧凑型闹钟,包含时间、日期、天气、新闻,以及唤醒我的轻松声音。

介绍

这是一个闹钟,但我觉得我不是唯一一个想要这样一件漂亮而简单的物品放在床头柜上的人。

它具有有用的功能,例如柔和的唤醒(小蓝牙扬声器发出啁啾的鸟声),改变白天和黑夜,天气,新闻的信息和亮度。WiFi 在睡眠期间关闭。一切都非常好用并且功能可定制!

它主要基于漂亮的MagicMirror项目,但在这种情况下,我用了一个小屏幕以展现出我们需要的信息,而不是将所有东西都隐藏在镜子后面。

如果您对 MagicMirror 有一点了解,就会知道要安装不同的模块,以提供不同类型的功能。对于我的项目,我使用了:

时钟(默认)

MMM-AlarmClock(我们想要一个闹钟,对吧?)

CurrentWeather(默认模块)

WeatherForecast(也是默认值)

新闻源(默认)

MMM-Online-State(检查天气 WiFi 是打开还是关闭)

MMM-Tado(如果你有智能恒温器,你可以显示环境信息)

MMM-ModuleScheduler(可选,用于切换显示的模块)

然后我认为cron是在白天编写一些事件的简单而正确的工具。我将在下面显示我的crontab 。

现在让我们看看我的屏幕

白天版本:

pYYBAGJWkumAfIaFAAKg_hksupg663.png

夜间版本:

poYBAGJWkuWAfWS8AAEkbV6Fz2k404.png

看到区别了吗?如果我凌晨 3 点起床,我不需要太多信息:时钟就足够了!并且 WiFi 打开/关闭的指示也可以(例如,我将打开标志设置为黄色,将关闭标志设置为蓝色)。所以,如果你喜欢它那就去做吧!

硬件设置

设置非常简单:

1)首先,如果您有机箱,请将带有 microSD 卡的 Raspberry Pi(版本 2、3 或 4 都可以)插入其中(确保相关引脚/连接器仍然可以访问到连接屏幕);

2)然后只需将屏幕(无论您想使用哪个)连接到Raspberry Pi;我会推荐一个小的(如列表中的 3.5“),但您也可以使用官方的Raspberry Pi Touch Display或另一个;触摸功能将很有用(但不是 100% 必须)来关闭警报钟;

3)然后,如果您使用的是蓝牙音箱,直接从树莓派 USB 为其供电/充电可能很实用,因此只需将其连接到任何 USB 端口即可;

4) 最后接上电源插头。完毕!

软件安装

现在是时候进行软件安装了:

1)我假设您在(小容量,例如 8GB)microSD 卡上安装了标准的Raspberry Pi OS ,带有桌面。

2) MagicMirror 安装:所谓的“手动安装”就是复制粘贴几条命令一样简单,所以我推荐它。

3) MagicMirror(附加的,第 3 方)模块。以下每个模块都有单独的安装,快速简单(再次简单复制和粘贴),只需按照链接获取说明:首先MMM-AlarmClock ,我们将使用它在早上播放音乐或大自然的声音;MMM-Online-State ,我发现这对于确保夜间关闭 WiFi 很有用;可选,如果您有 Tado 恒温器,MMM-Tado ,显示当前和设置的温度、湿度等;Netatmo 的等效模块也可用:MMM-Netatmo 。我最近决定尝试MMM-ModuleScheduler并且再也没有回来!在白天/晚上的不同时间安排不同模块的显示很容易。

4)我们将使用的其他模块是默认模块,因此不需要进一步安装。

配置

有一个主要的配置文件需要编辑,另外您可能想要或需要调整一些其他文件,以优化可视化并获得可能的最佳结果。

让我们从 MagicMirror配置文件开始:您会在 MagicMirror/config 文件夹中找到一个示例文件。我还提供了我的配置文件,您可以将其用作起点。在下面找到它。

如果您想进行昼夜配置,我建议您像我一样创建一个 config_day.js 和 config_night.js。然后我们将使用cron命令切换它们(这里是晚上 11 点和早上 6 点):

》 crontab -e

# For more information see the manual pages of crontab(5) and cron(8)

# m h dom mon dow command

01 23 * * * cp /home/pi/MagicMirror/config/config_night.js /home/pi/MagicMirror/config/config.js

00 06 * * * cp /home/pi/MagicMirror/config/config_day.js /home/pi/MagicMirror/config/config.js

或者,您可以使用MMM-ModuleScheduler ,它允许在不同时间显示或隐藏不同的模块,非常棒!您将使用下面的 ModuleScheduler 找到我的配置文件。

最后,您可能想要或需要检查配置页面顶部链接的 Raspberry 特定配置。特别是启用自动启动和鼠标指针自动隐藏。

屏幕亮度

这是一个比较重要的条件,因为我们知道在我们试图入睡时明亮的屏幕会带来多大的干扰。另一方面,我们想要在日光条件下清晰可读的屏幕。对于某些显示器,您可以控制背光照明,这适用于我拥有的 PiTFT 屏幕。我制作了一个小脚本来使用cron命令(再次)改变亮度:

const raspi = require(‘raspi’);

const pwm = require(‘raspi-pwm’);

var myArgs = process.argv.slice(2);

var lumi = myArgs[0]/1000.0

raspi.init(() =》 {

const led = new pwm.PWM(‘GPIO18’);

led.write(lumi); // 1-1000 duty Cycle, aka brightness

});

这将由以下命令执行:

》 sudo crontab -e

# For more information see the manual pages of crontab(5) and cron(8)

# m h dom mon dow command

@reboot /bin/sh -c ‘echo ”0“ 》 /sys/class/backlight/soc\:backlight/brightness’

@reboot /usr/bin/node /home/pi/screen_lumi.js 500

00 23 * * * /usr/bin/node /home/pi/screen_lumi.js 1

00 07 * * * /usr/bin/node /home/pi/screen_lumi.js 100

00 08 * * * /usr/bin/node /home/pi/screen_lumi.js 1000

00 19 * * * /usr/bin/node /home/pi/screen_lumi.js 800

该screen_lumi.js脚本必须以 root 权限运行,因此屏幕亮度将由root crontab处理。

Wi-Fi开关(主要是涉及到辐射)

我相信这个功能会让你睡得更好。我不想让 Wi-Fi 设备每晚在距离我头部几厘米的地方持续发射无线信号。所以我介绍了 Wi-Fi 开关,这要感谢cron再次运行的rfkill命令:

》 crontab -e

# For more information see the manual pages of crontab(5) and cron(8)

# m h dom mon dow command

@reboot /usr/sbin/rfkill unblock wlan

00 23 * * * /usr/sbin/rfkill block wlan

00 7 * * * /usr/sbin/rfkill unblock wlan

这将在夜间关闭 Wi-Fi,并在早上再次打开(当您应该起床时!)。同样的命令也可以关闭蓝牙,但我发现有些蓝牙音箱可能不喜欢它,并且难以及时重新连接以进行早晨闹钟。此外,蓝牙的辐射功率比 Wi-Fi 低很多,而且不是连续传输。最后说明:在测试“ block wlan ”命令时,请确保您没有通过 Wi-Fi配置闹钟!

扬声器

在我的项目中,我使用了蓝牙扬声器(从 Raspberry Pi USB 端口供电/充电)。这可以在 Raspbian UI 中轻松配置:首先您需要从蓝牙菜单中找到并配对扬声器,然后您可以从音频菜单中选择扬声器作为音频输出设备(请参见下面的步骤)。当然,您也可以简单地插入一个 3.5” 插孔扬声器(但在我的情况下,Raspberry Pi PWM 时钟正忙于调暗屏幕背光!)。

pYYBAGJWktyAIb9-AAJeyybv3QQ476.png

唤醒声音

快速检查一下我们希望如何醒来:在下面的示例中,闹钟将在每周日早上 7 点播放我喜欢的 mp3 文件 3 分钟。确保您选择柔和悦耳的声音,就像森林中的啁啾鸟!这是我的首选(免费下载):森林中的鸟类。

{

module: ‘MMM-AlarmClock’,

position: ‘top_left’,

config: {

alarms: [

{time: “7:00”,

days: [1,2,3,4,5],

title: “Wake-up!”,

message: “It is 7.00am!”,

sound: “birds-in-the-forest.mp3”},

],

format: ‘dddd @ H:mm’,

touch: ‘true’,

volume: 0.50,

timer: 180 * 1000

}

},

最终成果:

pYYBAGJWkteAAWrSAAPp2cO0weY121.png
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 树莓派
    +关注

    关注

    113

    文章

    1639

    浏览量

    104741
  • 智能闹钟
    +关注

    关注

    1

    文章

    22

    浏览量

    7518
  • 树莓派3B+
    +关注

    关注

    0

    文章

    3

    浏览量

    646
收藏 人收藏

    评论

    相关推荐

    新到手的树莓3B的系统为什么是32位的

    我到手的树莓3系统是32位的,CPU是armv7l,而不是宣传的armv8,内存和主频到是没有问题。我想知道,现在的树莓
    发表于 04-10 17:17

    树莓3B 装不上PYQT

    树莓3B装不上PYQT ,按照方法1: sudoapt-get -y install Python-qt4 sudoapt-get -y install python-dev显示 :【警告
    发表于 06-08 16:50

    树莓3B 如何把HDMI切换到3.5寸屏幕上显示

    树莓3B 如何把HDMI切换到3.5寸屏幕上显示?????????
    发表于 06-08 17:27

    树莓3B 烧录w10 物联无法开机 求解

    树莓3B烧录w10物联无法开机 不知道是我烧录出了问题还是怎么回事 求大神帮忙愿意付辛苦费
    发表于 05-29 04:41

    树莓3b,为什么是32位的armv7

    3b是32位(图上这个getconf是硬件还是软件位数),硬件是32位的?3b的处理器写着是bcm2837,系统里看是arm7这是正常 的?
    发表于 10-01 22:10

    请问树莓3B有没有wifi模块的能支持自建AP么?

    帮会员提问,请大家帮帮他树莓3B有没有wifi模块的。能支持自建AP么?树莓3B有没有wif
    发表于 06-09 15:12

    请问树莓3B/3B+和4B如何安装OpenCV?

    树莓3B/3B+和4B安装OpenCV教程
    发表于 11-05 07:17

    怎样利用树莓3B去控制28步进电机?

    ,楼主自行购买了28步进电机及相应的驱动器,完成了对步进电机的控制。硬件设备:树莓3B 28步进电机及其驱动 12V开关电源...
    发表于 07-08 07:39

    树莓3b的工作电流不足会有什么影响

    树莓3b最好的工作电流是多少?树莓3b的工作电流不足会有什么影响?
    发表于 10-11 08:16

    树莓3B的硬件配置有哪些

    1、树莓3B(Raspberry Pi 3 型号 B SBC)硬件配置Broadcom BCM2837 芯片组,运行频率 1.2 GHz
    发表于 01-19 06:55

    树莓3B与STM32进行串口通讯调试的基本步骤有哪些

    调试的基本步骤如下:1.修改串口设置2.将STM32和树莓串口连接3.通过minicom工具来向STM32发送数据4.编程获取树莓数据点
    发表于 02-18 06:58

    用于覆盆子树莓3B及以上型号的RGB LED帽

    描述树莓 4 RGB 帽子用于覆盆子 Pi 3B 及以上型号的 RGB LED 帽。采用矩阵形式的 WS2812 LED。特征:5X 行和 5X 列5x5 矩阵外形关闭展示位置以提高显示质量可以以
    发表于 07-27 06:50

    树莓3B/4B散热风扇帽

    描述树莓 4 风扇帽树莓 3B/3B+/4B
    发表于 07-27 06:02

    请问一下为什么树莓3B开启CONFIG_ARCH_ARM64=y编译会报错呢

    请问一下为什么树莓3B开启CONFIG_ARCH_ARM64=y编译会报错呢?
    发表于 09-22 10:35

    树莓3树莓4原理图分享

    提供了树莓3树莓3B树莓
    发表于 09-27 07:58