ESP32 相机

ESP8266 的下一代芯片 ESP32 算是比较大程度上增强了算力,这使得一些视频等应用成为了可能。ESP32 的相机支持也是官方的代码见此,有不少人把它里面的例子简单的优化一下就可以获得一个 webcam 了,比如这个项目

其实要玩这么个东西还真的不困难,看了看 Expressif 的文档,他们已经支持了 platformio,而相关的开发也利用了这个 integration,所以我们只需要在 vscode + platformio 的环境里面 checkout 对应的代码

git clone https://github.com/easytarget/esp32-cam-webserver.git

然后就可以更改 myconfig.sample.h 为 myconfig.h,我们可以设置 SSID 相关的信息减少配置。然后编译,通过一个 USB 到 RS232 的 adapter 将编译出来的固件写入(platformio 也提供了一个 upload 的目标)。然而一般来说这个 adapter 提供的电力不足以让 ESP32 正常工作,所以我们需要将两者的连接拆开,重新为 ESP32 供电,我买的这个片子需要 5V 的输入,就拿了个 18650 电池的 shield 供电。

ESP32 Cam + 18650 battery

我们在局域网中可以很容易连上这个设备,可以获得最大为 1600×1200 的静态照片或者 mjpeg stream,这是标配 ov2640 摄像头(2M 像素),根据 Espressif 的文档,可以更换 ov5640 摄像头(5M 像素)。这些摄像头都是 DVP 的接口,跟 Raspberry PI 使用的 MIPI 是不一样的(不通用)。虽然这个比较遗憾,但是似乎可以利用 mjpeg stream 给 octoprint 使用。

ESP32 camera server

也许这个算是最便宜的 webcam 了吧。

ESP32 相机

Raspberry Pi vs Rock64

之前一直用 raspberry pi,倒是没有太多的想法,只是用它做一些比较简单的事情而不用开一台笔记本或者台式机。相对于 NAS 来说它的算力实在是偏弱小,但是事情从它的二代开始有所转换,到了 3/4 代,从内存到 CPU 都有了较大的提升。相较于 Synology NAS 比较要求“稳定”而导致直接使用现成 debian package 变得困难,连一个 ipperf 还要从 docker container 装,raspberry pi 提供了比较 developer friendly 的环境:

  • 对应的 debian 或者别的 OS 更像一个传统的 Linux,比较方便安装和开发
  • 可以比较容易的使用 git / python / C / C++ 进行编程
  • 可以比较容易使用 hdmi 输出视频到外接显示器
  • 乃至可以接驳鼠标键盘、accelerator(比如 Google Coral Edge)
  • 留有 camera 排线接口

这样一来,如果有一些专门的应用,可以考虑使用 raspberry pi 来操作,现在找到一些比较好用的应用有:

  • ddns 客户端,比如 no-ip 需要一个客户端和服务器通信保证域名解析
  • Home Assistant:其实 NAS 上可以弄,但是现在 supervisor mode 似乎工作的并不好,可以尝试在 pi 上面另起炉灶;试验过用 virtual env 模式安装,挺快捷,如果你对代码比较熟悉,可以直接改源码;也可以玩 supervisor mode,尚未成功
  • 了解一些 sensor 的功能,可以用现成 python / C / C++ 库,但是由于没有 analog pin,需要加 ADC 才能和 analog sensor 一起用,好处是有 terminal 什么的,调试起来比 arduino / EPS8266 方便
  • 利用老旧硬盘开个 FTP 给某些 IP cam 用,乃至支持 YT 直播,现在还在考虑写个简单的 web UI 与 catt 协同就可以将存放在硬盘上的视频 stream 到本地的 chromecast 设备
  • 安装 octoprint 来方便远程打印模型

不管什么应用,支持得好不好还有一方面是硬件本身。到了三代的 Raspberry Pi 有了一些改进:

  • 增加了 wifi 支持,可以减少连线
  • 算力一般,勉强可以做一些事情,比如简单的服务器什么

但是还是有一些痛点:

  • ethernet 竟然不支持 G 以太网,还是 10/100Mbps
  • 内存只有 1G 的选项,也不是 ddr3/4
  • 不支持 4k

这导致更多的类 raspberry pi 的机型出现,比如其中一个是 Rock64,看到这个板子主要是号称

  • 支持 4K@60fps 视频输出,匹配的 CPU 和 GPU 能力明显增强
  • 内存有 1/2/4G 的选择
  • 网络能力提高到 Gbps

唯一令人不爽的大约是它没有 wifi,说实在的 wifi 可以通过 Usb 添加(8$),就是有些型号的比较折腾(需要编译内核模块)。这些优点后来被 raspberry pi 四代添加了上去,所以如果对 raspberry pi 比较熟悉的人可能就不大会选择 Rock64 了。但是其实真正的硬伤是电源:

  • raspberry pi 3 还是用了 micro usb,但是电流消耗需要支持到 2.5A
  • Rock64 使用了 5V 3A 3.5mm 的接口,而这个不是那么主流,意味着不可以通过 power bank 之类的为其供电
  • raspberry pi 4 使用 USB type C

但是如果看应用,电源的选择是个限制,但是如果有交流电供电,这也不是个太大的问题。考虑到售价:

  • raspberry pi 3 和 rock64 1G 现在都在 20$ 左右可以拿下
  • raspberry pi 4 2G/4G 还比较贵,在 40-60$ 勉强能抢到

这次看到 Rock64 1G 的板子感觉砍砍价可以 15$ 左右入手一块还是挺值得的。基本上如果原先用 raspberry pi 3 都可以平行的换到 Rock64。软件上,与 Raspberry Pi OS 不一样的是,Rock64 可选的 OS 比较多,暂时选择了 Armbian,用下来感觉比 Raspberry Pi OS 相差无几,terminal 的支持可能还更好一些。如果有 emmc 卡,还可以在上面装个 Android,不过可能这样一来需要有块触摸屏了

Raspberry Pi vs Rock64

关于宝峰对讲机的后续讨论

两年前最初接触无线电通信是因为宝峰对讲机,没想到才过两年事情变化的这么快。大约 2018 年 8 月 FCC 对进口宝峰产品的 Amcrest 进行了传讯,这是原文

大致说来有两个事情犯了 FCC 的忌讳:

  • 设备可以在授权功率(1.78W)以上工作(4W,据说实际只有 1W?)
  • 设备可以在一些禁用频段上工作
DA-18-801A1 截图

估计就是生产商没有“在意”美国这边这些细枝末节的条款吧。据说今年 9 月就不许卖了,当然销售商肯定还是希望继续延续这个品牌在美国消费者那里获得的正面形象,我随便摘两个不说哪里看见的了

  • 便宜,实诚,好用(有位用了 15 年都没坏)
  • 让许多原来玩不起 HAM radio 的人进入这个领域,而大的趋势实际上是一个 dying hobby

甚至有人怀疑这完全是一出友商编导的戏码(一般 radio 设备都需要 100$+,而便宜的时候宝峰这款才卖 20$)。在亚马逊上搜了一下,还有货,看来应付了 FCC 的差事,一样还是可以继续的,就是似乎某些信息还没更新,不知道是不是还没严肃对待。看到广大美国网友听说这个事情之后决定赶紧购入觉得天下群众果然一条心啊 =.=

关于宝峰对讲机的后续讨论