Монитор на честотната лента: 7 стъпки (със снимки)
Монитор на честотната лента: 7 стъпки (със снимки)
Anonim
Монитор на честотната лента
Монитор на честотната лента
Монитор на честотната лента
Монитор на честотната лента
Монитор на честотната лента
Монитор на честотната лента

Тъй като често се питах каква честотна лента в момента се предоставя от моя интернет доставчик (използвам LTE модем за интернет връзка), се сетих за система за наблюдение на честотната лента. Тъй като системата трябва да бъде компактна и енергоспестяваща, избрах Raspberry Pi Zero като централен компонент. Raspberry е свързан към модема чрез WLAN, поради което могат да бъдат открити и проблеми с WLAN.

Консумативи

  • Raspberry Pi Zero WH
  • Дисплей за електронно мастило Waveshare (2.9-инчов-модул за електронна хартия)
  • DC-DC преобразувател (например DEBO DCDC 20W)
  • RGB LED (изваден от старо устройство)
  • Натисни бутона
  • Превключване
  • Relais модул (напр. 2 Way Relay module 2 Way Relay module)
  • Мъжки конектор + Женски конектор (и двата отговарят на размера на щепсела на вашия модем)
  • 3D печатна кутия

Стъпка 1: Функции

Характеристика
Характеристика
Характеристика
Характеристика
Характеристика
Характеристика
  • Raspberry Pi Zero е свързан чрез WLAN, тества скоростта на изтегляне и изтегляне и извършва измерване на пинг на всеки половин час. Версия на командния ред на speedtest.net се използва като основа за измерванията.
  • Резултатът от измерването на честотната лента и пинга се показва на дисплея с електронно мастило. Показва се и времето на измерване.
  • Ако скоростта на изтегляне падне под определена прагова стойност, релето изключва и включва модема за кратко. По този начин модемът се нулира без никаква промяна на устройството (прекъсва се само захранването).
  • Наличен е бутон в предната част на устройството, за да задейства ръчно измерването на честотната лента.
  • Измерените стойности се показват на таблото за управление на Ubidots (IOT Portal). В прегледа можете също да видите хронологията на измерените стойности и причините за последното нулиране.
  • В портала IOT можете да намерите и бутон за дистанционно нулиране на модема.
  • Мониторът за честотна лента използва захранването на модема. Не са необходими допълнителни доставки. Релето прекъсва пренасочването на захранването към модема - малината остава включена.

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

На първата снимка можете да видите вътрешния дизайн на монитора за честотна лента:

Основните компоненти са:

    1. Натисни бутона
    2. Дисплей с електронно мастило
    3. Raspberry Pi Zero
    4. Релейни модули
    5. RGB LED + резистори (в зависимост от RGB LED, който използвате)
    6. Превключване
    7. DC-DC преобразувател
    8. Женски конектор

Втората снимка показва схема на окабеляването. Положителният полюс на захранващото напрежение се подава чрез превключвателя към преобразувателя на DC-DC напрежение (който преобразува 12V захранващото напрежение на рутера в 5V за малината) и чрез релето (чрез нормално свързания щифт) обратно към изходен конектор. По този начин модемът също се захранва, когато мониторът за честотна лента е изключен.

Измерването на честотната лента може да се стартира ръчно чрез бутон. RGB LED се използва за визуализиране на различните работни състояния.

Връзката между Raspberry Pi и дисплея с електронно мастило не е показана на електрическата схема. Свържете дисплея според таблицата и извода по-горе.

Стъпка 3: 3D печат и изграждане на преследването

3D печат и изграждане на преследването
3D печат и изграждане на преследването
3D печат и изграждане на преследването
3D печат и изграждане на преследването
3D печат и изграждане на преследването
3D печат и изграждане на преследването
3D печат и изграждане на преследването
3D печат и изграждане на преследването

Следните части са необходими за случая (вижте снимката по -горе):

    1. Долна част
    2. Горна част
    3. отпред
    4. обратно
    5. 4x монтаж

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

Дисплеят може да бъде прикрепен към предния панел с крепежни елементи и двустранна лента. Бутонният превключвател и женският конектор са завинтени към задния и задния панел. Използвах винтове 3х20 мм, за да свържа двете половини на корпуса. Допуските по жлебовете за предния и задния панел са относително тесни. Ако е необходимо, предните и задните панели трябва да бъдат шлифовани по ръба (от вътрешната страна, за да се избегне разрушаване на повърхността).

Стъпка 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

Инсталирайте speedtest:

sudo

apt-get install python-pip

sudo pip инсталирайте speedtest-cli

за да проверите дали инсталацията е успешна, стартирайте Speedtest в терминала:

speedtest-cli

ако всичко е правилно, трябва да получите нещо като на първата снимка по -горе.

Инсталирайте проводникPI

sudo apt-get install git-core

git клониране git: //git.drogon.net/wiringPi

cd окабеляванеPi

./ изграждане

(вижте също

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

sudo apt-get install wiringpi

(вижте

Инсталирайте BCM2835

(вижте

Изтеглете bcm2835-1.60.tar.gz (или по-нова версия, ако има такава)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./конфигуриране

направете

sudo направи проверка

sudo make install

Инсталирайте библиотеката за изображения на Python

sudo apt-get инсталирайте python-imaging

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

sudo apt-get инсталирайте python-pil

Активирайте функцията I2C.

Изпълнете следната команда, за да конфигурирате вашата платка Raspberry Pi:

sudo raspi-config

Изберете Interface Options-> I2C -> yes, за да стартирате основния драйвер на I2C. След това също трябва да промените конфигурационния файл. Изпълнете следната команда, за да отворите конфигурационния файл:

sudo nano /etc /модули

Добавете следните два реда към конфигурационния файл

i2c-bcm2708

i2c-dev

Вижте също

Активирайте функцията SPI

Изпълнете следната команда, за да конфигурирате вашата платка Raspberry Pi:

sudo raspi-config

Изберете Interface Options-> SPI -> yes, за да стартирате основния драйвер на SPI.

Инсталирайте допълнителни шрифтове:

sudo apt-get install ttf-mscorefonts-installer

Изтеглете и инсталирайте шрифтове (Roboto + Droid)

gksudo

pcmanfm

За да стартирате filemanager с root права и да копирате шрифтове Truetype в папка/usr/share/fonts/truetype

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

Копирайте шрифтовете в папката Downloads с WinSCP (ssh трябва да е активиран, за да използвате WinSCP)

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 файлове:

Използвайте filemanger, за да създадете нова папка "bandwidth_monitor"

Копирайте всички файлове в директорията bandwidth_monitor

Направете python файлове и скрипт изпълними

chmod +x *.py

chmod +x speedtest-cron.sh

Конфигурирайте crontab

crontab -е

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 светодиодът е син. Ако честотната лента е над избрания праг, стойността се показва на дисплея на електронното мастило (заедно с времева отметка) и се експортира в таблото за управление на 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 LED и релето.

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.

Препоръчано: