Kaistanleveyden näyttö: 7 vaihetta (kuvien kanssa)
Kaistanleveyden näyttö: 7 vaihetta (kuvien kanssa)
Anonim
Kaistanleveyden näyttö
Kaistanleveyden näyttö
Kaistanleveyden näyttö
Kaistanleveyden näyttö
Kaistanleveyden näyttö
Kaistanleveyden näyttö

Kun kysyin itseltäni usein, mitä kaistanleveyttä Internet -palveluntarjoajani tarjoaa (käytän LTE -modeemia Internet -yhteydelle), ajattelin kaistanleveyden seurantajärjestelmää. Koska järjestelmän pitäisi olla kompakti ja virransäästöinen, valitsin Raspberry Pi Zero -laitteen keskeiseksi komponentiksi. Vadelma on yhdistetty modeemiin WLAN -verkon kautta, joten myös WLAN -ongelmat voidaan havaita.

Tarvikkeet

  • Raspberry Pi Zero WH
  • Waveshare-musteen näyttö (2,9 tuuman e-paperimoduuli)
  • DC-DC-muunnin (esim. DEBO DCDC 20W)
  • RGB -LED (poistettu vanhasta laitteesta)
  • Paina nappia
  • Vaihtaa
  • Relais -moduuli (esim. 2 -tie Relemoduuli 2 Way Relay -moduuli)
  • Urosliitin + naarasliitin (molemmat sopivat modeemin virtalähteen pistorasiaan)
  • 3D -painettu kotelo

Vaihe 1: Ominaisuudet

ominaisuudet
ominaisuudet
ominaisuudet
ominaisuudet
ominaisuudet
ominaisuudet
  • Raspberry Pi Zero on yhdistetty WLAN-verkkoon, testaa lataus- ja latausnopeutta ja mittaa pingin puolen tunnin välein. Mittausten perustana käytetään speedtest.net -komentoriviversiota.
  • Kaistanleveyden ja ping-mittauksen tulos näkyy e-ink-näytössä. Mittausaika näkyy myös.
  • Jos latausnopeus laskee alle määritetyn kynnysarvon, rele kytkee modeemin pois päältä ja päälle lyhyeksi ajaksi. Modeemi nollataan siten ilman muutoksia laitteeseen (vain virransyöttö katkeaa).
  • Laitteen etuosassa on painike, joka käynnistää kaistanleveyden mittauksen manuaalisesti.
  • Mitatut arvot näytetään Ubidots -hallintapaneelissa (IOT -portaali). Yleiskatsauksessa näet myös mitattujen arvojen aikahistorian ja viimeisten nollausten syyt.
  • IOT -portaalista löytyy myös painike modeemin etäkäyttöön.
  • Kaistanleveysmonitori käyttää modeemin virtalähdettä. Ylimääräistä tarjontaa ei tarvita. Rele keskeyttää virtalähteen edelleenlähetyksen modeemiin - vadelma pysyy päällä.

Vaihe 2: Johdotus

Johdotus
Johdotus
Johdotus
Johdotus
Johdotus
Johdotus
Johdotus
Johdotus

Ensimmäisessä kuvassa näkyy kaistanleveysmonitorin sisäinen rakenne:

Tärkeimmät komponentit ovat:

    1. Paina nappia
    2. E-musteen näyttö
    3. Raspberry Pi Zero
    4. Relemoduuli
    5. RGB LED + vastukset (riippuen käyttämästäsi RGB LEDistä)
    6. Vaihtaa
    7. DC-DC-muunnin
    8. Naarasliitin

Toisessa kuvassa on kytkentäkaavio. Syöttöjännitteen positiivinen napa syötetään kytkimen kautta DC-DC-jännitemuuntajaan (joka muuntaa reitittimen 12 V: n syöttöjännitteen 5 V: ksi Vadelmaksi) ja releen kautta (normaalisti liitetyn nastan kautta) takaisin lähtöliitin. Näin modeemi saa myös virtaa, kun kaistanleveysmonitori sammutetaan.

Kaistanleveyden mittaus voidaan aloittaa manuaalisesti painikkeen avulla. RGB -merkkivaloa käytetään eri toimintatilojen visualisointiin.

Raspberry Pi: n ja e-ink-näytön välistä yhteyttä ei näy piirikaaviossa. Liitä näyttö taulukon ja yllä olevan nastan mukaisesti.

Vaihe 3: 3D -tulostus ja jahdin rakentaminen

3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen
3D -tulostus ja jahdin rakentaminen

Koteloon tarvitaan seuraavat osat (katso yllä oleva kuva):

    1. alempi osa
    2. ylempi osa
    3. edessä
    4. takaisin
    5. 4x kiinnike

Kaikki osat voidaan tulostaa ilman tukia. Löydät myös tiedostot ja joitain muita suunnitelmiani Thingiversestä:

Näyttö voidaan kiinnittää etupaneeliin kiinnikkeillä ja kaksipuolisella teipillä. Painike ja naarasliitin on ruuvattu taka- ja takapaneeliin. Liitin kotelon kaksi puoliskoa 3x20 mm ruuveilla. Etu- ja takapaneelien urien toleranssit ovat suhteellisen tiukat. Tarvittaessa etu- ja takapaneelit on hiottava reunasta (sisäpuolelta pinnan tuhoutumisen estämiseksi).

Vaihe 4: Raspberry PI: n määrittäminen

Vadelma PI: n määrittäminen
Vadelma PI: n määrittäminen
Vadelma PI: n määrittäminen
Vadelma PI: n määrittäminen

Tämä asennusopas perustuu useiden asennusohjeiden laatimiseen eri lähteistä (e-Ink-näytön valmistajat jne.). Minulle ohjeet ovat johtaneet haluttuun tulokseen. Koska en ole Linux -asiantuntija, mitään optimointeja tai vastaavia ei tehty. Olen tietoinen siitä, että on varmasti parempia ja tehokkaampia ratkaisuja.

Oletetaan, että Pi -laitteellesi on jo asennettu Raspbian (peruskäyttöjärjestelmän asentamiseen on monia opetusohjelmia) ja sinulla on näyttö (miniHDMI: n kautta), hiiri ja näppäimistö kytketty. Oletuksena on myös oikein määritetty WLAN -yhteys reitittimeen tai Internetiin. Ellei toisin mainita, kaikki asennustoimenpiteet suoritetaan terminaalissa.

Asenna etätyöpöytä (päästäksesi PI: hen tietokoneeltasi):

sudo apt-get päivitys

sudo apt-get

asenna xrdp

tai voit myös työskennellä ilman päätä ssh: n kautta (katso esim.

Vaihda salasana:

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

Asenna nopeustesti:

sudo

apt-get install python-pip

sudo pip asenna speedtest-cli

Testaa, onnistuiko asennus suorittamalla Speedtest terminaalissa:

speedtest-cli

jos kaikki on oikein, sinun pitäisi saada jotain, kuten yllä olevassa kuvassa.

Asenna wiringPI

sudo apt-get install git-core

git klooni git: //git.drogon.net/wiringPi

cd -johdotusPi

./rakentaa

(katso myös

Vaihtoehto:

sudo apt-get install wiringpi

(katso

Asenna BCM2835

(katso

Lataa bcm2835-1.60.tar.gz (tai uudempi versio, jos saatavilla)

terva zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./configure

tehdä

tarkista sudo

sudo tehdä asennus

Asenna Python -kuvakirjasto

sudo apt-get install python-imaging

Vaihtoehto:

sudo apt-get install python-pil

Ota I2C -toiminto käyttöön.

Suorita seuraava komento määrittääksesi Raspberry Pi -korttisi:

sudo raspi-config

Käynnistä I2C -ydinohjain valitsemalla Liitäntäasetukset-> I2C -> kyllä. Sitten sinun on myös muokattava asetustiedostoa. Avaa määritystiedosto suorittamalla seuraava komento:

sudo nano /etc /modules

Lisää seuraavat kaksi riviä määritystiedostoon

i2c-bcm2708

i2c-dev

Katso myös

Ota SPI -toiminto käyttöön

Suorita seuraava komento määrittääksesi Raspberry Pi -korttisi:

sudo raspi-config

Käynnistä SPI -ydinohjain valitsemalla Liitäntäasetukset-> SPI -> kyllä.

Asenna lisää fontteja:

sudo apt-get install ttf-mscorefonts-installer

Lataa ja asenna fontit (Roboto + Droid)

gksudo

pcmanfm

Tiedostonhallinnan käynnistäminen pääkäyttäjän oikeuksilla ja kopioi truetype -fontit kansioon/usr/share/fonts/truetype

Vaihtoehto:

Kopioi fontit Lataukset -kansioon WinSCP: llä (ssh: n on oltava käytössä, jotta voit käyttää WinSCP: tä)

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

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

Tarvitset pääkäyttäjän oikeudet kirjasinkansion käyttämiseen. Ehkä on olemassa parempia tapoja tehdä tämä (kuten jo mainitsin, etten ole Linux -asiantuntija), mutta molemmat keinot toimivat minulle.

Python -tiedostot:

Käytä filemangeria uuden kansion "bandwidth_monitor" luomiseen

Kopioi kaikki tiedostot hakemiston kaistanleveysmonitoriin

Tee python -tiedostot ja komentosarja suoritettavaksi

chmod +x *.py

chmod +x speedtest-cron.sh

Määritä crontab

crontab -e

Crontab -ohjelmaa käytetään ohjelmoinnin suorittamiseen esim. nopeustesti 30 minuutin välein. Lisää crontabiin seuraavat rivit (katso myös toinen kuva):

@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

Kuvaus ajoitetuista tehtävistä:

  • uudelleenkäynnistyksen yhteydessä uudelleenkäynnistysviesti kirjoitetaan IOT -kojelautaan
  • uudelleenkäynnistyksen yhteydessä kysely test_now_button käynnistyy
  • 30 minuutin välein suoritetaan kaistanleveyden mittaus
  • 3 minuutin välein etäkäynnistyspainikkeen tila (IOT -kojelaudassa) tarkistetaan
  • kerran päivässä näytön päivitysjakso käynnistyy.

Katso ohjelmisto -osiosta lyhyt kuvaus ohjelmista.

Vaihe 5: Ohjelmisto

Ohjelmisto
Ohjelmisto

Ohjelmisto on jaettu useisiin tiedostoihin / ohjelmiin:

bandwidth_monitor_0_4.py on pääohjelma, jonka Crontab kutsuu puolen tunnin välein. Se suorittaa kaistanleveystestin (speedtest.net -komentoriviversion kautta). Testin aikana RGB -merkkivalo palaa sinisenä. Jos kaistanleveys ylittää valitun kynnyksen, arvo näkyy e-ink-näytössä (yhdessä aikaleiman kanssa) ja viedään Ubidots-hallintapaneeliin. Jos kaistanleveys on kynnyksen alapuolella, LED -valo muuttuu punaiseksi ja mittaus toistetaan lyhyen viiveen jälkeen. Kolmen negatiivisen yrityksen jälkeen rele aktivoituu ja modeemin virransyöttö katkeaa. Palautuskoodi (arvo = 2) kirjoitetaan lokiosaan.

poll_killswitch.py lukee Boolean -muuttujan tilan kojelaudalta. Jos killswitch_state on tosi, rele aktivoidaan ja modeemin virransyöttö katkeaa. RGB -merkkivalo muuttuu vihreäksi tappokytkimen kyselyn aikana. Nollauksen jälkeen killswitch_state -arvoksi asetetaan epätosi ja koontinäytön lokiosan merkintä luodaan (arvo = 1).

poll_test_now_button.py odottaa kotelon etupaneelin painikkeen painamista. Kun painike aktivoidaan, kaistanleveyden mittaus käynnistetään manuaalisesti. Kun ohjelma käynnistetään (Raspberry Pi: n uudelleenkäynnistyksen yhteydessä), RGB -LED vilkkuu punaisena.

post_restart_message.py kirjoittaa nollauskoodin (arvo = 3) koontinäytön lokiosioon. Tämä osoittaa, että kaistanleveysmonitori on käynnistetty uudelleen. Ohjelman käynnistyksen aikana RGB -LED vilkkuu sinisenä.

test_LED.py ja test_relay.py ovat yksinkertaisia komentosarjoja, joita voidaan käyttää RGB -LEDin ja releen laitteistotoiminnon testaamiseen.

epdconfig.py ja epd2in9.py ovat laiteohjaimia Wavesharen tarjoamaan e-ink-näyttöön.

Jotta ohjelmat voivat käyttää Ubidots -hallintapaneelia, sinun on lisättävä yksittäiset tunnuksesi ja laitteen tai muuttujan nimet (jos käytät eri merkintöjä). Etsi osio, kuten yllä olevassa kuvassa (korvaa XXXXXXXX tunnuksellasi).

Kattavat opetusohjelmat kojelaudan rakentamisesta ja kojelaudan integroimisesta Python -ohjelmaan löytyvät suoraan Ubidots -sivulta (https://help.ubidots.com/en/) tai Googlen kautta.

Vaihe 6: IOT -kojelauta

IOT -kojelauta
IOT -kojelauta

Ubidotsin isännöimä koontinäyttö (katso https://ubidots.com) sisältää useita alueita, jotka kuvataan lyhyesti alla.

    1. Nopeus- ja latausnopeuden aikajärjestys. Puolen tunnin välein uusi arvo lisätään kaavioon.
    2. Mitatun ping -ajan aikakulku. Joka toinen tunti lisätään kaavioon uusi arvo.
    3. Keskimääräisen latausnopeuden aikasarja. 24 tunnin keskiarvo lasketaan ja kirjoitetaan kaavioon.
    4. Laskentataulukko edustaa nykyisiä mittausarvoja, mukaan lukien aikaleima.
    5. Kaukosäätimen painike modeemin nollaamiseksi Internetin kautta. Kysely tapahtuu 3 minuutin välein, eli voi kestää jonkin aikaa, ennen kuin toiminto suoritetaan.
    6. Viimeisten nollausten kirjaaminen, mukaan lukien nollauksen syy (etäkäynnistys, virran katkaisu tai katoaminen, alimman kaistanleveyden alittaminen)

Kattavat opetusohjelmat kojelaudan rakentamisesta ja kojelaudan integroimisesta Python -ohjelmaan löytyvät suoraan Ubidots -sivulta (https://help.ubidots.com/en/) tai Googlen kautta.