
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 12:57



Тъй като често се питах каква честотна лента в момента се предоставя от моя интернет доставчик (използвам 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: Окабеляване




На първата снимка можете да видите вътрешния дизайн на монитора за честотна лента:
Основните компоненти са:
- Натисни бутона
- Дисплей с електронно мастило
- Raspberry Pi Zero
- Релейни модули
- RGB LED + резистори (в зависимост от RGB LED, който използвате)
- Превключване
- DC-DC преобразувател
- Женски конектор
Втората снимка показва схема на окабеляването. Положителният полюс на захранващото напрежение се подава чрез превключвателя към преобразувателя на DC-DC напрежение (който преобразува 12V захранващото напрежение на рутера в 5V за малината) и чрез релето (чрез нормално свързания щифт) обратно към изходен конектор. По този начин модемът също се захранва, когато мониторът за честотна лента е изключен.
Измерването на честотната лента може да се стартира ръчно чрез бутон. RGB LED се използва за визуализиране на различните работни състояния.
Връзката между Raspberry Pi и дисплея с електронно мастило не е показана на електрическата схема. Свържете дисплея според таблицата и извода по-горе.
Стъпка 3: 3D печат и изграждане на преследването




Следните части са необходими за случая (вижте снимката по -горе):
- Долна част
- Горна част
- отпред
- обратно
- 4x монтаж
Всички части могат да бъдат отпечатани без опори. Можете също да намерите файловете и някои от другите ми дизайни в Thingiverse:
Дисплеят може да бъде прикрепен към предния панел с крепежни елементи и двустранна лента. Бутонният превключвател и женският конектор са завинтени към задния и задния панел. Използвах винтове 3х20 мм, за да свържа двете половини на корпуса. Допуските по жлебовете за предния и задния панел са относително тесни. Ако е необходимо, предните и задните панели трябва да бъдат шлифовани по ръба (от вътрешната страна, за да се избегне разрушаване на повърхността).
Стъпка 4: Настройване на 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

Таблото за управление, хоствано от Ubidots (вижте https://ubidots.com), съдържа няколко области, които са описани накратко по -долу.
- Времева последователност на скоростта на изтегляне и изтегляне. На всеки половин час в диаграмата се вмъква нова стойност.
- Времеви ход на измереното време за пинг. На всеки половин час в диаграмата се вмъква нова стойност.
- Времева последователност на средната скорост на изтегляне. Средната стойност за 24 часа се изчислява и записва в диаграмата.
- Представяне на електронна таблица на текущите стойности на измерване, включително времева маркировка.
- Бутон за дистанционно управление за нулиране на модема чрез интернет. Заявката се появява на всеки 3 минути, т.е.може да отнеме известно време, докато действието се извърши.
- Регистриране на последните нулиране, включително причината за нулирането (дистанционно задействане, изключване или загуба на напрежение, падане под минималната честотна лента)
Изчерпателни уроци за това как да се изгради таблото за управление и как да се интегрира таблото за управление в програма на Python могат да бъдат намерени директно на страницата Ubidots (https://help.ubidots.com/en/) или чрез Google.
Препоръчано:
Измерване на времето (часовник за измерване на лента): 5 стъпки (със снимки)

Time Measure (Tape Measure Clock): За този проект ние (Alex Fiel & Anna Lynton) взехме ежедневен измервателен инструмент и го превърнахме в часовник! Първоначалният план беше да се моторизира съществуваща рулетка. Като направихме това, решихме, че ще бъде по -лесно да създадем своя собствена черупка, с която да работим
Светодиодна лента за матричен дисплей с контролирана WiFi лента: 3 стъпки (със снимки)

Светодиодна лента с матричен дисплей с контролирана WiFi лента: Програмируеми LED ленти, напр. базирани на WS2812, са очарователни. Приложенията са многобройни и бързо можете да получите впечатляващи резултати. И някак си изграждането на часовници изглежда е друг домейн, за който много мисля. Започвайки с известен опит в
Направете контролер за лента: 11 стъпки (със снимки)

Направете контролер за лента: Контролерите за ленти са чудесен начин за управление на синтезатор. Те се състоят от чувствителна на допир лента, която ви позволява непрекъснато да контролирате височината. Електропроводимата лента, наречена "velostat", която реагира на промени в напрежението или съпротивлението, причинени от
Монитор за поверителност, хакнат от стар LCD монитор: 7 стъпки (със снимки)

Монитор за поверителност, хакнат от стар LCD монитор: Най -накрая можете да направите нещо с този стар LCD монитор, който имате в гаража. Можете да го превърнете в монитор за поверителност! Изглежда изцяло бяло за всички, освен за вас, защото носите „магия“очила! Всичко, което наистина трябва да имате, е татко
Как да си направим LED лента (медна лента): 4 стъпки (със снимки)

Как да си направим LED лента (медна лента): В този кратък урок ще ви покажа как да направите обикновена LED лента, използваща медна лента и някои smd светодиоди с малко запояване. Този проект е бърз и може да бъде полезен. Тъй като тази LED лента работи на много често използвано 3.7V захранване