
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59



Tā kā bieži sev jautāju, kādu joslas platumu pašlaik nodrošina mans interneta pakalpojumu sniedzējs (interneta savienojumam izmantoju LTE modemu), es domāju par joslas platuma uzraudzības sistēmu. Tā kā sistēmai vajadzētu būt kompaktai un taupošai, es izvēlējos Raspberry Pi Zero kā centrālo komponentu. Raspberry ir savienots ar modemu, izmantojot WLAN, tāpēc var atklāt arī WLAN problēmas.
Piegādes
- Raspberry Pi Zero WH
- Waveshare e-tintes displejs (2,9 collu e-papīra modulis)
- DC-DC pārveidotājs (piemēram, DEBO DCDC 20W)
- RGB gaismas diode (izņemta no vecas ierīces)
- Uzspied pogu
- Slēdzis
- Relais modulis (piemēram, 2 virzienu releja modulis 2 virzienu releja modulis)
- Vīriešu savienotājs + sieviešu savienotājs (abi atbilst jūsu modema barošanas spraudņa izmēram)
- 3D drukāts korpuss
1. darbība: funkcijas



- Raspberry Pi Zero ir savienots, izmantojot WLAN, pārbauda augšupielādes un lejupielādes ātrumu un ik pēc pusstundas veic ping mērījumus. Par mērījumu pamatu tiek izmantota speedtest.net komandrindas versija.
- Joslas platuma un ping mērīšanas rezultāts tiek parādīts e-tintes displejā. Tiek parādīts arī mērīšanas laiks.
- Ja lejupielādes ātrums nokrītas zem noteiktās sliekšņa vērtības, relejs uz īsu brīdi izslēdz un ieslēdz modemu. Tādējādi modems tiek atiestatīts, nemainot ierīci (tiek pārtraukta tikai barošana).
- Ir pieejama poga ierīces priekšpusē, lai manuāli aktivizētu joslas platuma mērīšanu.
- Izmērītās vērtības tiek parādītas Ubidots informācijas panelī (IOT portāls). Pārskatā varat redzēt arī izmērīto vērtību laika vēsturi un pēdējo atiestatīšanas iemeslus.
- IOT portālā varat atrast arī pogu, lai attālināti atiestatītu modemu.
- Joslas platuma monitors izmanto modema barošanas avotu. Papildu piegāde nav nepieciešama. Relais pārtrauc barošanas avota pārsūtīšanu uz modemu - avenes paliek ieslēgtas.
2. solis: elektroinstalācija




Pirmajā attēlā varat redzēt joslas platuma monitora iekšējo dizainu:
Galvenās sastāvdaļas ir:
- Uzspied pogu
- E-tintes displejs
- Raspberry Pi Zero
- Releju modulis
- RGB LED + rezistori (atkarībā no izmantotās RGB gaismas diodes)
- Slēdzis
- DC-DC pārveidotājs
- Sieviešu savienotājs
Otrajā attēlā redzama elektroinstalācijas shēma. Barošanas sprieguma pozitīvais pols caur slēdzi tiek padots līdzstrāvas līdzstrāvas sprieguma pārveidotājam (kas pārveido maršrutētāja 12V barošanas spriegumu uz 5V avenēm) un caur releju (caur normāli pievienotu tapu) atpakaļ uz izejas savienotājs. Tādējādi modems tiek apgādāts arī ar strāvu, kad joslas platuma monitors ir izslēgts.
Joslas platuma mērīšanu var sākt manuāli, izmantojot pogu. RGB gaismas diode tiek izmantota, lai vizualizētu dažādus darbības stāvokļus.
Savienojums starp Raspberry Pi un e-ink displeju nav parādīts shēmas shēmā. Pievienojiet displeju atbilstoši tabulai un iepriekš redzamajai tapai.
3. darbība: 3D drukāšana un vajāšanas veidošana




Korpusam ir nepieciešamas šādas detaļas (skatiet attēlu iepriekš):
- apakšējā daļa
- augšējā daļa
- priekšā
- atpakaļ
- 4x stiprinājums
Visas detaļas var izdrukāt bez balstiem. Failus un dažus citus manus dizainus varat atrast arī vietnē Thingiverse:
Displeju var piestiprināt pie priekšējā paneļa ar stiprinājumiem un abpusēju lenti. Pogas slēdzis un femal savienotājs ir pieskrūvēti pie aizmugurējā un aizmugurējā paneļa. Es izmantoju 3x20 mm skrūves, lai savienotu abas korpusa puses. Priekšējo un aizmugurējo paneļu rievu pielaides ir samērā stingras. Ja nepieciešams, priekšējais un aizmugurējais paneļi ir jānoslīpē malā (iekšpusē, lai nesabojātu virsmu).
4. darbība: aveņu PI iestatīšana


Šī iestatīšanas rokasgrāmata ir balstīta uz vairāku instalēšanas instrukciju apkopošanu no dažādiem avotiem (e-Ink displeju ražotāji, …). Man norādījumi noveda pie vēlamā rezultāta. Tā kā neesmu Linux eksperts, netika veikta nekāda optimizācija vai tamlīdzīgi. Es apzinos, ka noteikti ir labāki un efektīvāki risinājumi.
Pieņemsim, ka jūsu Pi jau ir instalēts Raspbian (ir daudz pamācību par pamata operētājsistēmas instalēšanu) un jums ir pievienots displejs (izmantojot miniHDMI), pele un tastatūra. Tiek pieņemts arī pareizi iestatīts WLAN savienojums ar maršrutētāju vai internetu. Ja nav norādīts citādi, visas uzstādīšanas procedūras tiek veiktas terminālī.
Instalējiet attālo darbvirsmu (lai piekļūtu PI no sava datora):
sudo apt-get update
sudo apt-get
instalēt xrdp
vai arī varat strādāt bez galvas, izmantojot ssh (skatiet, piemēram, Mainīt paroli:
www.raspberrypi.org/forums/viewtopic.php?t=193620
Instalējiet ātruma pārbaudi:
sudo
apt-get instalēt python-pip
sudo pip instalējiet speedtest-cli
lai pārbaudītu, vai instalēšana bija veiksmīga, palaidiet Speedtest terminālī:
speedtest-cli
ja viss ir pareizi, jums vajadzētu iegūt kaut ko līdzīgu pirmajam attēlam iepriekš.
Instalējiet wiringPI
sudo apt-get instalēt git-core
git klons git: //git.drogon.net/wiringPi
cd elektroinstalācijaPi
./būvēt
(skatiet arī
Alternatīva:
sudo apt-get install wiringpi
(skatiet
Instalējiet BCM2835
(skatiet
Lejupielādēt bcm2835-1.60.tar.gz (vai jaunāku versiju, ja pieejama)
darva zxvf bcm2835-1.60.tar.gz
cd bcm2835-1.60
./konfigurēt
veidot
sudo veikt pārbaudi
sudo veikt instalēšanu
Instalējiet Python attēlveidošanas bibliotēku
sudo apt-get install python-imaging
Alternatīva:
sudo apt-get instalēt python-pil
Iespējojiet I2C funkciju.
Izpildiet šādu komandu, lai konfigurētu Raspberry Pi dēli:
sudo raspi-config
Atlasiet interfeisa opcijas-> I2C -> jā, lai palaistu I2C kodola draiveri. Tad jums arī jāmaina konfigurācijas fails. Lai atvērtu konfigurācijas failu, izpildiet šādu komandu:
sudo nano /etc /modules
Pievienojiet šādas divas rindas konfigurācijas failam
i2c-bcm2708
i2c-dev
Skatīt arī
Iespējojiet SPI funkciju
Izpildiet šādu komandu, lai konfigurētu Raspberry Pi dēli:
sudo raspi-config
Atlasiet interfeisa opcijas-> SPI -> jā, lai palaistu SPI kodola draiveri.
Instalējiet papildu fontus:
sudo apt-get install ttf-mscorefonts-installer
Lejupielādējiet un instalējiet fontus (Roboto + Droid)
gksudo
pcmanfm
Lai palaistu failu pārvaldnieku ar root tiesībām un kopētu patiesa tipa fontus mapē/usr/share/fonts/truetype
Alternatīva:
Kopējiet fontus mapē Lejupielādes, izmantojot WinSCP (lai varētu izmantot WinSCP, ir jābūt iespējotam ssh)
sudo cp -r/home/pi/Lejupielādes/droid/usr/share/fonts/truetype
sudo cp -r/home/pi/Lejupielādes/roboto/usr/share/fonts/truetype
Lai piekļūtu fontu mapei, jums ir nepieciešamas root tiesības. Varbūt ir labāki veidi, kā to izdarīt (kā jau minēju, es neesmu Linux eksperts), bet abi veidi man noderēja.
Python faili:
Izmantojiet failu pārvaldnieku, lai izveidotu jaunu mapi "bandwidth_monitor"
Kopējiet visus failus direktorijā bandwidth_monitor
Padariet python failus un skriptu izpildāmus
chmod +x *.py
chmod +x speedtest-cron.sh
Konfigurējiet crontab
crontab -e
Crontab tiek izmantots, lai ieplānotu programmas izpildi, piem. ātruma tests ik pēc 30 minūtēm. Crontab pievienojiet šādas rindiņas (skatiet arī otro attēlu):
@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
Plānoto uzdevumu apraksts:
- pārstartējot, restartēšanas ziņojums tiek ierakstīts IOT informācijas panelī
- atsāknējot tiek sākta aptauja test_now_button
- ik pēc 30 minūtēm tiek veikts joslas platuma mērījums
- ik pēc 3 minūtēm tiek pārbaudīts attālās atiestatīšanas pogas statuss (IOT informācijas panelī)
- reizi dienā tiek sākts displeja atsvaidzināšanas cikls.
Īsu programmu aprakstu skatiet programmatūras sadaļā.
5. solis: programmatūra

Programmatūra ir sadalīta vairākos failos / programmās:
bandwidth_monitor_0_4.py ir galvenā programma, kuru Crontab izsauc ik pēc pusstundas. Tas veic joslas platuma pārbaudi (izmantojot speedtest.net komandrindas versiju). Pārbaudes laikā RGB gaismas diode ir zila. Ja joslas platums pārsniedz izvēlēto slieksni, vērtība tiek parādīta e-tintes displejā (kopā ar laika zīmogu) un tiek eksportēta uz Ubidots informācijas paneli. Ja joslas platums ir zem sliekšņa, gaismas diode kļūst sarkana un mērījums tiek atkārtots pēc nelielas aizkaves. Pēc 3 negatīviem mēģinājumiem relejs tiek aktivizēts un tādējādi tiek pārtraukta modema barošana. Atiestatīšanas kods (vērtība = 2) tiek ierakstīts žurnāla sadaļā.
poll_killswitch.py nolasa Būla mainīgā statusu informācijas panelī. Ja killswitch_state ir patiess, tiek aktivizēts relejs un tiek pārtraukta modema barošana. Nogalināšanas slēdža aptaujas laikā RGB gaismas diode kļūst zaļa. Pēc atiestatīšanas killswitch_state ir iestatīts uz false un tiek ģenerēts ieraksts informācijas paneļa žurnāla sadaļā (vērtība = 1).
poll_test_now_button.py gaida, kad tiks nospiesta korpusa priekšējā paneļa poga. Aktivizējot pogu, joslas platuma mērījums tiek aktivizēts manuāli. Kad programma tiek startēta (pēc Raspberry Pi pārstartēšanas), RGB gaismas diode mirgo sarkanā krāsā.
post_restart_message.py ieraksta atiestatīšanas kodu (vērtība = 3) informācijas paneļa žurnāla sadaļā. Tas norāda, ka joslas platuma monitors ir restartēts. Programmas palaišanas laikā RGB gaismas diode mirgo zilā krāsā.
test_LED.py un test_relay.py ir vienkārši skripti, kurus var izmantot, lai pārbaudītu RGB gaismas diodes un releja aparatūras funkciju.
Epdconfig.py un epd2in9.py ir ierīces draiveris e-tintes displejam, ko nodrošina Waveshare.
Lai ļautu programmām piekļūt Ubidots informācijas panelim, jums jāpievieno atsevišķi marķieri un ierīču vai mainīgo nosaukumi (ja izmantojat dažādus apzīmējumus). Meklējiet sadaļu, kas parādīta attēlā iepriekš (aizstājiet XXXXXXXX ar savu marķieri).
Visaptverošas pamācības par informācijas paneļa izveidi un informācijas paneļa integrēšanu Python programmā var atrast tieši Ubidots lapā (https://help.ubidots.com/en/) vai izmantojot Google.
6. darbība: IOT informācijas panelis

Informācijas panelī, ko mitina Ubidots (skatiet vietni https://ubidots.com), ir vairākas jomas, kas īsumā aprakstītas zemāk.
- Augšupielādes un lejupielādes ātruma laika secība. Ik pēc pusstundas diagrammā tiek ievietota jauna vērtība.
- Izmērītā ping laika laika gaita. Ik pēc pusstundas diagrammā tiek ievietota jauna vērtība.
- Vidējā lejupielādes ātruma laika secība. Vidējā vērtība 24 stundu laikā tiek aprēķināta un ierakstīta diagrammā.
- Pašreizējo mērījumu vērtību izklājlapa, ieskaitot laika zīmogu.
- Tālvadības poga modema atiestatīšanai, izmantojot internetu. Vaicājums notiek ik pēc 3 minūtēm, t.i., var paiet zināms laiks, līdz darbība tiek veikta.
- Pēdējo atiestatījumu reģistrēšana, tostarp atiestatīšanas iemesls (tālvadības palaišana, izslēgšana vai sprieguma zudums, nokrītas zem minimālā joslas platuma)
Visaptverošas pamācības par informācijas paneļa izveidi un informācijas paneļa integrēšanu Python programmā var atrast tieši Ubidots lapā (https://help.ubidots.com/en/) vai izmantojot Google.
Ieteicams:
Visuino Kā izmantot impulsa platuma modulāciju (PWM), lai mainītu gaismas diodes spilgtumu: 7 soļi

Visuino Kā izmantot impulsa platuma modulāciju (PWM), lai mainītu gaismas diodes spilgtumu: šajā apmācībā mēs izmantosim LED, kas savienota ar Arduino UNO un Visuino, lai mainītu tā spilgtumu, izmantojot impulsa platuma modulāciju (PWM). Noskatieties demonstrācijas video
Pastāvīga platuma formas grozs: 5 soļi

Pastāvīga platuma formas grozs: nemainīga platuma formas mani vienmēr fascinēja, un es domāju, ka tās ir diezgan foršas. Jūs varat tos izmantot dažādiem projektiem, piemēram, riteņiem mini robotiem utt. Šajā pamācībā es jums parādīšu, kā uzzīmēt dažādas konstanta platuma formas, kuras varat izveidot
WiFi Mesh sinhronizētas LED joslas: 3 soļi (ar attēliem)

WiFi Mesh sinhronizētās LED joslas: Šis projekts ir LED joslu kolekcija ar individuāli vadāmām digitālajām gaismas diodēm (WS2812b "Neopikseļi"). Tie ļauj veikt animācijas, nesaistot tos kopā. Savienojuma veidošanai viņi izmanto WiFi tīklu, un
Izveidojiet savas apkārtējās vides apgaismojuma joslas: 7 soļi (ar attēliem)

Pašu apkārtējās vides apgaismojuma joslu izveide: šajā pamācībā ir aprakstīts, kā veidot, uzstādīt un kontrolēt LED gaismas joslas, lai nodrošinātu pilnkrāsu telpas apgaismojumu, kā arī " ambilight " stila video efekti. Ņemiet vērā, ka LED mirgošana reālajā dzīvē nav tik pamanāma kā
Gaismas joslas apkārtējais apgaismojums: 8 soļi (ar attēliem)

Gaismas joslas apkārtējais apgaismojums: Gaismas josla var padarīt jūsu māju gaišāku, izmantojot apkārtējo apgaismojumu. Jūs varat izgaismot gaiteņus, pievienot izgaismojošu mirdzuma efektu aiz sava izklaides centra, izveidot jaunus gaiša grafiti modeļus vai vienkārši pievienot savai mājai gaismas avotu. Tur