Оглавление:

Интернет-спидометр: 9 шагов (с изображениями)
Интернет-спидометр: 9 шагов (с изображениями)

Видео: Интернет-спидометр: 9 шагов (с изображениями)

Видео: Интернет-спидометр: 9 шагов (с изображениями)
Видео: БОКОВУШЕЧКА У ТУАЛЕТА в плацкарте 2024, Ноябрь
Anonim
Image
Image
План
План

В связи с полной изоляцией, происходящей в Индии, все, включая почтовые службы, было закрыто. Ни новых проектов печатных плат, ни новых компонентов, ничего! Поэтому, чтобы побороть скуку и чем-то занять себя, я решил сделать что-нибудь из деталей, которые у меня уже есть дома. Я начал искать в куче хлама электроники и нашел старый, сломанный аналоговый мультиметр. Я вытащил из него «движение счетчика» и решил отобразить какую-то информацию, но точно не знал, что именно. Сначала я подумал об отображении статистики COVID-19, но в Интернете уже есть много лучших проектов. Кроме того, данные обновляются через несколько часов, и неподвижный указатель счетчика будет утомительным. Мне нужны данные, которые меняются быстро, меняются каждую секунду. Я попросил совета в Instagram, и один из моих подписчиков ответил интернет-спидометром. Это прозвучало интересно и решил сделать это!

В этом руководстве я покажу вам, как я получал данные со своего WiFi-маршрутизатора с помощью SNMP и отображал скорости загрузки и выгрузки на измерителе.

Давайте начнем

Шаг 1: План

Как всегда, перед тем, как начать работу над проектом, я провел небольшое исследование в Интернете. Я нашел несколько проектов, связанных с этой темой. Они были двух видов. Тот, который показал скорость интернета путем измерения «силы» сигнала Wi-Fi. Я не специалист по сетевым технологиям, но это звучит неправильно. Остальные измерили задержку и распределили скорость как медленную, среднюю или быструю. Задержка - это временная задержка между отправкой запроса и получением ответа, поэтому она не может быть фактическим представлением скорости интернета. Хотя мы можем назвать это скоростью отклика сети! Затем были законные проекты, которые измеряли время, необходимое для загрузки некоторых данных, и на основе этого рассчитывали скорость интернета.

Но именно в этом проекте (Алистера) я узнал о простом протоколе управления сетью или SNMP. Используя SNMP, мы можем связываться с WiFi-роутером и получать необходимые данные напрямую от него. Легко, правда? Вообще-то, нет! Потому что разные модели маршрутизаторов WiFi имеют разные настройки и требуют большого количества проб и ошибок, прежде чем вы наконец получите результат. Не бойся. Я кратко объясню все, что я узнал о SNMP, и о трудностях, с которыми я столкнулся на следующих этапах.

Таким образом, мы планируем использовать NodeMCU для подключения к WiFi-роутеру. Вот шаги, чтобы получить окончательный результат:

  • Отправьте запрос маршрутизатору с запросом необходимых данных.
  • Получите ответ от роутера
  • Проанализируйте ответ и извлеките из него необходимые данные
  • Преобразуйте «сырые» данные в понятную информацию
  • Создайте напряжение, пропорциональное скорости интернета для счетчика.
  • Повторить

Я буду использовать ЦАП или цифро-аналоговый преобразователь для управления счетчиком.

Шаг 2: Вещи, которые вам понадобятся

Вещи, которые вам понадобятся
Вещи, которые вам понадобятся
Вещи, которые вам понадобятся
Вещи, которые вам понадобятся
Вещи, которые вам понадобятся
Вещи, которые вам понадобятся

1x NodeMCU

1x аналоговый измеритель движения

1x MPU4725 ЦАП

1x переключатель SPDT

1x 10k потенциометр

1x резистор

Шаг 3: Расчет тока отклонения полной шкалы

Расчет полномасштабного тока отклонения
Расчет полномасштабного тока отклонения
Расчет полномасштабного тока отклонения
Расчет полномасштабного тока отклонения

Примечание: переходите к шагу 7, чтобы увидеть фактическую сборку!

Пропустите этот шаг, если вам уже известен полный ток отклонения для вашего измерителя. В моем счетчике об этом не упоминалось, поэтому мне пришлось посчитать. Но сначала давайте быстро посмотрим, как работает такое движение. Он состоит из катушки, подвешенной в магнитном поле. Когда ток течет через катушку, согласно закону Фарадея, на него действует сила. Катушка может свободно вращаться в магнитном поле, как и стрелка, прикрепленная к катушке. Величина тока, при которой указатель перемещается в «конце шкалы», называется током отклонения полной шкалы. Это также максимальный ток, который должен проходить через катушку.

Происходит еще много всего, но этого достаточно для того, что мы делаем. Теперь у нас есть движение. Его можно использовать как вольтметр, добавив к нему последовательно высокое сопротивление, или как амперметр, добавив небольшое сопротивление параллельно. Мы будем использовать его как вольтметр, чтобы отображать напряжение, пропорциональное скорости интернета. Итак, нам нужно рассчитать сопротивление, которое нужно добавить последовательно. Для этого нам сначала нужно рассчитать полный ток отклонения.

  1. Выберите высокое значение сопротивления (например,> 100 кОм)
  2. Подключите его последовательно с механизмом и подайте на него переменное напряжение с помощью потенциометра.
  3. Медленно увеличивайте напряжение, пока стрелка не достигнет конца шкалы.
  4. С помощью мультиметра измерьте протекающий ток. Это полный диапазон отклоняющего тока. (I = 150uA в моем случае)

Мы используем ЦАП с диапазоном выходного напряжения от 0 до VCC (3,3 В из-за NodeMCU). Это означает, что когда на измеритель подается напряжение 3,3 В, он должен указывать на конец шкалы. Это может произойти, когда по цепи протекает ток полного отклонения при подаче напряжения 3,3 В. Используя закон Ома, 3,3 / (ток полного отклонения) дает значение сопротивления, которое необходимо вставить последовательно.

Шаг 4: Создание запроса SNMP GET

Создание запроса SNMP GET
Создание запроса SNMP GET
Создание запроса SNMP GET
Создание запроса SNMP GET
Создание запроса SNMP GET
Создание запроса SNMP GET

Простой протокол управления сетью (SNMP) - это стандартный протокол Интернета для сбора и организации информации об управляемых устройствах в IP-сетях, а также для изменения этой информации с целью изменения поведения устройства. Устройства, которые обычно поддерживают SNMP, включают кабельные модемы, маршрутизаторы, коммутаторы, серверы, рабочие станции, принтеры и многое другое. В этой сборке мы будем связываться с нашим WiFi-маршрутизатором по протоколу SNMP и получать необходимые данные.

Но сначала нам нужно отправить маршрутизатору запрос, известный как «запрос GET», с указанием деталей данных, которые нам нужны. Формат запроса GET показан на рисунке. Запрос состоит из разных частей. Я выделил байты, которые вы, возможно, захотите изменить.

Обратите внимание, что все в шестнадцатеричной системе счисления.

Сообщение SNMP. В моем случае длина всего сообщения составляет 40 (серый цвет), что при преобразовании в шестнадцатеричное значение составляет 0x28.

Строка сообщества SNMP - значение «PUBLIC» записывается в шестнадцатеричном формате как «70 75 62 6C 69 63», длина которого равна 6 (желтый).

Тип PDU SNMP - в моем случае длина сообщения 27 (синий), то есть 0x1B.

Тип списка Varbind - в моем случае длина сообщения составляет 16 (зеленый), то есть 0x10.

Тип Varbind - в моем случае длина сообщения 14 (розовый), то есть 0x0E.

Идентификатор объекта -

Как упоминалось ранее, сетевые устройства с поддержкой SNMP (например, маршрутизаторы, коммутаторы и т. Д.) Поддерживают базу данных с информацией о состоянии, доступности и производительности системы в виде объектов, идентифицируемых идентификаторами OID. Вам необходимо определить OID вашего маршрутизатора для пакетов загрузки и скачивания. Это можно сделать с помощью бесплатного браузера MIB, подобного этому.

Введите адрес 192.168.1.1 и OID как.1.3.6.1.2.1.2.2.1.10.x (ifInOctets) или.1.3.6.1.2.1.2.2.1.16.x. (ifOutOctets). Выберите «Получить операцию» и нажмите «Перейти». Вы должны увидеть OID вместе с его значением и типом.

В моем случае длина сообщения 10 (красный цвет), то есть 0x0A. Замените значение на OID. В этом случае «2B 06 01 02 01 02 02 01 10 10».

Вот и все! Ваше сообщение с запросом готово. Остальные байты оставьте как есть.

Включение SNMP на вашем маршрутизаторе:

  • Войдите на страницу своего WiFi-роутера через шлюз по умолчанию. Введите 192.168.1.1 в своем браузере и нажмите ввод. По умолчанию имя пользователя и пароль должны быть «admin».
  • Я использую роутер TP-LINK (TD-W8961N). Для этого маршрутизатора вам нужно перейти в Управление доступом> SNMP и выбрать «Активировано».
  • Сообщество GET: общедоступное
  • Хост ловушки: 0.0.0.0

Шаг 5: понимание ответа GET

Понимание ответа GET
Понимание ответа GET

Вы можете пропустить этот шаг, но это полезно знать, если вам нужно устранить неполадки.

После того, как вы загрузите код и запустите его, вы можете посмотреть ответ через последовательный монитор. Должно получиться так, как показано на картинке. Вам нужно найти несколько байтов, которые я выделил.

Начиная с 0, 15-й байт сообщает тип PDU - 0xA2 означает, что это GetResponse.

48-й байт указывает тип данных - 0x41 означает, что тип данных - Counter.

49-й байт указывает длину данных - 0x04 означает, что данные имеют длину 4 байта.

Байт 50, 51, 52, 53 содержит данные.

Шаг 6: Цифро-аналоговый преобразователь (ЦАП)

Цифро-аналоговый преобразователь (ЦАП)
Цифро-аналоговый преобразователь (ЦАП)

Микроконтроллеры - это цифровые устройства, которые напрямую не воспринимают аналоговые напряжения. Я использую аналоговый измеритель, которому требуется переменное напряжение в качестве входа. Но микроконтроллер может просто выводить HIGH (3,3 В в случае NodeMCU) и LOW (0 В). Теперь вы можете сказать, почему бы просто не использовать ШИМ. Это не сработает, так как счетчик будет отображать только среднее значение.

Я использую ЦАП MCP4725 для получения переменного напряжения. Это 12-битный ЦАП, то есть, попросту говоря, он делит от 0 до 3,3 В на 4096 (= 2 ^ 12) частей. Разрешение будет 3,3 / 4096 = 0,8056 мВ. Это означает, что 0 соответствует 0 В, 1 соответствует 0,8056 мВ, 2 соответствует 1,6112 мВ,….., 4095 соответствует 3,3 В.

Скорость интернета будет «отображена» от «0 до 7 Мбит / с» до «0 до 4095», а затем это значение будет передано ЦАП для вывода напряжения, которое будет пропорционально скорости интернета.

Шаг 7: Сборка

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Подключения очень простые. Схема прилагается сюда.

Я разработал и распечатал шкалу. Верхний предназначен для скорости загрузки, а нижний - для скорости загрузки. Я наклеил новую шкалу на старую.

С мультиметра удалил все старое и все втиснул. Это было тесновато. Мне пришлось просверлить отверстие спереди, чтобы прикрепить тумблер, который используется для выбора между скоростью загрузки и загрузки.

Шаг 8: время писать код

Время писать код
Время писать код
Время писать код
Время писать код
Время писать код
Время писать код

Код был прикреплен сюда. Загрузите и откройте его в Arduino IDE. Установите библиотеку MCP4725 от Adafruit.

Перед загрузкой:

  1. Введите свой SSID и пароль Wi-Fi.
  2. Введите максимальную скорость загрузки и выгрузки, указанную на шкале.
  3. Внесите необходимые изменения в массив запросов для загрузки и загрузки пакетов.
  4. Раскомментируйте строку 165, чтобы просмотреть ответ на последовательном мониторе.

Нажмите "Загрузить"!

Шаг 9: Наслаждайтесь

Включите его и наслаждайтесь просмотром иглы, танцующей вокруг, пока вы путешествуете по Интернету!

Спасибо, что придерживались конца. Надеюсь, вам всем понравился этот проект и вы узнали что-то новое сегодня. Дай мне знать, если сделаешь его для себя. Подпишитесь на мой канал на YouTube, чтобы увидеть больше таких проектов.

Рекомендуемые: