Joslas platuma monitors: 7 soļi (ar attēliem)
Joslas platuma monitors: 7 soļi (ar attēliem)
Anonim
Joslas platuma monitors
Joslas platuma monitors
Joslas platuma monitors
Joslas platuma monitors
Joslas platuma monitors
Joslas platuma monitors

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

Iespējas
Iespējas
Iespējas
Iespējas
Iespējas
Iespējas
  • 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

Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija

Pirmajā attēlā varat redzēt joslas platuma monitora iekšējo dizainu:

Galvenās sastāvdaļas ir:

    1. Uzspied pogu
    2. E-tintes displejs
    3. Raspberry Pi Zero
    4. Releju modulis
    5. RGB LED + rezistori (atkarībā no izmantotās RGB gaismas diodes)
    6. Slēdzis
    7. DC-DC pārveidotājs
    8. 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

3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana
3D drukāšana un vajāšanas veidošana

Korpusam ir nepieciešamas šādas detaļas (skatiet attēlu iepriekš):

    1. apakšējā daļa
    2. augšējā daļa
    3. priekšā
    4. atpakaļ
    5. 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

Aveņu PI iestatīšana
Aveņu PI iestatīšana
Aveņu PI iestatīšana
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
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

IOT informācijas panelis
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.

    1. Augšupielādes un lejupielādes ātruma laika secība. Ik pēc pusstundas diagrammā tiek ievietota jauna vērtība.
    2. Izmērītā ping laika laika gaita. Ik pēc pusstundas diagrammā tiek ievietota jauna vērtība.
    3. Vidējā lejupielādes ātruma laika secība. Vidējā vērtība 24 stundu laikā tiek aprēķināta un ierakstīta diagrammā.
    4. Pašreizējo mērījumu vērtību izklājlapa, ieskaitot laika zīmogu.
    5. 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.
    6. 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: