Spisu treści:

Dzwonek szkolny dla studentów na odległość: 6 kroków
Dzwonek szkolny dla studentów na odległość: 6 kroków

Wideo: Dzwonek szkolny dla studentów na odległość: 6 kroków

Wideo: Dzwonek szkolny dla studentów na odległość: 6 kroków
Wideo: dowody, że szkoła jest niepotrzebna 😳 (pokaz to rodzicom) 2024, Lipiec
Anonim
Dzwonek szkolny dla studentów na odległość
Dzwonek szkolny dla studentów na odległość

Wraz z pandemią COVID-19 wiele szkół dla dzieci przeszło na dostawy na odległość. Ten domowy dzwonek szkolny to świetny sposób na zachowanie harmonogramu, który wykorzystuje Raspberry Pi i głośnik USB. Możesz to zrobić ze swoim dzieckiem, a dziecko może nauczyć się programowania i może "dzwonić". Zbudowałem to dla mojej córki, która idzie do 7 klasy (obecnie poprzez dostawę na odległość) i działa dobrze, aby utrzymać nas na czas.

Kieszonkowe dzieci

Do tego projektu będziesz potrzebować:

  • Komputer Raspberry Pi - działa najlepiej, jeśli masz WiFi, użyłem RPi 3B z zestawu Kano
  • Głośnik - użyłem głośnika USB

Kod mógłby z łatwością uruchomić się na komputerze z Linuksem ucznia, a nawet na mikrokontrolerze z uruchomionym micropythonem, o ile mikrokontroler ma jakiś mechanizm do pobierania aktualnej daty/czasu. Można również użyć dowolnego głośnika ze wzmacniaczem, a nawet chłodniejszego przekaźnika / dzwonka analogowego.

Krok 1: Skonfiguruj swoje Raspberry Pi

Skonfiguruj swoje Raspberry Pi
Skonfiguruj swoje Raspberry Pi

Istnieje wiele zasobów do konfiguracji komputera Raspberry Pi, więc odsyłam do jednego, który Google znajduje. Ważną rzeczą jest to, że komputer ma sposób, aby uzyskać poprawną datę i godzinę. Większość nowoczesnych komputerów Raspberry Pi z obsługą Wi-Fi używa protokołu NTP do ustawiania czasu z Internetu, dzięki czemu uzyskałem poprawny czas. Skonfigurowałem moje RPi tak, aby było „bezgłowe”, co oznacza, że nie ma klawiatury ani monitora, ale jest dostępne przez bezpieczną powłokę (SSH) przez Internet. Jeśli jesteś dobry z RPi, możesz wykonać tę konfigurację bez klawiatury / wideo / myszy, ale łatwiej jest po prostu skonfigurować pi za pomocą tych akcesoriów.

Zauważ, że nie musiałem używać interfejsu graficznego, więc właśnie pobrałem "Raspberry Pi OS (32-bit) Lite", który jest mniejszy i szybszy do pobrania i szybszego uruchamiania.

Skonfiguruj sieć i opcje interfejsu Raspberry Pi

$ sudo raspi-config

W konfiguracji wykonaj następujące czynności:

  • Zmień hasło - zrób to najpierw, miejmy nadzieję, że zanim przejdziesz do trybu online!
  • W "Opcjach sieci",

    • Zmień nazwę hosta. Użyłem nazwy hosta: „dzwonek szkolny”.
    • Połącz się z bezprzewodową siecią LAN (jeśli nie zrobiłeś tego podczas konfiguracji)
  • W sekcji „Opcje interfejsu” włącz dostęp SSH
  • Zawsze dobrze jest uruchomić opcję „Aktualizuj”

Po wykonaniu tej czynności i ponownym uruchomieniu powinieneś być w stanie połączyć się z Raspberry Pi z innego komputera w tej samej sieci lokalnej za pomocą klienta SSH. Połącz się z nim za pomocą następujących poświadczeń:

nazwa hosta: schoolbell.local

użytkownik: pi hasło: whatyousetitas

Z poziomu Linuksa jest to tak proste, jak wpisanie tego wiersza poleceń w wierszu $:

$ ssh [email protected]

… wprowadź hasło po wyświetleniu monitu

Spowoduje to zalogowanie i sprawdzenie, czy czas na Raspberry Pi jest poprawny. W wierszu poleceń wpisz polecenie date i sprawdź odpowiedź:

pi @ dzwonek szkolny: ~ $ data

czw 3 wrz 20:44:34 AKDT 2020

Mam nadzieję, że to jest aktualny czas. Jeśli nie jest poprawny, poszukaj w Google konfiguracji NTP na Raspberry Pi.

Krok 2: Uruchom swój system dźwiękowy

Spraw, aby Twój system dźwiękowy działał
Spraw, aby Twój system dźwiękowy działał

Będziemy odtwarzać pliki MP3 dla dzwonków, więc musimy pobrać oprogramowanie, aby zdekodować te pliki audio. Otrzymałem pakiet mpg321 wpisując to polecenie:

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

Postępuj zgodnie z instrukcjami, aby zainstalować to oprogramowanie.

Użyłem starego głośnika USB, który miał dziwny sterownik i nie został w pełni automatycznie skonfigurowany jako domyślna karta dźwiękowa, więc stwierdziłem, że mogę "zhakować" głośnik do pracy przy użyciu jego adresu sprzętowego. Po podłączeniu głośnika użyłem polecenia 'aplay -l', aby wyświetlić listę urządzeń audio:

pi@schoolbell:~ $ aplay -l

**** Lista urządzeń sprzętowych ODTWARZANIA **** karta 0: Słuchawki [bcm2835 Headphones], urządzenie 0: bcm2835 Headphones [bcm2835 Headphones] Podurządzenia: Podurządzenie #0: podurządzenie #0 Podurządzenie #1: podurządzenie #1 Podurządzenie #2: podurządzenie #2 Podurządzenie #3: podurządzenie #3 Podurządzenie #4: podurządzenie #4 Podurządzenie #5: podurządzenie #5 Podurządzenie #6: podurządzenie #6 Podurządzenie #7: podurządzenie #7 karta 1: KODEK [USB Audio CODEC], urządzenie 0: USB Audio [USB Audio] Podurządzenia: Podurządzenie #0: podurządzenie #0

Urządzenie, które chcę, to dolne, karta 1, urządzenie 0.

Przetestowałem głośnik za pomocą "speaker-test", używając urządzenia "hw:1, 0", czyli karty sprzętowej 1, urządzenie 0

pi@schoolbell:~ $ test mówcy -D hw:1, 0

Ten program wycisza hałas z głośników. Ciesz się hałasem, a następnie wpisz control-C, gdy się zdenerwujesz. Jeśli nie słyszysz żadnego hałasu, spróbuj google.

Teraz masz dźwięk!

Krok 3: Przetestuj odtwarzanie dźwięków dzwonka i/lub stwórz nowe dźwięki

Przetestuj odtwarzanie dźwięków dzwonka i/lub twórz nowe dźwięki
Przetestuj odtwarzanie dźwięków dzwonka i/lub twórz nowe dźwięki

Dla mojego dzwonka pobrałem dźwięk "bing-bong" z "freesound.org". Podziękowania dla Benboncan za udostępnienie tego dźwięku:

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

Możesz odtwarzać dźwięk bezpośrednio. Mogłem bezpośrednio pobrać wersję mp3 tego pliku, wpisując to polecenie na komputerze Raspberry Pi (zakładając, że jest na WiFi):

pi@schoolbell:~ $ wget

Następnie zmieniłem nazwę tego pliku:

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

Następnie przetestowałem, czy mogę zadzwonić za pomocą tego polecenia (pokazując dane wyjściowe):

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

Wysokowydajny odtwarzacz audio MPEG 1.0/2.0/2.5 dla warstw 1, 2 i 3. Wersja 0.3.2-1 (25.03.2012). Napisany i chroniony prawami autorskimi przez Joe Drew, obecnie utrzymywany przez Nanakos Chrysostomos i innych. Używa kodu od różnych osób. Zobacz 'README' po więcej! TO OPROGRAMOWANIE NIE JEST OBJĘTE ABSOLUTNĄ GWARANCJĄ! UŻYWAJ NA WŁASNE RYZYKO! Odtwarzam strumień MPEG z bing-bong-chime-hq.mp3… MPEG 1.0 warstwa III, 128 kbit/s, 44100 Hz mono [0:02] Dekodowanie bing-bong-chime-hq.mp3 zakończone.

Gratulacje! Masz dźwięk.

Używając kodu do edycji dźwięku „audacity” na moim laptopie, podzieliłem plik na „bing” i „bong”, aby uzyskać więcej zabawy. Możesz użyć dowolnego formatu mp3 lub innego (innych nie testowałem) plików dźwiękowych.

Krok 4: Zainstaluj kod i ustaw swój harmonogram

Zainstaluj kod i ustaw swój harmonogram
Zainstaluj kod i ustaw swój harmonogram

Kod jest skryptem Pythona, który pobiera bieżącą datę/godzinę, a jeśli data jest dniem tygodnia, a nie świętem, sprawdza, czy godzina pasuje do czasu dzwonka, dzwoniąc, jeśli powinna.

Najpierw uruchomisz go, a następnie zautomatyzujesz, aby działał co minutę.

Pobierz kod z Github:

gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618

Łatwo to zrobić, zapisując plik na komputerze lokalnym, a następnie używając bezpiecznej kopii (scp), aby umieścić go na Raspberry pi.

Na komputerze lokalnym skopiuj kod z przeglądarki, a następnie wklej go do pliku tekstowego i zapisz go pod nazwą „schoolbell.py”. Następnie scp plik nad:

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

Zostaniesz poproszony o podanie hasła dla użytkownika pi na schoolbell.local -- wprowadź hasło, a plik zostanie bezpiecznie skopiowany. To polecenie należy uruchomić w tym samym katalogu, w którym zapisano skrypt Pythona, i skopiować je do katalogu domowego użytkownika pi. Możesz ssh przejść do schoolbell.local i kod powinien tam być:

local-machine:~ $ ssh [email protected]

Następnie na schoolbell.local wypisz pliki (możesz zobaczyć więcej plików):

pi@ dzwonek szkolny:~ $ ls

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

Teraz edytuj kod, aby miał swój harmonogram dzwonka, używając edytora takiego jak pico:

pi@schoolbell:~ $ pico schoolbell.py

Kod ma trzy "słowniki", które definiują dźwięki dzwonka, godziny ich odtwarzania i święta, których należy unikać. Dzwonki w weekendy są automatycznie pomijane.

Na przykład słownik dzwonków to:

dzwonki = {

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

To definiuje trzy rodzaje dzwonków, dzwonek ostrzegawczy, początek klasy i koniec. Ponieważ mamy tylko jeden dźwięk dzwonka, wszystkie wskazują na ten sam plik, ale jeśli stworzysz różne dźwięki, możesz je zmienić. Możesz nawet dodać inne rodzaje dźwięków dzwonków. Bawiłem się również używaniem syntezatora mowy do wypowiadania dzwonków, ale nie było to dobrze odbierane przez innych w domu.

Słownik bellschedule jest podobny, ale „klucz” to teraz czas na dzwonek. musisz użyć formatu GG:MM z wiodącymi zerami i czasem 24-godzinnym (czas wojskowy).

harmonogram dzwonków = {

'09:00': 'start', # 'Bus' dzwonek do przygotowania '09:28': 'ostrzegaj', ….. '13:58': 'ostrzegaj', # dla okresu 4 '14:00 ': 'początek', '15:00': 'koniec' }

Wartość w tej parze klucz:wartość jest rodzajem używanego sygnału dzwonka i musi odpowiadać jednemu z dźwięków dzwonka zdefiniowanych powyżej.

Wreszcie słownik świąt zawiera daty świąt. Format to RRRR-mm-dd, z wiodącymi zerami, jak pokazano.

święta = {

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

Po zakończeniu edycji zapisz plik, wychodząc z edytora, wpisując ctrl-X, jeśli używasz pico.

Spraw, aby kod Pythona był wykonywalny przez:

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

Dzięki temu wszyscy użytkownicy mogą wykonać kod, „a” dla wszystkich, „+” dla uprawnień dodawania i „x” dla wykonania.

Teraz przetestuj, uruchom kod i obserwuj dane wyjściowe. Zauważ, że możesz uruchomić plik, wpisując nazwę pliku, ale musisz określić, że znajduje się on w bieżącym katalogu, wpisując „./” przed nazwą pliku:

pi@schoolbell:~ $./schoolbell.py

Jest dzień szkolny, sprawdzam godzinę 21:35

Kod poinformuje Cię, czy jest dzień szkolny (np. nie święto lub weekend) i sprawdzi, czy godzina pasuje do czasu dzwonka. W tym przypadku nie była to pora dzwonka, więc po prostu wyszedł czysto. Gdyby to był czas dzwonka, zadzwoniłby.

Aby sprawdzić, czy Twój kod może odtwarzać dzwonki, użyj opcji wiersza poleceń pliku do odtworzenia. Użyjemy naszego pliku bing-bong:

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

To dzień szkolny, sprawdzam godzinę 21:38 High Performance MPEG 1.0/2.0/2.5 Audio Player dla warstwy 1, 2 i 3. Wersja 0.3.2-1 (25.03.2012). Napisany i chroniony prawami autorskimi przez Joe Drew, obecnie utrzymywany przez Nanakos Chrysostomos i innych. …. więcej produkcji….

Powinieneś był usłyszeć dzwonek.

Teraz przetestuj kod, używając jako argumentu czasu. Pamiętaj, aby wprowadzić czas z zerami wiodącymi. Na przykład, aby przetestować dzwonek „autobusu szkolnego” o 9 rano, wpisuję:

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

To powinno wywołać dzwonek! Możesz także sprawdzić, czy nie dzwoni w godzinach innych niż dzwonki.

Krok 5: Zautomatyzuj bieganie za pomocą Crond

Zautomatyzuj bieganie z Crond
Zautomatyzuj bieganie z Crond

Cron 'demon' jest harmonogramem, który uruchamia powtarzające się zadania w systemie linux. Sprawdza, czy data/godzina pasuje do wzorca w tabeli cron (crontab), a następnie uruchamia kod, jeśli tak. Możesz go edytować za pomocą polecenia "crontab -e":

pi@schoolbell:~ $ crontab -e

Spowoduje to otwarcie edytora plików, a na dole tego pliku dodasz następujący wiersz:

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

To polecenie mówi cronowi, aby uruchomił python3 wykonując skrypt w normalnym katalogu domowym (/home/pi). Pięć * mówi, że powinno działać co minutę (pierwsza *), co godzinę (następna *…), każdego dnia miesiąca, każdego miesiąca i każdego dnia tygodnia.

Teraz co minutę będzie uruchamiał się skrypt schoolbell.py. Przez większość minut kod będzie działał i stwierdzi, że powinien po prostu zakończyć działanie bez dzwonienia, ale jeśli okaże się, że uderzy w czas dzwonka, będzie dzwonił.

Zauważ, że ponieważ cron działa tylko co minutę, nie możesz zrobić dzwonków bardziej ziarnistych niż co do minuty. Myślę, że teoretycznie jest możliwe, że jeśli twój system utknie, cron może nie działać przez kilka sekund po szczycie minuty, przez co dzwonek się spóźnia. Gdyby jakimś cudem cron nie działał przez całą minutę, dzwonek zostałby przeoczony.

Wskazówka: W przypadku dłuższych wakacji (np. lato) możesz dodać hashtag (#) do pierwszego znaku tej linii, który zamieni go w komentarz i tym samym zignoruje jego uruchomienie. Kiedy szkoła wróci do sesji, po prostu usuń # i zacznie działać ponownie.

Krok 6: Dostosuj i ciesz się

Teraz powinieneś mieć działający domowy system dzwonków w szkole, a twój uczeń nigdy nie powinien spóźniać się na zajęcia.

Możesz dostosować ten projekt, zmieniając dźwięki dzwonka.

  • Możesz sprawić, by dzwonił Big Ben, z dzwonkami co kwadrans i wybijaniem godzin.
  • Możesz spróbować freestyle swojego ulubionego rapera.
  • Możesz wysyłać podprogowe wiadomości, aby skupić się na nauce.

Bądź bezpieczny w czasie COVID.

Obraz
Obraz
Obraz
Obraz

Drugie miejsce w konkursie rodzinnym „Nie można tego dotknąć”

Zalecana: