Kazalo:
- Zaloge
- 1. korak: Nastavite svoj Raspberry Pi
- 2. korak: Zaženite delovanje vašega zvočnega sistema
- 3. korak: Preskusite predvajanje zvonov in/ali oddajte nove zvoke
- 4. korak: Namestite kodo in nastavite svoj urnik
- 5. korak: Avtomatizirajte tek s Crondom
- 6. korak: Prilagodite in uživajte
Video: Šolski zvon za študente na daljavo: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
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
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
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
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
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
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.
Podprvak na družinskem tekmovanju "Can't touch this"
Priporočena:
HC-12 Vremenska postaja na daljavo in senzorji na daljavo: 9 korakov
Vremenska postaja HC-12 na dolge razdalje in senzorji DHT: V tej vadnici se bomo naučili, kako narediti oddaljeno vremensko postajo na dolge razdalje z dvema senzorjema dht, moduli HC12 in LCD zaslonom I2C. Oglejte si video
Odličen šolski pripomoček za vohunjenje! Nevidno pisalo s črnilom: 6 korakov
Odličen šolski vohunski pripomoček! Invisible Ink Pen Hack: S tem čudovitim krampom lahko nekomu pošljete skrivna sporočila ali celo goljufate pri razrednih testih
Šolski projekt IoT Philips Hue: 19 korakov
IoT School Project Philips Hue: To je priročnik, ki sem ga moral napisati za šolo. Ni popoln in nisem prepričan, ali ga sploh lahko uporabite. Moje znanje o API -jih je minimalno. Želeli smo narediti interaktivno ogledalo z lučmi na zadnji strani, ki bi se odzivalo na vreme, svetlobo iz
LED škatla za šolski simpozij Delta: 7 korakov
LED škatla za šolski simpozij Delta:
Zvon iz želoda: 10 korakov (s slikami)
Acorn Chime: Avtor: Charlie DeTar, Christina Xu, Boris Kizelshteyn, Hannah Perner-Wilson Digitalni zvonec vetra z visečimi želodi. Zvok proizvaja oddaljeni zvočnik, podatki o zvokih zvonjenja pa se naložijo v Pachube