Pralaidumo monitorius: 7 žingsniai (su nuotraukomis)
Pralaidumo monitorius: 7 žingsniai (su nuotraukomis)
Anonim
Pralaidumo monitorius
Pralaidumo monitorius
Pralaidumo monitorius
Pralaidumo monitorius
Pralaidumo monitorius
Pralaidumo monitorius

Kadangi dažnai savęs klausdavau, kokį pralaidumą šiuo metu teikia mano IPT (interneto ryšiui naudoju LTE modemą), pagalvojau apie pralaidumo stebėjimo sistemą. Kadangi sistema turėtų būti kompaktiška ir taupanti energiją, pagrindiniu komponentu pasirinkau „Raspberry Pi Zero“. „Raspberry“yra prijungtas prie modemo per WLAN, todėl galima aptikti ir WLAN problemų.

Prekės

  • Raspberry Pi Zero WH
  • „Waveshare“rašalo ekranas (2,9 colio elektroninio popieriaus modulis)
  • DC-DC keitiklis (pvz., DEBO DCDC 20W)
  • RGB šviesos diodas (išimtas iš seno įrenginio)
  • Mygtukas
  • Perjungti
  • „Relais“modulis (pvz., 2 krypčių relės modulis 2 krypčių relės modulis)
  • Vyriška jungtis + moteriška jungtis (abi atitinka jūsų modemo maitinimo kištuko dydį)
  • 3D spausdintas dėklas

1 žingsnis: funkcijos

funkcijos
funkcijos
funkcijos
funkcijos
funkcijos
funkcijos
  • „Raspberry Pi Zero“yra prijungtas per WLAN, patikrina atsisiuntimo greitį ir kas pusvalandį atlieka ping matavimą. Matavimo pagrindu naudojama „speedtest.net“komandinės eilutės versija.
  • Pralaidumo ir ping matavimo rezultatas rodomas elektroninio rašalo ekrane. Taip pat rodomas matavimo laikas.
  • Jei atsisiuntimo greitis nukrenta žemiau nustatytos ribinės vertės, relė trumpam išjungia ir įjungia modemą. Taigi modemas iš naujo nustatomas be jokių prietaiso pakeitimų (nutrūksta tik maitinimas).
  • Prietaiso priekyje yra mygtukas, leidžiantis rankiniu būdu suaktyvinti pralaidumo matavimą.
  • Išmatuotos vertės rodomos „Ubidots“prietaisų skydelyje (IOT portalas). Apžvalgoje taip pat galite pamatyti išmatuotų verčių laiko istoriją ir paskutinių nustatymų priežastis.
  • IOT portale taip pat galite rasti modemo nuotolinio nustatymo mygtuką.
  • Pralaidumo monitorius naudoja modemo maitinimo šaltinį. Nereikia papildomo tiekimo. Relė nutraukia maitinimo šaltinio persiuntimą į modemą - avietė lieka įjungta.

2 žingsnis: laidų prijungimas

Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai

Pirmoje nuotraukoje galite pamatyti pralaidumo monitoriaus vidinį dizainą:

Pagrindiniai komponentai yra:

    1. Paspauskite mygtuką
    2. E-rašalo ekranas
    3. Raspberry Pi Zero
    4. Relės modulis
    5. RGB LED + rezistoriai (priklausomai nuo naudojamo RGB LED)
    6. Perjungti
    7. DC-DC keitiklis
    8. Moteriška jungtis

Antrame paveikslėlyje parodyta laidų schema. Teigiamas maitinimo įtampos polius per jungiklį tiekiamas į nuolatinės srovės įtampos keitiklį (kuris paverčia maršrutizatoriaus 12 V maitinimo įtampą į 5 V avietėms) ir per relę (per įprastai prijungtą kaištį) atgal į išvesties jungtis. Taigi modemas taip pat gauna maitinimą, kai pralaidumo monitorius yra išjungtas.

Pralaidumo matavimą galima paleisti rankiniu būdu mygtuku. RGB šviesos diodas naudojamas įvairioms veikimo būsenoms vizualizuoti.

Ryšys tarp „Raspberry Pi“ir „e-ink“ekrano nerodomas grandinės schemoje. Prijunkite ekraną pagal lentelę ir kištuką aukščiau.

3 žingsnis: 3D spausdinimas ir persekiojimo kūrimas

3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas
3D spausdinimas ir persekiojimo kūrimas

Korpusui reikalingos šios dalys (žr. Paveikslėlį aukščiau):

    1. apatinė dalis
    2. viršutinė dalis
    3. priekyje
    4. atgal
    5. 4x laikiklis

Visas dalis galima spausdinti be atramų. Failus ir kai kuriuos kitus mano dizainus taip pat galite rasti „Thingiverse“:

Ekranas gali būti pritvirtintas prie priekinio skydelio su laikikliais ir dvipuse juosta. Mygtuko jungiklis ir femalinė jungtis yra prisukami prie galinio ir galinio skydelio. Aš naudoju 3x20 mm varžtus, kad sujungčiau dvi korpuso puses. Priekinės ir galinės plokštės griovelių nuokrypiai yra gana įtempti. Jei reikia, priekinė ir galinė plokštės turi būti šlifuotos ant krašto (viduje, kad nesugadintumėte paviršiaus).

4 žingsnis: Raspberry PI nustatymas

Aviečių PI nustatymas
Aviečių PI nustatymas
Aviečių PI nustatymas
Aviečių PI nustatymas

Šis sąrankos vadovas yra sudarytas iš kelių diegimo instrukcijų iš skirtingų šaltinių („e-Ink“ekranų gamintojų,…). Man instrukcijos davė norimą rezultatą. Kadangi nesu „Linux“ekspertas, nebuvo atlikta jokių optimizavimų ar panašių veiksmų. Aš žinau, kad tikrai yra geresnių ir efektyvesnių sprendimų.

Tarkime, kad jūsų „Pi“jau yra įdiegta „Raspbian“(yra daug pamokų, kaip įdiegti pagrindinę operacinę sistemą) ir turite prijungtą ekraną (per „miniHDMI“), pelę ir klaviatūrą. Taip pat daroma prielaida, kad tinkamai nustatytas WLAN ryšys su maršrutizatoriumi arba internetu. Jei nenurodyta kitaip, visos diegimo procedūros atliekamos terminale.

Įdiekite nuotolinį darbalaukį (norėdami pasiekti PI iš savo kompiuterio):

sudo apt-get atnaujinimas

sudo apt-get

įdiegti xrdp

arba taip pat galite dirbti be galvos per ssh (žr., pvz., Pakeisti slaptažodį:

www.raspberrypi.org/forums/viewtopic.php?t=193620

Įdiekite greičio testą:

sudo

apt-get įdiegti python-pip

sudo pip įdiegti speedtest-cli

Norėdami patikrinti, ar diegimas buvo sėkmingas, paleiskite „Speedtest“terminale:

speedtest-cli

jei viskas teisinga, turėtumėte gauti kažką panašaus į pirmąjį paveikslėlį aukščiau.

Įdiekite „wiringPI“

sudo apt-get install git-core

git klonas git: //git.drogon.net/wiringPi

cd laidaiPi

./ statyti

(taip pat žr.

Alternatyva:

sudo apt-get install wiringpi

(žr.

Įdiekite BCM2835

(žr.

Atsisiųskite bcm2835-1.60.tar.gz (arba naujesnę versiją, jei yra)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./konfigūruoti

padaryti

sudo atlikti patikrinimą

sudo make install

Įdiekite „Python“vaizdų biblioteką

sudo apt-get įdiegti python-imaging

Alternatyva:

sudo apt-get įdiegti python-pil

Įjunkite I2C funkciją.

Norėdami sukonfigūruoti „Raspberry Pi“plokštę, paleiskite šią komandą:

sudo raspi-config

Pasirinkite sąsajos parinktys-> I2C -> taip, kad paleistumėte I2C pagrindinę tvarkyklę. Tada taip pat turite pakeisti konfigūracijos failą. Norėdami atidaryti konfigūracijos failą, paleiskite šią komandą:

sudo nano /etc /modules

Prie konfigūracijos failo pridėkite šias dvi eilutes

i2c-bcm2708

i2c-dev

Taip pat žiūrėkite

Įjunkite SPI funkciją

Norėdami sukonfigūruoti „Raspberry Pi“plokštę, paleiskite šią komandą:

sudo raspi-config

Pasirinkite sąsajos parinktys-> SPI -> taip, kad paleistumėte pagrindinę SPI tvarkyklę.

Įdiekite papildomus šriftus:

sudo apt-get install ttf-mscorefonts-installer

Atsisiųskite ir įdiekite šriftus („Roboto + Droid“)

gksudo

pcmanfm

Norėdami paleisti failų tvarkyklę su root teisėmis ir nukopijuoti truetype šriftus į aplanką/usr/share/fonts/truetype

Alternatyva:

Nukopijuokite šriftus į atsisiuntimų aplanką naudodami „WinSCP“(norint naudoti „WinSCP“, turi būti įjungta „ssh“)

sudo cp -r/home/pi/Atsisiuntimai/droid/usr/share/fonts/truetype

sudo cp -r/home/pi/Atsisiuntimai/roboto/usr/share/fonts/truetype

Norėdami pasiekti šriftų aplanką, jums reikia root teisių. Galbūt yra geresnių būdų tai padaryti (kaip jau minėjau, nesu „Linux“ekspertas), tačiau abu būdai man tiko.

„Python“failai:

Naudokite failų tvarkyklę, kad sukurtumėte naują aplanką „bandwidth_monitor“

Nukopijuokite visus failus į katalogą bandwidth_monitor

Padarykite „python“failus ir scenarijų vykdomuosius

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigūruokite „crontab“

crontab -e

„Crontab“naudojamas planuojant programos vykdymą, pvz. greičio testas kas 30 min. Prie „crontab“pridėkite šias eilutes (taip pat žiūrėkite antrą paveikslėlį):

@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

Suplanuotų užduočių aprašymas:

  • iš naujo paleidžiant iš naujo pranešimas rašomas IOT prietaisų skydelyje
  • iš naujo paleidžiant apklausą test_now_button
  • kas 30 minučių atliekamas juostos pločio matavimas
  • kas 3 minutes tikrinama nuotolinio atstatymo mygtuko (IOT prietaisų skydelyje) būsena
  • kartą per dieną pradedamas ekrano atnaujinimo ciklas.

Trumpą programų aprašymą rasite programinės įrangos skyriuje.

5 žingsnis: programinė įranga

Programinė įranga
Programinė įranga

Programinė įranga yra padalinta į kelis failus / programas:

„bandwidth_monitor_0_4.py“yra pagrindinė programa, kurią „Crontab“iškviečia kas pusvalandį. Jis atlieka pralaidumo testą (per komandinės eilutės versiją speedtest.net). Bandymo metu RGB šviesos diodas yra mėlynas. Jei pralaidumas viršija pasirinktą slenkstį, vertė rodoma el. Rašalo ekrane (kartu su laiko žyma) ir eksportuojama į „Ubidots“prietaisų skydelį. Jei pralaidumas yra mažesnis už slenkstį, šviesos diodas užsidega raudonai ir po trumpo delsimo matavimas kartojamas. Po 3 neigiamų bandymų relė įsijungia ir modemo maitinimas nutrūksta. Į žurnalo skyrių įrašomas iš naujo nustatytas kodas (vertė = 2).

poll_killswitch.py nuskaito loginio kintamojo būseną prietaisų skydelyje. Jei „killswitch_state“yra teisinga, suaktyvinama relė ir nutrūksta modemo maitinimas. RGB šviesos diodas užsidega žaliai žudymo jungiklio apklausos metu. Po atstatymo „killswitch_state“nustatoma klaidinga ir sugeneruojamas įrašas prietaisų skydelio žurnalo skiltyje (vertė = 1).

poll_test_now_button.py laukia, kol bus paspaustas mygtukas priekiniame dėklo skydelyje. Suaktyvinus mygtuką, pralaidumas matuojamas rankiniu būdu. Kai programa paleidžiama (iš naujo paleidžiant „Raspberry Pi“), RGB šviesos diodas mirksi raudonai.

post_restart_message.py įrašo atstatymo kodą (vertė = 3) į prietaisų skydelio žurnalo skyrių. Tai rodo, kad pralaidumo monitorius buvo paleistas iš naujo. Programos paleidimo metu RGB šviesos diodas mirksi mėlyna spalva.

test_LED.py ir test_relay.py yra paprasti scenarijai, kuriuos galima naudoti norint patikrinti RGB šviesos diodo ir relės aparatinės įrangos funkciją.

„epdconfig.py“ir „epd2in9.py“yra „Waveshare“teikiamo el. rašalo ekrano tvarkyklė.

Kad programos galėtų pasiekti „Ubidots“prietaisų skydelį, turite pridėti savo atskirus žetonus ir įrenginio ar kintamojo pavadinimus (jei naudojate skirtingas žymes). Ieškokite skyriaus, kaip parodyta aukščiau esančiame paveikslėlyje (pakeiskite XXXXXXXX savo prieigos raktu).

Išsamias pamokas, kaip sukurti prietaisų skydelį ir kaip integruoti prietaisų skydelį į „Python“programą, galite rasti tiesiogiai „Ubidots“puslapyje (https://help.ubidots.com/en/) arba per „Google“.

6 žingsnis: IOT prietaisų skydelis

IOT prietaisų skydelis
IOT prietaisų skydelis

„Ubidots“priglobtame prietaisų skydelyje (žr. Https://ubidots.com) yra keletas sričių, kurios trumpai aprašytos toliau.

    1. Įkėlimo ir atsisiuntimo greičio laiko seka. Kas pusvalandį į diagramą įtraukiama nauja vertė.
    2. Išmatuoto ping laiko laiko eiga. Kas pusvalandį į diagramą įterpiama nauja vertė.
    3. Vidutinio atsisiuntimo greičio laiko seka. Vidutinė 24 valandų vertė apskaičiuojama ir užrašoma diagramoje.
    4. Skaičiuoklėje pateikiamos dabartinės matavimo vertės, įskaitant laiko žymę.
    5. Nuotolinio valdymo mygtukas, skirtas modemui iš naujo nustatyti internetu. Užklausa vyksta kas 3 minutes, t. Y. Gali praeiti šiek tiek laiko, kol veiksmas bus atliktas.
    6. Paskutinių atstatymų registravimas, įskaitant atstatymo priežastį (nuotolinis paleidimas, išjungimas arba įtampos praradimas, mažesnis už minimalų pralaidumą)

Išsamias pamokas, kaip sukurti prietaisų skydelį ir kaip integruoti prietaisų skydelį į „Python“programą, galite rasti tiesiogiai „Ubidots“puslapyje (https://help.ubidots.com/en/) arba per „Google“.