Мазмұны:

Қашықтықтағы студенттерге арналған мектеп қоңырауы: 6 қадам
Қашықтықтағы студенттерге арналған мектеп қоңырауы: 6 қадам

Бейне: Қашықтықтағы студенттерге арналған мектеп қоңырауы: 6 қадам

Бейне: Қашықтықтағы студенттерге арналған мектеп қоңырауы: 6 қадам
Бейне: Басқа тышты деген осы 😡 2024, Шілде
Anonim
Қашықтықтағы студенттерге арналған мектеп қоңырауы
Қашықтықтағы студенттерге арналған мектеп қоңырауы

COVID-19 пандемиясымен көптеген балалар мектептері қашықтықтан жеткізуге көшті. Бұл үйдегі қоңырау - бұл Raspberry Pi мен USB динамигін қолданатын кестеде қалудың қызықты әдісі. Сіз мұны балаңызбен жасай аласыз, олар бағдарламалау туралы біле алады және «қоңырау соғуы» мүмкін. Мен мұны 7 -сыныпқа баратын қызыма арнап салдым (қазіргі уақытта қашықтықтан жеткізу арқылы) және ол бізді уақытында ұстап тұру үшін жақсы жұмыс істейді.

Жабдықтар

Бұл жоба үшін сізге қажет:

  • Raspberry Pi компьютері - егер сізде WiFi болса, ол жақсы жұмыс істейді, мен Kano жиынтығынан RPi 3B қолдандым.
  • Динамик - мен USB динамигін қолдандым

Микроконтроллерде ағымдағы күнді/уақытты алудың қандай да бір тетігі болса, код сіздің студенттік линукс компьютерінде немесе тіпті микропитонмен жұмыс істейтін микроконтроллерде оңай іске қосылуы мүмкін. Сондай -ақ, кез келген күшейтілген динамикті, тіпті салқындатқыш реле / аналогтық қоңырауды қолдануға болады.

1 -қадам: Raspberry Pi орнатыңыз

Raspberry Pi орнатыңыз
Raspberry Pi орнатыңыз

Raspberry Pi компьютерін орнатуға арналған көптеген ресурстар бар, сондықтан мен сізді Google табатын компьютерге сілтеме жасаймын. Ең бастысы, сіздің компьютеріңізде дұрыс күн мен уақытты алу әдісі бар. Қазіргі заманғы Wi-Fi қосылған Raspberry Pi компьютерлерінің көпшілігі NTP протоколымен интернеттен уақытты белгілейді, осылайша мен дұрыс уақыт алдым. Мен RPi -ді «бассыз» күйге келтірдім, яғни оның пернетақтасы немесе мониторы жоқ, бірақ оны қауіпсіз қабықпен (SSH) интернет арқылы алуға болады. Егер сіз RPi -мен жақсы жұмыс жасасаңыз, онда бұл орнатуды пернетақта / бейне / тінтуірсіз жасауға болады, бірақ бұл аксессуарлармен pi -ді орнату оңайырақ.

Маған графикалық интерфейсті қолданудың қажеті жоқ екенін ескеріңіз, сондықтан мен «Raspberry Pi OS (32-биттік) Lite» жүктедім, ол жүктеу үшін кішірек және жылдам, ал жүктеу жылдамырақ.

Raspberry Pi желісін және интерфейс параметрлерін конфигурациялаңыз

$ sudo raspi-config

Конфигурацияда келесі әрекеттерді орындаңыз:

  • Құпия сөзді өзгертіңіз - мұны алдымен желіге кірмес бұрын жасаңыз!
  • «Желі параметрлері» бөлімінде

    • Хост атауын өзгертіңіз. Мен хост атауын қолдандым: «мектеп қоңырауы».
    • Сымсыз LAN желісіне қосылыңыз (егер сіз мұны орнатуда жасамаған болсаңыз)
  • «Интерфейс параметрлері» астында SSH қатынасын қосыңыз
  • «Жаңарту» опциясын іске қосу әрқашан жақсы

Сіз мұны істеп, қайта жүктегеннен кейін, SSH клиентінің көмегімен сол жергілікті желідегі басқа компьютерден Raspberry Pi -ге қосылуыңыз керек. Оған келесі тіркелгі деректерін қолданып қосылыңыз:

хост атауы: schoolbell.local

пайдаланушы: pi құпия сөзі: барлық мәліметтер

Linux қорабынан бұл $ шақыруындағы пәрмен жолын теру сияқты қарапайым:

$ ssh [email protected]

… құпия сөзді жылдам енгізіңіз

Бұл сізге кіруге мүмкіндік береді және сіз Raspberry Pi -дегі уақыттың дұрыстығын тексере аласыз. Пәрмен жолында күн пәрменін теріп, жауапты тексеріңіз:

pi@schoolbell: ~ $ date

3 қыркүйек 20:44:34 AKDT 2020 ж

Бұл қазіргі уақыт деп үміттенемін. Егер бұл дұрыс болмаса, Raspberry Pi -де NTP орнату туралы google -ге хабарласыңыз.

2 -қадам: Дыбыстық жүйені жұмысқа қосыңыз

Дыбыстық жүйені жұмысқа қосыңыз
Дыбыстық жүйені жұмысқа қосыңыз

Біз қоңырауларға арналған MP3 файлдарын ойнайтын боламыз, сондықтан біз бұл аудио файлдарды декодтау үшін бағдарламалық қамтамасыз етуді жүктеуіміз керек. Мен мына пәрменді енгізу арқылы mpg321 пакетін алдым:

pi@schoolbell: ~ $ sudo apt-get mpg321 орнатыңыз

Бұл бағдарламалық жасақтаманы орнату үшін нұсқауларды орындаңыз.

Мен біртүрлі драйвері бар және әдепкі дыбыс картасы ретінде автоматты түрде конфигурацияланбаған ескі USB динамигін қолдандым, сондықтан мен оның аппараттық мекенжайын пайдалану арқылы динамикті «бұзуға» болатынын білдім. Динамикті қосқаннан кейін мен аудио құрылғыларды тізімдеу үшін 'aplay -l' пәрменін қолдандым:

pi@schoolbell: ~ $ aplay -l

**** PLAYBACK аппараттық құрылғыларының тізімі **** картасы 0: Құлаққаптар [bcm2835 Құлаққаптар], құрылғы 0: bcm2835 Құлаққаптар [bcm2835 Құлаққаптар] Ішкі құрылғылар: Ішкі құрылғы #0: ішкі құрылғы #0 Ішкі құрылғы #1: ішкі құрылғы #1 Қосымша құрылғы #2: қосалқы құрылғы #2 қосалқы құрылғы #3: қосалқы құрылғы #3 қосалқы құрылғы #4: қосалқы құрылғы #4 қосалқы құрылғы #5: қосалқы құрылғы #5 қосалқы құрылғы #6: қосалқы құрылғы #6 қосалқы құрылғы #7: қосалқы құрылғы #7 карт 1: CODEC [USB аудио кодегі], құрылғы 0: USB аудио [USB аудио] қосалқы құрылғылар: ішкі құрылғы #0: ішкі құрылғы #0

Мен қалаған құрылғы - төменгі, 1 -карта, 0 -құрылғы.

Мен динамикті «hw: 1, 0» құрылғысы арқылы «динамик-тестпен» сынап көрдім, яғни аппараттық карта 1, құрылғы 0

pi@schoolbell: ~ $ спикер -тест -D hw: 1, 0

Бұл бағдарлама динамиктерден шуды шығарады. Шудан ләззат алыңыз, ренжіген кезде control-C теріңіз. Егер сіз ешқандай дыбыс естімесеңіз, google -ге кіріңіз.

Енді сізде дыбыс бар!

3 -қадам: Қоңырау дыбыстарын ойнатуды тексеріңіз және/немесе жаңа дыбыстар шығарыңыз

Қоңырау дыбыстарын ойнатуды тексеріңіз және/немесе жаңа дыбыстар шығарыңыз
Қоңырау дыбыстарын ойнатуды тексеріңіз және/немесе жаңа дыбыстар шығарыңыз

Мен қоңырау үшін «freesound.org» сайтынан «bing-bong» дыбысын жүктедім. Бұл дыбысты қол жетімді еткені үшін 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). Джо Дрюдің авторлық және авторлық құқықтары, қазір Nanakos Chrysostomos және т.б. Әр түрлі адамдардың кодын қолданады. Толығырақ «README» бөлімінен қараңыз! БҰЛ БАҒДАРЛАМА КЕПІЛДІКСІЗ БОЛМАЙДЫ! ӨЗ ТӘУЕКЕЛІҢДІ ПАЙДАЛАНЫҢЫЗ! MPEG ағыны bing-bong-chime-hq.mp3 файлынан ойнатылуда… MPEG 1.0 қабаты III, 128 кбит/с, 44100 Гц моно [0:02] Bing-bong-chime-hq.mp3 файлын декодтау аяқталды.

Құттықтаймын! Сізде аудио бар.

Ноутбуктағы «audacity» дыбыстық өңдеу кодын қолдана отырып, мен көңілді болу үшін файлды «bing» және «bong» деп бөлдім. Сіз кез келген mp3 немесе басқа форматты қолдана аласыз (мен басқаларды тексермегенмін) дыбыстық файлдар.

4 -қадам: Кодты орнатыңыз және кестеңізді орнатыңыз

Кодты орнатыңыз және кестеңізді орнатыңыз
Кодты орнатыңыз және кестеңізді орнатыңыз

Код - бұл ағымдағы күнді/уақытты алатын питон сценарийі, ал егер бұл күн демалыс емес, жұмыс күні болса, ол уақыт қоңырау уақытына сәйкес келетінін тексереді, қажет болса шымылдайды.

Алдымен сіз оны іске қосасыз, содан кейін оны минут сайын іске қосу үшін автоматтандырасыз.

Github -тен кодты жүктеңіз:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Мен мұны файлды жергілікті компьютерде сақтау, содан кейін оны Raspberry pi -ге қою үшін қауіпсіз көшірмені (scp) пайдалану арқылы оңай жасаймын.

Жергілікті компьютерде браузерден кодты көшіріп, мәтіндік файлға қойыңыз және оны «schoolbell.py» файл атауымен сақтаңыз. Содан кейін файлды жылжытыңыз:

жергілікті машина: ~ $ scp schoolbell.py [email protected]: ~/

Сізден schoolbell.local сайтындағы pi пайдаланушысының құпия сөзін енгізу сұралады - құпия сөзді енгізіңіз, сонда файл қауіпсіз көшіріледі. Бұл пәрмен python сценарийі сақталған каталогта орындалуы керек және оны pi пайдаланушысының үй каталогына көшіреді. Schoolbell.local сайтына ssh жіберуге болады және код сонда болуы керек:

жергілікті машина: ~ $ ssh [email protected]

Содан кейін schoolbell.local сайтында файлдарды тізімдеңіз (сіз басқа файлдарды көре аласыз):

pi@мектеп қоңырауы: ~ $ ls

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

Пико сияқты редакторды пайдаланып қоңырау кестесін жасау үшін кодты өңдеңіз:

pi@schoolbell: ~ $ pico schoolbell.py

Кодта үш «сөздік» бар, олар қоңырау үндерін, оларды ойнау уақытын және демалыс күндерін анықтайды, демалыс күндері қоңырау автоматты түрде өткізіп жіберіледі.

Мысалы, қоңырау үнінің сөздігі:

қоңырау үндері = {

'ескерту': 'bing-bong-chime-hq.mp3', 'бастау': 'bing-bong-chime-hq.mp3', 'соңы': 'bing-bong-chime-hq.mp3'}

Бұл қоңыраудың үш түрін, ескерту қоңырауын, сабақтың басталуын және аяқталуын анықтайды. Бізде тек бір ғана қоңырау үні болғандықтан, олардың барлығы бір файлды көрсетеді, бірақ егер сіз әр түрлі тондарды жасасаңыз, оларды өзгертуге болады. Сіз қоңырау үндерінің басқа түрлерін қоса аласыз. Мен қоңырауларды айту үшін сөйлеу синтезаторының көмегімен ойнадым, бірақ бұл үйдегі басқаларға ұнамады.

Қоңырау кестесі сөздігі ұқсас, бірақ «кілт» қазір қоңыраудың уақыты. жетекші нөлдермен және 24 сағаттық уақытпен (әскери уақыт) HH: MM форматын қолдану қажет.

қоңырау кестесі = {

'09: 00 ':' старт ', #' автобус 'қоңырауы дайындалып жатыр '09: 28': 'ескерту',….. '13: 58 ':' ескерту ', # 4 кезеңіне '14: 00 ':' бастау ', '15: 00': 'соңы'}

Бұл пернедегі мән: мән жұбы - бұл қолданылатын қоңырау үнінің түрі және жоғарыда анықталған қоңырау үндерінің біріне сәйкес келуі қажет.

Соңында мереке сөздігінде мереке күндері көрсетілген. Пішімі-ЖЖЖЖ-мм-кк, суретте көрсетілгендей нөлдері бар.

демалыс = {

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

Өңдеуді аяқтағаннан кейін, редактордан шығу арқылы файлды сақтаңыз, егер сіз пико қолдансаңыз, ctrl-X теріңіз.

Питон кодын орындалатын етіп жасаңыз:

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

Бұл барлық пайдаланушыларға кодты орындауға мүмкіндік береді, барлығына «а», рұқсатқа «+» және орындау үшін «x».

Енді кодты тексеріңіз және шығуды бақылаңыз. Файлды файл атауын теру арқылы іске қосуға болатынын, бірақ файл атауының алдында «./» теру арқылы оның ағымдағы каталогта екенін көрсету қажет екенін ескеріңіз:

pi@мектеп қоңырауы: ~ $./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). Джо Дрюдің авторлық және авторлық құқықтары, қазір Nanakos Chrysostomos және т.б. …. көбірек шығару ….

Сіз қоңырауды естуіңіз керек еді.

Енді уақытты дәлел ретінде кодты тексеріңіз. Уақытты жетекші нөлдермен енгізуді ұмытпаңыз. Мысалы, таңертеңгі 9 -да «мектеп автобусы» қоңырауын тексеру үшін мен мынаны жазамын:

pi@мектеп қоңырауы: ~ $./schoolbell.py 09:00

Бұл сіздің қоңырауыңыздың соғылуына себеп болуы керек! Сондай-ақ, қоңырау соғылмайтын уақытта қоңырау шалмайтынын тексеруге болады.

5 -қадам: Crond көмегімен жүгіруді автоматтандыру

Crond көмегімен жүгіруді автоматтандыру
Crond көмегімен жүгіруді автоматтандыру

Cron 'демон - бұл Linux жүйесінде қайталанатын тапсырмаларды орындайтын жоспарлаушы. Ол күн/уақыт cron кестесіндегі (crontab) үлгіге сәйкес келетінін тексереді, содан кейін ол сәйкес болса, кодты іске қосады. Сіз оны «crontab -e» пәрмені арқылы өңдей аласыз:

pi@schoolbell: ~ $ crontab -e

Бұл файл редакторын ашады және осы файлдың төменгі жағына келесі жолды қосасыз:

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

Бұл команда cron -ге сценарийді қалыпты үй каталогында (/home/pi) орындайтын python3 іске қосуды айтады. Бес *бұл әр минут сайын (бірінші *), сағат сайын (келесі *…), айдың әр күнінде, ай сайын және аптаның әр күнінде орындалуы керек дейді.

Енді әр минут сайын schoolbell.py сценарийі іске қосылады. Көптеген минуттарда код іске қосылады, ол шыңылдамай -ақ өшуі керек, бірақ егер қоңырау соғылатын болса, ол шырылдайды.

Назар аударыңыз, себебі cron әр минут сайын ғана жұмыс істейді, сіз қоңырауды минутына қарағанда түйіршіктей алмадыңыз. Менің ойымша, егер сіздің жүйеңіз қатып қалса, cron минуттың жоғарғы бөлігінен кейін бірнеше секунд бойы жұмыс істемеуі мүмкін, бұл қоңырауды кешіктіреді. Егер қандай да бір жолмен cron толық минутқа жүгірмесе, қоңырау жіберілмейді.

Кеңес: Ұзартылған демалыстар үшін (мысалы, жаз) осы жолдың бірінші таңбасына хэштег (#) қосуға болады, ол оны түсініктемеге айналдырады және осылайша оның орындалуын елемейді. Мектеп сессияға оралғанда, # санын алып тастаңыз, ол қайтадан іске қосылады.

6 -қадам: теңшеңіз және ләззат алыңыз

Енді сізде үйде жұмыс істейтін қоңырау жүйесі болуы керек және сіздің оқушыңыз ешқашан сабаққа кешікпеуі керек.

Сіз қоңырау үндерін өзгерту арқылы бұл жобаны реттей аласыз.

  • Сіз Биг Бенге қоңырау шала аласыз, сағатына сағаттық қоңыраулар мен сағаттар.
  • Сіз сүйікті рэпердің фристайлынан үлгі ала аласыз.
  • Сіз оқуға назар аудару үшін сублиминалды хабарламалар жасай аласыз.

COVID -тің осы кезеңінде сақ болыңыз.

Кескін
Кескін
Кескін
Кескін

«Бұған қол жеткізу мүмкін емес» отбасылық сайысында екінші орын

Ұсынылған: