电子说
步骤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
全部0条评论
快来发表一下你的评论吧 !