通过WiFi路由器观看世界


试图用一种完全不同的视角看待世界的故事,以及这最终如何导致创造了一种允许您“看到” WiFi的设备。该过程将使用流行的ESP8266模块。不幸的是,Arduino也不会没有Arduino。


N年前,一群来自德国的年轻研究人员描述了仅基于一个传感器热像仪的概念。该设备的本质如下:使用两个伺服器的设计,红外传感器依次垂直和水平对准所需区域,并逐渐扫描图像。这种有趣的解决方案使得大幅降低设备价格,获得有趣的温度分布图像成为可能,例如:

图像的机械扫描系统-这就是伺服器的设计,这真是一件非常有趣的事情。在构造这样的设备之后,立即出现一个问题-为什么不以其他任何可以使用相同原理可视化例如无线电波的方式替换红外传感器?
人眼虽然是一个相当复杂的工具,但是却非常有限。我们看到的光的范围是电磁辐射光谱的很小一部分。

评估悲剧的严重程度-有关我们周围世界的大多数信息只是对我们隐藏了。当然,扩展自然框架并获得超越自然界的视野的能力将是很棒的。因此,使用机械扫掠系统进行了以下实验。

为了测试这项技术,我制作了一个简单的“单像素”相机,该相机在我们熟悉的可见范围内工作。我用中国玩具车的太阳能电池作为传感器:

当然,这种光电管的面积很大,这意味着有必要以某种方式提供狭窄的视野,因此我们将在手电筒上增加一个透镜。我们穿上舵机并连接到Arduino。

太阳能电池旋转到未来图像的所需区域,然后控制器读取与入射到电池上的光量成比例的信号。当然,这样的相机最终将产生黑白图像。
为了使用QT处理扫描结果,实施了一个具有简单界面的程序。 (有关如何在Arduino和Qt之间实现通信的课程可以在youtube上轻松获得该程序由一对用于手动控制伺服器的按钮和QGraphicsScene字段组成,其中绘制了正方形像素,其颜色取决于特定点处信号的大小。使用非常简单-首先,将驱动器手动引导到将来图像的左上角,然后自动扫描构建图像的区域。这是所有这些产生的结果:

此可视化图中描绘了什么?当然,如果您的相机是太阳能电池,这是最明显的拍摄对象-这就是太阳。

但是,电池信号太弱,以致于无法在室内照明下获得足够的图像,因为它已被光敏电阻所取代,手电筒的镜头被一半的剧院双筒望远镜所取代。
接线图



这项发明取得了更大的成功,并且已经可以拍摄或多或少可识别的照片了: 道路上的
枝形吊灯



窗户上的景色

甚至天空中的云朵

对这一结果感到满意之后,我决定现在该是时候制成一台成熟的无线电成像仪了,用定向天线代替光敏电阻。最合适的范围是微波,因为定向天线不会占用太多空间,并且在我们今天的生活中,有许多设备会在此范围内小心发射。

最初,我决定使用汽车雷达探测器中使用的喇叭天线(它们通常在10.525 GHz或24.15 GHz范围内工作)。尝试从这种检测器的电路中隔离与检测到的辐射值成正比的模拟信号是失败的,这可能是由于我的知识不足,可能是因为它根本不存在,因为它是通过比较原理工作的。 (向收集这个奇迹的中国兄弟们问好)。当然,我想拉出天线本身并自己制造一些东西,但是我并没有为此而破坏好的设备。
我想到的第二件事是根据业余无线电门户网站上大量发现的一种方案来构建一个场检测器,并在其上附加一个自制的定向天线,例如,非常受欢迎且生产起来很简单的Harchenko biquadrat。但事实证明,最重要的元素-微波检测器二极管很难找到,容易丢失,而且通常要花很多钱,因此我不得不长时间寻找正确的零件。
一段时间后,我设法从苏联时代获得了一个锗探测器二极管,并组装了以下电路:

所产生的设备充满信心地工作,但距离非常短,距离充当辐射源的移动电话约5-10厘米。当然,这还不足以完成任务。

经过所有这些考验,我终于得到了ESP8266模块,该模块可以显示找到的接入点的RSSI(接收到的WiFi信号电平的指标)。为此,请在模块的标准固件中使用AT + CWLAP命令。我决定应用此功能,并结合前面提到的自制WiFi导向的biquadrat天线。因此,这种技术奇迹出现了:
接线图


ESP8266本身安装在天线的背面,并用铜板很好地屏蔽。发光的数字表示脉冲DC-DC转换器输出上的电压,该电压会使电源工作的12V电压降低至3.3V,这对于模块的工作是必不可少的(它非常脆弱,因此从Arduino供电给它带来了不稳定的操作)。
Arduino仍然管理伺服驱动器,并使用SoftwareSerial库将AT命令发送到ESP8266。难点之一-我不得不切换到它们的对等物,而不是标准库SoftwareSerial和Servo,因为当同时使用时,它们会冲突。
当然,您可以在这里听到有关Arduino是一个额外元素的谴责,因为ESP8266本身可以应对此类功能。但从历史上看,发生在设备创建期间,我最初将注意力集中在Arduino作为最终设备的中央链接,而ESP8266充当了一种传感器的角色。
为“太阳能摄像机”编写的QT程序经过了重大改进。
程序的最终版本


在扫描区域的过程中,将为找到的每个接入点创建一个信号值阵列,使您可以查看扫描结束时不同的WiFi路由器如何“发光”,甚至尝试估计其大概位置。在特定点上的信号越强,相应像素的蓝色越亮。

最后,将设备放在家里的不同地方,我得到了以下图像。幸运的是,我家中有很多wifi网络,而且使用类似的定向天线,您甚至可以捕获非常遥远的天线。

沙发和地毯片。如果您注意的话,在“ SkyNet”点可以获得比其他图像更高质量的图像-这是我的家用路由器。他离拍摄地点最近,在拍摄过程中很重要。

吊灯再次。来自某些网络的信号不会从天花板或枝形吊灯反射出来。根据这些迹象,很可能可以尝试确定变送器的物理位置。

装满水的浴缸。众所周知,水下的无线电波传播不佳。

值得注意的是,可见范围内的照片仅大致对应于扫描区域。还必须考虑到,在操作过程中,天线以某种方式描述了半球,这也会影响结果。分辨率原则上仅受天线走向和环绕整个区域所花费的时间限制。此外,获得每个像素的数据需要4-5秒。我希望获得较少的模糊图像,但这需要天线具有较窄的辐射方向图。

源代码,包括Arduino的草图

Source: https://habr.com/ru/post/zh-CN392555/


All Articles