สารบัญ:

ระฆังโรงเรียนสำหรับนักเรียนทางไกล: 6 ขั้นตอน
ระฆังโรงเรียนสำหรับนักเรียนทางไกล: 6 ขั้นตอน

วีดีโอ: ระฆังโรงเรียนสำหรับนักเรียนทางไกล: 6 ขั้นตอน

วีดีโอ: ระฆังโรงเรียนสำหรับนักเรียนทางไกล: 6 ขั้นตอน
วีดีโอ: เมื่อครูทำโทษนักเรียนผิดคน #ครูผิดไปแล้ว 2024, พฤศจิกายน
Anonim
ระฆังโรงเรียนสำหรับนักเรียนทางไกล
ระฆังโรงเรียนสำหรับนักเรียนทางไกล

ด้วยการระบาดของ COVID-19 โรงเรียนเด็กหลายแห่งต้องส่งทางไกล ระฆังโรงเรียนที่บ้านนี้เป็นวิธีที่สนุกในการทำตามกำหนดเวลาโดยใช้ Raspberry Pi และลำโพง USB คุณสามารถทำมันร่วมกับลูกของคุณ และพวกเขาก็สามารถเรียนรู้เกี่ยวกับการเขียนโปรแกรมและสามารถ "สั่นกระดิ่ง" ได้ ฉันสร้างสิ่งนี้สำหรับลูกสาวที่กำลังขึ้นชั้นประถมศึกษาปีที่ 7 (ปัจจุบันเป็นการจัดส่งทางไกล) และทำงานได้ดีเพื่อให้เราตรงต่อเวลา

เสบียง

สำหรับโครงการนี้ คุณจะต้อง:

  • คอมพิวเตอร์ Raspberry Pi -- ใช้งานได้ดีที่สุดถ้าคุณมี WiFi ฉันใช้ RPi 3B จาก Kano kit
  • ลำโพง -- ฉันใช้ลำโพง USB

รหัสสามารถทำงานบนคอมพิวเตอร์ linux ของนักเรียนของคุณ หรือแม้แต่ไมโครคอนโทรลเลอร์ที่ใช้งาน micropython ได้อย่างง่ายดาย ตราบใดที่ไมโครคอนโทรลเลอร์มีกลไกบางอย่างในการรับวันที่/เวลาปัจจุบัน นอกจากนี้ยังสามารถใช้ลำโพงขยายเสียงหรือระฆังรีเลย์ / อะนาล็อกที่เย็นกว่าได้อีกด้วย

ขั้นตอนที่ 1: ตั้งค่า Raspberry Pi. ของคุณ

ตั้งค่า Raspberry Pi. ของคุณ
ตั้งค่า Raspberry Pi. ของคุณ

มีทรัพยากรจำนวนมากสำหรับการตั้งค่าคอมพิวเตอร์ Raspberry Pi ดังนั้นฉันจึงแนะนำแหล่งข้อมูลที่ Google พบให้คุณ สิ่งสำคัญคือคอมพิวเตอร์ของคุณมีวิธีในการรับวันที่และเวลาที่ถูกต้อง คอมพิวเตอร์ Raspberry Pi ที่เปิดใช้งาน WiFi ที่ทันสมัยส่วนใหญ่ใช้โปรโตคอล NTP เพื่อตั้งเวลาจากอินเทอร์เน็ต ซึ่งเป็นวิธีที่ฉันได้รับเวลาที่ถูกต้อง ฉันตั้งค่า RPi ของฉันให้เป็น "หัวขาด" ซึ่งหมายความว่าไม่มีแป้นพิมพ์หรือจอภาพ แต่สามารถเข้าถึงได้โดย Secure Shell (SSH) ทางอินเทอร์เน็ต หากคุณใช้ RPi ได้ดี คุณสามารถตั้งค่านี้ได้โดยไม่ต้องใช้แป้นพิมพ์ / วิดีโอ / เมาส์ แต่การตั้งค่า pi ด้วยอุปกรณ์เสริมเหล่านั้นจะง่ายกว่า

โปรดทราบว่าฉันไม่จำเป็นต้องใช้อินเทอร์เฟซแบบกราฟิก ดังนั้นฉันจึงเพิ่งดาวน์โหลด "Raspberry Pi OS (32-bit) Lite" ซึ่งมีขนาดเล็กกว่าและเร็วกว่าในการดาวน์โหลดและบู๊ตได้เร็วกว่า

กำหนดค่าเครือข่าย Raspberry Pi และตัวเลือกการเชื่อมต่อ

$ sudo raspi-config

ในการกำหนดค่า ให้ทำดังนี้:

  • เปลี่ยนรหัสผ่าน - ทำสิ่งนี้ก่อน หวังว่าจะออนไลน์!
  • ใน "ตัวเลือกเครือข่าย"

    • เปลี่ยนชื่อโฮสต์ ฉันใช้ชื่อโฮสต์: "schoolbell"
    • เชื่อมต่อกับ LAN ไร้สายของคุณ (หากคุณยังไม่ได้ตั้งค่า)
  • ในส่วน "ตัวเลือกการเชื่อมต่อ" ให้เปิดการเข้าถึง SSH
  • เป็นการดีเสมอที่จะเรียกใช้ตัวเลือก "อัปเดต"

เมื่อคุณทำเสร็จแล้วและรีบูต คุณควรจะสามารถเชื่อมต่อกับ Raspberry Pi จากคอมพิวเตอร์เครื่องอื่นในเครือข่ายท้องถิ่นเดียวกันได้โดยใช้ไคลเอ็นต์ SSH เชื่อมต่อโดยใช้ข้อมูลประจำตัวต่อไปนี้:

ชื่อโฮสต์: schoolbell.local

ผู้ใช้: pi รหัสผ่าน: whatyousetitas

จากกล่อง linux ทำได้ง่ายๆ เพียงพิมพ์บรรทัดคำสั่งนี้ที่ $ prompt:

$ ssh [email protected]

… ป้อนรหัสผ่านที่พร้อมท์

ที่จะเข้าสู่ระบบคุณและคุณสามารถตรวจสอบได้ว่าเวลาบน Raspberry Pi นั้นถูกต้อง ที่บรรทัดรับคำสั่ง พิมพ์คำสั่ง date และตรวจสอบการตอบสนอง:

pi@schoolbell:~ $ วันที่

พฤ 3 ก.ย. 20:44:34 น. AKDT 2020

หวังว่านี่เป็นเวลาปัจจุบัน หากไม่ถูกต้อง google เกี่ยวกับการตั้งค่า NTP บน Raspberry Pi

ขั้นตอนที่ 2: ทำให้ระบบเสียงของคุณทำงานได้

ทำให้ระบบเสียงของคุณทำงานได้
ทำให้ระบบเสียงของคุณทำงานได้

เรากำลังจะเปิดไฟล์ MP3 สำหรับเสียงระฆัง ดังนั้นเราต้องดาวน์โหลดซอฟต์แวร์เพื่อถอดรหัสไฟล์เสียงเหล่านี้ ฉันได้รับแพ็คเกจ mpg321 โดยพิมพ์คำสั่งนี้:

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

ทำตามคำแนะนำเพื่อติดตั้งซอฟต์แวร์นี้

ฉันใช้ลำโพง USB ตัวเก่าซึ่งมีไดรเวอร์แปลก ๆ และไม่ได้กำหนดค่าอัตโนมัติทั้งหมดเป็นการ์ดเสียงเริ่มต้น ดังนั้นฉันจึงพบว่าฉันสามารถ "แฮ็ก" ลำโพงให้ทำงานโดยใช้ที่อยู่ฮาร์ดแวร์ของมันได้ หลังจากเสียบปลั๊กลำโพงแล้ว ฉันใช้คำสั่ง 'aplay -l' เพื่อแสดงรายการอุปกรณ์เสียง:

pi@schoolbell:~ $ เล่น -l

**** รายการอุปกรณ์ฮาร์ดแวร์ PLAYBACK **** การ์ด 0: หูฟัง [bcm2835 Headphones], อุปกรณ์ 0: bcm2835 Headphones [bcm2835 Headphones] อุปกรณ์ย่อย: อุปกรณ์ย่อย #0: อุปกรณ์ย่อย #0 อุปกรณ์ย่อย #1: อุปกรณ์ย่อย #1 อุปกรณ์ย่อย #2: อุปกรณ์ย่อย #2 อุปกรณ์ย่อย #3: อุปกรณ์ย่อย #3 อุปกรณ์ย่อย #4: อุปกรณ์ย่อย #4 อุปกรณ์ย่อย #5: อุปกรณ์ย่อย #5 อุปกรณ์ย่อย #6: อุปกรณ์ย่อย #6 อุปกรณ์ย่อย #7: อุปกรณ์ย่อย #7 การ์ด 1: CODEC [USB Audio CODEC] อุปกรณ์ 0: เสียง USB [เสียง USB] อุปกรณ์ย่อย: อุปกรณ์ย่อย #0: อุปกรณ์ย่อย #0

อุปกรณ์ที่ฉันต้องการคืออันล่าง การ์ด 1 อุปกรณ์ 0

ฉันทดสอบลำโพงด้วย "การทดสอบลำโพง" โดยใช้อุปกรณ์ "hw:1, 0" หมายถึงการ์ดฮาร์ดแวร์ 1 อุปกรณ์ 0

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

โปรแกรมนี้ขจัดเสียงรบกวนจากลำโพง เพลิดเพลินไปกับเสียงจากนั้นพิมพ์ control-C เมื่อคุณรำคาญ หากคุณไม่ได้ยินเสียงรบกวน ลองใช้ google

ตอนนี้คุณมีเสียง!

ขั้นตอนที่ 3: ทดสอบการเล่นเสียงกระดิ่งและ/หรือสร้างเสียงใหม่

ทดสอบการเล่นเสียงกระดิ่งและ/หรือสร้างเสียงใหม่
ทดสอบการเล่นเสียงกระดิ่งและ/หรือสร้างเสียงใหม่

สำหรับกระดิ่งของฉัน ฉันดาวน์โหลดเสียง "bing-bong" จาก "freesound.org" ขอบคุณ Benboncan ที่ทำให้เสียงนี้ใช้ได้:

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

คุณสามารถเล่นเสียงได้โดยตรง ฉันสามารถดาวน์โหลดไฟล์เวอร์ชัน mp3 นี้ได้โดยตรงโดยพิมพ์คำสั่งนี้บนคอมพิวเตอร์ Raspberry Pi (สมมติว่าเป็น WiFi):

pi@schoolbell:~ $ wget

ฉันเปลี่ยนชื่อไฟล์นี้:

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

ฉันทดสอบแล้วว่าสามารถกดกริ่งด้วยคำสั่งนี้ (แสดงผลลัพธ์):

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

เครื่องเล่นเสียง MPEG 1.0/2.0/2.5 ประสิทธิภาพสูงสำหรับเลเยอร์ 1, 2 และ 3 เวอร์ชัน 0.3.2-1 (2012/03/25) เขียนและลิขสิทธิ์โดย Joe Drew ปัจจุบันดูแลโดย Nanakos Chrysostomos และคนอื่นๆ ใช้รหัสจากบุคคลต่างๆ ดู 'README' สำหรับข้อมูลเพิ่มเติม! ซอฟต์แวร์นี้ไม่มีการรับประกันใด ๆ ทั้งสิ้น! ใช้ความเสี่ยงของคุณเอง! กำลังเล่นสตรีม MPEG จาก bing-bong-chime-hq.mp3 … MPEG 1.0 layer III, 128 kbit/s, 44100 Hz mono [0:02] การถอดรหัส bing-bong-chime-hq.mp3 เสร็จแล้ว

ยินดีด้วย! คุณมีเสียง

ฉันแบ่งไฟล์ออกเป็น "bing" และ "bong" เพื่อความสนุกยิ่งขึ้นโดยใช้โค้ดแก้ไขเสียง "ความกล้า" บนแล็ปท็อปของฉัน คุณสามารถใช้ไฟล์เสียง mp3 หรือรูปแบบอื่น (ฉันไม่ได้ทดสอบอย่างอื่น)

ขั้นตอนที่ 4: ติดตั้งโค้ดและตั้งเวลาของคุณ

ติดตั้งรหัสและตั้งเวลาของคุณ
ติดตั้งรหัสและตั้งเวลาของคุณ

รหัสเป็นสคริปต์หลามที่ได้รับวันที่/เวลาปัจจุบัน และหากวันที่เป็นวันธรรมดาและไม่ใช่วันหยุด มันจะตรวจสอบว่าเวลาตรงกับเวลาระฆังหรือไม่ และสั่นว่าควรหรือไม่

ขั้นแรกคุณจะต้องทำให้มันทำงาน จากนั้นคุณจะทำให้มันทำงานโดยอัตโนมัติทุกนาที

ดาวน์โหลดรหัสจาก Github:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

ฉันพบว่าการทำเช่นนี้ทำได้ง่ายโดยการบันทึกไฟล์ลงในเครื่องคอมพิวเตอร์ จากนั้นใช้การคัดลอกที่ปลอดภัย (scp) เพื่อใส่ลงใน Raspberry pi

บนเครื่องของคุณ ให้คัดลอกโค้ดจากเบราว์เซอร์ของคุณ จากนั้นวางลงในไฟล์ข้อความและบันทึกด้วยชื่อไฟล์ "schoolbell.py" จากนั้น scp ไฟล์ทับ:

เครื่องท้องถิ่น:~ $ scp schoolbell.py [email protected]:~/

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านสำหรับผู้ใช้ pi บน schoolbell.local - ป้อนรหัสผ่าน และไฟล์จะถูกคัดลอกอย่างปลอดภัย คำสั่งนี้ควรรันในไดเร็กทอรีเดียวกันกับที่บันทึกสคริปต์ python และคัดลอกไปยังโฮมไดเร็กทอรีของผู้ใช้ pi คุณสามารถ ssh ไปที่ schoolbell.local และรหัสควรอยู่ที่นั่น:

เครื่องท้องถิ่น:~ $ ssh [email protected]

จากนั้นใน schoolbell.local ให้ระบุไฟล์ (คุณอาจเห็นไฟล์เพิ่มเติม):

pi@schoolbell:~ $ ls

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

ตอนนี้แก้ไขโค้ดเพื่อให้มีกำหนดการระฆังของคุณโดยใช้ตัวแก้ไขเช่น pico:

pi@schoolbell:~ $ pico schoolbell.py

รหัสนี้มี "พจนานุกรม" สามชุดที่กำหนดเสียงกริ่งที่จะเล่น เวลาที่ควรเล่น และวันหยุดที่ควรหลีกเลี่ยง ระฆังในวันหยุดสุดสัปดาห์จะถูกข้ามไปโดยอัตโนมัติ

ตัวอย่างเช่น พจนานุกรม Belltones คือ:

เสียงระฆัง = {

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

สิ่งนี้กำหนดระฆังสามประเภท ระฆังเตือน การเริ่มชั้นเรียน และจุดสิ้นสุด เนื่องจากเรามีเสียงกระดิ่งเพียงเสียงเดียว พวกมันจึงชี้ไปที่ไฟล์เดียวกัน แต่ถ้าคุณสร้างเสียงที่แตกต่างกัน คุณสามารถเปลี่ยนได้ คุณยังสามารถเพิ่มเสียงระฆังประเภทอื่นๆ ได้อีกด้วย ฉันยังเล่นกับการใช้เครื่องสังเคราะห์เสียงพูดเพื่อพูดระฆัง แต่คนอื่นในบ้านไม่มองว่าเป็นที่ชื่นชอบ

พจนานุกรม bellschedule มีความคล้ายคลึงกัน แต่ "กุญแจ" เป็นเวลาสำหรับระฆังแล้ว คุณต้องใช้รูปแบบ HH:MM โดยมีเลขศูนย์นำหน้าและเวลาแบบ 24 ชั่วโมง (เวลาทหาร)

ตารางระฆัง = {

'09:00': 'start', # 'Bus' ระฆังเตรียมพร้อม '09:28': 'warn', ….. '13:58': 'warn', # สำหรับช่วงเวลา 4 '14:00 น. ': 'เริ่ม', '15:00': 'สิ้นสุด' }

ค่าในคู่คีย์:ค่านี้คือประเภทของเสียงระฆังที่จะใช้และต้องตรงกับหนึ่งในเสียงระฆังที่กำหนดไว้ข้างต้น

สุดท้าย พจนานุกรมวันหยุดจะแสดงวันที่ในวันหยุด รูปแบบคือ YYYY-mm-dd โดยมีศูนย์นำหน้าดังที่แสดง

วันหยุด = {

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

เมื่อคุณแก้ไขเสร็จแล้ว ให้บันทึกไฟล์โดยออกจากโปรแกรมแก้ไข พิมพ์ ctrl-X หากคุณใช้ pico

ทำให้รหัสหลามสามารถเรียกใช้งานได้โดย:

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

สิ่งนี้ทำให้ผู้ใช้ทั้งหมดรันโค้ด "a" สำหรับทุกคน "+" สำหรับการเพิ่มสิทธิ์และ "x" สำหรับการดำเนินการ

ตอนนี้ทดสอบรันโค้ดและสังเกตผลลัพธ์ โปรดทราบว่าคุณสามารถเรียกใช้ไฟล์ได้โดยพิมพ์ชื่อไฟล์ แต่ต้องระบุว่าอยู่ในไดเร็กทอรีปัจจุบันโดยพิมพ์ "./" ก่อนชื่อไฟล์:

pi@schoolbell:~ $./schoolbell.py

วันนี้เป็นวันเรียน เช็คเวลา 21:35

รหัสจะบอกคุณว่าวันนี้เป็นวันเรียน (เช่น ไม่ใช่วันหยุดหรือวันหยุดสุดสัปดาห์) และดูว่าเวลาตรงกับเวลาระฆังหรือไม่ ในกรณีนี้ มันไม่ใช่เวลาระฆัง ดังนั้นมันจึงออกมาอย่างหมดจด ถ้ามันเกิดขึ้นเป็นเวลาระฆังก็จะดัง

หากต้องการทดสอบว่าโค้ดของคุณสามารถเล่นเสียงระฆังได้ ให้ใช้ตัวเลือกบรรทัดคำสั่งของไฟล์เพื่อเล่น เราจะใช้ไฟล์ bing-bong ของเรา:

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

เป็นวันเรียน ตรวจสอบเวลา 21:38 เครื่องเล่นเสียง MPEG 1.0/2.0/2.5 ประสิทธิภาพสูงสำหรับเลเยอร์ 1, 2 และ 3 เวอร์ชัน 0.3.2-1 (2012/03/25) เขียนและลิขสิทธิ์โดย Joe Drew ปัจจุบันดูแลโดย Nanakos Chrysostomos และคนอื่นๆ …. ผลผลิตมากขึ้น….

คุณน่าจะได้ยินเสียงระฆัง

ตอนนี้ทดสอบโค้ดโดยใช้เวลาเป็นอาร์กิวเมนต์ อย่าลืมป้อนเวลาด้วยเลขศูนย์นำหน้า ตัวอย่างเช่น หากต้องการทดสอบกระดิ่ง "รถโรงเรียน" เวลา 9.00 น. ฉันพิมพ์:

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

นี่จะทำให้ระฆังของคุณดังขึ้น! คุณสามารถทดสอบได้ว่าไม่มีเสียงกริ่งในเวลาที่ไม่ใช่เสียงกริ่ง

ขั้นตอนที่ 5: ทำงานอัตโนมัติด้วย Crond

ทำให้การวิ่งเป็นอัตโนมัติด้วย Crond
ทำให้การวิ่งเป็นอัตโนมัติด้วย Crond

cron 'daemon' เป็นตัวกำหนดตารางเวลาที่ทำงานซ้ำๆ บนระบบ linux จะตรวจสอบเพื่อดูว่าวันที่/เวลาตรงกับรูปแบบในตาราง cron (crontab) หรือไม่ จากนั้นรันโค้ดหากตรงกัน คุณสามารถแก้ไขได้โดยใช้คำสั่ง "crontab -e":

pi@schoolbell:~ $ crontab -e

ซึ่งจะเป็นการเปิดตัวแก้ไขไฟล์ และที่ด้านล่างของไฟล์นี้ คุณจะต้องเพิ่มบรรทัดต่อไปนี้:

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

คำสั่งนี้บอกให้ cron รัน python3 รันสคริปต์ของคุณในโฮมไดเร็กทอรีปกติ (/home/pi) ห้า * บอกว่าสิ่งนี้ควรทำงานทุกนาที (แรก *) ทุกชั่วโมง (ถัดไป * …) ทุกวันของเดือน ทุกเดือน และทุกวันในสัปดาห์

ตอนนี้ สคริปต์ schoolbell.py จะทำงานทุกนาที ในช่วงเวลาส่วนใหญ่ โค้ดจะทำงานและพบว่าควรปิดโดยไม่มีเสียงกระดิ่ง แต่ถ้าปรากฏว่าถึงเวลากริ่งก็จะส่งเสียง

โปรดทราบว่าเนื่องจาก cron ทำงานทุกนาทีเท่านั้น คุณไม่สามารถทำให้ระฆังละเอียดมากไปกว่านาที ฉันคิดว่ามันเป็นไปได้ในทางทฤษฎีว่าหากระบบของคุณติดขัด cron อาจไม่ทำงานเป็นเวลาสองสามวินาทีหลังจากช่วงบนของนาที ซึ่งทำให้กริ่งช้า ถ้า cron ไม่วิ่งเต็มนาที ระฆังก็จะพลาด

เคล็ดลับ: สำหรับวันหยุดยาว (เช่น ฤดูร้อน) คุณสามารถเพิ่มแฮชแท็ก (#) ให้กับอักขระตัวแรกของบรรทัดนี้ ซึ่งจะเปลี่ยนเป็นความคิดเห็น ดังนั้นจึงละเว้นการเรียกใช้ เมื่อโรงเรียนกลับมาอยู่ในเซสชั่น ให้ลบ # แล้วโรงเรียนจะเริ่มต้นใหม่อีกครั้ง

ขั้นตอนที่ 6: ปรับแต่งและสนุก

ตอนนี้ คุณควรมีระบบเสียงกริ่งสำหรับโฮมสคูล และนักเรียนของคุณไม่ควรไปเรียนสาย

คุณสามารถปรับแต่งโปรเจ็กต์นี้ได้โดยเปลี่ยนเสียงกระดิ่ง

  • คุณสามารถทำให้บิ๊กเบนส่งเสียงกริ่งทุกไตรมาสและส่งเสียงบอกเวลาได้
  • คุณสามารถลองชิมฟรีสไตล์ของแร็ปเปอร์ที่คุณชื่นชอบได้
  • คุณสามารถสร้างข้อความอ่อนเกินเพื่อมุ่งเน้นการศึกษา

ให้ปลอดภัยในช่วงโควิดนี้

ภาพ
ภาพ
ภาพ
ภาพ

รองชนะเลิศการแข่งขัน "Can't Touch This" Family Contest

แนะนำ: