Daftar Isi:

Monitor Bandwidth: 7 Langkah (dengan Gambar)
Monitor Bandwidth: 7 Langkah (dengan Gambar)

Video: Monitor Bandwidth: 7 Langkah (dengan Gambar)

Video: Monitor Bandwidth: 7 Langkah (dengan Gambar)
Video: 4K Vs 1080p Beda Ga Sih ⁉️ 2024, November
Anonim
Pemantau Bandwidth
Pemantau Bandwidth
Pemantau Bandwidth
Pemantau Bandwidth
Pemantau Bandwidth
Pemantau Bandwidth

Karena saya sering bertanya pada diri sendiri berapa bandwidth yang saat ini disediakan oleh ISP saya (saya menggunakan modem LTE untuk koneksi Internet), saya memikirkan sistem pemantauan bandwidth. Karena sistemnya harus kompak dan hemat daya, saya memilih Raspberry Pi Zero sebagai komponen utama. Raspberry terhubung ke modem melalui WLAN, sehingga masalah WLAN dapat dideteksi juga.

Perlengkapan

  • Raspberry Pi Nol WH
  • Layar e-ink Waveshare (modul e-kertas 2,9 inci)
  • Konverter DC-DC (misalnya DEBO DCDC 20W)
  • RGB LED (diambil dari perangkat lama)
  • Tekan tombol
  • Mengalihkan
  • Modul relai (misalnya modul Relai 2 Arah Modul Relai 2 Arah)
  • Konektor Male + Konektor Female (keduanya pas dengan ukuran colokan catu daya modem Anda)
  • kasus cetak 3D

Langkah 1: Fitur

Fitur
Fitur
Fitur
Fitur
Fitur
Fitur
  • Raspberry Pi Zero terhubung melalui WLAN, menguji kecepatan dan mengunduh serta melakukan pengukuran ping setiap setengah jam. Versi baris perintah speedtest.net digunakan sebagai dasar pengukuran.
  • Hasil pengukuran bandwidth dan ping ditampilkan pada layar e-ink. Waktu pengukuran juga ditampilkan.
  • Jika kecepatan unduh turun di bawah nilai ambang batas yang ditentukan, relai mematikan dan menghidupkan modem untuk waktu yang singkat. Dengan demikian modem disetel ulang tanpa modifikasi perangkat apa pun (hanya catu daya yang terputus).
  • Sebuah tombol di bagian depan perangkat tersedia untuk memicu pengukuran bandwidth secara manual.
  • Nilai terukur ditampilkan di Ubidots Dashboard (Portal IOT). Dalam ikhtisar, Anda juga dapat melihat riwayat waktu dari nilai yang diukur dan alasan penyetelan ulang terakhir.
  • Di Portal IOT Anda juga dapat menemukan tombol untuk mengatur ulang modem dari jarak jauh.
  • Monitor Bandwidth menggunakan catu daya modem. Tidak diperlukan pasokan tambahan. Relai menginterupsi penerusan catu daya ke modem - raspberry tetap menyala.

Langkah 2: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Pada gambar pertama Anda dapat melihat desain internal monitor bandwidth:

Komponen utamanya adalah:

    1. Tekan tombol
    2. Tampilan E-tinta
    3. Raspberry Pi Nol
    4. Modul Relay
    5. RGB LED + Resistor (tergantung pada LED RGB yang Anda gunakan)
    6. Mengalihkan
    7. Konverter DC-DC
    8. Konektor wanita

Gambar kedua menunjukkan skema pengkabelan. Kutub positif dari tegangan suplai diumpankan melalui sakelar ke konverter tegangan DC-DC (yang mengubah tegangan suplai 12V dari router menjadi 5V untuk Raspberry) dan melalui relai (melalui pin yang terhubung normal) kembali ke konektor keluaran. Dengan demikian modem juga disuplai dengan daya ketika monitor bandwidth dimatikan.

Pengukuran bandwidth dapat dimulai secara manual melalui sebuah tombol. LED RGB digunakan untuk memvisualisasikan berbagai status operasi.

Hubungan antara Raspberry Pi dan tampilan e-ink tidak ditampilkan dalam diagram sirkuit. Hubungkan layar sesuai dengan tabel dan pin-out di atas.

Langkah 3: Pencetakan 3D dan Membangun Pengejaran

Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran
Pencetakan 3D dan Membangun Pengejaran

Bagian-bagian berikut diperlukan untuk kasing (lihat gambar di atas):

    1. bagian bawah
    2. bagian atas
    3. depan
    4. kembali
    5. 4x pemasangan

Semua bagian dapat dicetak tanpa penyangga. Anda juga dapat menemukan file dan beberapa desain saya yang lain di Thingiverse:

Layar dapat dipasang ke panel depan dengan dudukan dan selotip dua sisi. Sakelar tombol dan konektor femal disekrup ke panel belakang dan belakang. Saya menggunakan sekrup 3x20mm untuk menghubungkan kedua bagian rumah. Toleransi pada lekukan untuk panel depan dan belakang relatif ketat. Jika perlu, panel depan dan belakang harus diampelas di tepinya (di bagian dalam agar tidak merusak permukaan).

Langkah 4: Menyiapkan Raspberry PI

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

Panduan penyiapan ini didasarkan pada kompilasi beberapa petunjuk penginstalan dari sumber yang berbeda (produsen tampilan e-Ink, …). Bagi saya instruksi telah mengarah pada hasil yang diinginkan. Karena saya bukan ahli Linux, tidak ada pengoptimalan atau hal serupa yang dilakukan. Saya sadar bahwa pasti ada solusi yang lebih baik dan lebih efisien.

Mari kita asumsikan Anda sudah menginstal Raspbian di Pi Anda (ada banyak tutorial tentang cara menginstal sistem operasi dasar) dan Anda memiliki layar (melalui miniHDMI), mouse dan keyboard yang terhubung. Koneksi WLAN yang diatur dengan benar ke router atau Internet juga diasumsikan. Kecuali dinyatakan lain, semua prosedur instalasi dilakukan di terminal.

Instal Remote desktop (untuk mengakses PI dari komputer Anda):

sudo apt-get update

sudo apt-get

instal xrdp

atau Anda juga dapat bekerja tanpa kepala melalui ssh (lihat misalnya

Ganti kata sandi:

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

Instal tes kecepatan:

sudo

apt-get install python-pip

sudo pip install speedtest-cli

untuk menguji apakah instalasi berhasil jalankan Speedtest di terminal:

speedtest-cli

jika semuanya benar, Anda harus mendapatkan sesuatu seperti pada gambar pertama di atas.

Instal kabelPI

sudo apt-get install git-core

git clone git://git.drogon.net/wiringPi

kabel cdPi

./membangun

(lihat juga

Alternatif:

sudo apt-get install wiringpi

(lihat

Instal BCM2835

(lihat

Unduh bcm2835-1.60.tar.gz (atau versi yang lebih baru jika tersedia)

tar zxvf bcm2835-1.60.tar.gz

cd bcm2835-1.60

./konfigurasi

membuat

sudo buat cek

sudo make install

Instal perpustakaan pencitraan Python

sudo apt-get install python-imaging

Alternatif:

sudo apt-get install python-pil

Aktifkan fungsi I2C.

Jalankan perintah berikut untuk mengkonfigurasi papan Raspberry Pi Anda:

sudo raspi-config

Pilih Opsi Antarmuka-> I2C -> ya, untuk memulai driver inti I2C. Kemudian Anda juga perlu memodifikasi file konfigurasi. Jalankan perintah berikut untuk membuka file konfigurasi:

sudo nano /etc/modules

Tambahkan dua baris berikut ke file konfigurasi

i2c-bcm2708

i2c-dev

Lihat juga

Aktifkan fungsi SPI

Jalankan perintah berikut untuk mengkonfigurasi papan Raspberry Pi Anda:

sudo raspi-config

Pilih Opsi Antarmuka-> SPI -> ya, untuk memulai driver inti SPI.

Instal font tambahan:

sudo apt-get install ttf-mscorefonts-installer

Unduh dan instal Font (Roboto + Droid)

gksudo

pcmanfm

Untuk memulai pengelola file dengan hak akses root dan salin font truetype ke folder /usr/share/fonts/truetype

Alternatif:

Salin font ke folder Unduhan dengan WinSCP (ssh harus diaktifkan untuk menggunakan WinSCP)

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

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

Anda memerlukan hak akses root untuk mengakses folder font. Mungkin ada cara yang lebih baik untuk melakukan ini (seperti yang telah disebutkan saya bukan ahli Linux) tetapi kedua cara itu berhasil untuk saya.

File Python:

Gunakan pengelola file untuk membuat folder baru "bandwidth_monitor"

Salin semua file ke direktori bandwidth_monitor

Jadikan file python dan skrip dapat dieksekusi

chmod +x *.py

chmod +x speedtest-cron.sh

Konfigurasikan crontab

crontab -e

Crontab digunakan untuk menjadwalkan eksekusi program mis. speedtest setiap 30 menit. 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

Deskripsi tugas yang dijadwalkan:

  • saat reboot, pesan restart ditulis ke dasbor IOT
  • saat reboot, polling test_now_button dimulai
  • setiap 30 menit dilakukan pengukuran bandwidth
  • setiap 3 menit status tombol reset jarak jauh (di dasbor IOT) dicentang
  • sekali sehari siklus penyegaran tampilan dimulai.

Lihat bagian perangkat lunak untuk penjelasan singkat tentang program.

Langkah 5: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Perangkat lunak ini dibagi menjadi beberapa file / program:

bandwidth_monitor_0_4.py adalah program utama yang dipanggil oleh Crontab setiap setengah jam. Ia melakukan tes bandwidth (melalui versi baris perintah speedtest.net). Selama pengujian, LED RGB berwarna biru. Jika bandwidth di atas ambang yang dipilih, nilainya akan ditampilkan pada tampilan e-ink (bersama dengan stempel waktu) dan diekspor ke dasbor Ubidots. Jika bandwidth di bawah ambang batas, LED berubah menjadi merah dan pengukuran diulang setelah penundaan singkat. Setelah 3 kali percobaan negatif, relai diaktifkan dan dengan demikian catu daya modem terputus. Kode reset (nilai=2) ditulis ke bagian log.

poll_killswitch.py membaca status variabel boolean di dasbor. Jika killswitch_state benar, relais diaktifkan dan catu daya modem terputus. RGB LED berubah menjadi hijau selama polling dari killswitch. Setelah reset, killswitch_state disetel salah dan entri di bagian log dasbor dibuat (nilai=1).

poll_test_now_button.py sedang menunggu tombol di panel depan kasing untuk ditekan. Dengan mengaktifkan tombol, pengukuran bandwidth dipicu secara manual. Saat program dimulai (saat reboot Raspberry Pi) LED RGB berkedip merah.

post_restart_message.py menulis kode reset (nilai=3) ke bagian log dasbor. Ini menunjukkan bahwa monitor bandwidth telah dimulai ulang. Selama program dimulai, LED RGB berkedip biru.

test_LED.py dan test_relay.py adalah skrip sederhana yang dapat digunakan untuk menguji fungsi perangkat keras LED RGB dan relai.

epdconfig.py dan epd2in9.py adalah driver perangkat untuk tampilan e-ink yang disediakan oleh Waveshare.

Untuk mengizinkan program mengakses dasbor Ubidots, Anda harus menambahkan token individual dan nama perangkat atau variabel Anda (jika Anda menggunakan notasi yang berbeda). Cari bagian seperti yang ditunjukkan pada gambar di atas (ganti XXXXXXX dengan token Anda).

Tutorial lengkap tentang cara membangun dasbor dan cara mengintegrasikan dasbor ke dalam program Python dapat ditemukan langsung di halaman Ubidots (https://help.ubidots.com/en/) atau melalui Google.

Langkah 6: Dasbor IOT

Dasbor IOT
Dasbor IOT

Dasbor yang dihosting oleh Ubidots (lihat https://ubidots.com) berisi beberapa area yang dijelaskan secara singkat di bawah ini.

    1. Urutan waktu kecepatan naik dan unduh. Setiap setengah jam nilai baru dimasukkan ke dalam diagram.
    2. Waktu perjalanan waktu ping yang diukur. Setiap setengah jam nilai baru dimasukkan dalam diagram.
    3. Urutan waktu kecepatan unduh rata-rata. Nilai rata-rata selama 24 jam dihitung dan ditulis ke diagram.
    4. Representasi spreadsheet dari nilai pengukuran saat ini termasuk cap waktu.
    5. Tombol remote control untuk mengatur ulang modem melalui Internet. Kueri terjadi setiap 3 menit, yaitu mungkin perlu beberapa saat hingga tindakan dilakukan.
    6. Mencatat reset terakhir termasuk alasan reset (pemicu jarak jauh, mematikan atau kehilangan voltase, turun di bawah bandwidth minimum)

Tutorial lengkap tentang cara membangun dasbor dan cara mengintegrasikan dasbor ke dalam program Python dapat ditemukan langsung di halaman Ubidots (https://help.ubidots.com/en/) atau melalui Google.

Direkomendasikan: