Kazalo:

Šolski zvon za študente na daljavo: 6 korakov
Šolski zvon za študente na daljavo: 6 korakov

Video: Šolski zvon za študente na daljavo: 6 korakov

Video: Šolski zvon za študente na daljavo: 6 korakov
Video: У Клиента ВШИ! Моя Смешная История!:)) Откуда берутся вши! Вши как избавиться! 2024, Julij
Anonim
Šolski zvon za študente na daljavo
Šolski zvon za študente na daljavo

S pandemijo COVID-19 so se številne otroške šole odpravile na daljavo. Ta domači šolski zvonec je zabaven način, da se držite urnika, ki uporablja Raspberry Pi in zvočnik USB. To lahko storite s svojim otrokom, on se lahko nauči programiranja in lahko "pozvoni". To sem zgradil za svojo hčerko, ki hodi v 7. razred (trenutno prek dostave na daljavo) in dobro deluje, da smo pravočasno.

Zaloge

Za ta projekt boste potrebovali:

  • Računalnik Raspberry Pi - najbolje deluje, če imate WiFi, uporabil sem RPi 3B iz kompleta Kano
  • Zvočnik - uporabil sem zvočnik USB

Koda bi se lahko zlahka izvajala na računalniku linux vašega študenta ali celo na mikrokrmilniku z mikropythonom, če ima mikrokrmilnik mehanizem za pridobivanje trenutnega datuma/časa. Uporabili bi lahko tudi kateri koli ojačani zvočnik ali celo hladnejši relejno / analogni zvonec.

1. korak: Nastavite svoj Raspberry Pi

Nastavite svoj Raspberry Pi
Nastavite svoj Raspberry Pi

Obstaja veliko virov za nastavitev računalnika Raspberry Pi, zato vas napotim na enega, ki ga najde Google. Pomembno je, da ima vaš računalnik način za pravilen datum in uro. Večina sodobnih računalnikov Raspberry Pi, ki podpirajo WiFi, uporabljajo protokol NTP za nastavitev časa iz interneta, kar je način, kako sem dobil pravilen čas. RPi sem nastavil tako, da je "brez glave", kar pomeni, da nima tipkovnice ali monitorja, vendar je dostopen prek zaščitene lupine (SSH) prek interneta. Če ste dobri z RPi, lahko to nastavitev opravite brez tipkovnice / videa / miške, vendar je lažje samo nastaviti pi s temi dodatki.

Upoštevajte, da mi grafičnega vmesnika ni bilo treba uporabljati, zato sem pravkar naložil "Raspberry Pi OS (32-bitni) Lite", ki je manjši in hitrejši za prenos ter se hitreje zažene.

Konfigurirajte omrežje in možnosti vmesnika Raspberry Pi

$ sudo raspi-config

V konfiguraciji naredite naslednje:

  • Spremenite geslo - najprej to naredite, upam, preden se odpravite na splet!
  • V "Omrežne možnosti",

    • Spremenite ime gostitelja. Uporabil sem ime gostitelja: "schoolbell".
    • Povežite se z brezžičnim omrežjem LAN (če tega niste storili v nastavitvah)
  • Pri »Možnosti vmesnika« vklopite dostop SSH
  • Vedno je dobro zagnati možnost »Posodobi«

Ko to storite in znova zaženete, bi se morali z odjemalcem SSH povezati z Raspberry Pi iz drugega računalnika v istem lokalnem omrežju. Z njim se povežite z naslednjimi poverilnicami:

ime gostitelja: schoolbell.local

user: pi geslo: whateveryousetitas

Iz polja linux je to tako preprosto, kot da v ukazni vrstici vtipkate to ukazno vrstico v pozivu $:

$ ssh [email protected]

… ob pozivu vnesite geslo

To vas bo prijavilo in lahko preverite, ali je čas na Raspberry Pi pravilen. V ukazno vrstico vnesite ukaz date in preverite odgovor:

pi@schoolbell: ~ $ datum

Čet 3 september 20:44:34 AKDT 2020

Upajmo, da je to trenutni čas. Če ni pravilno, poiščite google o nastavitvi NTP na Raspberry Pi.

2. korak: Zaženite delovanje vašega zvočnega sistema

Naj vaš zvočni sistem deluje
Naj vaš zvočni sistem deluje

Predvajali bomo datoteke MP3 za zvonce, zato moramo prenesti programsko opremo za dekodiranje teh zvočnih datotek. Paket mpg321 sem dobil z vnosom tega ukaza:

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

Sledite navodilom za namestitev te programske opreme.

Uporabil sem star zvočnik USB, ki je imel čuden gonilnik in se ni samodejno konfiguriral kot privzeta zvočna kartica, zato sem ugotovil, da lahko "vlomim" zvočnik v delo z uporabo njegovega naslova strojne opreme. Po priključitvi zvočnika sem uporabil ukaz 'aplay -l' za seznam avdio naprav:

pi@schoolbell: ~ $ aplay -l

**** Seznam strojnih naprav PLAYBACK **** kartica 0: Slušalke [bcm2835 Slušalke], naprava 0: bcm2835 Slušalke [bcm2835 Slušalke] Podnaprave: Podnaprava #0: podnaprava #0 Podnaprava #1: podnaprava #1 Podnaprava #2: podnaprava #2 Podnaprava #3: podnaprava #3 Podnaprava #4: podnaprava #4 Podnaprava #5: podnaprava #5 Podnaprava #6: podnaprava #6 Podnaprava #7: podnaprava #7 kartica 1: CODEC [USB Audio CODEC], naprava 0: Avdio USB [USB Audio] Podnaprave: Podnaprava #0: podnaprava #0

Naprava, ki jo želim, je spodnja, kartica 1, naprava 0.

Zvočnik sem preizkusil z "speaker-test" z napravo "hw: 1, 0", kar pomeni kartico strojne opreme 1, napravo 0

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

Ta program oddaja hrup iz zvočnikov. Uživajte v hrupu in nato, ko vas moti, vnesite control-C. Če ne slišite hrupa, poskusite z googlom.

Zdaj imate zvok!

3. korak: Preskusite predvajanje zvonov in/ali oddajte nove zvoke

Preskusite predvajanje zvonov in/ali oddajte nove zvoke
Preskusite predvajanje zvonov in/ali oddajte nove zvoke

Za moj zvon sem zvok "bing-bong" prenesel s "freesound.org". Hvala Benboncan -u, ki je omogočil ta zvok:

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

Zvok lahko predvajate neposredno. Lahko bi neposredno naložil mp3 različico te datoteke z vnosom tega ukaza na računalniku Raspberry Pi (ob predpostavki, da je na WiFi):

pi@schoolbell: ~ $ wget

Nato sem preimenoval to datoteko:

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

Nato sem preizkusil, da lahko s tem ukazom (ki prikazuje izhod) pozvonim:

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

Visoko zmogljiv avdio predvajalnik MPEG 1.0/2.0/2.5 za plasti 1, 2 in 3. Različica 0.3.2-1 (2012/03/25). Avtor in avtor avtorskih pravic Joe Drew, ki ga zdaj vzdržujejo Nanakos Chrysostomos in drugi. Uporablja kodo različnih ljudi. Za več informacij glejte 'README'! Ta programska oprema nima absolutno nobene garancije! UPORABLJAJTE NA SVOJO TVEGANJE! Predvajanje MPEG toka iz bing-bong-chime-hq.mp3… MPEG 1.0 plast III, 128 kbit/s, 44100 Hz mono [0:02] Dekodiranje bing-bong-chime-hq.mp3 je končano.

Čestitke! Imate zvok.

Z uporabo kode za urejanje zvoka "audacity" na prenosnem računalniku sem datoteko za več zabave razdelil na "bing" in "bong". Uporabite lahko katero koli zvočno datoteko mp3 ali morda druge oblike (drugih nisem preizkusil).

4. korak: Namestite kodo in nastavite svoj urnik

Namestite kodo in nastavite svoj urnik
Namestite kodo in nastavite svoj urnik

Koda je skript python, ki dobi trenutni datum/čas in če je dan med tednom in ne praznikom, preveri, ali se čas ujema s časom zvonca, in če je potrebno.

Najprej ga boste aktivirali, nato pa ga boste samodejno zagnali vsako minuto.

Prenesite kodo iz Github -a:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Z lahkoto to naredim tako, da datoteko shranim v lokalni računalnik in nato z varno kopijo (scp) postavim na Raspberry pi.

Na svojem lokalnem računalniku kopirajte kodo iz brskalnika, nato jo prilepite v besedilno datoteko in jo shranite z imenom datoteke "schoolbell.py". Nato datoteko preskočite:

local-machine: ~ $ scp schoolbell.py [email protected]: ~/

Pozvani boste, da vnesete geslo za uporabnika pi na schoolbell.local - vnesite geslo in datoteka bo varno kopirana. Ta ukaz je treba zagnati v istem imeniku, kjer je bil shranjen skript python, in ga kopirati v domači imenik uporabnika pi. Lahko se pomaknete na schoolbell.local in koda mora biti tam:

local-machine: ~ $ ssh [email protected]

Nato na schoolbell.local navedite datoteke (morda boste videli več datotek):

pi@schoolbell: ~ $ ls

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

Zdaj kodo uredite tako, da bo imela vaš urnik zvonjenja z urejevalnikom, kot je pico:

pi@schoolbell: ~ $ pico schoolbell.py

Koda ima tri "slovarje", ki opredeljujejo melodije zvonjenja, čas njihovega predvajanja in praznike, ki se jim je treba izogniti. Zvonovi ob vikendih se samodejno preskočijo.

Slovar zvoncev je na primer:

zvonovi = {

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

Ta opredeljuje tri vrste zvonov, opozorilni zvon, začetek pouka in konec. Ker imamo samo en zvon, vsi kažejo na isto datoteko, če pa ustvarite različne tone, jih lahko spremenite. Dodate lahko celo druge vrste zvonov. Igral sem se tudi z uporabo sintetizatorja govora, vendar drugi v hiši na to niso gledali pozitivno.

Slovar bellschedule je podoben, toda "ključ" je zdaj čas za zvonec. morate uporabiti format HH: MM z vodilnimi ničlami in 24-urnim časom (vojaški čas).

bellschedule = {

'09: 00 ':' start ', #' Beseda za avtobus 'se pripravlja '09: 28': 'warn',….. '13: 58 ':' warn ', # za obdobje 4 '14: 00 ':' start ', '15: 00': 'end'}

Vrednost v tem paru ključ: vrednost je vrsta zvonca, ki ga želite uporabiti, in se mora ujemati z enim od zgoraj opredeljenih zvonov.

Nazadnje, slovar praznikov navaja datume počitnic. Oblika je LLLL-mm-dd z vodilnimi ničlami, kot je prikazano.

prazniki = {

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

Ko končate z urejanjem, shranite datoteko tako, da zapustite urejevalnik in vnesete ctrl-X, če uporabljate pico.

Naj bo koda python izvedljiva:

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

To vsem uporabnikom omogoča izvajanje kode, "a" za vse, "+" za dovoljenje za dodajanje in "x" za izvajanje.

Zdaj preizkusite kodo in opazujte izhod. Upoštevajte, da lahko datoteko zaženete tako, da vnesete ime datoteke, vendar morate določiti, da je v trenutnem imeniku, tako da pred imenom datoteke vnesete "./":

pi@schoolbell: ~ $./schoolbell.py

Šolski dan je, ura preverjanja 21:35

Koda vam bo povedala, ali je to šolski dan (npr. Ne počitnice ali konec tedna) in preverila, ali se čas ujema s časom zvonjenja. V tem primeru to ni bil čas zvonjenja, zato je čisto izstopil. Če bi bil čas zvonjenja, bi že zazvonilo.

Če želite preveriti, ali lahko vaša koda predvaja zvonce, uporabite možnost ukazne vrstice datoteke za predvajanje. Uporabili bomo datoteko bing-bong:

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

To je šolski dan, čas preverjanja 21:38 High Performance MPEG 1.0/2.0/2.5 avdio predvajalnik za Layer 1, 2 in 3. Različica 0.3.2-1 (2012/03/25). Avtor in avtor avtorskih pravic Joe Drew, ki ga zdaj vzdržujejo Nanakos Chrysostomos in drugi. …. več izhoda ….

Moral bi slišati zvonec.

Zdaj preizkusite kodo z argumentom čas. Ne pozabite vnesti časa z vodilnimi ničlami. Na primer, da preizkusim zvonec "šolskega avtobusa" ob 9.00, vtipkam:

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

To bi moralo povzročiti zvonjenje! Prav tako lahko preizkusite, da ne zvoni v času, ki ni zvonec.

5. korak: Avtomatizirajte tek s Crondom

Avtomatizirajte tek s Crondom
Avtomatizirajte tek s Crondom

Cron 'daemon' je razporejevalnik, ki izvaja ponavljajoča se opravila v sistemu Linux. Preveri, ali se datum/čas ujema z vzorcem v tabeli cron (crontab), nato pa zažene kodo, če se ujema. Uredite ga lahko z ukazom "crontab -e":

pi@schoolbell: ~ $ crontab -e

S tem se odpre urejevalnik datotek, na dnu te datoteke pa dodate naslednjo vrstico:

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

Ta ukaz pove cronu, naj zažene python3 in izvede skript v običajnem domačem imeniku (/home/pi). Pet *pravi, da bi to moralo teči vsako minuto (prva *), vsako uro (naslednja *…), vsak dan v mesecu, vsak mesec in vsak dan v tednu.

Zdaj se bo vsako minuto zagnal skript schoolbell.py. V večini minut se bo koda zagnala in ugotovila, da bi morala prenehati brez zvonjenja, če pa se bo izkazalo, da bo zadela zvonec, bo zazvonila.

Upoštevajte, da ker cron deluje samo vsako minuto, zvonov ni bilo mogoče narediti bolj natančnih kot minute. Mislim, da je teoretično možno, da če se vaš sistem zatakne, cron morda ne bo deloval nekaj sekund po koncu minute, zato bo zvonec pozen. Če nekako cron ne bi tekel celo minuto, bi zvonec zgrešil.

Nasvet: Za podaljšane počitnice (npr. Poletje) lahko prvemu znaku te vrstice dodate hashtag (#), ki ga spremeni v komentar in tako prezre njegovo izvajanje. Ko se šola vrne, preprosto odstranite # in znova se bo začel izvajati.

6. korak: Prilagodite in uživajte

Zdaj bi morali imeti delujoč sistem šolskega zvonjenja na domu in vaš učenec nikoli ne bi smel zamujati na pouk.

Ta projekt lahko prilagodite tako, da spremenite melodije zvonjenja.

  • Lahko bi zvonili v Big Benu, s četrt urnimi zvončki in urami.
  • Lahko bi poskusili svoj najljubši raperjev slog.
  • Lahko bi podali podzavestna sporočila, da se osredotočite na študij.

V tem času COVID -a bodite varni.

Slika
Slika
Slika
Slika

Podprvak na družinskem tekmovanju "Can't touch this"

Priporočena: