Оглавление:

Монитор пропускной способности: 7 шагов (с изображениями)
Монитор пропускной способности: 7 шагов (с изображениями)

Видео: Монитор пропускной способности: 7 шагов (с изображениями)

Видео: Монитор пропускной способности: 7 шагов (с изображениями)
Видео: Как проверить время отклика монитора? 😲 2024, Ноябрь
Anonim
Монитор пропускной способности
Монитор пропускной способности
Монитор пропускной способности
Монитор пропускной способности
Монитор пропускной способности
Монитор пропускной способности

Поскольку я часто спрашивал себя, какая полоса пропускания в настоящее время предоставляется моим интернет-провайдером (я использую модем LTE для подключения к Интернету), я подумал о системе мониторинга пропускной способности. Поскольку система должна быть компактной и энергосберегающей, я выбрал Raspberry Pi Zero в качестве центрального компонента. Raspberry подключен к модему через WLAN, поэтому проблемы с WLAN также могут быть обнаружены.

Запасы

  • Малина Pi Zero WH
  • Дисплей с электронными чернилами Waveshare (модуль электронной бумаги 2,9 дюйма)
  • Преобразователь постоянного тока в постоянный (например, DEBO DCDC 20 Вт)
  • RGB светодиод (снят со старого устройства)
  • Нажать кнопку
  • Выключатель
  • Релейный модуль (например, 2-позиционный релейный модуль 2-позиционный релейный модуль)
  • Штекерный разъем + женский разъем (оба соответствуют размеру вилки источника питания модема)
  • Чехол для 3D-печати

Шаг 1: особенности

Функции
Функции
Функции
Функции
Функции
Функции
  • Raspberry Pi Zero подключается через WLAN, проверяет скорость загрузки и загрузки и каждые полчаса выполняет измерение пинга. Версия speedtest.net для командной строки используется в качестве основы для измерений.
  • Результат измерения пропускной способности и пинга отображается на дисплее e-ink. Также отображается время измерения.
  • Если скорость загрузки падает ниже определенного порогового значения, реле отключает и включает модем на короткое время. Таким образом, модем сбрасывается без каких-либо изменений в устройстве (прерывается только подача питания).
  • Кнопка на передней панели устройства доступна для запуска измерения полосы пропускания вручную.
  • Измеренные значения отображаются на панели инструментов Ubidots (портал IOT). В обзоре вы также можете увидеть хронологию измеренных значений во времени и причины последних сбросов.
  • На портале IOT вы также можете найти кнопку для удаленного сброса модема.
  • Монитор пропускной способности использует источник питания модема. Никаких дополнительных поставок не требуется. Реле прерывает подачу питания на модем - малина остается включенной.

Шаг 2: Подключение

Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка
Проводка

На первом изображении вы можете увидеть внутреннее устройство монитора пропускной способности:

Основные компоненты:

    1. Нажать кнопку
    2. E-ink дисплей
    3. Raspberry Pi Zero
    4. Модуль реле
    5. Светодиод RGB + резисторы (в зависимости от используемого светодиода RGB)
    6. Выключатель
    7. Преобразователь постоянного тока в постоянный
    8. Женский разъем

На втором рисунке показана схема подключения. Положительный полюс напряжения питания подается через переключатель на преобразователь напряжения постоянного тока в постоянный (который преобразует напряжение питания 12 В маршрутизатора в 5 В для Raspberry) и через реле (через нормально подключенный контакт) обратно на выходной разъем. Таким образом, модем также получает питание, когда монитор полосы пропускания выключен.

Измерение пропускной способности можно запустить вручную с помощью кнопки. Светодиод RGB используется для визуализации различных рабочих состояний.

Связь между Raspberry Pi и дисплеем e-ink на принципиальной схеме не показана. Подключите дисплей в соответствии с таблицей и схемой расположения выводов выше.

Шаг 3: 3D-печать и создание погони

3D-печать и создание погони
3D-печать и создание погони
3D-печать и создание погони
3D-печать и создание погони
3D-печать и создание погони
3D-печать и создание погони
3D-печать и создание погони
3D-печать и создание погони

Для корпуса необходимы следующие детали (см. Рисунок выше):

    1. нижняя часть
    2. верхняя часть
    3. передний
    4. назад
    5. 4x крепление

Все детали можно распечатать без подставок. Вы также можете найти файлы и некоторые другие мои проекты на Thingiverse:

Дисплей можно прикрепить к передней панели с помощью креплений и двустороннего скотча. К задней и задней панели прикручены кнопочный переключатель и женский разъем. Я использовал винты 3x20 мм, чтобы соединить две половинки корпуса. Допуски на пазы для передней и задней панелей относительно жесткие. При необходимости переднюю и заднюю панели необходимо отшлифовать по краю (с внутренней стороны, чтобы не повредить поверхность).

Шаг 4: Настройка Raspberry PI

Настройка Raspberry PI
Настройка Raspberry PI
Настройка Raspberry PI
Настройка Raspberry PI

Это руководство по установке основано на составлении нескольких инструкций по установке из разных источников (производителей дисплеев e-Ink и т. Д.). Для меня инструкция привела к желаемому результату. Поскольку я не являюсь экспертом по Linux, никаких оптимизаций и т.п. не проводилось. Я знаю, что, безусловно, есть лучшие и более эффективные решения.

Предположим, у вас уже установлен Raspbian на вашем Pi (существует множество руководств по установке базовой операционной системы), и у вас есть подключенный дисплей (через miniHDMI), мышь и клавиатура. Также предполагается правильно настроенное соединение WLAN с маршрутизатором или Интернетом. Если не указано иное, все процедуры установки выполняются в терминале.

Установите удаленный рабочий стол (для доступа к PI с вашего компьютера):

sudo apt-get update

sudo apt-get

установить xrdp

или вы также можете работать без головы через ssh (см., например, Измени пароль:

www.raspberrypi.org/forums/viewtopic.php?t=193620

Установите спидтест:

судо

apt-get установить python-pip

sudo pip установить speedtest-cli

чтобы проверить, прошла ли установка успешно, запустите Speedtest в терминале:

speedtest-cli

если что-то в порядке, вы должны получить что-то, как на первом рисунке выше.

Установить проводкуPI

sudo apt-get install git-core

git clone git: //git.drogon.net/wiringPi

cd wiringPi

./строить

(см. также

Альтернатива:

sudo apt-get install wiringpi

(см.

Установить BCM2835

(см.

Загрузите bcm2835-1.60.tar.gz (или более новую версию, если доступна)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./configure

делать

sudo сделать проверку

sudo make install

Установите библиотеку изображений Python

sudo apt-get install python-imaging

Альтернатива:

sudo apt-get install python-pil

Включите функцию I2C.

Выполните следующую команду, чтобы настроить плату Raspberry Pi:

sudo raspi-config

Выберите «Параметры интерфейса» -> «I2C» -> «Да», чтобы запустить драйвер ядра I2C. Затем вам также необходимо изменить файл конфигурации. Выполните следующую команду, чтобы открыть файл конфигурации:

Судо нано / и т.д. / модули

Добавьте следующие две строки в файл конфигурации

i2c-bcm2708

i2c-dev

См. Также

Включите функцию SPI

Выполните следующую команду, чтобы настроить плату Raspberry Pi:

sudo raspi-config

Выберите «Параметры интерфейса» -> «SPI» -> «Да», чтобы запустить основной драйвер SPI.

Установите дополнительные шрифты:

sudo apt-get install ttf-mscorefonts-installer

Скачайте и установите шрифты (Roboto + Droid)

gksudo

pcmanfm

Чтобы запустить файловый менеджер с правами root и скопировать шрифты TrueType в папку / usr / share / fonts / truetype

Альтернатива:

Скопируйте шрифты в папку Downloads с WinSCP (для использования WinSCP необходимо включить ssh)

sudo cp -r / home / pi / Downloads / droid / usr / share / fonts / truetype

sudo cp -r / home / pi / Downloads / roboto / usr / share / fonts / truetype

Для доступа к папке шрифтов вам потребуются привилегии root. Возможно, есть лучшие способы сделать это (как уже упоминалось, я не эксперт по Linux), но оба способа сработали для меня.

Файлы Python:

Воспользуйтесь файловым менеджером, чтобы создать новую папку "bandwidth_monitor".

Скопируйте все файлы в каталог bandwidth_monitor

Сделайте файлы Python и скрипт исполняемым

chmod + x *.py

chmod + x speedtest-cron.sh

Настроить crontab

crontab -e

Crontab используется для планирования выполнения программы, например. спидтест каждые 30 мин. Добавьте следующие строки в ваш crontab (см. Также второй рисунок):

@reboot / usr / bin / python /home/pi/bandwidth_monitor/post_restart_message.py &

@reboot sleep 30 && / usr / bin / python /home/pi/bandwidth_monitor/poll_test_now_button.py * / 30 * * * * /home/pi/bandwidth_monitor/speedtest-cron.sh * / 3 * * * * / usr / bin / python /home/pi/bandwidth_monitor/poll_killswitch.py 13 03 * * * / usr / bin / python /home/pi/bandwidth_monitor/refresh_display.py

Описание запланированных задач:

  • при перезагрузке сообщение о перезагрузке записывается на панель управления IOT
  • при перезагрузке запускается опрос test_now_button
  • каждые 30 минут выполняется измерение пропускной способности
  • каждые 3 минуты проверяется состояние кнопки удаленного сброса (на панели IOT)
  • один раз в день запускается цикл обновления дисплея.

См. Раздел программного обеспечения для краткого описания программ.

Шаг 5: Программное обеспечение

Программное обеспечение
Программное обеспечение

Программа разбита на несколько файлов / программ:

bandwidth_monitor_0_4.py - это основная программа, которая запускается Crontab каждые полчаса. Он выполняет тест пропускной способности (через версию speedtest.net из командной строки). Во время теста светодиод RGB горит синим. Если полоса пропускания превышает выбранный порог, значение отображается на дисплее e-ink (вместе с меткой времени) и экспортируется на панель управления Ubidots. Если полоса пропускания ниже порогового значения, светодиод становится красным, и измерение повторяется после небольшой задержки. После 3 отрицательных попыток реле срабатывает, и питание модема прерывается. Код сброса (значение = 2) записывается в раздел журнала.

poll_killswitch.py считывает состояние логической переменной на панели управления. Если killswitch_state истинно, реле активируется, и питание модема прерывается. Светодиод RGB загорается зеленым во время опроса выключателя. После сброса для killswitch_state устанавливается значение false, и создается запись в разделе журнала панели управления (значение = 1).

poll_test_now_button.py ожидает нажатия кнопки на передней панели корпуса. При нажатии кнопки измерение полосы пропускания запускается вручную. При запуске программы (при перезагрузке Raspberry Pi) светодиод RGB мигает красным.

post_restart_message.py записывает код сброса (значение = 3) в раздел журнала панели управления. Это означает, что монитор пропускной способности был перезапущен. Во время запуска программы светодиод RGB мигает синим.

test_LED.py и test_relay.py - это простые скрипты, которые можно использовать для проверки аппаратной функции светодиода RGB и реле.

epdconfig.py и epd2in9.py - это драйверы устройства для отображения электронных чернил, предоставляемые Waveshare.

Чтобы разрешить программам доступ к панели управления Ubidots, вам необходимо добавить свои индивидуальные токены и имена устройств или переменных (если вы используете другие обозначения). Найдите раздел, подобный показанному на изображении выше (замените XXXXXXXX своим токеном).

Исчерпывающие руководства о том, как создать приборную панель и как интегрировать приборную панель в программу Python, можно найти непосредственно на странице Ubidots (https://help.ubidots.com/en/) или через Google.

Шаг 6: Панель управления IOT

Панель управления IOT
Панель управления IOT

Панель управления Ubidots (см. Https://ubidots.com) содержит несколько областей, которые кратко описаны ниже.

    1. Временная последовательность скорости загрузки и загрузки. Каждые полчаса в диаграмму добавляется новое значение.
    2. Динамика измеренного времени пинга. Каждые полчаса в диаграмму добавляется новое значение.
    3. Временная последовательность средней скорости загрузки. Среднее значение за 24 часа вычисляется и записывается на диаграмму.
    4. Табличное представление текущих значений измерения, включая отметку времени.
    5. Кнопка дистанционного управления для сброса модема через Интернет. Запрос выполняется каждые 3 минуты, то есть до выполнения действия может потребоваться некоторое время.
    6. Регистрация последних сбросов, включая причину сброса (удаленный запуск, отключение или потеря напряжения, падение ниже минимальной полосы пропускания)

Исчерпывающие руководства о том, как создать приборную панель и как интегрировать приборную панель в программу Python, можно найти непосредственно на странице Ubidots (https://help.ubidots.com/en/) или через Google.

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