
在当今快节奏的世界中,保持高效同时维持专注是一项挑战。遇见Pomodoro Bot,这款基于桌面设计、旨在革新您工作方式的伙伴。它利用Viam多功能机器人平台构建,并由Raspberry Pi驱动,通过整合现代传感器和智能提醒,超越了传统的番茄工作法计时器,创造了无缝的生产力体验。

功能包括:
- 番茄工作法计时器:掌握番茄技巧以提高专注力和效率。
- 空气质量监测:通过跟踪二氧化碳、挥发性有机化合物水平和空气质量指数,确保您的工作空间最适合生产力。
- 光照质量提醒:优化照明条件以减少眼睛疲劳并提高集中度。
- 会议提醒:通过即将到来会议的主动提醒,保持日程安排。
Pomodoro Bot不仅是一个计时器;其时尚的设计和对智能功能的关注使其成为您生产效率的专属合作伙伴。无论是在家还是办公室工作,这个机器人都能确保您保持高效、健康和按时完成任务。
物料清单
硬件和物料
- Raspberry Pi 5 x1
- microSD卡用于Pi x1
- Raspberry Pi官方电源 x1
- 4英寸HDMI电容触摸IPS LCD显示屏 x1
- Fermion: ENS160空气质量传感器 x1
- TEMT6000: 环境光传感器 x1
- 按钮模块 x1
- USB Type C母头分线板 x1
- USB Type C公头分线板 x1
- 硅胶电线
软件需求
- 安装VS Code或您偏好的代码编辑器
- 安装Python3
步骤一:准备工作
- 注册一个免费的Viam账号,然后登录到Viam应用。
步骤二:设置您的Raspberry Pi
Raspberry Pi从USB闪存驱动器(或microSD卡)启动。您需要在一个USB闪存驱动器上安装Raspberry Pi OS,以便与您的Pi一起使用。有关设置Raspberry Pi的替代方法的更多详情,请参阅Viam文档。
安装Raspberry Pi OS
- 将USB闪存驱动器(或microSD卡)连接到您的计算机。
- 下载并启动Raspberry Pi Imager。

- 单击选择设备。选择您的Pi型号,这里是Raspberry Pi 5。
- 单击选择操作系统。从菜单中选择Raspberry Pi OS (64-bit)。
- 单击选择存储。从设备列表中选择您打算在Raspberry Pi中使用的USB闪存驱动器。

- 配置远程访问。单击下一步。当提示应用OS自定义设置时,选择编辑设置。
- 勾选设置主机名并在该字段中输入您想要访问Pi的名字,例如raspberrypi。
- 选择“设置用户名和密码”复选框,并设置一个用于登录Pi的用户名(例如您的名字)。如果跳过此步骤,默认用户名将是pi(出于安全原因不推荐)。并指定密码。
- 将您的Pi连接到Wi-Fi,以便无线运行viam-server。勾选配置无线局域网并输入您的无线网络凭据。SSID是您的Wi-Fi网络名称,密码是网络密码。将无线局域网国家更改为路由器当前所在的国家。

- 选择服务标签,勾选启用SSH,并选择使用密码认证。请务必记住您设置的主机名和用户名,因为您需要用它们SSH进入Pi。

- 保存更新,并确认YES以应用OS自定义设置。确认YES以擦除USB闪存驱动器上的数据。您的操作系统可能还会提示您输入管理员密码。授予Imager权限后,它将开始向USB闪存驱动器写入并验证Linux安装。
- 安装完成后,从计算机上移除USB闪存驱动器。
使用SSH连接
-
将USB闪存驱动器插入Raspberry Pi并插上电源启动Pi。红色LED亮起表示Pi已连接电源。确保使用的是5V 5A(25W)电源。默认情况下,使用3A电源时会禁用USB引导,因此需要足够的电流才能实现Raspberry Pi 5的最佳性能。
-
启动Pi后,使用SSH连接到它。从命令行终端窗口,输入以下命令。尖括号中的文本(包括尖括号本身)应替换为您在设置Pi时配置的用户和主机名。
ssh <USERNAME>@<HOSTNAME>.local
如果提示“您确定要继续连接吗?”,输入yes并回车。然后,输入您的用户名密码。您应该看到登录消息和命令提示符。

-
更新您的Raspberry Pi以确保所有最新软件包都已安装:
sudo apt update
sudo apt upgrade
启用通信协议
- 运行以下命令启动Pi配置工具:
sudo raspi-config
- 使用键盘选择界面选项,然后按回车键。

- 启用相关协议以支持硬件。由于您正在使用通过I2C通信的传感器,因此请启用I2C。

- 确认启用I2C接口的选项。完成后重启Pi。
步骤三:配置您的机器
创建您的机器
- 在Viam应用的位置标签下,通过输入名称并点击添加机器来创建一台机器。

- 单击查看设置说明。

- 在您希望用来与和控制Pomodoro Bot进行通信的Raspberry Pi设备上安装viam-server。为Raspberry Pi选择Linux / Aarch64平台,并将安装方法保留为viam-agent。

- 使用viam-agent下载并安装viam-server到您的Raspberry Pi。按照从Raspberry Pi SSH提示符运行提供的命令的说明进行操作。

- 设置页面会在机器成功连接时指示。
添加您的Raspberry Pi
- 在Viam应用中找到配置标签。现在是时候配置您的硬件了。
- 单击左侧菜单中的+图标并选择组件。

- 选择board,并找到pi5模块。这将添加用于与Raspberry Pi 5 GPIO引脚工作的模块。

- 注意添加此模块会添加名为PI5的板硬件组件。右侧可折叠卡片对应于左侧面板列出的部分。

- 单击右上角的保存以保存并应用您的配置更改。如果出现任何问题,请检查日志标签下可能会出错的地方。
步骤四:集成Google Calendar
现在让我们设置Pomodoro Bot与Google Calendar的工作,以便您可以随时掌握日程安排而不失去焦点。一旦集成,您的机器人将自动同步您的日历以管理事件和提醒。
设置Google Cloud项目
- 访问Google Cloud Console。
- 创建一个专门为此集成的新项目。

项目准备就绪后:
- 打开API库。
- 搜索“Google Calendar API”。

- 单击启用以激活API。

创建服务账户
- 在Google Cloud Console中,导航至IAM & Admin > Service Accounts。

- 设置新的服务账户。
创建一个新的服务账户。


分配“Editor”或“Owner”角色以给予必要的权限。

创建并下载JSON格式的密钥文件。此文件将在稍后变得至关重要。


将文件保存在安全位置。
使用SCP命令将此文件从PC传输到Raspberry Pi,在以下格式中:
使用主机名:
scp service-account-file.json username@hostname.local:/path/on/raspberrypi
使用IP地址:
scp pomodorobot-service-account-file.json pi@192.168.1.4:/home/pi/
共享您的日历与服务账户
- 打开Google Calendar。
- 选择您想要使用的日历。
- 在设置和共享中,找到与特定人员共享部分:
- 输入服务账户密钥文件中的电子邮件地址。
- 给予其修改事件的权限。
- 向下滚动到“集成日历”并复制下一个步骤的日历ID。
以下是接续的完整中文翻译:
连接您的日历到Pomodoro Bot
- 打开Viam应用程序并进入CONFIGURE(配置)选项卡。
- 添加日历模块,并提供:

- 之前复制的日历ID。
- 服务账户JSON文件的路径。

- 保存更改以完成设置。
测试集成
- 在Google日历中创建一个测试事件:
- 回到Viam应用程序并打开Control(控制)选项卡。

- 使用DO COMMAND界面中的给定命令检查即将发生的日历事件:
{ "get_events": { "max_results": 10 } }

如果一切正常,您应该能在结果中看到您的测试事件("测试会议")。这确认了您的Pomodoro Bot已成功链接到您的Google日历。
步骤五:集成ENS160空气质量传感器
让我们将ENS160空气质量传感器与您的Pomodoro Bot整合,以便有效监控室内空气质量。ENS160传感器追踪挥发性有机化合物(VOCs)、等效二氧化碳(eCO2),并提供空气质量指数(AQI)——对于保持最佳工作环境至关重要。

硬件设置:
- 电源连接:
- 将ENS160传感器的VCC引脚连接到Raspberry Pi上的3.3伏特引脚。
- 将ENS160传感器的接地引脚连接到Raspberry Pi上的接地引脚。
- I2C通信:
- 将ENS160传感器的SCL引脚连接到Raspberry Pi的SCL引脚。
- 将ENS160传感器的SDA引脚连接到Raspberry Pi的SDA引脚。

确保所有连接都是安全的,并仔细检查布线以避免任何问题。
软件集成:
- 在Viam应用中添加ENS160传感器:
- 打开Viam应用。
- 导航到CONFIGURE(配置)选项卡。
- 添加一个新的组件用于ENS160传感器。
- 点击“保存”并等待组件完成设置。

- 测试集成:
- 切换到Viam应用中的Control(控制)选项卡。
- 观察来自ENS160传感器的实时数据流,包括VOC水平、eCO2值和AQI等实时空气质量指标。

步骤六:集成TEMT6000环境光传感器
通过集成TEMT6000环境光传感器增强您的Pomodoro Bot,该传感器监测光照水平,有助于优化工作空间照明以提高生产力。有了这个传感器,您的机器人可以检测环境光强度并根据需要进行调整,以创造舒适且高效的工作环境。
硬件设置:
- 组件:
- TEMT6000环境光传感器

- ADS1115模拟数字转换器(ADC)

- 连接:
- TEMT6000至ADS1115:
- 将TEMT6000的S或SIG引脚(模拟输出引脚)连接到ADS1115的一个模拟输入通道(例如A0)。
- 将TEMT6000的VCC引脚连接到Raspberry Pi上的3.3V引脚。
- 将TEMT6000的接地引脚连接到Raspberry Pi上的接地引脚。
- ADS1115至Raspberry Pi:
- 将ADS1115的SCL引脚连接到Raspberry Pi的SCL引脚。
- 将ADS1115的SDA引脚连接到Raspberry Pi的SDA引脚。
- 将ADS1115的VCC引脚连接到Raspberry Pi上的3.3伏特引脚。
- 将ADS1115的接地引脚连接到Raspberry Pi上的接地引脚。

软件集成:
- 在Viam应用中添加TEMT6000传感器:
- 打开Viam应用。
- 导航到CONFIGURE(配置)选项卡。
- 添加TEMT6000传感器作为新组件,指定其ADC通道。


- 点击“保存”并等待组件完成设置。
- 测试传感器:
- 切换到Viam应用中的Control(控制)选项卡。
- 观察来自TEMT6000传感器的实时数据流。
- 调整传感器周围的光线并验证读数是否实时更新。
步骤七:集成4英寸HDMI电容触摸显示屏
为您的Pomodoro Bot添加显示屏,将其从功能性生产力工具提升为互动且吸引人的伙伴。通过屏幕,您的机器人可以直观地交流,提供直观反馈,并通过友好的提醒或有趣的动画激励您。

功能:
- 4英寸IPS屏幕,分辨率为720×720。
- 支持5点电容触摸,钢化玻璃面板,硬度达6H。
- 当与Raspberry Pi一起使用时,它支持Raspberry Pi OS/Ubuntu/Kali和Retropie。
- 使用Jetson Nano时支持Ubuntu。
- 用作计算机显示器时,支持Windows 11/10/8.1/8/7。
- 内置双触摸电路,USB Type-C或I2C触摸可选,具有更多应用场景。
- 带有3.5mm音频接口和扬声器接口,支持HDMI音频输出。
硬件连接:
- 将屏幕背面的触摸开关设置为“I2C”。
- 使用铜柱将Raspberry Pi固定在屏幕上,并注意对准引脚位置。
- 将Raspberry Pi的HDMI端口连接到LCD。
- 将显示器上的USB-C连接到Raspberry Pi的USB端口以启用触摸交互。

软件设置:
- 按照说明使用Pi Imager设置Raspberry Pi。
- 设置完成后,将SD卡插入计算机,并打开SD卡根目录中的config.txt文件,在文件末尾添加以下代码:
dtparam=i2c_arm=on
dtoverlay=waveshare-4dpic-3b
dtoverlay=waveshare-4dpic-4b
dtoverlay=waveshare-4dpic-5b
hdmi_force_hotplug=1
config_hdmi_boost=10
hdmi_group=2
hdmi_mode=87
hdmi_timings=720 0 100 20 100 720 0 20 8 20 0 0 0 60 0 48000000 6
start_x=0
gpu_mem=128
- 下载4英寸HDMI LCD (C) DTBO文件并提取3个dtbo文件。将这些文件复制到覆盖目录(/boot/overlays/)中。
- 保存对config.txt文件的更改,安全弹出SD卡,并将其插入Raspberry Pi。
- 启动Raspberry Pi并等待超过十秒以正常显示。
步骤八:向Pomodoro Bot集成按钮
为了增强Pomodoro Bot的功能,您可以集成一个按钮以允许手动控制,如启动或停止任务、重置计时器或触发特定操作。以下是添加按钮的方法:

硬件设置:
- 所需组件:
- 接线:
- 将按钮的VCC引脚连接到Raspberry Pi上的5V引脚。
- 将按钮的GND引脚连接到Raspberry Pi上的接地引脚。
- 将按钮的OUT引脚连接到Raspberry Pi上的GPIO 17。
通过添加按钮,可以使您的Pomodoro Bot更加互动和用户友好!
步骤九:3D设计和制造
美学和个性
我们将Pomodoro Bot视为不仅仅是一个功能性的工具,还需要视觉上吸引人并拥有独特的个性。为此,我们使用Fusion 360精心打造了一个3D模型,平衡了美学和实用性。这一过程涉及细化每个细节,以确保机器人既迷人又实用。

最终的结果是一个紧凑而现代的3D打印机器人,不仅是一个生产力强手,也是一个令人愉悦的桌面伴侣,旨在为您带来微笑,同时帮助您保持专注。
3D打印过程
在完成设计后,我们通过3D打印将概念变为现实。我们使用Bambu A1 3D打印机来:
- 创建机器人的物理形态,具有高精度和效率。
- 实现一个耐用且制作精良的模型,完美匹配我们的设计愿景。



此3D打印步骤是将数字设计转化为有形高质量产品的关键步骤。
STL文件请在此处查找。
步骤十:组装
焊接: 首先,我们将电线焊接到所有必要的组件上,确保可靠的电气连接。

组件安装: 使用小螺丝将组件牢固地固定在一起,形成坚固稳定的装配。

Raspberry Pi和显示屏集成: 将Raspberry Pi和Waveshare显示屏小心地安装到项目主体中。

模块化连接: 使用母头焊接组件和Raspberry Pi之间的连接,便于模块化和维护。
电源传输: 采用公母USB breakout板有效地为Raspberry Pi供电。

最终组装: 将背盖定位并固定,完成整个组装过程。


结果: 最终结果是一款时尚且功能强大的Pomodoro Bot,准备就绪以提升生产力并照亮任何工作空间。

步骤十一:赋予Pomodoro Bot生命
- 启动Raspberry Pi
一旦组装过程完成,启动您的Raspberry Pi。可以通过将电源适配器连接到Raspberry Pi的电源插孔来实现。
- 验证功能
启动后,花一点时间验证所有功能是否按预期工作。这可能涉及检查Raspberry Pi的LED指示灯并确保Waveshare显示屏开启。
- 下载源代码
下一步是从以下GitHub仓库下载Pomodoro Bot应用程序的源代码到您的Raspberry Pi:
https://github.com/CodersCafeTech/PomodoroBot
- 编辑源代码(main.py)
- 打开下载的源代码并导航到Code目录。找到名为main.py的文件。
- 在main.py中,您需要替换以下占位符为自己的值:
- API密钥:找到存储API密钥的部分,并将其替换为您的API密钥。
- API密钥ID:同样,找到存储API密钥ID的部分,并将其替换为您的唯一ID。
- 组件名称(可选):如果您在配置过程中使用了不同的组件名称,则可能需要修改代码中相应的名称。
- 运行Pomodoro Bot代码
- 对main.py进行必要的编辑后,保存更改。
- 回到Viam应用中的“配置”选项卡,添加一个新的进程。

- 配置该进程,添加相关信息如可执行文件、参数和工作目录。
- 可执行文件:python3
- 参数:main.py(Python脚本名称)
- 工作目录:/home/pi/PomodoroBot/Code(您的工作目录)

- 保存并等待进程完成设置。
- 见证您的Pomodoro Bot活跃起来!
如果一切配置正确,Pomodoro Bot应用程序应该会启动,您的Raspberry Pi将变成功能齐全的Pomodoro Bot,准备好帮助您管理工作时段并提升生产力。

项目作者:CodersCafetech
项目来自:https://www.instructables.com/DIY-Pomodoro-Bot-With-VIAM/