Isi kandungan:
- Bekalan
- Langkah 1: Sediakan Pi Raspberry Anda
- Langkah 2: Jadikan Sistem Bunyi Anda Berfungsi
- Langkah 3: Uji Main semula Bunyi Bell dan / atau Buat Bunyi Baru
- Langkah 4: Pasang Kod dan Tetapkan Jadual Anda
- Langkah 5: Automatik Menjalankan Dengan Crond
- Langkah 6: Sesuaikan dan Nikmati
Video: Loceng Sekolah untuk Pelajar Jarak Jauh: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Dengan wabak COVID-19, banyak sekolah anak-anak telah melakukan penghantaran jarak jauh. Loceng sekolah rumah ini adalah cara yang menyeronokkan untuk tetap mengikut jadual yang menggunakan Raspberry Pi dan pembesar suara USB. Anda boleh membuatnya dengan anak anda dan mereka dapat belajar tentang pengaturcaraan dan dapat "membunyikan loceng". Saya membina ini untuk anak perempuan saya yang akan memasuki kelas 7 (sekarang melalui penghantaran jarak jauh), dan ia berfungsi dengan baik untuk memastikan kami tetap tepat waktu.
Bekalan
Untuk projek ini, anda memerlukan:
- Komputer Raspberry Pi - Ia berfungsi dengan baik jika anda mempunyai WiFi, saya menggunakan RPi 3B dari kit Kano
- Pembesar suara - Saya menggunakan pembesar suara USB
Kod ini dapat dijalankan dengan mudah di komputer linux pelajar anda atau bahkan mikrokontroler yang menjalankan mikropython, selagi mikrokontroler mempunyai beberapa mekanisme untuk mendapatkan tarikh / waktu terkini. Juga mana-mana pembesar suara yang diperkuat, atau lebih baik relay / loceng analog, boleh digunakan.
Langkah 1: Sediakan Pi Raspberry Anda
Terdapat sebilangan besar sumber untuk menyiapkan komputer Raspberry Pi, jadi saya merujuk anda kepada salah satu yang dijumpai oleh Google. Yang penting ialah komputer anda mempunyai cara untuk mendapatkan tarikh dan masa yang betul. Sebilangan besar komputer Raspberry Pi berkemampuan WiFi moden menggunakan protokol NTP untuk menetapkan waktu dari internet, itulah cara saya mendapat masa yang betul. Saya menyiapkan RPi saya untuk menjadi "tanpa kepala", yang bermaksud ia tidak mempunyai papan kekunci atau monitor, tetapi dapat diakses dengan shell selamat (SSH) melalui internet. Sekiranya anda mahir dengan RPi, anda boleh melakukan persediaan ini tanpa papan kekunci / video / tetikus, tetapi lebih mudah untuk hanya menyiapkan pi dengan aksesori tersebut.
Perhatikan bahawa saya tidak perlu menggunakan antara muka grafik, jadi saya baru sahaja memuat turun "Raspberry Pi OS (32-bit) Lite", yang lebih kecil dan lebih pantas untuk memuat turun dan boot lebih pantas.
Konfigurasikan pilihan rangkaian dan antara muka Raspberry Pi
$ sudo raspi-config
Dalam konfigurasi, lakukan perkara berikut:
- Tukar kata laluan - lakukan ini terlebih dahulu, semoga sebelum masuk ke dalam talian!
-
Dalam "Pilihan Rangkaian",
- Tukar nama hos. Saya menggunakan nama hos: "schoolbell".
- Sambungkan ke LAN Tanpa Wayar anda (jika anda belum melakukannya dalam persediaan)
- Di bawah "Pilihan Antaramuka", hidupkan akses SSH
- Selalu bagus untuk menjalankan pilihan "Kemas kini"
Setelah anda melakukan ini dan reboot, anda seharusnya dapat menyambung ke Raspberry Pi dari komputer lain di rangkaian tempatan yang sama dengan menggunakan klien SSH. Sambungkannya dengan menggunakan kelayakan berikut:
nama hos: schoolbell.local
pengguna: kata laluan pi: whateveryousetitas
Dari kotak linux, ini semudah menaip baris arahan ini pada $ prompt:
$ ssh [email protected]
… Masukkan kata laluan segera
Itu akan membuat anda log masuk dan anda boleh memastikan bahawa waktu di Raspberry Pi betul. Pada baris arahan, ketik perintah tarikh dan periksa tindak balas:
pi @ bel sekolah: ~ $ tarikh
Kam 3 Sep 20:44:34 AKDT 2020
Semoga ini adalah masa sekarang. Sekiranya tidak betul, google mengenai penyediaan NTP pada Raspberry Pi.
Langkah 2: Jadikan Sistem Bunyi Anda Berfungsi
Kami akan memainkan fail MP3 untuk loceng, jadi kami perlu memuat turun perisian untuk menyahkod fail audio ini. Saya mendapat pakej mpg321 dengan menaip arahan ini:
pi @ schoolbell: ~ $ sudo apt-get install mpg321
Ikuti arahan untuk memasang perisian ini.
Saya menggunakan pembesar suara USB lama, yang mempunyai pemacu yang pelik dan tidak sepenuhnya dikonfigurasi secara automatik sebagai kad suara lalai, jadi saya dapati "menggodam" pembesar suara untuk berfungsi dengan menggunakan alamat perkakasannya. Setelah memasang pembesar suara, saya menggunakan arahan 'aplay -l' untuk menyenaraikan peranti audio:
pi @ bel sekolah: ~ $ aplay -l
**** Senarai kad PERMAINAN PERMAINAN **** kad 0: Fon kepala [bcm2835 Fon kepala], peranti 0: bcm2835 Fon kepala [bcm2835 Fon kepala] Subdevice: 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], peranti 0: Subdeven Audio USB [Audio USB]: Subdevice # 0: subdevice # 0
Peranti yang saya mahukan adalah yang lebih rendah, kad 1, peranti 0.
Saya menguji pembesar suara dengan "speaker-test", menggunakan peranti "hw: 1, 0", yang bermaksud kad perkakasan 1, peranti 0
pi @ schoolbell: ~ $ speaker-test -D hw: 1, 0
Program ini mengeluarkan suara daripada pembesar suara. Nikmati bunyi dan ketik kawalan-C apabila anda kesal. Sekiranya anda tidak mendengar bunyi bising, cuba google.
Sekarang anda mempunyai suara!
Langkah 3: Uji Main semula Bunyi Bell dan / atau Buat Bunyi Baru
Untuk loceng saya, saya memuat turun bunyi "bing-bong" dari "freesound.org". Terima kasih kepada Benboncan kerana menyediakan suara ini:
freesound.org/people/Benboncan/sounds/93646/
Anda boleh memainkan suaranya secara langsung. Saya boleh memuat turun versi mp3 fail ini secara langsung dengan mengetik perintah ini di komputer Raspberry Pi (dengan asumsi ia ada di WiFi):
pi @ schoolbell: ~ $ wget
Saya kemudian menamakan semula fail ini:
pi @ schoolbell: ~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3
Saya kemudian menguji bahawa saya dapat membunyikan loceng dengan arahan ini (menunjukkan output):
pi @ schoolbell: ~ $ mpg321 -a hw: 1, 0 bing-bong-chime-hq.mp3
Pemain Audio MPEG 1.0 / 2.0 / 2.5 Berprestasi Tinggi untuk Lapisan 1, 2, dan 3. Versi 0.3.2-1 (2012/03/25). Ditulis dan hak cipta oleh Joe Drew, kini dikendalikan oleh Nanakos Chrysostomos dan lain-lain. Menggunakan kod dari pelbagai orang. Lihat 'README' untuk lebih banyak lagi! PERISIAN INI DATANG DENGAN TANPA JAMINAN! GUNAKAN PADA RISIKO SENDIRI! Memainkan aliran MPEG dari bing-bong-chime-hq.mp3… MPEG 1.0 lapisan III, 128 kbit / s, mono 44100 Hz [0:02] Penyahkodan bing-bong-chime-hq.mp3 selesai.
Tahniah! Anda mempunyai audio.
Dengan menggunakan kod penyuntingan suara "keberanian" pada komputer riba saya, saya membahagikan fail menjadi "bing" dan "bong" untuk lebih senang. Anda boleh menggunakan fail mp3 atau format lain (saya belum menguji yang lain) fail suara.
Langkah 4: Pasang Kod dan Tetapkan Jadual Anda
Kodnya adalah skrip python yang mendapat tarikh / waktu semasa dan jika tarikhnya adalah hari kerja dan bukan hari cuti, ia akan memeriksa sama ada waktunya sesuai dengan waktu loceng, sambil melihatnya.
Mula-mula anda akan berjaya, maka anda akan mengautomasikannya agar berjalan setiap minit.
Muat turun kod dari Github:
gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618
Saya mudah melakukannya dengan menyimpan fail di komputer tempatan kemudian menggunakan salinan selamat (scp) untuk memasukkannya ke Raspberry pi.
Pada mesin tempatan anda, salin kod dari penyemak imbas anda, kemudian tampal ke dalam fail teks dan simpan dengan nama fail "schoolbell.py". Kemudian scp fail ke atas:
mesin tempatan: ~ $ scp schoolbell.py [email protected]: ~ /
Anda akan diminta memasukkan kata laluan untuk pi pengguna di schoolbell.local - masukkan kata laluan, dan fail akan disalin dengan selamat. Perintah ini harus dijalankan di direktori yang sama di mana skrip python disimpan, dan menyalinnya ke direktori utama pengguna pi. Anda boleh menghantar ke schoolbell.local dan kodnya mesti ada:
mesin tempatan: ~ $ ssh [email protected]
Kemudian di schoolbell.local, senaraikan fail (anda mungkin melihat lebih banyak fail):
pi @ bel sekolah: ~ $ ls
bing-bong-chime-hq.mp3 schoolbell.py
Sekarang edit kod untuk membuatnya mempunyai jadual loceng anda dengan menggunakan editor seperti pico:
pi @ schoolbell: ~ $ pico schoolbell.py
Kod ini mempunyai tiga "kamus" yang menentukan nada loceng untuk dimainkan, waktu untuk memainkannya, dan cuti yang harus dielakkan, Lonceng pada hujung minggu secara automatik dilangkau.
Contohnya, kamus nada dering adalah:
nada bel = {
'warn': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'end': 'bing-bong-chime-hq.mp3'}
Ini menentukan tiga jenis loceng, loceng amaran, permulaan kelas dan akhir. Kerana kami hanya mempunyai satu nada bel, semuanya menunjukkan fail yang sama, tetapi jika anda membuat nada yang berbeza, anda boleh mengubahnya. Anda juga boleh menambah nada bel lain. Saya juga bermain dengan menggunakan synthesizer ucapan untuk membunyikan loceng, tetapi perkara itu tidak dipandang baik oleh orang lain di rumah.
Kamus bellschedule serupa, tetapi "kunci" sekarang adalah masa untuk loceng. anda perlu menggunakan format HH: MM dengan sifar terkemuka dan masa 24 jam (waktu ketenteraan).
jadual loceng = {
'09: 00 ':' start ', #' Bus 'loceng untuk bersiap sedia '09: 28': 'warn',….. '13: 58 ':' warn ', # untuk tempoh 4 '14: 00 ':' mula ',' 15: 00 ':' akhir '}
Nilai dalam kunci ini: pasangan nilai adalah jenis nada loceng yang harus digunakan dan perlu sepadan dengan salah satu nada bel yang ditentukan di atas.
Terakhir, kamus cuti menyenaraikan tarikh percutian. Formatnya adalah YYYY-mm-dd, dengan angka nol terkemuka seperti yang ditunjukkan.
cuti = {
'2020-09-07', …. '2021-03-11', '2021-03-12' }
Setelah selesai mengedit, simpan fail dengan keluar dari editor anda, ketik ctrl-X jika anda menggunakan pico.
Jadikan kod python dapat dilaksanakan dengan:
pi @ schoolbell: ~ $ chmod a + x schoolbell.py
Ini memungkinkan semua pengguna melaksanakan kod, "a" untuk semua, "+" untuk izin tambahkan, dan "x" untuk dijalankan.
Sekarang uji jalankan kod dan perhatikan outputnya. Perhatikan bahawa anda boleh menjalankan fail dengan mengetik nama fail tetapi perlu menentukan bahawa ia ada di direktori semasa dengan mengetik "./" sebelum nama fail:
pi @ schoolbell: ~ $./schoolbell.py
Ia adalah hari schoolday, memeriksa waktu 21:35
Kod tersebut akan memberitahu anda jika itu adalah hari schoolday (mis. Bukan percutian atau hujung minggu) dan melihat apakah waktunya sesuai dengan waktu loceng. Dalam kes ini, ini bukan waktu loceng, jadi keluar dengan bersih. Sekiranya kebetulan waktu loceng, ia akan berbunyi.
Untuk menguji bahawa kod anda dapat memainkan loceng, gunakan pilihan baris perintah fail untuk dimainkan. Kami akan menggunakan fail bing-bong kami:
pi @ schoolbell: ~ / schoolbell $./schoolbell.py bing-bong-chime-hq.mp3
Ini adalah schoolday, memeriksa waktu 21:38 MPEG 1.0 / 2.0 / 2.5 Pemain Audio Berprestasi Tinggi untuk Layer 1, 2, dan 3. Versi 0.3.2-1 (2012/03/25). Ditulis dan hak cipta oleh Joe Drew, kini dikendalikan oleh Nanakos Chrysostomos dan lain-lain. …. lebih banyak output….
Anda sepatutnya mendengar loceng.
Sekarang uji kod dengan menggunakan waktu sebagai argumen. Ingatlah untuk memasukkan masa dengan sifar terkemuka. Sebagai contoh, untuk menguji loceng "bas sekolah" saya pada pukul 09:00, saya menaip:
pi @ schoolbell: ~ $./schoolbell.py 09:00
Ini akan menyebabkan loceng anda berbunyi! Anda juga boleh menguji bahawa ia tidak berdering pada waktu tidak berbunyi.
Langkah 5: Automatik Menjalankan Dengan Crond
Cron 'daemon' adalah penjadual yang menjalankan tugas berulang pada sistem linux. Ia memeriksa untuk melihat apakah tarikh / masa sepadan dengan corak di cron table (crontab) dan kemudian menjalankan kod jika berlaku. Anda boleh mengeditnya menggunakan perintah "crontab -e":
pi @ bel sekolah: ~ $ crontab -e
Ini akan membuka penyunting fail, dan di bahagian bawah fail ini, anda akan menambah baris berikut:
* * * * * python3 /home/pi/schoolbell.py
Perintah ini memberitahu cron untuk menjalankan python3 yang menjalankan skrip anda di direktori home biasa (/ home / pi). Lima orang mengatakan bahawa ini mesti dijalankan setiap minit (pertama *), setiap jam (berikutnya *…), setiap hari bulan, setiap bulan, dan setiap hari dalam seminggu.
Sekarang, setiap minit skrip schoolbell.py akan berjalan. Selama beberapa minit, kod tersebut akan berjalan dan mendapati kod itu harus berhenti tanpa berbunyi, tetapi jika ternyata waktu loceng, ia akan berpadu.
Perhatikan bahawa kerana cron hanya berjalan setiap minit, anda tidak dapat membuat loceng lebih terperinci daripada pada minit. Saya rasa mungkin secara teori bahawa jika sistem anda macet, cron mungkin tidak berjalan selama beberapa saat selepas waktu teratas, membuat loceng terlambat. Sekiranya entah bagaimana cron tidak berjalan selama satu minit penuh, loceng akan terlepas.
Petua: Untuk cuti panjang (mis. Musim panas), anda boleh menambahkan hashtag (#) pada watak pertama baris ini, yang mengubahnya menjadi komen dan dengan itu mengabaikan menjalankannya. Apabila sekolah kembali dalam sesi, hapus # dan ia akan mula berjalan lagi.
Langkah 6: Sesuaikan dan Nikmati
Sekarang, anda semestinya mempunyai sistem loceng sekolah di rumah yang berfungsi dan pelajar anda tidak boleh terlambat ke kelas.
Anda boleh menyesuaikan projek ini dengan menukar nada bel.
- Anda boleh membuatnya berdering di Big Ben, dengan lonceng suku jam dan berdering berjam-jam.
- Anda boleh mencuba gaya bebas rapper kegemaran anda.
- Anda boleh membuat mesej subliminal untuk fokus belajar.
Tetap selamat pada masa COVID ini.
Naib Johan dalam Peraduan Keluarga "Tidak Boleh Menyentuh Ini"
Disyorkan:
Penyediaan Jarak Jauh IR Mudah Menggunakan LIRC untuk Raspberry PI (RPi) - Julai 2019 [Bahagian 1]: 7 Langkah
Penyediaan Jarak Jauh IR dengan Mudah Menggunakan LIRC untuk Raspberry PI (RPi) - Julai 2019 [Bahagian 1]: Setelah banyak mencari, saya terkejut dan kecewa dengan maklumat yang bertentangan mengenai cara menyediakan alat kawalan jauh IR untuk projek RPi saya. Saya fikir ia akan mudah tetapi menyiapkan Linux InfraRed Control (LIRC) telah lama bermasalah sejak lama
Peta Tempat Letak Pelajar Pelajar Kampus Universiti: 7 Langkah (dengan Gambar)
Peta Tempat Letak Pelajar Pelajar Kampus Universiti: Ramai pelajar tertanya-tanya di mana mereka boleh meletak kenderaan di kampus universiti. Untuk mengatasi masalah ini, saya membuat peta tempat letak kenderaan ringan di kawasan utama kampus Universiti Negeri Utah. Peta ini untuk pelajar melihat sekilas pilihan tempat letak kereta
Esp32-Ubidots-Wireless-jarak jarak jauh-dan-kelembapan: 6 Langkah
Esp32-Ubidots-Wireless-jarak jarak jauh-dan-kelembapan: Dalam tutorial ini, kita akan mengukur data suhu dan kelembapan yang berbeza menggunakan sensor Temp dan kelembapan. Anda juga akan belajar bagaimana menghantar data ini ke Ubidots. Supaya anda dapat menganalisisnya dari mana sahaja untuk aplikasi yang berbeza
Pengenalan Robotik untuk Pelajar Sekolah Dasar Dengan Pengawal Hummingbird: 18 Langkah
Pengenalan Robotik untuk Pelajar Sekolah Dasar Dengan Pengawal Hummingbird: Sebilangan besar alat robotik di pasaran hari ini memerlukan pengguna memuat turun perisian tertentu ke dalam cakera keras mereka. Keindahan dari Hummingbird Robotic Controller adalah ia dapat dijalankan menggunakan komputer berasaskan web, seperti chromebook. Ia juga
Bekerja Dengan Berbilang Komputer (Untuk Pelajar): 6 Langkah
Bekerja Dengan Berbilang Komputer (Untuk Pelajar): Bekerja dengan pelbagai komputer boleh menjadi sangat sukar. Anda tidak pernah tahu fail apa di komputer mana, anda mungkin menghadapi masalah dengan pelbagai versi fail yang sama, dan akibatnya, anda boleh kehilangan fail anda bersama-sama atau sekurang-kurangnya mempunyai