Mục lục:

Máy đo tốc độ Internet: 4 bước (có hình ảnh)
Máy đo tốc độ Internet: 4 bước (có hình ảnh)

Video: Máy đo tốc độ Internet: 4 bước (có hình ảnh)

Video: Máy đo tốc độ Internet: 4 bước (có hình ảnh)
Video: Khiến Tốc Độ Internet Nhanh Hơn Bằng Cách Gạt Một Cái Công Tắc 2024, Tháng bảy
Anonim
Image
Image
Máy đo tốc độ Internet
Máy đo tốc độ Internet
Máy đo tốc độ Internet
Máy đo tốc độ Internet

Tổng quat

"Máy đo tốc độ Internet" này sẽ cung cấp cho bạn giám sát gần như thời gian thực về việc sử dụng mạng của bạn. Thông tin này có sẵn trên giao diện web của hầu hết các bộ định tuyến gia đình. Tuy nhiên, việc truy cập nó yêu cầu bạn dừng tác vụ hiện tại của mình để tra cứu nó.

Tôi muốn xem thông tin này mà không phải làm gián đoạn tác vụ hiện tại của mình, hiển thị nó ở định dạng dễ hiểu chỉ bằng một cái nhìn nhanh và nhận thông tin theo cách có thể hoạt động với càng nhiều bộ định tuyến càng tốt, vì vậy những người khác có thể có khả năng sử dụng nó quá.

Làm thế nào nó làm những thứ

Tôi quyết định chọn SNMP (Giao thức quản lý mạng đơn giản) làm cách để lấy thông tin từ bộ định tuyến. SNMP được sử dụng rộng rãi trong thiết bị mạng và nếu thiết bị của bạn không hỗ trợ nó theo mặc định, DDWRT (phần sụn bộ định tuyến nguồn mở) có thể được sử dụng để triển khai SNMP.

Để hiển thị thông tin một cách dễ hiểu, tôi đã sử dụng đồng hồ đo từ ô tô. Đồng hồ đo ô tô được thiết kế để cung cấp cho bạn thông tin mà không gây phân tâm hoặc khó hiểu, vì vậy người lái xe có thể quan sát đường đi. Ngoài ra, tôi đã có một số đặt xung quanh.

Vì nó sẽ ở trên bàn làm việc của tôi nên tôi quyết định cũng sẽ làm đèn nền RGB vì tất cả các phụ kiện máy tính đều phải là RGB. Bên phải?

Thách thức

Đồng hồ đo mà tôi đã sử dụng bộ truyền động Air-Core. Tôi chưa bao giờ nghe nói về những điều này trước khi dự án này.

Theo Wikipedia: Máy đo lõi không khí bao gồm hai cuộn dây độc lập, vuông góc bao quanh một buồng rỗng. Một trục kim nhô ra trong buồng, nơi có một nam châm vĩnh cửu được dán vào trục. Khi dòng điện chạy qua các cuộn dây vuông góc, từ trường của chúng chồng lên nhau và nam châm có thể tự do sắp xếp theo các trường kết hợp.

Tôi không thể tìm thấy thư viện cho Arduino hỗ trợ SNMP trong cấu hình trình quản lý. SNMP có hai dạng chính là agent và manager. Đại lý trả lời yêu cầu và người quản lý gửi yêu cầu đến đại lý. Tôi đã có thể làm cho chức năng trình quản lý hoạt động bằng cách sửa đổi thư viện Arduino_SNMP được tạo bởi 0neblock. Tôi chưa bao giờ lập trình bằng C ++ ngoài việc làm cho đèn LED nhấp nháy trên Arduino, vì vậy nếu có vấn đề với thư viện SNMP, hãy cho tôi biết và tôi sẽ cố gắng khắc phục chúng, tuy nhiên, hiện tại nó đang hoạt động.

Ngoài ra, SNMP không được thiết kế để xem thời gian thực. Mục đích sử dụng là để theo dõi số liệu thống kê và phát hiện sự cố mất điện. Do đó, thông tin trên bộ định tuyến chỉ được cập nhật khoảng 5 giây một lần (thiết bị của bạn có thể thay đổi). Đó là nguyên nhân dẫn đến độ trễ giữa số trên bài kiểm tra tốc độ và kim di chuyển.

Bước 1: Công cụ và vật liệu

Công cụ và Vật liệu
Công cụ và Vật liệu
Công cụ và Vật liệu
Công cụ và Vật liệu
Công cụ và Vật liệu
Công cụ và Vật liệu
Công cụ và Vật liệu
Công cụ và Vật liệu
Thiết kế mạch
Thiết kế mạch

Chúng ta sẽ cần 3 cầu H đầy đủ. Các mô hình tôi đã sử dụng là Dual TB6612FNGand Dual L298N.

Mỗi bộ truyền động Air-Core yêu cầu 2 cầu H đầy đủ vì các cuộn dây cần được điều khiển độc lập.

Một trong những đồng hồ đo tôi đang sử dụng có một cuộn dây được nối đất với một diode và điện trở. Tôi không chắc về khoa học đằng sau nó nhưng làm điều đó cho phép nó xoay 90 độ chỉ với một cuộn dây được cấp điện.

Tôi sẽ sử dụng bộ điều chỉnh 12v đến 5v là một phần của bảng L298N mà tôi đã chọn để cấp nguồn cho ESP32.

Tất cả các mạch đèn LED là tùy chọn, cũng như các đầu nối JST. Bạn có thể dễ dàng hàn dây trực tiếp với ESP32 và trình điều khiển động cơ.

Bước 3: Thiết kế mã

Thiết lập mã

Chúng tôi sẽ cần thiết lập Arduino để có thể sử dụng bảng ESP32. Có một hướng dẫn tốt ở đây sẽ hướng dẫn bạn cách thiết lập ESP32 Arduino.

Bạn cũng sẽ cần thư viện Arduino_SNMP ở đây.

Để cấu hình mã, bạn sẽ cần thu thập một số thông tin.

  1. IP của bộ định tuyến
  2. Tốc độ tải lên tối đa
  3. Tốc độ tải xuống tối đa
  4. Tên và mật khẩu WiFi của bạn
  5. OID chứa số đếm octet cho “vào” và “ra” trên giao diện WAN của bộ định tuyến của bạn

Có các OID tiêu chuẩn (Số nhận dạng đối tượng) cho thông tin chúng tôi muốn. Theo tiêu chuẩn MIB-2, những con số chúng tôi muốn là:

ifInOctets.1.3.6.1.2.1.2.2.1.16. X

ifOutOctets.1.3.6.1.2.1.2.2.1.10. X

Trong đó X là số được gán cho giao diện mà bạn muốn lấy số liệu thống kê. Đối với tôi con số đó là 3. Một cách để xác nhận rằng đây là OID chính xác cho bạn và để xác định số giao diện bạn cần sử dụng, đó là sử dụng một công cụ như MIB Browser.

Để có được tốc độ tối đa, tôi đã sử dụng SpeedTest.net. khi bạn có tốc độ tính bằng Mbps, bạn sẽ cần chuyển đổi chúng thành các octet bằng cách sử dụng công thức này.

Octet trên giây = (Kết quả từ kiểm tra tốc độ tính bằng Mbps * 1048576) / 8

Chức năng mã

Mã sẽ gửi một yêu cầu nhận SNMP đến bộ định tuyến. Sau đó, bộ định tuyến sẽ trả lời bằng một số, số đại diện cho số octet đã được gửi hoặc nhận. Đồng thời, chúng tôi ghi lại số mili giây đã trôi qua kể từ khi Arduino bắt đầu.

Khi quá trình này đã xảy ra ít nhất hai lần, chúng tôi có thể tính toán phần trăm sử dụng dựa trên các giá trị tối đa của chúng tôi bằng cách sử dụng mã này

phần trămDown = ((float) (byteDown - byteDownLast) / (float) (maxDown * ((millis () - timeLast) / 1000))) * 100;

Phép toán chia nhỏ như thế này:

octetsDiff = snmp_result - Trước_ snmp_result

timeFrame = currentTime - timeLast

MaxPosableOverTime = (timeFrame * Octets_per_second) / 1000

Phần trăm = (octetsDiff / MaxPosableOverTime) * 100

Bây giờ chúng ta đã có phần trăm sử dụng mạng, chúng ta chỉ cần ghi nó vào máy đo. Chúng tôi làm điều đó trong 2 bước. Đầu tiên chúng ta sử dụng hàm updateDownloadGauge. Trong chức năng này, chúng tôi sử dụng "bản đồ" để chuyển đổi tỷ lệ phần trăm thành một số thể hiện vị trí radian trên máy đo. Sau đó, chúng ta đưa số đó cho hàm setMeterPosition để di chuyển kim đến vị trí mới.

Bước 4: Thiết kế vỏ máy

Thiết kế trường hợp
Thiết kế trường hợp
Thiết kế trường hợp
Thiết kế trường hợp
Thiết kế trường hợp
Thiết kế trường hợp

Để chứa mọi thứ, tôi đã thiết kế một bao vây trong fusion360 và in 3D nó. Thiết kế tôi thực hiện tương đối đơn giản. Tôi đã sử dụng keo nóng để gắn chặt các thành phần vào bên trong và thước đo được giữ cố định bằng cách bị kẹp giữa nắp trước và nắp sau. Bạn không cần phải sử dụng in 3D để tạo vỏ máy. Ví dụ: bạn có thể làm một chiếc hộp bằng gỗ, hoặc bạn có thể đặt mọi thứ trở lại chiếc hộp ban đầu mà đồng hồ đo đã đi vào.

Các tệp STL của tôi có sẵn trên mọi thứ nếu bạn muốn xem chúng nhưng không chắc chúng sẽ hoạt động với bạn trừ khi bạn nhận được chính xác đồng hồ đo mà tôi đã sử dụng.

Hồ sơ trường hợp:

Cảm ơn vì đã đọc. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào và tôi sẽ cố gắng trả lời.

Đề xuất: