Мазмуну:
- Жабдуулар
- 1 -кадам: Өзгөчөлүктөр
- 2 -кадам: Кабелдөө
- 3 -кадам: 3D басып чыгаруу жана кууп чыгуу
- 4 -кадам: Raspberry PI орнотуу
- 5 -кадам: Программалык камсыздоо
- 6 -кадам: IOT панели
- 7 -кадам: Негизги функцияларды киргизүү
Video: Bandwidth Monitor: 7 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Мен көп учурда өзүмдүн провайдерим тарабынан кандай өткөрүү жөндөмдүүлүгү камсыздалганын сурап жатканымда (мен Интернетке туташуу үчүн LTE модемин колдоном), мен өткөрүү жөндөмдүүлүгүн көзөмөлдөө системасын ойлондум. Система компакт жана энергияны үнөмдөөчү болушу керек болгондуктан, мен борбордук компонент катары Raspberry Pi Zero тандадым. Raspberry WLAN аркылуу модемге туташкан, ошондуктан WLAN көйгөйлөрүн да аныктаса болот.
Жабдуулар
- Raspberry Pi Zero WH
- Waveshare электрондук сыя дисплейи (2.9inch-e-paper-module)
- DC-DC алмаштыргыч (мис. DEBO DCDC 20W)
- RGB LED (эски аппараттан алынган)
- Баскыч
- Которуу
- Relais модулу (мис. 2 Way Relay модулу2 Way Relay модулу)
- Эркек туташтыргычы + Аял туташтыргычы (экөө тең модемдин электр менен камсыздоочу сайгычынын өлчөмүнө туура келет)
- 3D басылган корпус
1 -кадам: Өзгөчөлүктөр
- Raspberry Pi Zero WLAN аркылуу туташат, жүктөө ылдамдыгын текшерет жана ар бир жарым саатта пинг өлчөөсүн аткарат. Өлчөө үчүн негиз катары speedtest.netтин командалык сап версиясы колдонулат.
- Өткөрүү жөндөмүнүн жана пинг өлчөөнүн натыйжасы электрондук сыя дисплейде көрсөтүлөт. Өлчөө убактысы да көрсөтүлөт.
- Эгерде жүктөө ылдамдыгы белгиленген чектен төмөн түшсө, реле модемди өчүрүп, кыска убакытка коет. Ошентип, модем түзмөктү өзгөртпөстөн баштапкы абалга келтирилет (электр менен камсыздоо үзгүлтүккө учурайт).
- Түзмөктүн маңдайындагы баскыч кол менен өткөрүү жөндөмүн өлчөө үчүн жеткиликтүү.
- Ченелген баалуулуктар Ubidots тактасында (IOT Portal) көрсөтүлөт. Обзордо сиз өлчөнгөн баалуулуктардын убакыт тарыхын жана акыркы абалга келтирүү себептерин көрө аласыз.
- IOT порталында сиз модемди алыстан баштапкы абалга келтирүү үчүн баскычты таба аласыз.
- Bandwidth монитору модемдин кубаттуулугун колдонот. Кошумча камсыздоонун кереги жок. Реле модемге электр энергиясын жеткирүүнү үзгүлтүккө учуратат - малина күйүк бойдон калууда.
2 -кадам: Кабелдөө
Биринчи сүрөттө сиз өткөрмө монитордун ички дизайнын көрө аласыз:
Негизги компоненттери болуп төмөнкүлөр саналат:
- Баскычты басыңыз
- E-ink Display
- Raspberry Pi Zero
- Реле модулу
- RGB LED + резисторлор (сиз колдонгон RGB LEDине жараша)
- Которуу
- DC-DC Converter
- Аял туташтыргычы
Экинчи сүрөттө зымдардын схемасы көрсөтүлгөн. Жеткирүү чыңалуусунун оң уюлу DC-DC чыңалуу алмаштыргычына которулат (роутердин 12В камсыздоо чыңалуусун Малинага 5Вга айландырат) жана реле аркылуу (нормалдуу туташкан пин аркылуу) кайра чыгаруу туташтыргычы. Ошентип, модемге өткөрүү жөндөмдүүлүгү монитору өчүрүлгөндө да кубат берилет.
Өткөрүү жөндөмүн өлчөө баскыч аркылуу кол менен башталышы мүмкүн. RGB LED ар кандай иштөө абалын элестетүү үчүн колдонулат.
Raspberry Pi менен электрондук сыя дисплейинин ортосундагы байланыш схемада көрсөтүлгөн эмес. Дисплейди үстөлгө жана пин-чыкка ылайык туташтырыңыз.
3 -кадам: 3D басып чыгаруу жана кууп чыгуу
Кап үчүн төмөнкү бөлүктөр талап кылынат (жогорудагы сүрөттү караңыз):
- төмөнкү бөлүгү
- жогорку бөлүгү
- алдыңкы
- кайра
- 4x орнотуу
Бардык бөлүктөрдү тирөөчсүз басып чыгарууга болот. Сиз ошондой эле Thingiverseдеги файлдарды жана башка дизайндарды таба аласыз:
Дисплей алдыңкы панелге тиркемелер жана эки жактуу скотч менен тиркелиши мүмкүн. Түймө которгуч жана ургаачы туташтыргычы арткы жана арткы панелге сайылган. Мен корпустун эки жарымын туташтыруу үчүн 3x20 мм бурамаларды колдондум. Алдыңкы жана арткы панелдердин оюктарындагы толеранттуулук салыштырмалуу тыгыз. Керек болсо, алдыңкы жана арткы панелдерди четинен тегиздөө керек (ички бетин бузбоо үчүн).
4 -кадам: Raspberry PI орнотуу
Бул орнотуу көрсөтмөсү ар кандай булактардан (e-Ink дисплей өндүрүүчүлөрү, …) бир нече орнотуу көрсөтмөлөрүн түзүүгө негизделген. Мен үчүн көрсөтмөлөр каалаган натыйжага алып келди. Мен Linux боюнча эксперт болбогондуктан, эч кандай оптимизация же окшош иш жасалган жок. Мен, албетте, жакшыраак жана эффективдүү чечимдер бар экенин билем.
Пиңизде Raspbian орнотулган деп ойлоп көрөлү (негизги операциялык тутумду орнотуу боюнча көптөгөн окуу куралдары бар) жана сизде дисплей (miniHDMI аркылуу), чычкан жана клавиатура туташкан. Ошондой эле роутерге же Интернетке туура орнотулган WLAN байланышы кабыл алынат. Башкача каралбаса, бардык орнотуу процедуралары терминалда аткарылат.
Алыскы рабочийди орнотуңуз (компьютерден PIге кирүү үчүн):
sudo apt-get update
sudo apt-get
xrdp орнотуу
же сиз дагы ssh аркылуу башсыз иштей аласыз (мис. https://desertbot.io/blog/headless-raspberry-pi-3-bplus-ssh-wifi-setup караңыз)
Сырсөздү өзгөртүү:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Speedtest орнотуу:
sudo
apt-get python-pip орнотуу
sudo pip орнотуу speedtest-cli
Орнотуу ийгиликтүү болгонун текшерүү үчүн Speedtest терминалда иштейт:
speedtest-cli
эгерде баары туура болсо, сиз жогорудагы биринчи сүрөттөгүдөй нерсени алышыңыз керек.
WiringPI орнотуу
sudo apt-get орнотуу git-core
git clone git: //git.drogon.net/wiringPi
cd wiringPi
./build
(ошондой эле караңыз
Альтернатива:
sudo apt-get 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 python-Imaging орнотуу
Альтернатива:
sudo apt-get python-pil орнотуу
I2C функциясын иштетүү.
Raspberry Pi тактаңызды конфигурациялоо үчүн төмөнкү буйрукту аткарыңыз:
sudo raspi-config
I2C негизги драйверин баштоо үчүн Interface Options-> I2C -> ооба тандаңыз. Андан кийин конфигурация файлын өзгөртүү керек. Конфигурация файлын ачуу үчүн төмөнкү буйрукту аткарыңыз:
Sudo нано /ж.б. /модулдар
Конфигурация файлына төмөнкү эки сапты кошуңуз
i2c-bcm2708
i2c-dev
Ошондой эле караңыз
SPI функциясын иштетүү
Raspberry Pi тактаңызды конфигурациялоо үчүн төмөнкү буйрукту аткарыңыз:
sudo raspi-config
Interface Options-> SPI -> ооба, SPI негизги драйверин баштоо үчүн тандаңыз.
Кошумча шрифттерди орнотуңуз:
sudo apt-get ttf-mscorefonts-installer орнотуңуз
Ариптерди жүктөп алып, орнотуңуз (Roboto + Droid)
gksudo
pcmanfm
Файл башкаруучусун root артыкчылыктары менен баштоо үчүн жана truetype шрифттерин папкага/usr/share/font/truetype көчүрүү үчүн
Альтернатива:
Ариптерди WinSCP менен Жүктөөлөр папкасына көчүрүңүз (WinSCPди колдонуу үчүн ssh иштетилиши керек)
sudo cp -r/home/pi/Downloads/droid/usr/share/font/truetype
sudo cp -r/home/pi/Downloads/roboto/usr/share/font/truetype
Шрифт папкасына кирүү үчүн сизге root артыкчылыктары керек. Балким, муну кылуунун жакшы жолдору бар (жогоруда айтылгандай, мен Linux боюнча эксперт эмесмин), бирок эки жол тең мен үчүн иштеген.
Python файлдары:
Filemanger аркылуу "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 LED көк. Өткөрүү жөндөмү тандалган босогодон жогору болсо, мааниси электрондук сыя дисплейинде көрсөтүлөт (убакыт белгиси менен бирге) жана Ubidots тактасына экспорттолот. Эгерде өткөрмө чеги босогодон төмөн болсо, анда LED кызыл түскө айланат жана өлчөө бир аз кечигүүдөн кийин кайталанат. 3 терс аракеттен кийин реле активдештирилет жана ушинтип модемдин электр энергиясы үзгүлтүккө учурайт. Жөндөө коду (маани = 2) журнал бөлүмүнө жазылган.
poll_killswitch.py панелдеги логикалык өзгөрмөнүн абалын окуйт. Эгерде killswitch_state чын болсо, анда реле активдештирилет жана модемдин электр энергиясы үзгүлтүккө учурайт. RGB LED өлтүрүүчүгө добуш берүү учурунда жашыл түскө ээ болот. Кайра орнотуудан кийин 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 панели
Ubidots тарабынан жайгаштырылган тактасы (https://ubidots.com караңыз) төмөндө кыскача сүрөттөлгөн бир нече аймакты камтыйт.
- Убакыт ырааттуулугу жана жүктөө ылдамдыгы. Ар бир жарым саатта диаграммага жаңы маани киргизилет.
- Өлчөөчү пинг убактысынын убактысы. Ар бир жарым саатта диаграммага жаңы маани киргизилет.
- Орточо жүктөө ылдамдыгынын убакыт ырааты. 24 сааттан ашык орточо көрсөткүч эсептелген жана диаграммага жазылган.
- Учурдагы өлчөө баалуулуктарынын электрондук таблицасы, анын ичинде убакыт мөөрү.
- Интернет аркылуу модемди баштапкы абалга келтирүү үчүн алыстан башкаруу баскычы. Суроо ар бир 3 мүнөт сайын болот, башкача айтканда, аракет аткарылганга чейин бир аз убакыт кетиши мүмкүн.
- Баштапкы абалга келтирүү себебин камтыган акыркы калыбына келтирүүлөрдү каттоо (алыстан иштетүү, өчүрүү же чыңалуунун жоголушу, минималдуу өткөрүү жөндөмүнөн төмөн)
Куралдар тактасын куруу жана панелди Python программасына кантип интеграциялоо боюнча кеңири сабактарды Ubidots баракчасынан (https://help.ubidots.com/en/) же Google аркылуу табууга болот.
Сунушталууда:
Батарея менен иштөөчү LED Light (s) Solar Charging менен: 11 кадам (Сүрөттөр менен)
Батарея менен иштөөчү LED Жарыгы (лары) Күндүн кубаттуулугу менен: Аялым самын жасоону үйрөтөт, анын сабактарынын көбү кечинде болчу, кышында бул жерде саат 16:30 чамасында караңгы кирип калат, анын кээ бир окуучулары бизди табууда кыйналышкан. үй Бизде маңдайкы жазуу бар болчу, бирок көчө лигасы менен да
Батарея менен иштеген офис. Күн системасы Чыгыш/Батыш Күн панелдери жана шамал турбинасы менен: 11 кадам (Сүрөттөр менен)
Батарея менен иштеген офис. Күн системасы Чыгыш/Батыш Күн панелдери жана шамал турбинасы менен которулат: Долбоор: 200 чарчы фут офис батарея менен иштеши керек. Офис ошондой эле бул система үчүн зарыл болгон бардык контроллерлерди, батареяларды жана компоненттерди камтышы керек. Күн жана шамал энергиясы батареяларды заряддайт. Кичине гана көйгөй бар
Howto: Rpi-imager жана сүрөттөр менен Raspberry PI 4 Headless (VNC) орнотуу: 7 кадам (Сүрөттөр менен)
Howto: Rpi-imager жана сүрөттөр менен Raspberry PI 4 Headless (VNC) орнотуу: Мен бул блогумда кызыктуу долбоорлордун топтомунда бул Rapsberry PI колдонууну пландап жатам. Аны текшерүүдөн тартынбаңыз. Мен Raspberry PIди колдонууну каалагам, бирок жаңы жерде клавиатура же чычкан жок болчу. Мен Raspberry орнотконума бир топ убакыт болду
Жөнөкөй кадамдар жана сүрөттөр менен компьютерди кантип ажыратуу керек: 13 кадам (сүрөттөр менен)
Жөнөкөй кадамдар жана сүрөттөр менен компьютерди кантип ажыратуу керек: Бул компьютерди кантип ажыратуу керектиги жөнүндө көрсөтмө. Негизги компоненттердин көбү модулдук жана оңой эле алынып салынат. Ошентсе да, бул боюнча уюштуруу маанилүү. Бул сизди бөлүктөрдү жоготпоого, ошондой эле кайра чогултууга жардам берет
Java Viewer менен Arduino Baby Monitor: 8 кадам (Сүрөттөр менен)
Java Viewer менен Arduino Baby Monitor: Бөлмөдөгү шарттарды байкоо үчүн Arduino негизделген көп сенсордук блокту куруңуз. Бул аппарат нымдуулукту, температураны, кыймылды жана үндү сезе алат. Ардуинодон сериялык маалыматтарды алган Java негизделген көрүүчү тиркелет