Isi kandungan:

Monitor Lebar Jalur: 7 Langkah (dengan Gambar)
Monitor Lebar Jalur: 7 Langkah (dengan Gambar)

Video: Monitor Lebar Jalur: 7 Langkah (dengan Gambar)

Video: Monitor Lebar Jalur: 7 Langkah (dengan Gambar)
Video: Kecurangan penjual gas elpiji!!!!! 2024, November
Anonim
Monitor Lebar Jalur
Monitor Lebar Jalur
Monitor Lebar Jalur
Monitor Lebar Jalur
Monitor Lebar Jalur
Monitor Lebar Jalur

Oleh kerana saya sering bertanya pada diri sendiri apakah lebar jalur yang disediakan oleh ISP saya (saya menggunakan modem LTE untuk sambungan Internet), saya memikirkan sistem pemantauan lebar jalur. Oleh kerana sistemnya harus ringkas dan menjimatkan tenaga, saya memilih Raspberry Pi Zero sebagai komponen pusat. Raspberry disambungkan ke modem melalui WLAN, oleh itu masalah WLAN dapat dikesan juga.

Bekalan

  • Raspberry Pi Zero WH
  • Paparan e-dakwat Waveshare (modul 2.9 inci-e-kertas)
  • Penukar DC-DC (mis. DEBO DCDC 20W)
  • LED RGB (dikeluarkan dari peranti lama)
  • Tekan butang
  • Tukar
  • Modul Relais (mis. Modul 2 Jalan Relay 2 Modul Relay)
  • Penyambung lelaki + Penyambung wanita (kedua-duanya sesuai dengan saiz palam bekalan kuasa modem anda)
  • Sarung bercetak 3D

Langkah 1: Ciri-ciri

ciri-ciri
ciri-ciri
ciri-ciri
ciri-ciri
ciri-ciri
ciri-ciri
  • Raspberry Pi Zero disambungkan melalui WLAN, menguji kelajuan dan muat turun dan melakukan pengukuran ping setiap setengah jam. Versi baris perintah speedtest.net digunakan sebagai asas pengukuran.
  • Hasil pengukuran lebar jalur dan ping ditunjukkan pada paparan e-ink. Masa pengukuran juga ditunjukkan.
  • Sekiranya kelajuan muat turun di bawah nilai ambang yang ditentukan, geganti akan mematikan dan mematikan modem untuk waktu yang singkat. Oleh itu, modem diset semula tanpa sebarang modifikasi pada peranti (hanya bekalan elektrik yang terganggu).
  • Butang di bahagian depan peranti tersedia untuk mencetuskan pengukuran lebar jalur secara manual.
  • Nilai yang diukur dipaparkan pada Ubidots Dashboard (IOT Portal). Dalam gambaran keseluruhan, anda juga dapat melihat sejarah masa dari nilai yang diukur dan sebab untuk tetapan semula terakhir.
  • Di Portal IOT anda juga dapat mencari butang untuk menetapkan semula modem dari jauh.
  • Monitor Lebar Lebar menggunakan bekalan kuasa modem. Tidak memerlukan bekalan tambahan. Rela mengganggu pemindahan bekalan kuasa ke modem - raspberry tetap dihidupkan.

Langkah 2: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Pada gambar pertama anda dapat melihat reka bentuk dalaman monitor lebar jalur:

Komponen utama adalah:

    1. Tekan butang
    2. Paparan E-ink
    3. Raspberry Pi Zero
    4. Modul Relay
    5. RGB LED + Resistor (bergantung pada RGB LED yang anda gunakan)
    6. Tukar
    7. Penukar DC-DC
    8. Penyambung wanita

Gambar kedua menunjukkan skema pendawaian. Tiang positif voltan bekalan diberi melalui suis ke penukar voltan DC-DC (yang menukar voltan bekalan 12V penghala ke 5V untuk Raspberry) dan melalui geganti (melalui pin bersambung normal) kembali ke penyambung output. Oleh itu, modem juga dibekalkan dengan kuasa semasa monitor lebar jalur dimatikan.

Pengukuran lebar jalur boleh dimulakan secara manual melalui butang. LED RGB digunakan untuk menggambarkan pelbagai keadaan operasi.

Sambungan antara paparan Raspberry Pi dan e-ink tidak ditunjukkan dalam rajah litar. Sambungkan paparan mengikut jadual dan pin-pin di atas.

Langkah 3: Mencetak 3D dan Membangun Kejar

Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar
Percetakan 3D dan Membangun Kejar

Bahagian-bahagian berikut diperlukan untuk kes ini (lihat gambar di atas):

    1. bahagian terendah
    2. bahagian atas
    3. depan
    4. belakang
    5. 4x pelekap

Semua bahagian boleh dicetak tanpa sokongan. Anda juga dapat mencari fail dan beberapa reka bentuk saya yang lain di Thingiverse:

Paparan boleh dipasang ke panel depan dengan dudukan dan pita dua sisi. Suis butang dan penyambung femal disekat ke panel belakang dan belakang. Saya menggunakan skru 3x20mm untuk menyambungkan dua bahagian perumahan. Toleransi pada alur untuk panel depan dan belakang agak ketat. Sekiranya perlu, panel depan dan belakang mesti diampelas di tepi (di bahagian dalam untuk mengelakkan permukaannya musnah).

Langkah 4: Menyiapkan Raspberry PI

Menyiapkan Raspberry PI
Menyiapkan Raspberry PI
Menyiapkan Raspberry PI
Menyiapkan Raspberry PI

Panduan persediaan ini dibuat berdasarkan penyusunan beberapa arahan pemasangan dari pelbagai sumber (pengeluar paparan e-Ink,…). Bagi saya arahan tersebut membawa kepada hasil yang diinginkan. Oleh kerana saya bukan pakar Linux, tiada pengoptimuman atau yang serupa dilakukan. Saya sedar bahawa pasti ada penyelesaian yang lebih baik dan cekap.

Mari kita anggap anda sudah memasang Raspbian pada Pi anda (terdapat banyak tutorial mengenai cara memasang sistem operasi asas) dan anda mempunyai paparan (melalui miniHDMI), tetikus dan papan kekunci disambungkan. Sambungan WLAN yang betul ke penghala atau Internet juga diandaikan. Kecuali dinyatakan sebaliknya, semua prosedur pemasangan dilakukan di terminal.

Pasang desktop Jauh (untuk mengakses PI dari komputer anda):

sudo apt-get kemas kini

sudo apt-get

pasang xrdp

atau anda juga boleh bekerja tanpa kepala melalui ssh (lihat mis.

Tukar kata laluan:

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

Pasang ujian laju:

sudo

apt-get pasang python-pip

sudo pip install speedtest-cli

untuk menguji sama ada pemasangan berjaya dijalankan Speedtest di terminal:

speedtest-cli

jika ada yang betul anda harus mendapatkan sesuatu seperti pada gambar pertama di atas.

Pasang pendawaianPI

sudo apt-get install git-core

git klon git: //git.drogon.net/wiringPi

pendawaian cdPi

./ membina

(lihat juga

Alternativ:

sudo apt-get install wiringpi

(lihat

Pasang BCM2835

(lihat

Muat turun bcm2835-1.60.tar.gz (atau versi yang lebih baru jika ada)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./konfigurasi

membuat

sudo buat cek

sudo buat pasang

Pasang pustaka pengimejan Python

sudo apt-get pasang pengimejan python

Alternativ:

sudo apt-get install python-pil

Aktifkan fungsi I2C.

Jalankan arahan berikut untuk mengkonfigurasi papan Raspberry Pi anda:

sudo raspi-config

Pilih Pilihan Antaramuka-> I2C -> ya, untuk memulakan pemacu teras I2C. Kemudian anda juga perlu mengubahsuai fail konfigurasi. Jalankan arahan berikut untuk membuka fail konfigurasi:

sudo nano / etc / modul

Tambahkan dua baris berikut ke fail konfigurasi

i2c-bcm2708

i2c-dev

Lihat juga

Aktifkan fungsi SPI

Jalankan arahan berikut untuk mengkonfigurasi papan Raspberry Pi anda:

sudo raspi-config

Pilih Pilihan Antaramuka-> SPI -> ya, untuk memulakan pemacu teras SPI.

Pasang fon tambahan:

sudo apt-get pasang ttf-mscorefonts-installer

Muat turun dan pasang Font (Roboto + Droid)

gksudo

pcmanfm

Untuk memulakan filemanager dengan hak istimewa root dan menyalin font truetype ke dalam folder / usr / share / fonts / truetype

Alternativ:

Salin fon ke folder Muat turun dengan WinSCP (ssh mesti diaktifkan untuk menggunakan WinSCP)

sudo cp -r / home / pi / Muat turun / droid / usr / share / font / truetype

sudo cp -r / home / pi / Muat turun / roboto / usr / share / font / truetype

Anda memerlukan hak istimewa root untuk mengakses folder fon. Mungkin ada cara yang lebih baik untuk melakukan ini (seperti yang telah disebutkan oleh saya bahawa saya bukan pakar Linux) tetapi kedua-dua cara itu berfungsi untuk saya.

Fail Python:

Gunakan filemanger untuk membuat folder baru "bandwidth_monitor"

Salin semua fail ke bandwidth_monitor direktori

Jadikan fail dan skrip python dapat dilaksanakan

chmod + x *.py

chmod + x speedtest-cron.sh

Konfigurasikan crontab

crontab -e

Crontab digunakan untuk menjadualkan pelaksanaan program mis. ujian laju setiap 30 min. Tambahkan baris berikut ke crontab anda (lihat juga gambar kedua):

@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

Penerangan mengenai tugas yang dijadualkan:

  • semasa reboot, mesej semula ditulis ke papan pemuka IOT
  • pada but semula ujian undian_now_button dimulakan
  • setiap 30 minit pengukuran lebar jalur dilakukan
  • setiap 3 minit status butang reset jauh (pada papan pemuka IOT) diperiksa
  • sekali sehari kitaran penyegaran paparan dimulakan.

Lihat bahagian perisian untuk penerangan ringkas mengenai program.

Langkah 5: Perisian

Perisian
Perisian

Perisian ini dibahagikan kepada beberapa fail / program:

bandwidth_monitor_0_4.py adalah program utama yang dijalankan oleh Crontab setiap setengah jam. Ia melakukan ujian lebar jalur (melalui versi baris perintah speedtest.net). Semasa ujian, LED RGB berwarna biru. Sekiranya lebar jalur melebihi ambang yang dipilih, nilainya ditunjukkan pada paparan e-ink (bersama dengan cap waktu) dan dieksport ke papan pemuka Ubidots. Sekiranya lebar jalur berada di bawah ambang, LED bertukar menjadi merah dan pengukuran diulang setelah kelewatan yang singkat. Selepas 3 percubaan negatif, geganti diaktifkan dan dengan itu bekalan modem terganggu. Tetapkan semula kod (nilai = 2) ditulis ke bahagian log.

poll_killswitch.py membaca status pemboleh ubah boolean di papan pemuka. Sekiranya killswitch_state benar, relais diaktifkan dan bekalan kuasa modem terganggu. LED RGB berubah menjadi hijau semasa pengundian killswitch. Setelah menetapkan semula killswitch_state ditetapkan salah dan entri di bahagian log papan pemuka dihasilkan (nilai = 1).

poll_test_now_button.py sedang menunggu butang tekan pada panel depan kotak ditekan. Dengan mengaktifkan butang, pengukuran lebar jalur dipicu secara manual. Semasa program dimulakan (semasa reboot Raspberry Pi) LED RGB berkedip merah.

post_restart_message.py menulis kod tetapan semula (nilai = 3) ke bahagian log pada papan pemuka. Ini menunjukkan bahawa monitor lebar jalur telah dimulakan semula. Semasa program dimulakan, RGB LED berkelip biru.

test_LED.py dan test_relay.py adalah skrip mudah yang boleh digunakan untuk menguji fungsi perkakasan LED RGB dan geganti.

epdconfig.py dan epd2in9.py adalah pemacu peranti untuk paparan e-ink yang disediakan oleh Waveshare.

Untuk membolehkan program mengakses papan pemuka Ubidots, anda harus menambahkan token dan peranti anda sendiri atau nama pemboleh ubah (jika anda menggunakan notasi yang berbeza). Cari bahagian seperti yang ditunjukkan dalam gambar di atas (ganti XXXXXXXX dengan token anda).

Tutorial komprehensif mengenai cara membuat papan pemuka dan cara mengintegrasikan papan pemuka ke dalam program Python boleh didapati secara langsung di halaman Ubidots (https://help.ubidots.com/en/) atau melalui Google.

Langkah 6: Papan Pemuka IOT

Papan Pemuka IOT
Papan Pemuka IOT

Papan pemuka yang dihoskan oleh Ubidots (lihat https://ubidots.com) mengandungi beberapa bidang yang dijelaskan secara ringkas di bawah.

    1. Urutan masa kelajuan naik dan muat turun. Setiap setengah jam nilai baru dimasukkan ke dalam rajah.
    2. Jangka masa masa ping yang diukur. Setiap setengah jam nilai baru dimasukkan dalam rajah.
    3. Urutan masa dari kelajuan muat turun purata. Nilai purata selama 24 jam dikira dan ditulis ke rajah.
    4. Perwakilan hamparan nilai pengukuran semasa termasuk cap waktu.
    5. Butang kawalan jauh untuk menetapkan semula modem melalui Internet. Pertanyaan berlaku setiap 3 minit, iaitu mungkin memerlukan sedikit masa sehingga tindakan dijalankan.
    6. Pembalakan set semula terakhir termasuk alasan untuk menetapkan semula (pemicu jarak jauh, mematikan atau kehilangan voltan, jatuh di bawah lebar jalur minimum)

Tutorial komprehensif mengenai cara membuat papan pemuka dan cara mengintegrasikan papan pemuka ke dalam program Python boleh didapati secara langsung di halaman Ubidots (https://help.ubidots.com/en/) atau melalui Google.

Disyorkan: