Sisukord:

Ribalaiuse monitor: 7 sammu (piltidega)
Ribalaiuse monitor: 7 sammu (piltidega)

Video: Ribalaiuse monitor: 7 sammu (piltidega)

Video: Ribalaiuse monitor: 7 sammu (piltidega)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, November
Anonim
Ribalaiuse monitor
Ribalaiuse monitor
Ribalaiuse monitor
Ribalaiuse monitor
Ribalaiuse monitor
Ribalaiuse monitor

Kuna küsisin endalt sageli, millist ribalaiust pakub praegu minu Interneti -teenuse pakkuja (Interneti -ühenduse jaoks kasutan LTE -modemit), mõtlesin ribalaiuse jälgimissüsteemi peale. Kuna süsteem peaks olema kompaktne ja energiasäästlik, valisin keskseks komponendiks Raspberry Pi Zero. Vaarikas on modemiga ühendatud WLAN -i kaudu, seega saab tuvastada ka WLAN -i probleeme.

Tarvikud

  • Raspberry Pi Zero WH
  • Waveshare'i e-tindi ekraan (2,9 tolli e-paberimoodul)
  • DC-DC muundur (nt DEBO DCDC 20W)
  • RGB LED (vanast seadmest välja võetud)
  • Vajutage nuppu
  • Lüliti
  • Relais moodul (nt 2 Way Relay moodul 2 Way Relay moodul)
  • Meespistik + naissoost pistik (mõlemad sobivad teie modemi toitepistiku suurusega)
  • 3D trükitud ümbris

Samm: funktsioonid

Funktsioonid
Funktsioonid
Funktsioonid
Funktsioonid
Funktsioonid
Funktsioonid
  • Raspberry Pi Zero on ühendatud WLAN-i kaudu, kontrollib üles- ja allalaadimiskiirust ning teeb pingimõõtmisi iga poole tunni tagant. Mõõtmiste aluseks on speedtest.net käsurea versioon.
  • Ribalaiuse ja ping-mõõtmise tulemus kuvatakse e-tindi ekraanil. Samuti on näidatud mõõtmise aeg.
  • Kui allalaadimiskiirus langeb alla määratud läviväärtuse, lülitab relee modemi lühikeseks ajaks välja ja sisse. Seega lähtestatakse modem ilma seadet muutmata (katkestatud on ainult toide).
  • Ribalaiuse mõõtmise käsitsi käivitamiseks on saadaval seadme esiküljel olev nupp.
  • Mõõdetud väärtused kuvatakse Ubidotsi armatuurlaual (IOT -portaal). Ülevaates näete ka mõõdetud väärtuste ajalugu ja viimaste lähtestamiste põhjuseid.
  • IOT -portaalist leiate ka nupu modemi kaugjuhtimiseks.
  • Ribalaiuse monitor kasutab modemi toiteallikat. Täiendavat varustust pole vaja. Relee katkestab toiteallika edastamise modemile - vaarikas jääb sisselülitatuks.

2. samm: juhtmestik

Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik

Esimesel pildil näete ribalaiuse monitori sisemist disaini:

Peamised komponendid on:

    1. Vajutage nuppu
    2. E-tindi ekraan
    3. Vaarika Pi Zero
    4. Relee moodul
    5. RGB LED + takistid (sõltuvalt kasutatavast RGB LED -st)
    6. Lüliti
    7. DC-DC muundur
    8. Naissoost pistik

Teisel pildil on näidatud juhtmestiku skeem. Toitepinge positiivne pool suunatakse lüliti kaudu alalis-alalisvoolu pingemuundurile (mis muudab ruuteri 12 V toitepinge Vaarika jaoks 5 V-ks) ja relee kaudu (normaalselt ühendatud tihvti kaudu) tagasi väljundühendus. Seega saab modem toite ka ribalaiuse monitori väljalülitamisel.

Ribalaiuse mõõtmist saab käivitada käsitsi nupu abil. RGB LED -i kasutatakse erinevate tööolekute visualiseerimiseks.

Ühendust Raspberry Pi ja e-tindi ekraani vahel pole skeemil näidatud. Ühendage ekraan vastavalt tabelile ja ülalolevale pistikule.

3. samm: 3D -printimine ja tagaajamise ehitamine

3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine
3D printimine ja tagaajamise ehitamine

Korpuse jaoks on vaja järgmisi osi (vt ülaltoodud pilti):

    1. alumine osa
    2. ülemine osa
    3. ees
    4. tagasi
    5. 4x kinnitus

Kõiki osi saab printida ilma toeta. Failid ja mõned minu muud kujundused leiate ka saidilt Thingiverse:

Ekraani saab kinnitada esipaneeli külge kinnituste ja kahepoolse teibiga. Nuppude lüliti ja femalliides on kruvitud taga- ja tagapaneeli külge. Korpuse kahe poole ühendamiseks kasutasin 3x20 mm kruvisid. Esi- ja tagapaneelide soonte tolerantsid on suhteliselt tihedad. Vajadusel tuleb esi- ja tagapaneelid serval lihvida (seestpoolt, et vältida pinna hävitamist).

4. samm: Vaarika PI seadistamine

Vaarika PI seadistamine
Vaarika PI seadistamine
Vaarika PI seadistamine
Vaarika PI seadistamine

See seadistusjuhend põhineb mitmete installijuhiste koostamisel erinevatest allikatest (e-Ink-ekraanide tootjad jne). Minu jaoks on juhised viinud soovitud tulemuseni. Kuna ma ei ole Linuxi ekspert, ei tehtud optimeeringuid ega muud sarnast. Olen teadlik, et kindlasti on paremaid ja tõhusamaid lahendusi.

Oletame, et teie Pi -le on juba installitud Raspbian (põhioperatsioonisüsteemi installimise kohta on palju õpetusi) ja teil on ekraan (miniHDMI kaudu), hiir ja klaviatuur ühendatud. Eeldatakse ka õigesti seadistatud WLAN -ühendust ruuteri või Internetiga. Kui pole märgitud teisiti, tehakse kõik paigaldusprotseduurid terminalis.

Installige kaugtöölaud (arvutist PI -le juurdepääsuks):

sudo apt-get update

sudo apt-get

installi xrdp

või saate töötada ka peata ssh kaudu (vt nt

Muuda salasõna:

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

Kiiruskatse installimine:

sudo

apt-get install python-pip

sudo pip install speedtest-cli

installimise õnnestumise kontrollimiseks käivitage terminalis Speedtest:

speedtest-cli

kui kõik on õige, peaksite saama midagi sellist, nagu ülaltoodud pildil.

Installige wiringPI

sudo apt-get install git-core

git kloon git: //git.drogon.net/wiringPi

cd juhtmestikPi

./ehitada

(vt ka

Alternatiiv:

sudo apt-get install wiringpi

(vt

Installige BCM2835

(vt

Laadige alla bcm2835-1.60.tar.gz (või uuem versioon, kui see on saadaval)

tõrv zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./configure

tegema

sudo kontrollige

sudo make install

Installige Pythoni pilditeek

sudo apt-get install python-imaging

Alternatiiv:

sudo apt-get install python-pil

Luba funktsioon I2C.

Raspberry Pi tahvli konfigureerimiseks käivitage järgmine käsk:

sudo raspi-config

I2C põhidraiveri käivitamiseks valige liidese valikud-> I2C -> jah. Seejärel peate ka konfiguratsioonifaili muutma. Käivitage konfiguratsioonifaili avamiseks järgmine käsk:

sudo nano /etc /modules

Lisage konfiguratsioonifaili järgmised kaks rida

i2c-bcm2708

i2c-dev

Vaata ka

Luba funktsioon SPI

Raspberry Pi tahvli konfigureerimiseks käivitage järgmine käsk:

sudo raspi-config

Valige SPI põhidraiveri käivitamiseks liidese valikud-> SPI -> jah.

Installige täiendavaid fonte:

sudo apt-get install ttf-mscorefonts-installer

Laadige alla ja installige fondid (Roboto + Droid)

gksudo

pcmanfm

Failihalduri käivitamine juurõigustega ja tõetüübi fontide kopeerimine kausta/usr/share/fonts/truetype

Alternatiiv:

Kopeerige fondid WinSCP -ga kausta Allalaadimised (WinSCP kasutamiseks peab ssh olema lubatud)

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

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

Fontide kaustale pääsemiseks vajate juurõigusi. Võib -olla on selleks paremaid viise (nagu ma juba mainisin, et ma pole Linuxi ekspert), kuid mõlemad viisid töötasid minu jaoks.

Pythoni failid:

Kasutage failihaldurit uue kausta "bandwidth_monitor" loomiseks

Kopeerige kõik failid kataloogi bandwidth_monitor

Tehke pythoni failid ja skript käivitatavaks

chmod +x *.py

chmod +x speedtest-cron.sh

Seadistage crontab

crontab -e

Crontabi kasutatakse programmi täitmise ajastamiseks, nt. kiiruskatse iga 30 minuti järel. Lisage oma crontabile järgmised read (vt ka teist joonist):

@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

Plaanitud ülesannete kirjeldus:

  • taaskäivitamisel kirjutatakse taaskäivitusteade IOT armatuurlauale
  • taaskäivitamisel käivitatakse küsitlus test_now_button
  • iga 30 minuti järel mõõdetakse ribalaiust
  • iga 3 minuti järel kontrollitakse kaugseadistusnupu olekut (IOT armatuurlaual)
  • üks kord päevas alustatakse ekraani värskendamise tsüklit.

Programmide lühikirjeldust leiate tarkvara jaotisest.

Samm: tarkvara

Tarkvara
Tarkvara

Tarkvara on jagatud mitmeks failiks / programmiks:

bandwidth_monitor_0_4.py on põhiprogramm, mida Crontab iga poole tunni järel käivitab. See teostab ribalaiuse testi (speedtest.net käsurea versiooni kaudu). Katse ajal on RGB LED sinine. Kui ribalaius ületab valitud läve, kuvatakse see väärtus e-tindi ekraanil (koos ajatempliga) ja eksporditakse Ubidotsi armatuurlauale. Kui ribalaius on alla läve, muutub LED punaseks ja mõõtmist korratakse pärast lühikest viivitust. Pärast kolme negatiivset katset käivitub relee ja seega katkeb modemi toide. Lähtestuskood (väärtus = 2) kirjutatakse logiosasse.

poll_killswitch.py loeb armatuurlaual loogilise muutuja olekut. Kui killswitch_state on tõene, aktiveeritakse relee ja katkestatakse modemi toide. RGB LED muutub tapmislüliti küsitluse ajal roheliseks. Pärast lähtestamist on killswitch_state väärtuseks määratud vale ja genereeritakse armatuurlaua logiosa kirje (väärtus = 1).

poll_test_now_button.py ootab korpuse esipaneelil oleva nupu vajutamist. Nupu aktiveerimisega käivitatakse ribalaiuse mõõtmine käsitsi. Programmi käivitamisel (Raspberry Pi taaskäivitamisel) vilgub RGB LED punaselt.

post_restart_message.py kirjutab armatuurlaua logiosasse lähtestuskoodi (väärtus = 3). See näitab, et ribalaiuse monitor on taaskäivitatud. Programmi käivitamise ajal vilgub RGB LED siniselt.

test_LED.py ja test_relay.py on lihtsad skriptid, mida saab kasutada RGB LED -i ja relee riistvarafunktsiooni testimiseks.

epdconfig.py ja epd2in9.py on Waveshare'i pakutava e-tindi ekraani seadme draiverid.

Et programmidel oleks juurdepääs Ubidotsi armatuurlauale, peate lisama oma individuaalsed märgid ja seadme või muutuja nimed (kui kasutate erinevaid tähiseid). Otsige ülaltoodud pildil näidatud jaotist (asendage XXXXXXXX oma märgiga).

Põhjalikud õpetused armatuurlaua ehitamise ja armatuurlaua Pythoni programmi integreerimise kohta leiate otse Ubidotsi lehelt (https://help.ubidots.com/en/) või Google'i kaudu.

6. samm: IOT armatuurlaud

IOT armatuurlaud
IOT armatuurlaud

Ubidotsi hostitud armatuurlaud (vt https://ubidots.com) sisaldab mitmeid alasid, mida on allpool lühidalt kirjeldatud.

    1. Üles- ja allalaadimiskiiruse ajaline järjestus. Iga poole tunni järel sisestatakse diagrammile uus väärtus.
    2. Mõõdetud pingiaja aja kulg. Iga poole tunni järel sisestatakse diagrammile uus väärtus.
    3. Keskmise allalaadimiskiiruse ajaline järjestus. Keskmine väärtus 24 tunni jooksul arvutatakse ja kirjutatakse diagrammile.
    4. Praeguste mõõtmisväärtuste arvutustabel, sealhulgas ajatempel.
    5. Kaugjuhtimispult modemi lähtestamiseks Interneti kaudu. Päring toimub iga 3 minuti järel, see tähendab, et toimingu teostamiseni võib kuluda veidi aega.
    6. Viimaste lähtestamiste logimine, sealhulgas lähtestamise põhjus (kaugjuhtimine, väljalülitamine või pingekaotus, alla minimaalse ribalaiuse)

Põhjalikud õpetused armatuurlaua ehitamise ja armatuurlaua Pythoni programmi integreerimise kohta leiate otse Ubidotsi lehelt (https://help.ubidots.com/en/) või Google'i kaudu.

Soovitan: