Obsah:
- Zásoby
- Krok 1: Nastavte si Raspberry Pi
- Krok 2: Zprovozněte svůj zvukový systém
- Krok 3: Otestujte přehrávání zvuků Bell a/nebo vytvářejte nové zvuky
- Krok 4: Nainstalujte kód a nastavte si rozvrh
- Krok 5: Automatizujte běh s Crondem
- Krok 6: Přizpůsobte si a užívejte si
Video: Školní zvonek pro distanční studenty: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
S pandemií COVID-19 přešlo mnoho dětských škol na dálkové doručování. Tento zvonek pro domácí školu je zábavný způsob, jak zůstat podle plánu, a to pomocí Raspberry Pi a USB reproduktoru. S dítětem to zvládnete a oni se mohou naučit programovat a mohou „zazvonit“. Postavil jsem to pro svou dceru, která chodí do 7. třídy (v současné době prostřednictvím doručování na dálku), a funguje dobře, že jsme včas.
Zásoby
Pro tento projekt budete potřebovat:
- Počítač Raspberry Pi - funguje nejlépe, pokud máte WiFi, použil jsem RPi 3B ze sady Kano
- Reproduktor - Použil jsem reproduktor USB
Kód by mohl snadno běžet na linuxovém počítači vašeho studenta nebo dokonce na mikrokontroléru s mikropythonem, pokud má mikrokontrolér nějaký mechanismus pro získání aktuálního data/času. Lze také použít jakýkoli zesílený reproduktor nebo dokonce chladič relé / analogový zvonek.
Krok 1: Nastavte si Raspberry Pi
Existuje velké množství zdrojů pro nastavení počítače Raspberry Pi, takže vás odkazuji na ten, který najde Google. Důležité je, že váš počítač má způsob, jak získat správné datum a čas. Většina moderních počítačů Raspberry Pi s podporou WiFi používá k nastavení času z internetu protokol NTP, což je způsob, jakým jsem získal správný čas. Nastavil jsem svůj RPi jako „bezhlavý“, což znamená, že nemá klávesnici ani monitor, ale je přístupný přes zabezpečený shell (SSH) přes internet. Pokud jste dobří s RPi, můžete toto nastavení provést bez klávesnice / videa / myši, ale je jednodušší nastavit pi s tímto příslušenstvím.
Všimněte si, že jsem nepotřeboval používat grafické rozhraní, a tak jsem si stáhl „Raspberry Pi OS (32bitový) Lite“, který je menší a rychlejší ke stažení a rychleji se spouští.
Konfigurujte možnosti sítě a rozhraní Raspberry Pi
$ sudo raspi-config
V konfiguraci proveďte následující:
- Změňte heslo - udělejte to nejprve, doufejme, než přejdete do režimu online!
-
V části „Možnosti sítě“
- Změňte název hostitele. Použil jsem název hostitele: „školní zvonek“.
- Připojte se k bezdrátové síti LAN (pokud jste to neudělali v nastavení)
- V části „Možnosti rozhraní“zapněte přístup SSH
- Vždy je dobré spustit možnost „Aktualizovat“
Jakmile to provedete a restartujete, měli byste být schopni se připojit k Raspberry Pi z jiného počítače ve stejné místní síti pomocí klienta SSH. Připojte se k němu pomocí následujících přihlašovacích údajů:
název hostitele: schoolbell.local
uživatel: pi heslo: whateveryousetitas
Z linuxového pole je to tak jednoduché, jako napsat tento příkazový řádek do řádku $:
$ ssh [email protected]
… na výzvu zadejte heslo
Tím se přihlásíte a můžete zkontrolovat, zda je čas na Raspberry Pi správný. Na příkazový řádek zadejte příkaz date a zkontrolujte odpověď:
pi@schoolbell: ~ $ date
Čt 3. září 20:44:34 AKDT 2020
Naštěstí je to aktuální čas. Pokud to není správné, Google o nastavení NTP na Raspberry Pi.
Krok 2: Zprovozněte svůj zvukový systém
Budeme hrát soubory MP3 pro zvony, takže musíme stáhnout software pro dekódování těchto zvukových souborů. Získal jsem balíček mpg321 zadáním tohoto příkazu:
pi@schoolbell: ~ $ sudo apt-get install mpg321
Při instalaci tohoto softwaru postupujte podle pokynů.
Použil jsem starý USB reproduktor, který měl podivný ovladač a nebyl plně automaticky nakonfigurován jako výchozí zvuková karta, takže jsem zjistil, že mohu reproduktor „hacknout“do práce pomocí jeho hardwarové adresy. Po připojení reproduktoru jsem pomocí příkazu „aplay -l“vypsal seznam zvukových zařízení:
pi@schoolbell: ~ $ aplay -l
**** Seznam hardwarových zařízení PLAYBACK **** karta 0: Sluchátka [bcm2835 Sluchátka], zařízení 0: bcm2835 Sluchátka [bcm2835 Sluchátka] Podzáří: 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], device 0: USB Audio [USB Audio] Podřízená zařízení: Subdevice #0: subdevice #0
Zařízení, které chci, je spodní, karta 1, zařízení 0.
Reproduktor jsem testoval pomocí „reproduktorového testu“pomocí zařízení „hw: 1, 0“, což znamená hardwarová karta 1, zařízení 0
pi@schoolbell: ~ $ reproduktor -test -D hw: 1, 0
Tento program potlačuje hluk z reproduktorů. Užijte si hluk a poté, co vás rozčiluje, zadejte control-C. Pokud neslyšíte žádný hluk, zkuste google.
Nyní máte zvuk!
Krok 3: Otestujte přehrávání zvuků Bell a/nebo vytvářejte nové zvuky
Pro svůj zvonek jsem stáhl zvuk „bing-bong“z „freesound.org“. Díky Benboncanu za zpřístupnění tohoto zvuku:
freesound.org/people/Benboncan/sounds/93646/
Zvuk můžete přehrávat přímo. Mohl bych přímo stáhnout mp3 verzi tohoto souboru zadáním tohoto příkazu do počítače Raspberry Pi (za předpokladu, že je na WiFi):
pi@schoolbell: ~ $ wget
Poté jsem přejmenoval tento soubor:
pi@schoolbell: ~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3
Poté jsem vyzkoušel, že mohu zazvonit na zvonek tímto příkazem (zobrazením výstupu):
pi@schoolbell: ~ $ mpg321 -a hw: 1, 0 bing-bong-chime-hq.mp3
Vysoce výkonný audio přehrávač MPEG 1.0/2.0/2.5 pro vrstvu 1, 2 a 3. Verze 0.3.2-1 (2012/03/25). Autorem a autorskými právy je Joe Drew, nyní spravovaný Nanakosem Chrysostomosem a dalšími. Používá kód od různých lidí. Více viz 'README'! TENTO SOFTWARE NEDOSTÁVÁ ABSOLUTNĚ ŽÁDNOU ZÁRUKU! POUŽITÍ NA VLASTNÍ NEBEZPEČÍ! Přehrávání MPEG proudu z bing-bong-chime-hq.mp3… MPEG 1.0 vrstva III, 128 kbit/s, 44100 Hz mono [0:02] Dekódování bing-bong-chime-hq.mp3 dokončeno.
Gratuluji! Máte zvuk.
Pomocí kódu pro úpravu zvuku „audacity“na svém notebooku jsem pro větší zábavu rozdělil soubor na „bing“a „bong“. Můžete použít jakýkoli zvukový soubor mp3 nebo jiný formát (jiné jsem netestoval).
Krok 4: Nainstalujte kód a nastavte si rozvrh
Kód je skript pythonu, který získá aktuální datum/čas, a pokud je datem všední den a ne svátek, zkontroluje, zda se čas shoduje se zvonkovým časem, a pokud ano, zazvoní.
Nejprve jej uvedete do provozu, poté jej zautomatizujete, aby běžel každou minutu.
Stáhněte si kód z Github:
gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618
Považuji to za snadné, když soubor uložím na místní počítač a poté jej pomocí zabezpečené kopie (scp) umístím na Raspberry pi.
Na místním počítači zkopírujte kód z prohlížeče, vložte jej do textového souboru a uložte jej pod názvem „schoolbell.py“. Potom scp soubor přes:
místní stroj: ~ $ scp schoolbell.py [email protected]: ~/
Budete vyzváni k zadání hesla pro uživatele pi na schoolbell.local - zadejte heslo a soubor bude bezpečně zkopírován. Tento příkaz by měl být spuštěn ve stejném adresáři, kde byl uložen skript pythonu, a zkopíruje jej do domovského adresáře uživatele pí. Můžete přejít na schoolbell.local a kód by tam měl být:
místní stroj: ~ $ ssh [email protected]
Poté na schoolbell.local vypište seznam souborů (můžete vidět více souborů):
pi@schoolbell: ~ $ ls
bing-bong-chime-hq.mp3 schoolbell.py
Nyní upravte kód, aby měl rozvrh zvonů pomocí editoru, jako je pico:
pi@schoolbell: ~ $ pico schoolbell.py
Kód má tři „slovníky“, které definují tóny zvonů, které se mají hrát, časy, kdy se mají hrát, a svátky, kterým je třeba se vyhnout. Zvony o víkendech se automaticky přeskakují.
Například slovník zvonů je:
zvonky = {
'Varují': 'Bing-bong-zvonění-hq.mp3', 'start': 'bing-bong-zvonění-hq.mp3', 'konec': 'bing-bong-zvonění-hq.mp3'}
To definuje tři typy zvonů, výstražný zvon, začátek třídy a konec. Protože máme pouze jeden zvonkový tón, všechny ukazují na stejný soubor, ale pokud vytváříte různé tóny, můžete je změnit. Můžete dokonce přidat další typy tónů zvonů. Také jsem si pohrával s použitím syntetizátoru řeči k mluvení zvonů, ale to ostatní v domě nepovažovali příznivě.
Slovník bellschedule je podobný, ale „klíč“je nyní na zvonění. musíte použít formát HH: MM s úvodními nulami a 24hodinovým časem (vojenský čas).
bellschedule = {
'09: 00 ':' start ', #' Bus 'zvonek se připravuje '09: 28': 'varovat', ….. '13: 58 ':' varovat ', # pro období 4 '14: 00 ':' start ', '15: 00': 'end'}
Hodnota v tomto páru klíč: hodnota je typ vyzváněcího tónu, který se má použít, a musí odpovídat jednomu z vyzváněcích tónů definovaných výše.
Nakonec slovník prázdnin uvádí data prázdnin. Formát je RRRR-mm-dd, s úvodními nulami, jak je znázorněno.
prázdniny = {
'2020-09-07', …. '2021-03-11', '2021-03-12' }
Jakmile budete s úpravami hotovi, uložte soubor ukončením editoru a zadejte ctrl-X, pokud používáte pico.
Zajistěte, aby byl kód pythonu spustitelný:
pi@schoolbell: ~ $ chmod a+x schoolbell.py
To umožňuje všem uživatelům spustit kód, „a“pro všechny, „+“pro přidání oprávnění a „x“pro spuštění.
Nyní vyzkoušejte spuštění kódu a sledujte výstup. Všimněte si toho, že soubor můžete spustit zadáním názvu souboru, ale musíte zadat, že je v aktuálním adresáři, zadáním „./“před název souboru:
pi@schoolbell: ~ $./schoolbell.py
Je školní den, kontrolní čas 21:35
Kód vám řekne, zda je školní den (např. Není svátek nebo víkend), a zjistí, zda se čas shoduje se zvonkovým časem. V tomto případě to nebyl čas zvonění, takže to vyšlo čistě. Kdyby náhodou nastal čas zvonku, odzvonilo by.
Chcete -li otestovat, zda váš kód umí hrát zvony, použijte k přehrávání možnost příkazového řádku souboru. Použijeme náš soubor bing-bong:
pi@schoolbell: ~/schoolbell $./schoolbell.py bing-bong-chime-hq.mp3
Je to školní den, kontrolní čas 21:38 Vysoce výkonný audio přehrávač MPEG 1.0/2.0/2.5 pro vrstvu 1, 2 a 3. Verze 0.3.2-1 (2012/03/25). Autorem a autorskými právy je Joe Drew, nyní spravovaný Nanakosem Chrysostomosem a dalšími. …. větší výkon…
Měl jsi slyšet zvonek.
Nyní otestujte kód s použitím času jako argumentu. Nezapomeňte zadat čas s úvodními nulami. Například pro otestování zvonku „školního autobusu“v 9:00 napíšu:
pi@schoolbell: ~ $./schoolbell.py 09:00
To by mělo zazvonit! Můžete také vyzkoušet, zda nezazvoní v době, kdy není zvonek.
Krok 5: Automatizujte běh s Crondem
Dron cron je plánovač, který spouští opakující se úkoly v systému Linux. Zkontroluje, zda datum/čas odpovídá vzoru v tabulce cron (crontab), a poté spustí kód, pokud ano. Můžete jej upravit pomocí příkazu „crontab -e“:
pi@schoolbell: ~ $ crontab -e
Otevře se editor souborů a v dolní části tohoto souboru přidáte následující řádek:
* * * * * python3 /home/pi/schoolbell.py
Tento příkaz říká cronu, aby spustil python3 spuštěním skriptu v normálním domovském adresáři (/home/pi). Pětice říká, že by to mělo běžet každou minutu (první *), každou hodinu (další *…), každý den v měsíci, každý měsíc a každý den v týdnu.
Nyní se každou minutu spustí skript schoolbell.py. Během většiny minut se kód spustí a zjistí, že by se měl ukončit, aniž by zazvonil, ale pokud se ukáže, že zasáhne čas zvonku, zazvoní.
Všimněte si toho, protože protože cron běží pouze každou minutu, nemohli jste zvony udělat více granulované než na minutu. Myslím, že je teoreticky možné, že pokud se váš systém zablokuje, cron nemusí běžet několik sekund po skončení minuty, což způsobí zpoždění zvonku. Pokud by nějak cron neběžel celou minutu, zvonek by chyběl.
Tip: U prodloužených prázdnin (např. V létě) můžete na první znak tohoto řádku přidat hashtag (#), který z něj udělá komentář a jeho spuštění tedy ignoruje. Když je škola zpět v relaci, stačí odstranit # a začne znovu běžet.
Krok 6: Přizpůsobte si a užívejte si
Nyní byste měli mít fungující domácí zvonkový systém a váš student by nikdy neměl přijít pozdě do třídy.
Tento projekt můžete přizpůsobit změnou vyzváněcích tónů.
- Mohli byste to zazvonit na Big Ben, zazvonit čtvrt hodiny a zvonit hodiny.
- Můžete ochutnat freestyle svého oblíbeného rappera.
- Mohli byste dělat podprahové zprávy, abyste se soustředili na studium.
Zůstaňte v bezpečí v této době COVID.
Druhý v rodinné soutěži „Toho se nemůže dotknout“
Doporučuje:
Společensky distanční robot Halloween Candy: 7 kroků (s obrázky)
The Social Distancing Halloween Candy Robot: Pokud hledáte zábavný nový způsob interakce s letošními halloweenskými triky nebo pochoutkami a jste připraveni na výzvu, kterou tento projekt přináší, pak skočte přímo do toho a postavte si vlastní! Tento robot se distancováním od společnosti „uvidí“, když trik nebo pamlsek
Proměňte svůj drátový zvonek na inteligentní zvonek s IFTTT: 8 kroků
Proměňte svůj drátový zvonek na inteligentní zvonek s IFTTT: Zvonek WiFi změní váš stávající kabelový zvonek na inteligentní zvonek. https://www.fireflyelectronix.com/product/wifidoor
LED box pro školní sympozium Delta: 7 kroků
LED box pro školní sympozium Delta:
Proměňte svůj drátový zvonek na inteligentní zvonek s domácím asistentem: 6 kroků
Proměňte svůj drátový zvonek na inteligentní zvonek s domácím asistentem: Proměňte svůj stávající kabelový zvonek na inteligentní zvonek. Získejte oznámení do svého telefonu nebo spárujte se svou stávající kamerou předních dveří a získejte upozornění na fotografii nebo video, kdykoli někdo zazvoní u vašeho zvonku. Další informace naleznete na adrese: fireflyelectronix.com/pro
Práce s více počítači (pro studenty): 6 kroků
Práce s více počítači (pro studenty): Práce s více počítači může být velmi obtížná. Nikdy nevíte, jaké soubory jsou na kterém počítači, můžete narazit na problémy s více verzemi stejného souboru, a v důsledku toho můžete přijít o soubory všechny dohromady nebo alespoň mít