Mục lục:

Đồng hồ tốc độ Internet: 9 bước (có hình ảnh)
Đồng hồ tốc độ Internet: 9 bước (có hình ảnh)

Video: Đồng hồ tốc độ Internet: 9 bước (có hình ảnh)

Video: Đồng hồ tốc độ Internet: 9 bước (có hình ảnh)
Video: Cuộc chiến của đội cảnh sát cơ động 2024, Tháng mười một
Anonim
Image
Image
Kế hoạch
Kế hoạch

Với việc khóa hoàn toàn đang diễn ra ở Ấn Độ, mọi thứ bao gồm cả dịch vụ thư đã bị đóng cửa. Không có dự án PCB mới, không có thành phần mới, không có gì! Vì vậy, để vượt qua sự nhàm chán và để giữ cho bản thân bận rộn, tôi quyết định làm một cái gì đó từ những bộ phận mà tôi đã có ở nhà. Tôi bắt đầu tìm kiếm từ đống đồ điện tử và tìm thấy một chiếc đồng hồ vạn năng tương tự cũ, hỏng. Tôi đã tận dụng 'chuyển động đồng hồ' từ nó và quyết định hiển thị một số loại thông tin nhưng không biết chính xác là gì. Đầu tiên, tôi nghĩ đến việc hiển thị số liệu thống kê COVID-19 nhưng đã có nhiều dự án tốt hơn trên internet. Ngoài ra, dữ liệu được cập nhật sau một vài giờ và một con trỏ vẫn còn của đồng hồ sẽ rất nhàm chán. Tôi muốn dữ liệu thay đổi nhanh chóng, thay đổi từng giây. Tôi đã yêu cầu đề xuất trên Instagram và một trong những người theo dõi của tôi đã trả lời bằng Đồng hồ tốc độ Internet. Nghe có vẻ thú vị và quyết định làm nó!

Trong phần Có thể hướng dẫn này, tôi sẽ chỉ cho bạn cách tôi lấy dữ liệu từ bộ định tuyến WiFi của mình bằng SNMP và hiển thị tốc độ tải lên và tải xuống trên đồng hồ.

Bắt đầu nào

Bước 1: Kế hoạch

Như mọi khi trước khi bắt đầu với dự án, tôi đã nghiên cứu một chút trên internet. Tôi tìm thấy một vài dự án liên quan đến chủ đề này. Chúng có hai loại. Một trong đó cho thấy tốc độ internet bằng cách đo 'cường độ' của tín hiệu WiFi. Tôi không phải là một anh chàng chuyên gia về mạng nhưng điều này nghe có vẻ không đúng. Những người khác đo độ trễ và phân loại tốc độ là chậm, trung bình hoặc nhanh. Độ trễ là khoảng thời gian trễ giữa việc gửi yêu cầu đến khi nhận được phản hồi và do đó nó không thể là đại diện thực tế của tốc độ internet. Tuy nhiên, chúng tôi có thể gọi nó là tốc độ phản hồi mạng! Sau đó, có những dự án hợp pháp đo thời gian cần thiết để tải xuống một số dữ liệu và tính toán tốc độ internet dựa trên đó.

Nhưng chính trong dự án này (của Alistair), tôi đã học về Giao thức quản lý mạng đơn giản hoặc SNMP. Sử dụng SNMP, chúng tôi có thể giao tiếp với bộ định tuyến WiFi và nhận dữ liệu cần thiết trực tiếp từ nó. Dễ dàng, phải không? Trên thực tế, không! Bởi vì các mô hình sử dụng bộ định tuyến WiFi khác nhau có các thiết lập khác nhau và cần nhiều lần thử và sai trước khi bạn nhận được kết quả cuối cùng. Đừng sợ hãi. Tôi sẽ giải thích ngắn gọn những gì tôi học được về SNMP và những khó khăn tôi gặp phải trong các bước sắp tới.

Vì vậy, kế hoạch là sử dụng NodeMCU để kết nối với Router WiFi. Đây là các bước để có được kết quả cuối cùng:

  • Gửi yêu cầu đến bộ định tuyến 'yêu cầu' dữ liệu cần thiết
  • Nhận phản hồi từ bộ định tuyến
  • Phân tích phản hồi và phân tích cú pháp dữ liệu cần thiết từ nó
  • Chuyển đổi dữ liệu 'thô' thành thông tin dễ hiểu
  • Tạo ra điện áp tỷ lệ thuận với tốc độ internet cho đồng hồ
  • Lặp lại

Tôi sẽ sử dụng DAC hoặc Digital to Analog Converter để điều khiển đồng hồ.

Bước 2: Những thứ bạn sẽ cần

Những thứ bạn sẽ cần
Những thứ bạn sẽ cần
Những thứ bạn sẽ cần
Những thứ bạn sẽ cần
Những thứ bạn sẽ cần
Những thứ bạn sẽ cần

1x NodeMCU

1x Đồng hồ đo Analog chuyển động

1x MPU4725 DAC

1x Công tắc SPDT

Chiết áp 1x 10k

1x điện trở

Bước 3: Tính toán dòng điện lệch quy mô đầy đủ

Tính toán dòng điện lệch quy mô đầy đủ
Tính toán dòng điện lệch quy mô đầy đủ
Tính toán dòng điện lệch quy mô đầy đủ
Tính toán dòng điện lệch quy mô đầy đủ

Lưu ý: Chuyển đến Bước 7 cho bản dựng thực tế!

Bỏ qua bước này nếu bạn đã biết dòng điện lệch quy mô đầy đủ cho đồng hồ của mình. Máy đo của tôi không có đề cập đến nó nên tôi phải tính toán. Nhưng trước tiên, chúng ta hãy nhanh chóng xem một phong trào như vậy hoạt động như thế nào. Nó bao gồm một cuộn dây được treo trong từ trường. Khi dòng điện chạy qua cuộn dây, theo định luật Faraday, nó chịu một lực. Cuộn dây được phép quay tự do trong từ trường và con trỏ gắn vào cuộn dây cũng vậy. Cường độ dòng điện làm cho con trỏ di chuyển ở 'cuối thang đo' được gọi là dòng điện lệch toàn thang đo. Đây cũng là dòng điện tối đa phải được phép chạy qua cuộn dây.

Còn nhiều điều nữa đang diễn ra nhưng như vậy là đủ cho những gì chúng tôi đang làm. Bây giờ chúng tôi có phong trào. Nó có thể được sử dụng như một vôn kế bằng cách thêm một điện trở cao mắc nối tiếp với nó hoặc như một Ampe kế bằng cách thêm một điện trở nhỏ song song với nó. Chúng tôi sẽ sử dụng nó như một vôn kế để hiển thị điện áp tỷ lệ với tốc độ internet. Vì vậy, chúng ta cần tính toán điện trở sẽ được thêm vào trong chuỗi. Để làm được điều đó, trước tiên chúng ta cần tính toán dòng điện lệch quy mô đầy đủ.

  1. Chọn giá trị điện trở cao (như> 100k)
  2. Kết nối nó nối tiếp với bộ chuyển động và đặt một điện áp thay đổi trên nó bằng cách sử dụng nồi.
  3. Tiếp tục tăng điện áp từ từ cho đến khi con trỏ chạm đến cuối thang đo.
  4. Dùng đồng hồ vạn năng đo cường độ dòng điện chạy qua. Đây là dòng điện lệch toàn quy mô. (I = 150uA trong trường hợp của tôi)

Chúng tôi đang sử dụng một DAC có dải điện áp đầu ra từ 0 đến VCC (3.3V do NodeMCU). Điều này có nghĩa là khi 3.3V được áp dụng cho đồng hồ, nó sẽ chỉ ở cuối thang đo. Điều này có thể xảy ra khi dòng điện lệch toàn quy mô chạy qua mạch khi áp dụng 3,3V. Sử dụng định luật Ohm, 3,3 / (dòng điện lệch toàn thang) cho giá trị điện trở mắc nối tiếp.

Bước 4: Tạo yêu cầu SNMP GET

Tạo yêu cầu SNMP GET
Tạo yêu cầu SNMP GET
Tạo yêu cầu SNMP GET
Tạo yêu cầu SNMP GET
Tạo yêu cầu SNMP GET
Tạo yêu cầu SNMP GET

Giao thức Quản lý Mạng Đơn giản (SNMP) là một giao thức Tiêu chuẩn Internet để thu thập và tổ chức thông tin về các thiết bị được quản lý trên mạng IP và để sửa đổi thông tin đó nhằm thay đổi hành vi của thiết bị. Các thiết bị thường hỗ trợ SNMP bao gồm modem cáp, bộ định tuyến, bộ chuyển mạch, máy chủ, máy trạm, máy in, v.v. Đối với bản dựng này, chúng tôi sẽ giao tiếp với Bộ định tuyến WiFi của mình bằng SNMP và nhận dữ liệu cần thiết.

Nhưng trước tiên, chúng ta cần gửi một yêu cầu được gọi là 'GET Request' tới bộ định tuyến đề cập đến chi tiết dữ liệu mà chúng ta muốn. Định dạng GET Request được hiển thị trong hình. Yêu cầu bao gồm nhiều phần khác nhau. Tôi đã đánh dấu các byte mà bạn có thể muốn thay đổi.

Xin lưu ý rằng mọi thứ đều ở dạng Hệ thập lục phân.

Thông báo SNMP -Trong trường hợp của tôi, độ dài của toàn bộ tin nhắn là 40 (màu xám), khi chuyển đổi sang hệ thập lục phân là 0x28.

Chuỗi cộng đồng SNMP - Giá trị 'PUBLIC' được viết bằng hệ thập lục phân là '70 75 62 6C 69 63 'có độ dài là 6 (màu vàng).

Loại SNMP PDU - Trong trường hợp của tôi, độ dài của tin nhắn là 27 (màu xanh lam), tức là 0x1B.

Loại danh sách Varbind - Trong trường hợp của tôi, độ dài của thông báo là 16 (màu xanh lá cây), tức là 0x10.

Loại Varbind - Trong trường hợp của tôi, độ dài của tin nhắn là 14 (màu hồng), tức là 0x0E.

Định danh Đối tượng -

Như đã đề cập trước đó, các thiết bị mạng hỗ trợ SNMP (ví dụ: bộ định tuyến, bộ chuyển mạch, v.v.) duy trì cơ sở dữ liệu về trạng thái hệ thống, tính khả dụng và thông tin hiệu suất dưới dạng đối tượng, được xác định bởi OID. Bạn cần xác định OID của bộ định tuyến của mình cho các gói Tải lên và Tải xuống. Nó có thể được thực hiện bằng cách sử dụng Trình duyệt MIB miễn phí như trình duyệt này.

Nhập Địa chỉ là 192.168.1.1 và OID là.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) hoặc.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Chọn Nhận hoạt động và nhấp vào Bắt đầu. Bạn sẽ thấy OID cùng với giá trị và loại của nó.

Trong trường hợp của tôi, độ dài của tin nhắn là 10 (màu đỏ), tức là 0x0A. Thay thế giá trị bằng OID. Trong trường hợp này, '2B 06 01 02 01 02 02 01 10 10'

Đó là nó! Thông báo yêu cầu của bạn đã sẵn sàng. Giữ nguyên các byte còn lại.

BẬT SNMP trên bộ định tuyến của bạn:

  • Đăng nhập vào trang bộ định tuyến WiFi của bạn thông qua cổng mặc định. Nhập 192.168.1.1 vào trình duyệt của bạn và nhấn enter. Theo mặc định, tên người dùng và mật khẩu phải là 'admin'.
  • Tôi đang sử dụng bộ định tuyến TP-LINK (TD-W8961N). Đối với bộ định tuyến này, bạn phải đi tới Quản lý truy cập> SNMP và chọn 'Đã kích hoạt'.
  • GET Cộng đồng: công khai
  • Máy chủ bẫy: 0.0.0.0

Bước 5: Hiểu phản hồi của GET

Hiểu phản hồi của GET
Hiểu phản hồi của GET

Bạn có thể bỏ qua bước này, nhưng thật tốt nếu bạn cần thực hiện một số khắc phục sự cố.

Sau khi tải mã lên và chạy mã, bạn có thể xem phản hồi thông qua trình theo dõi Nối tiếp. Nó sẽ giống như thể hiện trong hình. Có một vài byte bạn cần tìm mà tôi đã đánh dấu.

Bắt đầu từ 0, Byte thứ 15 cho biết Loại PDU - 0xA2 có nghĩa là nó là một GetResponse.

Byte thứ 48 cho biết kiểu dữ liệu - 0x41 có nghĩa là kiểu dữ liệu là Bộ đếm.

Byte thứ 49 cho biết độ dài của dữ liệu - 0x04 có nghĩa là dữ liệu dài 4 byte.

Byte 50, 51, 52, 53 chứa dữ liệu.

Bước 6: Bộ chuyển đổi Digital sang Analog (DAC)

Bộ chuyển đổi Digital sang Analog (DAC)
Bộ chuyển đổi Digital sang Analog (DAC)

Bộ vi điều khiển là thiết bị kỹ thuật số không hiểu trực tiếp điện áp Analog. Tôi đang sử dụng đồng hồ đo tương tự cần một điện áp thay đổi làm đầu vào. Nhưng vi điều khiển chỉ có thể xuất ra CAO (3.3V trong trường hợp NodeMCU) và THẤP (0V). Bây giờ bạn có thể nói tại sao không chỉ sử dụng PWM. Nó sẽ không hoạt động vì đồng hồ sẽ chỉ hiển thị giá trị trung bình.

Tôi đang sử dụng MCP4725 DAC để có được điện áp thay đổi. Nó là một DAC 12-bit, tức là nói một cách đơn giản, nó sẽ chia từ 0 đến 3,3V thành 4096 (= 2 ^ 12) phần. Độ phân giải sẽ là 3,3 / 4096 = 0,8056mV. Điều này có nghĩa là 0 tương ứng với 0V, 1 tương ứng với 0,8056mV, 2 tương ứng với 1,6112mV,….., 4095 tương ứng với 3,3V.

Tốc độ internet sẽ được 'ánh xạ' từ '0 đến 7 mbps' thành '0 đến 4095' và sau đó giá trị này sẽ được cấp cho DAC để xuất ra một điện áp tỷ lệ với tốc độ internet.

Bước 7: Hội đồng

Hội
Hội
Hội
Hội
Hội
Hội
Hội
Hội

Kết nối rất đơn giản. Sơ đồ đã được đính kèm ở đây.

Tôi thiết kế và in quy mô. Cái trên là tốc độ tải xuống và cái dưới là tốc độ tải lên. Tôi dán cái cân mới lên cái cũ.

Tôi loại bỏ tất cả những thứ cũ khỏi đồng hồ vạn năng và tôi nhồi nhét mọi thứ trong đó. Đó là một sự phù hợp chặt chẽ. Tôi đã phải khoan một lỗ ở phía trước để gắn công tắc bật tắt được sử dụng để chọn giữa tốc độ tải lên và tải xuống.

Bước 8: Thời gian để mã hóa

Thời gian để mã hóa
Thời gian để mã hóa
Thời gian để mã hóa
Thời gian để mã hóa
Thời gian để mã hóa
Thời gian để mã hóa

Mã đã được đính kèm ở đây. Tải xuống và mở nó trong Arduino IDE. Cài đặt thư viện MCP4725 từ Adafruit.

Trước khi bạn tải lên:

  1. Nhập SSID và mật khẩu WiFi của bạn
  2. Nhập tốc độ tải lên và tải xuống tối đa được đề cập trên thang đo.
  3. Thực hiện các thay đổi cần thiết trong mảng yêu cầu để tải xuống cũng như tải lên các gói.
  4. Bỏ ghi chú dòng 165 để xem phản hồi trên màn hình nối tiếp.

Nhấn tải lên!

Bước 9: Tận hưởng

Bật nó lên và tận hưởng xem kim nhảy xung quanh khi bạn lướt internet!

Cảm ơn bạn đã gắn bó đến cuối cùng. Hy vọng tất cả các bạn yêu thích dự án này và học được điều gì đó mới ngày hôm nay. Hãy cho tôi biết nếu bạn làm một cái cho chính mình. Đăng ký kênh YouTube của tôi để biết thêm các dự án như vậy.

Đề xuất: