Daftar Isi:

Bel Sekolah untuk Siswa Jarak Jauh: 6 Langkah
Bel Sekolah untuk Siswa Jarak Jauh: 6 Langkah

Video: Bel Sekolah untuk Siswa Jarak Jauh: 6 Langkah

Video: Bel Sekolah untuk Siswa Jarak Jauh: 6 Langkah
Video: Aplikasi Bel Sekolah Gratis Rev. 22.08.17, Banyak Fitur dan Serba Otomatis. 2024, Juli
Anonim
Bel Sekolah untuk Siswa Jarak Jauh
Bel Sekolah untuk Siswa Jarak Jauh

Dengan pandemi COVID-19, banyak sekolah anak-anak beralih ke pengiriman jarak jauh. Bel sekolah rumah ini adalah cara yang menyenangkan untuk tetap sesuai jadwal yang menggunakan Raspberry Pi dan speaker USB. Anda dapat membuatnya dengan anak Anda dan mereka dapat belajar tentang pemrograman dan dapat "membunyikan bel". Saya membuat ini untuk putri saya yang akan naik ke kelas 7 (saat ini melalui pengiriman jarak jauh), dan ini berfungsi dengan baik untuk membuat kami tepat waktu.

Perlengkapan

Untuk proyek ini, Anda akan membutuhkan:

  • Komputer Raspberry Pi - Ini berfungsi paling baik jika Anda memiliki WiFi, saya menggunakan RPi 3B dari kit Kano
  • Speaker -- Saya menggunakan speaker USB

Kode dapat dengan mudah dijalankan di komputer linux siswa Anda atau bahkan mikrokontroler yang menjalankan micropython, selama mikrokontroler memiliki beberapa mekanisme untuk mendapatkan tanggal/waktu saat ini. Juga setiap speaker yang diperkuat, atau bahkan bel relai / analog yang lebih dingin, dapat digunakan.

Langkah 1: Siapkan Raspberry Pi Anda

Siapkan Pi Raspberry Anda
Siapkan Pi Raspberry Anda

Ada banyak sumber daya untuk menyiapkan komputer Raspberry Pi, jadi saya merujuk Anda ke salah satu yang ditemukan Google. Yang penting adalah komputer Anda memiliki cara untuk mendapatkan tanggal dan waktu yang benar. Sebagian besar komputer Raspberry Pi berkemampuan WiFi modern menggunakan protokol NTP untuk mengatur waktu dari internet, yang merupakan cara saya mendapatkan waktu yang tepat. Saya mengatur RPi saya menjadi "tanpa kepala", artinya tidak memiliki keyboard atau monitor, tetapi dapat diakses oleh secure shell (SSH) melalui internet. Jika Anda mahir dengan RPi, Anda dapat melakukan pengaturan ini tanpa keyboard / video / mouse, tetapi lebih mudah untuk hanya mengatur pi dengan aksesori tersebut.

Perhatikan bahwa saya tidak perlu menggunakan antarmuka grafis, jadi saya hanya mengunduh "Raspberry Pi OS (32-bit) Lite", yang lebih kecil dan lebih cepat untuk diunduh dan boot lebih cepat.

Konfigurasikan jaringan dan opsi antarmuka Raspberry Pi

$ sudo raspi-config

Dalam konfigurasi, lakukan hal berikut:

  • Ubah kata sandi -- lakukan ini terlebih dahulu, semoga sebelum online!
  • dalam "Opsi Jaringan",

    • Ubah nama host. Saya menggunakan nama host: "bel sekolah".
    • Hubungkan ke LAN Nirkabel Anda (jika Anda belum melakukannya dalam pengaturan)
  • Di bawah "Opsi Antarmuka", aktifkan akses SSH
  • Itu selalu baik untuk menjalankan opsi "Perbarui"

Setelah Anda melakukan ini dan reboot, Anda harus dapat terhubung ke Raspberry Pi dari komputer lain di jaringan lokal yang sama dengan menggunakan klien SSH. Hubungkan dengan menggunakan kredensial berikut:

nama host: schoolbell.local

pengguna: sandi pi: terserah yousetitas

Dari kotak linux, ini sesederhana mengetikkan baris perintah ini di $ prompt:

$ ssh pi@bel sekolah.local

… masukkan kata sandi saat diminta

Itu akan membuat Anda masuk dan Anda dapat memeriksa apakah waktu di Raspberry Pi sudah benar. Di baris perintah, ketik perintah tanggal dan periksa responsnya:

pi@bel sekolah:~ $tanggal

Kamis 3 Sep 20:44:34 AKDT 2020

Semoga ini adalah waktu saat ini. Jika tidak benar, google tentang pengaturan NTP pada Raspberry Pi.

Langkah 2: Dapatkan Sound System Anda Bekerja

Dapatkan Sound System Anda Bekerja
Dapatkan Sound System Anda Bekerja

Kami akan memutar file MP3 untuk lonceng, jadi kami perlu mengunduh perangkat lunak untuk memecahkan kode file audio ini. Saya mendapatkan paket mpg321 dengan mengetikkan perintah ini:

pi@schoolbell:~ $ sudo apt-get install mpg321

Ikuti petunjuk untuk menginstal perangkat lunak ini.

Saya menggunakan speaker USB lama, yang memiliki driver aneh dan tidak sepenuhnya otomatis dikonfigurasi sebagai kartu suara default, jadi saya menemukan bahwa saya dapat "meretas" speaker agar berfungsi dengan menggunakan alamat perangkat kerasnya. Setelah mencolokkan speaker, saya menggunakan perintah 'aplay -l' untuk membuat daftar perangkat audio:

pi@bel sekolah:~ $ bermain -l

**** Daftar Perangkat Keras PEMUTARAN **** kartu 0: Headphone [bcm2835 Headphone], perangkat 0: bcm2835 Headphone [bcm2835 Headphone] Subperangkat: Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 Subdevice #4: subdevice #4 Subdevice #5: subdevice #5 Subdevice #6: subdevice #6 Subdevice #7: subdevice #7 card 1: CODEC [USB Audio CODEC], device 0: Audio USB [Audio USB] Subperangkat: Subperangkat #0: subperangkat #0

Perangkat yang saya inginkan adalah yang lebih rendah, kartu 1, perangkat 0.

Saya menguji speaker dengan "speaker-test", menggunakan perangkat "hw:1, 0", artinya kartu perangkat keras 1, perangkat 0

pi@schoolbell:~ $ speaker-test -D hw:1, 0

Program ini mengeluarkan suara dari speaker. Nikmati kebisingan lalu ketik control-C saat Anda merasa kesal. Jika Anda tidak mendengar suara, coba google.

Sekarang Anda memiliki suara!

Langkah 3: Uji Pemutaran Suara Lonceng Dan/atau Buat Suara Baru

Uji Pemutaran Suara Lonceng Dan/atau Buat Suara Baru
Uji Pemutaran Suara Lonceng Dan/atau Buat Suara Baru

Untuk bel saya, saya mengunduh suara "bing-bong" dari "freesound.org". Terima kasih kepada Benboncan karena telah membuat suara ini tersedia:

freesound.org/people/Benboncan/sounds/93646/

Anda dapat memutar suara secara langsung. Saya bisa langsung mengunduh versi mp3 dari file ini dengan mengetikkan perintah ini di komputer Raspberry Pi (dengan asumsi itu ada di WiFi):

pi@schoolbell:~ $wget

Saya kemudian mengganti nama file ini:

pi@schoolbell:~ $mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3

Saya kemudian menguji bahwa saya dapat membunyikan bel dengan perintah ini (menampilkan output):

pi@schoolbell:~ $ mpg321 -a hw:1, 0 bing-bong-chime-hq.mp3

Pemutar Audio MPEG 1.0/2.0/2.5 Kinerja Tinggi untuk Layer 1, 2, dan 3. Versi 0.3.2-1 (2012/03/25). Ditulis dan hak cipta oleh Joe Drew, sekarang dikelola oleh Nanakos Chrysostomos dan lainnya. Menggunakan kode dari berbagai orang. Lihat 'README' untuk lebih lanjut! PERANGKAT LUNAK INI DATANG DENGAN BENAR-BENAR TANPA GARANSI! GUNAKAN RISIKO ANDA SENDIRI! Memutar streaming MPEG dari bing-bong-chime-hq.mp3 … MPEG 1.0 layer III, 128 kbit/s, 44100 Hz mono [0:02] Decoding bing-bong-chime-hq.mp3 selesai.

Selamat! Anda memiliki audio.

Menggunakan kode pengeditan suara "audacity" di laptop saya, saya membagi file menjadi "bing" dan "bong" agar lebih menyenangkan. Anda dapat menggunakan file suara mp3 atau mungkin format lain (saya belum menguji yang lain).

Langkah 4: Instal Kode dan Atur Jadwal Anda

Instal Kode dan Atur Jadwal Anda
Instal Kode dan Atur Jadwal Anda

Kodenya adalah skrip python yang mendapatkan tanggal/waktu saat ini dan jika tanggalnya adalah hari kerja dan bukan hari libur, ia memeriksa apakah waktunya cocok dengan waktu bel, berdentang jika seharusnya.

Pertama Anda akan membuatnya berfungsi, lalu Anda akan mengotomatiskannya untuk berjalan setiap menit.

Unduh kode dari Github:

Gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Saya merasa mudah untuk melakukan ini dengan menyimpan file di komputer lokal kemudian menggunakan salinan aman (scp) untuk memasukkannya ke dalam Raspberry pi.

Di komputer lokal Anda, salin kode dari browser Anda, lalu tempel ke file teks dan simpan dengan nama file "schoolbell.py". Kemudian scp file di atas:

mesin-lokal:~ $ scp schoolbell.py [email protected]:~/

Anda akan diminta memasukkan kata sandi untuk pengguna pi di schoolbell.local -- masukkan kata sandi, dan file akan disalin dengan aman. Perintah ini harus dijalankan di direktori yang sama tempat skrip python disimpan, dan menyalinnya ke direktori home pengguna pi. Anda dapat ssh ke schoolbell.local dan kodenya harus ada di sana:

mesin lokal:~ $ ssh [email protected]

Kemudian di schoolbell.local, daftar file (Anda mungkin melihat lebih banyak file):

pi@bel sekolah:~ $ ls

bing-bong-chime-hq.mp3 schoolbell.py

Sekarang edit kode untuk membuatnya memiliki jadwal bel Anda dengan menggunakan editor seperti pico:

pi@bel sekolah:~ $ pico bel sekolah.py

Kode tersebut memiliki tiga "kamus" yang menentukan nada lonceng yang harus dimainkan, waktu untuk memainkannya, dan hari libur yang harus dihindari, Lonceng pada akhir pekan secara otomatis dilewati.

Misalnya, kamus belltones adalah:

lonceng = {

'warn': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'end': 'bing-bong-chime-hq.mp3' }

Ini mendefinisikan tiga jenis bel, bel peringatan, awal kelas, dan akhir. Karena kami hanya memiliki satu nada bel, semuanya mengarah ke file yang sama, tetapi jika Anda membuat nada yang berbeda, Anda dapat mengubahnya. Anda bahkan dapat menambahkan jenis nada lonceng lainnya. Saya juga bermain dengan menggunakan synthesizer ucapan untuk mengucapkan lonceng, tetapi itu tidak dipandang baik oleh orang lain di rumah.

Kamus jadwal lonceng serupa, tetapi "kunci" sekarang adalah waktu untuk bel. Anda perlu menggunakan format HH:MM dengan nol di depan dan waktu 24 jam (waktu militer).

jadwal bel = {

'09:00': 'start', # 'Bus' bell bersiap-siap '09:28': 'warn', ….. '13:58': 'warn', # untuk periode 4 '14:00 ': 'mulai', '15:00': 'akhir' }

Nilai dalam pasangan kunci:nilai ini adalah jenis nada lonceng yang akan digunakan dan harus cocok dengan salah satu nada lonceng yang ditentukan di atas.

Terakhir, kamus liburan mencantumkan tanggal liburan. Formatnya adalah YYYY-mm-dd, dengan nol di depan seperti yang ditunjukkan.

hari libur = {

'2020-09-07', …. '2021-03-11', '2021-03-12' }

Setelah Anda selesai mengedit, simpan file dengan keluar dari editor Anda, ketik ctrl-X jika Anda menggunakan pico.

Jadikan kode python dapat dieksekusi dengan:

pi@schoolbell:~ $ chmod a+x schoolbell.py

Ini memungkinkan semua pengguna mengeksekusi kode, "a" untuk semua, "+" untuk menambahkan izin, dan "x" untuk mengeksekusi.

Sekarang uji jalankan kode dan amati hasilnya. Perhatikan bahwa Anda dapat menjalankan file dengan mengetikkan nama file tetapi perlu menentukan bahwa file tersebut berada di direktori saat ini dengan mengetikkan "./" sebelum nama file:

pi@bel sekolah:~ $./bel sekolah.py

Ini adalah hari sekolah, memeriksa waktu 21:35

Kode akan memberi tahu Anda apakah ini hari sekolah (misalnya bukan hari libur atau akhir pekan) dan melihat apakah waktunya cocok dengan waktu bel. Dalam hal ini, itu bukan waktu bel, jadi itu keluar dengan bersih. Jika itu adalah waktu bel, itu akan berbunyi.

Untuk menguji apakah kode Anda dapat memainkan lonceng, gunakan opsi baris perintah dari file yang akan diputar. Kami akan menggunakan file bing-bong kami:

pi@schoolbell:~/schoolbell $./schoolbell.py bing-bong-chime-hq.mp3

Ini adalah hari sekolah, waktu pemeriksaan 21:38 High Performance MPEG 1.0/2.0/2.5 Audio Player untuk Layer 1, 2, dan 3. Versi 0.3.2-1 (2012/03/25). Ditulis dan hak cipta oleh Joe Drew, sekarang dikelola oleh Nanakos Chrysostomos dan lainnya. …. lebih banyak keluaran….

Anda seharusnya mendengar bel.

Sekarang uji kode dengan menggunakan waktu sebagai argumen. Ingatlah untuk memasukkan waktu dengan angka nol di depan. Misalnya, untuk menguji bel "bus sekolah" saya pada jam 9 pagi, saya mengetik:

pi@schoolbell:~ $./schoolbell.py 09:00

Ini akan menyebabkan bel Anda berdering! Anda juga dapat menguji bahwa itu tidak berdering pada waktu non-bel.

Langkah 5: Otomatiskan Menjalankan Dengan Crond

Otomatiskan Lari Dengan Crond
Otomatiskan Lari Dengan Crond

'Daemon' cron adalah penjadwal yang menjalankan tugas berulang pada sistem linux. Ia memeriksa untuk melihat apakah tanggal/waktu cocok dengan pola di tabel cron (crontab) dan kemudian menjalankan kode jika ya. Anda dapat mengeditnya menggunakan perintah "crontab -e":

pi@bel sekolah:~ $ crontab -e

Ini akan membuka editor file, dan di bagian bawah file ini, Anda akan menambahkan baris berikut:

* * * * * python3 /home/pi/schoolbell.py

Perintah ini memberi tahu cron untuk menjalankan python3 yang mengeksekusi skrip Anda di direktori home normal (/ home/pi). Lima * mengatakan bahwa ini harus dijalankan setiap menit (pertama *), setiap jam (berikutnya * …), setiap hari dalam sebulan, setiap bulan, dan setiap hari dalam seminggu.

Sekarang, setiap menit skrip schoolbell.py akan berjalan. Selama sebagian besar menit, kode akan berjalan dan mendapati kode itu seharusnya berhenti tanpa berbunyi, tetapi jika ternyata mencapai waktu bel, kode itu akan berbunyi.

Perhatikan bahwa karena cron hanya berjalan setiap menit, Anda tidak dapat membuat lonceng lebih terperinci daripada menit. Saya pikir secara teoritis mungkin bahwa jika sistem Anda macet, cron mungkin tidak berjalan selama beberapa detik setelah bagian atas menit, membuat bel terlambat. Jika entah bagaimana cron tidak berjalan selama satu menit penuh, bel akan terlewatkan.

Tip: Untuk liburan panjang (misalnya musim panas), Anda dapat menambahkan hashtag (#) ke karakter pertama dari baris ini, yang mengubahnya menjadi komentar dan dengan demikian mengabaikan menjalankannya. Ketika sekolah kembali dalam sesi, hapus saja # dan itu akan mulai berjalan lagi.

Langkah 6: Sesuaikan dan Nikmati

Sekarang, Anda harus memiliki sistem bel sekolah rumah yang berfungsi dan siswa Anda tidak boleh terlambat ke kelas.

Anda dapat menyesuaikan proyek ini dengan mengubah nada lonceng.

  • Anda bisa membuatnya berdering Big Ben, dengan lonceng seperempat jam dan dering keluar jam.
  • Anda dapat mencicipi gaya bebas rapper favorit Anda.
  • Anda bisa membuat pesan bawah sadar untuk fokus belajar.

Tetap jaga kesehatan di masa COVID ini.

Gambar
Gambar
Gambar
Gambar

Runner Up dalam Kontes Keluarga "Tidak Bisa Menyentuh Ini"

Direkomendasikan: