互联网速度计的制作

电子说

1.2w人已加入

描述

步骤1:工具和材料

工具

烙铁

拆卸量规所需的手动工具根据您的尺寸而有所不同,但很可能是飞利浦螺丝刀和10mm插座

JST压接工具(可选)

3d打印机(可选)

材料

需要

ESP32开发板

双H桥电机驱动器(x2)

电线

汽车模拟量表

制造商将使用多种机制。我们将使用空心式压力表

12v电源

5v电源

可选

220欧姆电阻(x4)

2.2k欧姆电阻(x4)

10k电阻

NPN晶体管(x4)

Perf-board

RGB LED灯条

JST连接器

第2步:电路设计

连接器

我们需要3个完整的H桥。我使用的型号是双TB6612FNG和双L298N。

每个空芯执行器需要2个完整的H桥,因为线圈需要独立控制。

其中一个我使用的仪表有一个线圈与二极管和电阻短路接地。我不确定它背后的科学,但这样做只允许一个线圈供电,它可以旋转大约90度。

我将使用12v至5v稳压器,它是L298N板的一部分我选择为ESP32供电。

所有LED电路都是可选的,以及JST连接器。您可以轻松地将电线直接焊接到ESP32和电机驱动器。

步骤3:代码设计

代码设置

我们需要设置Arduino才能使用ESP32板。这里有一个很好的指南,将引导您完成ESP32 Arduino设置。

您还需要位于此处的Arduino_SNMP库。

要配置代码,您需要收集一些信息。

路由器IP

最大上传速度

最大下载速度

您的WiFi名称和密码

包含路由器WAN接口上“in”和“out”八位字节数的OID

我们需要的信息有标准OID(对象标识符)。根据MIB-2标准,我们想要的数字是:

ifInOctets .1.3.6.1.2.1.2.2.1.16.X

ifOutOctets .1.3.6.1.2.1.2.2。 1.10.X

其中X是分配给要从中获取统计信息的接口的编号。对我来说,这个数字是3.确认这是正确的OID以及确定需要使用的接口号的一种方法是使用MIB浏览器之类的工具。

为了获得最高速度,我使用了SpeedTest.net。一旦你的速度达到Mbps,你就需要使用这个公式将它们转换成八位字节。

每秒八位字节数=(速度测试的结果,以Mbps为单位* 1048576)/8

代码功能

代码向路由器发送SNMP get-request。然后路由器回复一个数字,该数字代表已发送或接收的八位字节数。同时,我们记录自Arduino启动以来经过的毫秒数。

一旦这个过程发生了至少两次,我们可以使用此代码计算基于我们最大值的使用百分比

percentDown =((float)(byteDown - byteDownLast)/( float)(maxDown *((millis() - timeLast)/1000)))* 100;

数学分解如下:

octetsDiff = snmp_result - Previous_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime =(timeFrame * Octets_per_second)/1000

百分比=(octetsDiff/MaxPosableOverTime)* 100

现在我们只需要将其写入仪表的网络使用百分比。我们分2步完成。首先,我们使用updateDownloadGauge函数。在这个函数中,我们使用“map”将百分比转换为表示仪表上弧度位置的数字。然后我们将该数字提供给setMeterPosition函数以将针移动到新位置。

步骤4:案例设计

为了包含所有内容,我在fusion360中设计了一个机箱并对其进行了3D打印。我的设计相对简单。我使用热胶将组件固定到内部,并且通过夹在前盖和后盖之间将仪表固定到位。您无需使用3D打印来创建案例。例如,你可以用木头制作一个盒子,或者你可以把所有东西放回到仪表进来的原始盒子里。

如果你想看看它们,我的STL文件可以在thingiverse上找到除非你得到我用过的完全相同的仪表,否则它们不太适合你。

案例档案:https://www.thingiverse.com/thing:2932127

责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分