自制家用信息板 – 前言

我之前曾经计划把之前的 Nexus 7 平板电脑粘在衣柜门上做一个家用的信息板,当时主要用来显示天气。后来因为粘的不够紧摔到地上,我也就收起来了。近来一个瑞士小伙伴做了个可以控制家里只能家电的信息板,勾起了我重启项目的欲望。

背景

瑞士这个国家的一个特点,就是对数字化社会的接纳程度。无论是大小餐馆还是个人,有个专属的网站都是很正常的事情。各个滑雪场、景区、公共服务、银行的网站和APP质量普遍不错,特别是和隔壁的其他国家相比。

在瑞士生活不得不提到的就是瑞士铁路,简称 SBB/CFF/FFS(分别对应德语,意大利语和法语中“瑞士国家铁路”的简写)。瑞士铁路系统发达,虽然年限大多久远,运行速度不敢恭维,但是频次多,衔接好而且准点,是大多数人出行的主要方式。而其官方应用,SBB Mobile 也是必装应用之一。除了每次远行规划线路购买车票,平时每天早上上班也会打开看一眼,为什么呢?这其实和 SBB 的准点有关。我住在离火车站步行7分钟的地方,每天早上坐 09:23 的车去上班。因为火车一般非常准点,我不会提前去火车站,而是会计算好时间出门,大概在 09:22:40 的时候到站台,因为火车大概那个时间到,25秒后火车关门出发。

一般来说很美好,但是偶尔我会因为种种原因晚出门半分钟,那我就走快些。那晚出门1分钟呢?那我就要纠结了,要么连走带跑,要么坐15分钟后的下一班。再加上偶尔的火车晚点和取消,火车具体几点到的信息就非常重要。因为手机应用里只会显示超过3分钟的晚点情况,所以就需要其他的数据源和现实方式了,也就是文首说到的信息板。

技术

这种项目暂时没什么商业价值,所以主要用来打发时间,学习学习新的知识,做个人项目练练手。以安卓平板作为平台的话,大抵有 Native 安卓开发和 Web 网页应用开发两条路可以走。而身为全栈工程师的我基本不会安卓开发,而我对 Flutter 之类的新技术又不太有兴趣,所以准备做个 Web 应用。

后端呢,考虑到逻辑比较少,需求简单,也不是我学习的主要目标,所以在熟悉的 Django 和 Node.js 中选择了前者。注意我并不准备使用 Django 的 HTML 模板等功能。前端呢,我想尝试 Vue.js 很久了,这是个不错的机会。如果之后拓展需求的话,还可以考虑加入 PWA(Progressive Web App)的一些特性比如主动推送通知。

这些都会直接运行在我的小 Hub 上。我今年过年从国内买了个最近比较流行的小电脑,大小大概相当于5个移动电源,Gigabyte 品牌,Intel Celeron J4105 处理器带风扇,8G RAM,128G SSD + 1T HDD,集成显卡。这个新的电脑门类体积小耗电低,价格相对便宜,非常适用对性能要求不高的家庭,以及自己搭建服务器,性能比树莓派不知道高到那里去了。我在上面装了 Ubuntu,在路由器上做了端口推送 Port Forwarding,而瑞士的网正好 IP 一旦分配相对固定,所以直接把个人网站放在上面了,省的每年来回倒腾。再安装配置好 SMB 文件分享服务,这个小电脑就直接放在抽屉里了。平时用我的主机 Putty SSH 进去配合 Tmux 操作,代码和文件编辑则是直接通过 SMB,甚至可以再主机上运行 VS Code 直接编辑 Mini PC 上的文件。从此之后我下载的电影也都放在里面,配合我的 Android TV 里安装的 Kodi 来看,不要太爽。

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据