Tartalomjegyzék:

Iskolai csengő távoktatóknak: 6 lépés
Iskolai csengő távoktatóknak: 6 lépés

Videó: Iskolai csengő távoktatóknak: 6 lépés

Videó: Iskolai csengő távoktatóknak: 6 lépés
Videó: iskolai csengő hangja 2024, Július
Anonim
Iskolai csengő távoktatóknak
Iskolai csengő távoktatóknak

A COVID-19 járvány miatt sok gyermekiskola távszállításra került. Ez az otthoni iskolai harangszó szórakoztató módja annak, hogy menetrendben maradjon, Raspberry Pi és USB hangszóró használatával. Készítheted a gyerekeddel, és megtanulhatják a programozást, és "csengethetnek". Ezt a 7. osztályos lányomnak építettem (jelenleg távszállításon keresztül), és jól működik, hogy időben tartunk.

Kellékek

Ehhez a projekthez szüksége lesz:

  • Raspberry Pi számítógép - Akkor működik a legjobban, ha van WiFi, én egy Kano készletből származó RPi 3B -t használtam
  • Hangszóró - USB hangszórót használtam

A kód könnyen futtatható a tanuló linuxos számítógépén, vagy akár egy mikropitont futtató mikrovezérlőn, amennyiben a mikrokontroller rendelkezik valamilyen mechanizmussal az aktuális dátum/idő lekéréséhez. Bármilyen erősített hangszóró, vagy akár hűtő relé / analóg csengő is használható.

Lépés: Állítsa be a Raspberry Pi -t

Állítsa be a Raspberry Pi -t
Állítsa be a Raspberry Pi -t

Rengeteg erőforrás áll rendelkezésre a Raspberry Pi számítógép beállításához, ezért arra hivatkozom, amelyet a Google talál. A legfontosabb dolog az, hogy a számítógépen mód van a helyes dátum és idő lekérésére. A legtöbb modern WiFi-kompatibilis Raspberry Pi számítógép az NTP protokollt használja az idő beállítására az internetről, így kaptam a helyes időt. Az RPi -t úgy állítottam be, hogy "fejetlen", azaz nincs billentyűzete vagy monitorja, de biztonságos shell (SSH) segítségével elérhető az interneten keresztül. Ha jó az RPi, akkor ezt a beállítást billentyűzet / videó / egér nélkül is elvégezheti, de egyszerűbb a pi beállítása ezekkel a kiegészítőkkel.

Ne feledje, hogy nem kellett használnom a grafikus felületet, ezért csak letöltöttem a "Raspberry Pi OS (32-bit) Lite" -t, amely kisebb és gyorsabb letöltéssel, valamint gyorsabban indul.

Konfigurálja a Raspberry Pi hálózatát és interfész -beállításait

$ sudo raspi-config

A konfigurációban tegye a következőket:

  • Változtassa meg a jelszót - először ezt tegye meg, remélhetőleg mielőtt online lesz!
  • A "Hálózati beállítások" részben

    • Módosítsa a gazdagép nevét. A hostnevet használtam: "iskolacsengő".
    • Csatlakozzon a vezeték nélküli LAN -hoz (ha ezt még nem tette meg a beállítás során)
  • Az "Interfészbeállítások" alatt kapcsolja be az SSH -hozzáférést
  • Mindig jó futtatni a "Frissítés" opciót

Miután ezt megtette és újraindította, képesnek kell lennie csatlakozni a Raspberry Pi -hez egy másik számítógépről ugyanazon a helyi hálózaton egy SSH ügyfél használatával. Csatlakozzon hozzá a következő hitelesítő adatok használatával:

gazdagépnév: iskolai csengő. helyi

user: pi jelszó: whatyousetitas

Egy linuxos dobozból ez olyan egyszerű, mint beírni ezt a parancssort a $ parancssorba:

$ ssh [email protected]

… Írja be a jelszót a felszólításra

Ezzel bejelentkezik, és ellenőrizheti, hogy a Raspberry Pi -n az idő helyes -e. A parancssorba írja be a date parancsot, és ellenőrizze a választ:

pi@iskolacsengő: ~ $ dátum

Cs. 3. szept. 20:44:34 AKDT 2020

Remélhetőleg ez a mostani idő. Ha nem helyes, google -oljon az NTP beállításáról a Raspberry Pi -n.

2. lépés: Működtesse hangrendszerét

Működtesse hangrendszerét
Működtesse hangrendszerét

MP3 fájlokat fogunk játszani a harangok számára, ezért le kell töltenünk egy szoftvert az audio fájlok dekódolásához. Az mpg321 csomagot a következő parancs beírásával kaptam:

pi@iskolacsengő: ~ $ sudo apt-get install mpg321

A szoftver telepítéséhez kövesse az utasításokat.

Egy régi USB -hangszórót használtam, amelynek furcsa illesztőprogramja volt, és nem volt teljesen automatikusan beállítva alapértelmezett hangkártyaként, így azt találtam, hogy a hardvercím használatával "feltörhetem" a hangszórót. A hangszóró csatlakoztatása után az 'aplay -l' parancsot használtam az audioeszközök listázására:

pi@iskolacsengő: ~ $ aplay -l

**** A LEJÁTSZÁSI hardvereszközök listája **** kártya 0: Fejhallgató [bcm2835 fejhallgató], eszköz 0: bcm2835 fejhallgató [bcm2835 fejhallgató] Subdevices: 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], eszköz 0: USB Audio [USB Audio] Aleszközök: 0

A kívánt eszköz az alsó, 1. kártya, 0. eszköz.

A hangszórót "hangsugárzó-teszteléssel" teszteltem, a "hw: 1, 0", azaz 1-es hardverkártya, 0-as eszköz használatával

pi@iskolacsengő: ~ $ hangszóró -teszt -D hw: 1, 0

Ez a program zajt ad ki a hangszórókból. Élvezze a zajt, majd írja be a control-C billentyűt, ha ideges lesz. Ha nem hall zajt, próbálja meg a google -t.

Most van hangod!

3. lépés: Haranghangok tesztelése és/vagy új hangok készítése

Haranghangok tesztelése és/vagy új hangok készítése
Haranghangok tesztelése és/vagy új hangok készítése

A harangomhoz letöltöttem a "bing-bong" hangot a "freesound.org" oldalról. Köszönet Benboncannak, hogy elérhetővé tette ezt a hangot:

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

Közvetlenül lejátszhatja a hangot. Közvetlenül letölthetném a fájl mp3 verzióját, ha beírnám ezt a parancsot a Raspberry Pi számítógépen (feltéve, hogy WiFi -n van):

pi@iskolacsengő: ~ $ wget

Ezután átneveztem ezt a fájlt:

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

Ezután kipróbáltam, hogy harangozhatok -e ezzel a paranccsal (kimenetet mutatva):

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

Nagy teljesítményű MPEG 1.0/2.0/2.5 audiolejátszó az 1., 2. és 3. réteghez. 0.3.2-1 verzió (2012/03/25). Írta és szerzői jogait Joe Drew készítette, most Nanakos Chrysostomos és mások tartják fenn. Különböző személyektől származó kódokat használ. További információért olvassa el a „README” részt! EZ A SZOFTVER TELJESEN GARANCIA NÉLKÜL! HASZNÁLAT CSAK SAJÁT FELELŐSSÉGRE! MPEG adatfolyam lejátszása a bing-bong-chime-hq.mp3… MPEG 1.0 réteg III, 128 kbit/s, 44100 Hz mono [0:02] A bing-bong-chime-hq.mp3 dekódolása befejeződött.

Gratula! Hangja van.

A laptopom "audacity" hangszerkesztő kódját használva a szórakozás kedvéért felosztottam a fájlt "bing" -re és "bong" -ra. Használhat bármilyen mp3 vagy esetleg más formátumú (másokat nem teszteltem) hangfájlt.

4. lépés: Telepítse a kódot és állítsa be az ütemtervet

Telepítse a kódot és állítsa be az ütemtervet
Telepítse a kódot és állítsa be az ütemtervet

A kód egy python -szkript, amely megkapja az aktuális dátumot/időt, és ha a dátum egy hétköznap, és nem ünnepnap, akkor ellenőrzi, hogy az idő egyezik -e a csengetési idővel, és ha kell, cseng.

Először működésbe hozza, majd automatizálja, hogy minden percben futjon.

Töltse le a kódot a Github -ról:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Könnyen megtehetem ezt úgy, hogy elmenti a fájlt egy helyi számítógépre, majd biztonságos másolást (scp) használ a Raspberry pi -re.

A helyi gépen másolja ki a kódot a böngészőből, majd illessze be egy szöveges fájlba, és mentse el az "schoolbell.py" fájlnévvel. Ezután scp a fájlt:

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

Meg kell adnia a pi felhasználó jelszavát az schoolbell.local oldalon - írja be a jelszót, és a fájl biztonságosan másolódik. Ezt a parancsot ugyanabban a könyvtárban kell futtatni, ahová a python szkriptet mentették, és átmásolja a pi felhasználó saját könyvtárába. Átléphet az schoolbell.local oldalra, és a kódnak ott kell lennie:

local-machine: ~ $ ssh [email protected]

Ezután a schoolbell.local oldalon sorolja fel a fájlokat (előfordulhat, hogy több fájlt is láthat):

pi@iskolacsengő: ~ $ ls

bing-bong-chime-hq.mp3 iskolai csengő.py

Most szerkessze a kódot, hogy a harangütemezése megfeleljen egy szerkesztőnek, például a pico -nak:

pi@iskolacsengő: ~ $ pico schoolbell.py

A kódnak három "szótára" van, amelyek meghatározzák a lejátszandó csengőhangokat, a lejátszás idejét és az elkerülendő ünnepeket. A hétvégi harangok automatikusan kihagyásra kerülnek.

Például a belltones szótár a következő:

harangok = {

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

Ez háromféle csengőt határoz meg, egy figyelmeztető csengőt, az óra kezdetét és a végét. Mivel csak egy csengőhangunk van, mindegyik ugyanarra a fájlra mutat, de ha különböző hangokat ad meg, akkor megváltoztathatja azokat. Még más típusú csengőhangokat is hozzáadhat. Én is játszottam a beszédszintetizátor használatával a harangok megszólaltatásához, de ezt a ház többi tagja nem nézte jó szemmel.

A bellschedule szótár hasonló, de a "kulcs" most a harang ideje. HH: MM formátumot kell használnia, kezdő nullákkal és 24 órás idővel (katonai idő).

harangütemezés = {

'09: 00 ':' start ', #' Bus 'csengő készülődik '09: 28': 'alert',….. '13: 58 ':' alert ', # 4 -es időszakra '14: 00 ':' start ', '15: 00': 'end'}

Az ebben a kulcsban: értékpár a használandó csengőhang típusa, és meg kell egyeznie a fent meghatározott csengőhangok egyikével.

Végül az ünnepek szótár felsorolja az ünnepnapokat. A formátum YYYY-mm-dd, a kezdő nullákkal az ábrán látható módon.

ünnepek = {

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

A szerkesztés befejezése után mentse el a fájlt a szerkesztőből való kilépéssel, és írja be a ctrl-X billentyűt, ha pico-t használ.

Tegye futtathatóvá a python kódot:

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

Ez lehetővé teszi, hogy minden felhasználó végrehajthassa a kódot, az "a" mindenki számára, a "+" az engedély hozzáadásához és az "x" a végrehajtáshoz.

Most próbálja ki a kódot, és figyelje meg a kimenetet. Ne feledje, hogy a fájlt a fájlnév begépelésével futtathatja, de meg kell adnia, hogy az az aktuális könyvtárban van, a "./" gombbal a fájlnév előtt:

pi@iskolacsengő: ~ $./schoolbell.py

Iskola van, ellenőrzési idő 21:35

A kód megmondja, hogy iskolai nap van -e (pl. Nem ünnep vagy hétvége), és megnézi, hogy az idő egyezik -e a harangozási idővel. Ebben az esetben nem harangozási idő volt, így csak tisztán lépett ki. Ha történetesen harangszó lenne, akkor csengett volna.

Annak ellenőrzéséhez, hogy a kód képes -e harangozni, használja a lejátszandó fájl parancssori opcióját. A bing-bong fájlunkat fogjuk használni:

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

Iskolanap van, ellenőrzési idő 21:38 Nagy teljesítményű MPEG 1.0/2.0/2.5 audiolejátszó az 1., 2. és 3. réteghez. 0.3.2-1 verzió (2012/03/25). Írta és szerzői jogait Joe Drew készítette, most Nanakos Chrysostomos és mások tartják fenn. …. több kimenet….

Hallanod kellett volna a csengőt.

Most tesztelje a kódot egy argumentum használatával. Ne felejtse el beírni az időt kezdő nullákkal. Például, hogy reggel 9 órakor teszteljem az "iskolabusz" csengőmet, beírom:

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

Ennek hatására meg kell szólalnia a harangját! Azt is tesztelheti, hogy nem csenget-e nem csengő időben.

5. lépés: Automatizálja a futást Cronddal

Automatizálja a futást Cronddal
Automatizálja a futást Cronddal

A cron 'daemon' egy ütemező, amely ismétlődő feladatokat futtat linuxos rendszeren. Ellenőrzi, hogy a dátum/idő megegyezik -e a cron tábla mintájával (crontab), majd futtatja a kódot, ha igen. Szerkesztheti a "crontab -e" paranccsal:

pi@iskolacsengő: ~ $ crontab -e

Ez megnyit egy fájlszerkesztőt, és a fájl alján a következő sort kell hozzáadnia:

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

Ez a parancs utasítja a cron -t, hogy futtassa a python3 -at, végrehajtva a szkriptjét a normál saját könyvtárban (/home/pi). Az ötösök azt mondják, hogy ennek minden percben (első *), óránként (következő *…), a hónap minden napján, minden hónapban és a hét minden napján futnia kell.

Most minden percben az schoolbell.py parancsfájl fut. A legtöbb percben a kód futni fog, és úgy találja, hogy csak kilép csipogás nélkül, de ha kiderül, hogy elér egy csengőidőt, akkor csipog.

Ne feledje, hogy mivel a cron csak minden percben fut, a csengőket nem tehetné részletesebbé, mint a percet. Azt hiszem, elméletileg lehetséges, hogy ha a rendszer elakad, a cron esetleg nem fut néhány másodpercig a perc vége után, ami késlelteti a csengőt. Ha valahogy a cron nem fut a teljes percig, a csengő kimarad.

Tipp: Hosszabb ünnepek (pl. Nyár) esetén a sor első karakteréhez hashtaget (#) adhat, amely megjegyzéssé alakítja, és így figyelmen kívül hagyja a futást. Amikor az iskola újra munkába áll, csak távolítsa el a # karaktert, és újra elindul.

6. lépés: Testreszabás és élvezet

Most működő otthoni iskolai csengőrendszerrel kell rendelkeznie, és a tanuló soha ne késsen az óráról.

Ezt a projektet testreszabhatja a csengőhangok megváltoztatásával.

  • Becsengetheti a Big Ben-t, negyedóránként harangozva és csengetve az órákat.
  • Kipróbálhatod kedvenc rapper freestyle -dat.
  • Tudattalan üzeneteket küldhet a tanulmányozásra.

Maradjon biztonságban a COVID idején.

Kép
Kép
Kép
Kép

Második hely a "Ezt nem érinthetem" családi versenyen

Ajánlott: