首页游戏资讯“我把一个已死的物联网产品,救活了!”

“我把一个已死的物联网产品,救活了!”

misa2 03-06 4次浏览 0条评论

将旧产品” 变废为宝“的过程,总是布满挑战与成就感。

原文链接:/

作者 | Kevin Chung

译者 | 弯月 责编 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

回首 2017 年,NYCTrainSign 是一家制造倒计时器的公司,他们生产的一种展示牌可以告诉你距离下一班火车还剩多长时间,就似乎地铁站展示列车时刻表的牌子。

除了挂在车站的屋顶,你还可以把这种倒计时展示牌放在办公桌上,当作一种装饰。

他们的营销做得很成功。我记得很多 Facebook 和 Instagram 帖子都在宣扬这种倒计时展示牌在咖啡馆和披萨店的使用,客户看一眼就知道还要多久能拿到自己的咖啡或披萨。

然而,除往 Instagram 广告的光环,这种倒计时展示牌本身的做工设计粗糙,而且成本不可继续。2018 年初,该公司就不再保护社交媒体上的帖子,下单的人也收不到货了。公司甚至对客户说,想拿回退款可以往告他们。

如今,即使是进进该领域的新公司也会到 NYCTrainSign 留下的烂摊子所影响。

时过境迁,这家公司倒闭已经 5 年了,偶然的机会中我获得了一个他们的倒计时展示牌,于是,我决定调查一下他们倒闭的原因。最终,我成功地获得了展示牌的完全掌握权,并写了一个 API,可以供那些仍在” 服役“的展示牌使用。

获得了一个倒计时展示牌

2021 年的某一天,我发现 Reddit 上有人在卖 NYCTrainSign 的倒计时展示牌——他们是为数不多的收到了该产品的人,但现在想扔掉了。

不可思议的是,主人保留了原有的包装。

展开全文

图:原包装盒

图:倒计时展示牌

图:通电后展示倒计时

拆解

倒计时展示牌装在一个手工制造的木箱内,我信赖该公司招了一些刚毕业的学生来制造这些箱子。

图:木箱底部,不清楚这个洞是干什么的

我不太懂木工,所以看这个木箱还不错。虽然角落有一些损坏,但普通家庭使用还是绰绰有余的。

内部的倒计时器包含以下部件:

2 个 LED 矩阵面板

1 个树莓派 3

1 张 4GB MicroSD 卡

1 个 Adafruit LED 矩阵 HAT

电源线

LED 矩阵面板的接线

一个小按钮,连接到树莓派的 GPIO

图:倒计时器内部构造。注重随意张贴的黑胶带,还有空置的电源线

虽然木箱看着还不错,但从内部来看,这款倒计时器的做工确实不太行。

树莓派只用了两个螺丝草草固定了一下,按钮(可能是用于重置)甚至都没有固定,而且不知道什么原因,木箱底部还钻了一个大洞。电源线稍微动一下就会断开。其实在我打开的时候,电源线就已经脱落了。

物料成本过高

物料清单指的是产品的组件列表。大多数电子项目,特别是正规的项目,都会有一个详尽的物料清单,列出每项零件的作用及价格。

物料成本通常远低于零售价,这是因为还需要考虑运输成本、研发成本、利润率等因素。物料成本的微小转变都会对商品的最终成本产生很大影响。为了在物料上节约几分钱,而更换给予商或部件的情状并不少见。

一般,确定最终产品零售价的方法是:物料成本乘以 4。

下面,我们来计算一下这款倒计时器的物料成本:

树莓派 3:35 美元

Adafruit LED 矩阵 HAT(HAT是可直接插在树莓派上的外置电路):25 美元

LED 矩阵 * 2:60 美元(每个至少 30 美元)。他们的一条推文特殊提到了这款产品使用了比较昂贵的特定 Adafruit 组件。

5V 2A 电源:5 美元。我怀疑这个电量是否足以在全功率消耗下为所有设备供电,大多数情状下我们会推举 4A~10A。

4GB MicroSD卡:7 美元

木箱:15 美元

杂项 - 接线、按钮、电缆、螺丝、包装(标牌上有一些硬纸板、一张纸、一些泡沫包装):3 美元

售价

另外,他们还有每月 30 美元租用产品的计划。

依据物料成本来计算,很显然 300 美元的售价太低了,但是 600 美元未免太昂贵了,究竟这只是一个倒计时展示牌。

租赁可能是一个有趣的想法,但我认为收回最初的现金投资将非常困难。硬件企业通常需要在初始阶段注进大量资金来建立库存,然后通过销售产品,尽快收回成本,并赚取利润。

谁卖了铁锹

你听过淘金时代卖铁锹的故事吗?在 19 世纪的淘金热潮中,所有人都在挖矿,却有一批人卖锄头和铁铲,闷声发大财。

在我们的故事中,Adafruit 应该就是那个卖铁锹的人。由于使用了 Adafruit LED 矩阵 HAT,导致这款倒计时展示牌的物料成本增加了 25 美元,约为 20%。其实,我们完全可以避免使用如此昂贵的部件。

这是因为:

Adafruit LED 矩阵 HAT 是完全不必要的。这款倒计时展示牌使用的 rpi-rgb-led-matrix 库描述了如何不使用 HAT 而是直接接线,还给出了无源适配器板的设计。这些阐明和配器板早在 2017 年就出现了。

大多数时候,我们只用 Adafruit 部件制造原型,实际投进生产时就会换成更为便宜的部件。这可能是 Adafruit 定价方案中的一个因素。

此外,树莓派可能也有卖铁锹的嫌疑,35 美元的成本确实让人难以承担,而且也是物料清单中最昂贵的一个部件。

考虑过后,虽然我不推举使用它,但我认为与使用 Arduino 或 ESP32 相比,使用树莓派并不是一个糟糕的决定。究竟,使用树莓派本身就是一种营销,而且开发也更轻易。

在我看来,假如 NYCTrainSign 团队前期不想在使用像 ESP32 这样的微掌握器上投进大量时间,则可以抉择树莓派 3,然后发布时再换成树莓派 Zero W。

最终,他们应该改用 ESP32 或类似的产品,进一步降低物料成本,但从树莓派开始下手并不是特殊严重的错误,但仍然需要建立最终取代的长期计划。

阅读代码

由于该产品是基于树莓派的,所以备份 MicroSD 卡很简单,这样我就可以探索文件系统,并依据需要进行修改。

这款倒计时展示牌的代码库由一些自己编写的 Python 和 NodeJS 代码以及一些开源库组成。

树莓派上运行的自定义组件主要有两个:

Python 服务器(LED 服务器)

NodeJS 服务器(配置服务器)

用 Python 编写的 LED 服务器负责绘制 LED 矩阵,并通过自家公司的 API 获取列车时刻表的数据。LED 服务器需要与配置服务器通信确定用户的设置,然后向远程服务器频繁发送 HTTP 调用,以获取火车到站时刻和天气等数据。

接着,LED 服务器利用获取的数据在本地生成图像或文本,然后将其渲染到 LED 矩阵上。

配置服务器

用 NodeJS 编写的配置服务器负责将用户配置存储在 JSON 文件中,并接收检索和更新该文件的请求。配置服务器启动时会从 服务器接收实时的配置更新。

其他组件

首次启动时,WiFi 是通过 raspberry-wifi-conf 配置的,这是一个开源使用程序,利用树莓派创建无线网络供用户连接,然后提供实际的 WiFi 连接详尽信息。

重置按钮由后台运行的小型 Python 脚本掌握。当按下按钮时,脚本会删除 WiFi 设置,重置主机名,删除一些远程监控功能,并重新启动服务器。

该公司似乎可以远程连接到每个倒计时器的终端。我手中的展示牌安装了这个远程掌握软件(/)。

在查看代码时,我注重到了各种代码质量问题:

他们的 transit API 似乎没有考虑到一个车站同时拥有多条火车线路的情状。同一个车站内的两条线路会展示成相同的终点站。

没有看到固件更新过程。也许更新需要让客户用新的树莓派镜像刷新 MicroSD 卡。

许多 Python 代码仅使用系统调用来修改底层系统。

Python LED 服务器与 NodeJS 配置服务器通信,以存储和检索配置。我怀疑这样做是因为团队认为通过 NodeJS 与 AWS IoT 交互更轻易,而通过 Python 代码来展示也更轻易。

由于代码编辑器配置错误,导致制表符和空格经常混用。

整个 git 历史笔录都保存在 MicroSD 卡上。

Bash 历史保存在 MicroSD 卡上。

重用的代码很少。

倒计时器展示牌起死复生

获取 shell

对于大多数树莓派来说,获得 root shell 非常简单,因为通常 MicroSD 卡上没有加密。我们只需启动到单用户模式,并重置树莓派用户的密码。

虽然这种方法可以获取 shell,但即便获取 shell 也没有用,因为该公司的 API 已经不存在了。在无法访问互联网时,该产品会使用硬编码的本地数据,因此展示的任何数据都没有意义。

重建服务器

当然,我们可以更新设备通信的域名,而且很幸运的是,这个域名现在公开出售。于是,我买了下来。

图:谁能想到进侵这款产品居然如此轻易

在获得了域的完全掌握权后,我们就可以依据倒计时器的需要新建 API,并复兴该域内所有的倒计时器。我们还可以执行一些更新,将这些倒计时器更新为更现代的软件。

我重建了列车到站时刻表(纽约市)和天气数据的端点:

列车到站时刻表的 API:/

天气数据 OpenMeteo API:/

与大多数物联网设备一样,这款设备包含大量的系统调用,其中一个调用直接将设备 ID 写到了 shell 命令中。理论上,有了服务器的掌握权,我们就可以直接远程掌握任何一次列车的展示牌。

图:物联网最方便的一点

由于我们掌握了域名,理论上,就可以向任意设备 ID 提供数据,并运行任意命令。然后,我们还可以让这些设备注册到我们新建的掌握服务器,然后用户就可以使用他们的设备了。

简单来说,我们获取倒计时器掌握的流程如下:

打开设备,它会尝试检索配置。这个检索操作会永无止境地循环,直到检索到配置。

设备发送请求获取 logo 图片。此请求包含每台设备唯一的两个 ID。我们将这些 ID 保存起来,然后创建一个访问设备的程序。

在设备下一次请求配置时,我们将访问程序发送给设备。

我们指示用户重新启动他们的设备,并在设备重启时运行访问程序。

这个程序会更新设备,将它们访问的主机改为我们的新服务器。

在获取远程提供任意数据的能力之后,我们就算真正复活了倒计时器!

在能够完全掌握域名后,我们就是这些设备的新主人了。

当时的情状

折扣太多

我认为,核心问题是物料成本过高,而且销售折扣太多。

正如我们之前所讨论的,即使是 300 美元出售该产品也太便宜了。这款倒计时展示牌从一开始就应该以 600 美元的价格出售。

该产品曾尝试过投放广告,但 LED 展示牌不属于“快速发展”类型的公司。所以亏本出售产品实际上只能起到营销的作用。

广告太多

NYCTrainSign 公司曾一度拥有首席营销官、社交媒体经理和社交媒体助理。

对于一个新兴的初创公司来说,这些职位完全是冗余的。

当时,MTA 经常出现延误,媒体对此进行了大量报道。这似乎给该公司做了免费的广告。因此,他们完全没有必要设置这些职位。

由于公司大力的广告和营销宣扬,市场对该产品的需求很大。

没有足够的产品

虽然有需求,但他们无法生产相应数量的产品。更不用说,每台设备都是在美国手工制造的,加上零售价又很低,这显然无法长期保护。该团队手头也不太可能有足够的库存,因此他们可能也受到了摘购零件时间的影响。

尽管没有能力交付订单,但他们没有因此停止接收订单。长此以往,他们需要不断获得资金来完成之前打折的订单,因此这项业务逐渐演变成了一场骗局。

后来,他们告诉客户,他们将生产转移到了中国,因此交货有 6 个月的延迟。不想等待的客户可以联系他们的信用卡公司拒付账单。但将生产转移到中国似乎只是白日做梦,从未实现。不久后,该公司就倒闭了,办公室也关闭了。

太多领导

依据 Linkedin 的信息,该公司最初有 4 位创始人。随着时间的推移,增加到了 11 人,而当时公司一共才 15 个人。

即使每个创始人只拿 6 万美元,每台设备的利润高达 400 美元,每年以全价销售约 600 台设备,才够支付所有人的工资。

其中一位创始人发布了他们的销售活动情状,他们在大约两个月内达到了 25 万美元的收进。

在一个大约有 850 万人口的城市,第一年至少卖出 600 台设备应该不会太难。但年复一年,每年都需要卖出这么多设备,这还不包括其他员工、承包商等的费用。

在我看来,假如无法降低物料成本,或找到一种能够更好的获取经常性收进的策略,公司很快就保护不下往了。最后的结果也确实如此。

优异的创意、优异的时机、糟糕的团队、糟糕的产品

在公司陷进困境后,创始人和员工出于某种原因试图建立某种咨询公司。

他们的公司创始人从来没搞清楚究竟怎么回事,为什么交付的产品这么少,钱都花到哪里往了。其中一位创始人曾表达,他们从未收到过任何收进,但这些钱一定是花到某个地方往了。

总的来说,优异的创意、优异的时机、糟糕的团队、糟糕的产品。

大多数创始人和整个团队并没有任何恶意,但他们没有建立硬件业务的体会,而且营销的成功打了他们个措手不及。

现状

在最初决定踏上此次冒险之旅时,我曾梦想打造自己的倒计时展示牌,然后将其作为产品出售。

我使用 ESP32 制造了一个展示牌的原型。

然而,我反复思量,觉得自己不是将该产品推向市场的适宜人选。我的强项是软件,而不是电气工程或木工。

更不用说,如今 LED 展示牌是一个非常拥挤的市场,拥有大量现成的解决方案。

所以,最终我决定陆续研究我的 ESP32 展示牌,并将其作为个人的学习项目。

另外,我通过社区开源了 NYCTrainSign 倒计时展示牌底层的代码、重构的 API 服务器以及访问现有设备的程序(),仅作参考。

《2022-2023 中国开发者大调查》重磅启动,欢迎扫描下方二维码,参与问卷调研,更有 iPad 等精美大礼等你拿!

☞ 两万字长文,史上最全 C++ 年度总结!

☞ WASM 原生时代已经到来 | 解读 WebAssembly 的 2022

☞ “脱离使用开发者的数据库,不会成功”,黄东旭万字长文剖析数据库发展新趋势

无线网络密码破解器
创新超越,追求顶尖:ROG 与《流浪地球2》的同一种态度 《阿凡达2》票房破2亿,口碑两极化,到底值不值得看?
相关内容
发表评论

游客 回复需填写必要信息