İçindekiler:
- Gereçler
- 1. Adım: Raspberry Pi'nizi Kurun
- 2. Adım: Ses Sisteminizi Çalıştırın
- 3. Adım: Zil Seslerinin Çalınmasını Test Edin ve/veya Yeni Sesler Yapın
- Adım 4: Kodu Kurun ve Programınızı Ayarlayın
- Adım 5: Crond ile Koşmayı Otomatikleştirin
- 6. Adım: Özelleştirin ve Keyfini Çıkarın
Video: Uzaktan Öğrenciler için Okul Zili: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
COVID-19 pandemisi ile birçok çocuğun okulu uzaktan teslimata geçti. Bu ev okul zili, Raspberry Pi ve USB hoparlör kullanan programa uymanın eğlenceli bir yoludur. Çocuğunuzla birlikte yapabilirsiniz ve programlamayı öğrenebilir ve "zili çalabilir". Bunu 7. sınıfa giden kızım için yaptım (şu anda uzaktan teslimat yoluyla) ve bizi zamanında tutmak için iyi çalışıyor.
Gereçler
Bu proje için ihtiyacınız olacak:
- Bir Raspberry Pi bilgisayarı - WiFi'niz varsa en iyi şekilde çalışır, Kano kitinden bir RPi 3B kullandım
- Bir Hoparlör -- Bir USB hoparlör kullandım
Kod, mikrodenetleyicinin geçerli tarih/saati almak için bir mekanizması olduğu sürece, öğrencinizin linux bilgisayarında veya micropython çalıştıran bir mikro denetleyicide kolayca çalışabilir. Ayrıca herhangi bir güçlendirilmiş hoparlör veya hatta soğutucu bir röle / analog zil kullanılabilir.
1. Adım: Raspberry Pi'nizi Kurun
Raspberry Pi bilgisayarı kurmak için çok sayıda kaynak var, bu yüzden sizi Google'ın bulduğu bir tanesine yönlendiriyorum. Önemli olan, bilgisayarınızın doğru tarih ve saati almanın bir yolunun olmasıdır. Modern WiFi özellikli Raspberry Pi bilgisayarlarının çoğu, zamanı internetten ayarlamak için NTP protokolünü kullanır, bu da doğru zamanı bulmamın yolu. RPI'mı "başsız" olacak şekilde ayarladım, yani klavyesi veya monitörü yok, ancak internet üzerinden güvenli kabuk (SSH) ile erişilebilir. Eğer RPi ile aranız iyiyse bu kurulumu klavye/video/fare olmadan da yapabilirsiniz ancak sadece pi'yi bu aksesuarlarla kurmak daha kolaydır.
Grafik arayüzü kullanmam gerekmediğine dikkat edin, bu yüzden daha küçük ve daha hızlı indirmesi ve daha hızlı önyüklemesi olan "Raspberry Pi OS (32-bit) Lite" ı indirdim.
Raspberry Pi'nin ağını ve arayüz seçeneklerini yapılandırın
$ sudo raspi yapılandırması
Yapılandırmada aşağıdakileri yapın:
- Şifreyi değiştirin -- ilk önce bunu yapın, umarım internete girmeden önce!
-
"Ağ Seçenekleri"nde,
- Ana bilgisayar adını değiştirin. Ana bilgisayar adını kullandım: "okul zili".
- Kablosuz LAN'ınıza bağlanın (bunu kurulumda yapmadıysanız)
- "Arayüz Seçenekleri" altında SSH erişimini açın
- "Güncelle" seçeneğini çalıştırmak her zaman iyidir
Bunu yaptıktan ve yeniden başlattıktan sonra, bir SSH istemcisi kullanarak aynı yerel ağdaki başka bir bilgisayardan Raspberry Pi'ye bağlanabilmelisiniz. Aşağıdaki kimlik bilgilerini kullanarak ona bağlanın:
ana bilgisayar adı: okul zili.local
kullanıcı: pi şifresi: ne olursa olsun
Bir linux kutusundan, bu komut satırını $ istemine yazmak kadar basittir:
$ ssh [email protected]
… istendiğinde şifreyi girin
Bu sizi oturum açacaktır ve Raspberry Pi'deki saatin doğru olup olmadığını kontrol edebilirsiniz. Komut satırına date komutunu yazın ve yanıtı kontrol edin:
pi@okul zili:~ $ tarih
3 Eyl 20:44:34 AKDT 2020
Umarım şimdiki zaman budur. Doğru değilse, Raspberry Pi'de NTP kurulumu hakkında google.
2. Adım: Ses Sisteminizi Çalıştırın
Çanlar için MP3 dosyalarını çalacağız, bu yüzden bu ses dosyalarının kodunu çözmek için yazılım indirmemiz gerekiyor. Bu komutu yazarak mpg321 paketini aldım:
pi@schoolbell:~ $ sudo apt-get install mpg321
Bu yazılımı yüklemek için istemleri izleyin.
Garip bir sürücüsü olan ve varsayılan ses kartı olarak tam olarak otomatik olarak yapılandırılmayan eski bir USB hoparlör kullandım, bu yüzden donanım adresini kullanarak hoparlörü "hackleyebileceğimi" öğrendim. Hoparlörü taktıktan sonra, ses cihazlarını listelemek için 'aplay -l' komutunu kullandım:
pi@okul zili:~ $ aplay -l
**** OYNATMA Donanım Cihazlarının Listesi **** kart 0: Kulaklıklar [bcm2835 Kulaklıklar], cihaz 0: bcm2835 Kulaklıklar [bcm2835 Kulaklıklar] Alt Cihazlar: Alt Cihaz #0: Alt Cihaz #0 Alt Cihaz #1: Alt Cihaz #1 Alt Cihaz #2: alt cihaz #2 Alt cihaz #3: alt cihaz #3 Alt cihaz #4: alt cihaz #4 Alt cihaz #5: alt cihaz #5 Alt cihaz #6: alt cihaz #6 Alt cihaz #7: alt cihaz #7 kart 1: CODEC [USB Ses CODEC], cihaz 0: USB Ses [USB Ses] Alt Cihazlar: Alt Cihaz #0: Alt Cihaz #0
İstediğim cihaz alttaki, kart 1, cihaz 0.
Hoparlörü, donanım kartı 1, cihaz 0 anlamına gelen "hw:1, 0" cihazını kullanarak "hoparlör testi" ile test ettim.
pi@schoolbell:~ $ konuşmacı testi -D hw:1, 0
Bu program hoparlörlerden gürültü çıkarır. Gürültünün keyfini çıkarın ve sinirlendiğinizde control-C yazın. Ses duymuyorsanız, google'ı deneyin.
Artık sesin var!
3. Adım: Zil Seslerinin Çalınmasını Test Edin ve/veya Yeni Sesler Yapın
Zil için "freesound.org"dan "bing-bong" sesini indirdim. Bu sesi kullanıma sunduğu için Benboncan'a teşekkürler:
freesound.org/people/Benboncan/sounds/93646/
Sesi doğrudan çalabilirsiniz. Raspberry Pi bilgisayarına bu komutu yazarak (WiFi üzerinde olduğunu varsayarak) bu dosyanın bir mp3 sürümünü doğrudan indirebilirim:
pi@schoolbell:~ $ wget
Daha sonra bu dosyayı yeniden adlandırdım:
pi@schoolbell:~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3
Daha sonra bu komutla zili çalabileceğimi test ettim (çıktı gösteriliyor):
pi@schoolbell:~ $ mpg321 -a hw:1, 0 bing-bong-chime-hq.mp3
Katman 1, 2 ve 3 için Yüksek Performanslı MPEG 1.0/2.0/2.5 Ses Oynatıcısı Sürüm 0.3.2-1 (2012/03/25). Joe Drew tarafından yazılmış ve telif hakları, şu anda Nanakos Chrysostomos ve diğerleri tarafından korunmaktadır. Çeşitli insanlardan kod kullanır. Daha fazlası için 'BENİ OKU' bölümüne bakın! BU YAZILIM KESİNLİKLE HİÇBİR GARANTİ İLE GELMEMEKTEDİR! KENDİ RİSKİNİZDE KULLANIN! bing-bong-chime-hq.mp3'ten MPEG akışı oynatılıyor … MPEG 1.0 katman III, 128 kbit/s, 44100 Hz mono [0:02] bing-bong-chime-hq.mp3 kodunun çözülmesi tamamlandı.
Tebrikler! Sesin var.
Dizüstü bilgisayarımdaki "audacity" ses düzenleme kodunu kullanarak, daha fazla eğlence için dosyayı "bing" ve "bong" olarak ayırdım. Herhangi bir mp3 veya başka bir formatta (diğerlerini test etmedim) ses dosyalarını kullanabilirsiniz.
Adım 4: Kodu Kurun ve Programınızı Ayarlayın
Kod, geçerli tarih/saati alan bir python betiğidir ve tarih bir tatil değil de hafta içi ise, saatin bir zil saatiyle eşleşip eşleşmediğini kontrol eder, gerekirse zil çalar.
Önce çalışmasını sağlayacaksınız, sonra her dakika çalışmasını otomatikleştireceksiniz.
Kodu Github'dan indirin:
Gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618
Dosyayı yerel bir bilgisayara kaydedip ardından Raspberry pi'ye yerleştirmek için güvenli kopya (scp) kullanarak bunu yapmayı kolay buluyorum.
Yerel makinenizde, tarayıcınızdan kodu kopyalayın, ardından bir metin dosyasına yapıştırın ve "schoolbell.py" dosya adıyla kaydedin. Ardından dosyayı scp yapın:
yerel makine:~ $ scp schoolbell.py [email protected]:~/
Schoolbell.local'da pi kullanıcısının parolasını girmeniz istenecek -- parolayı girin ve dosya güvenli bir şekilde kopyalanır. Bu komut, python betiğinin kaydedildiği dizinde çalıştırılmalı ve onu pi kullanıcısının ana dizinine kopyalanmalıdır. Schoolbell.local adresine ssh yapabilirsiniz ve kod orada olmalıdır:
yerel makine:~ $ ssh [email protected]
Ardından, schoolbell.local'da dosyaları listeleyin (daha fazla dosya görebilirsiniz):
pi@okul zili:~ $ ls
bing-bong-chime-hq.mp3 schoolbell.py
Şimdi, pico gibi bir düzenleyici kullanarak zil zamanlamanıza sahip olması için kodu düzenleyin:
pi@schoolbell:~ $ pico schoolbell.py
Kodun, çalınacak zil seslerini, çalınacak saatleri ve kaçınılması gereken tatilleri tanımlayan üç "sözlük" vardır, hafta sonları zil sesleri otomatik olarak atlanır.
Örneğin, zil sesleri sözlüğü:
zil sesleri = {
'uyar': 'bing-bong-chime-hq.mp3', 'başlangıç': 'bing-bong-chime-hq.mp3', 'bitiş': 'bing-bong-chime-hq.mp3' }
Bu, üç tür zili, bir uyarı zilini, bir sınıfın başlangıcını ve bir bitişi tanımlar. Sadece bir zil tonumuz olduğu için hepsi aynı dosyaya işaret ediyor, ancak farklı tonlar yaparsanız bunları değiştirebilirsiniz. Hatta başka tür zil sesleri de ekleyebilirsiniz. Zilleri söylemek için bir konuşma sentezleyici kullanarak da oynadım, ancak bu, evdeki başkaları tarafından olumlu karşılanmadı.
Bellschedule sözlüğü benzer, ancak "anahtar" şimdi zil zamanı. SS:DD biçimini baştaki sıfırlar ve 24 saatlik zaman (askeri saat) ile kullanmanız gerekir.
çan programı = {
'09:00': 'başla', # 'Otobüs' zili hazırlanıyor '09:28': 'uyar', ….. '13:58': 'uyar', # 4. periyot için '14:00' ': 'başlangıç', '15:00': 'bitiş' }
Bu anahtar:değer çiftindeki değer, kullanılacak zil sesi türüdür ve yukarıda tanımlanan zil seslerinden biriyle eşleşmesi gerekir.
Son olarak, tatil sözlüğü tatil tarihlerini listeler. Biçim YYYY-aa-gg şeklindedir ve gösterildiği gibi başında sıfırlar bulunur.
tatiller = {
'2020-09-07', …. '2021-03-11', '2021-03-12' }
Düzenlemeyi bitirdikten sonra, editörünüzden çıkıp pico kullanıyorsanız ctrl-X yazarak dosyayı kaydedin.
Python kodunu şu şekilde yürütülebilir yapın:
pi@schoolbell:~ $ chmod a+x schoolbell.py
Bu, tüm kullanıcıların kodu, herkes için "a", izin eklemek için "+" ve yürütme için "x" kodunu yürütmesine izin verir.
Şimdi kodu test edin ve çıktıyı izleyin. Dosya adını yazarak dosyayı çalıştırabileceğinizi, ancak dosya adından önce bir "./" yazarak geçerli dizinde olduğunu belirtmeniz gerektiğini unutmayın:
pi@schoolbell:~ $./schoolbell.py
Bugün bir okul günü, kontrol zamanı 21:35
Kod size bir okul günü olup olmadığını (ör. tatil veya hafta sonu değil) söyleyecek ve saatin bir zil saatiyle eşleşip eşleşmediğini görecektir. Bu durumda, bir zil zamanı değildi, bu yüzden temiz bir şekilde çıktı. Zil zamanı olsaydı, çalardı.
Kodunuzun çan çalabildiğini test etmek için, yürütülecek dosyanın komut satırı seçeneğini kullanın. Bing-bong dosyamızı kullanacağız:
pi@schoolbell:~/schoolbell $./schoolbell.py bing-bong-chime-hq.mp3
Bugün bir okul günü, saat 21:38 Katman 1, 2 ve 3 için Yüksek Performanslı MPEG 1.0/2.0/2.5 Ses Oynatıcısı Sürüm 0.3.2-1 (2012/03/25). Joe Drew tarafından yazılmış ve telif hakları, şu anda Nanakos Chrysostomos ve diğerleri tarafından korunmaktadır. …. daha fazla çıktı….
Zil sesini duymalıydın.
Şimdi argüman olarak bir zaman kullanarak kodu test edin. Başına sıfırlar koyarak zamanı girmeyi unutmayın. Örneğin, "okul otobüsü" zilimi sabah 9'da test etmek için şunu yazarım:
pi@schoolbell:~ $./schoolbell.py 09:00
Bu, zilinizin çalmasına neden olmalıdır! Zil olmayan zamanlarda da çalmadığını test edebilirsiniz.
Adım 5: Crond ile Koşmayı Otomatikleştirin
Cron 'arka plan programı', bir linux sisteminde tekrarlayan görevleri çalıştıran bir zamanlayıcıdır. Tarih/saatin cron tablosundaki (crontab) bir kalıpla eşleşip eşleşmediğini kontrol eder ve ardından uygunsa kodu çalıştırır. "crontab -e" komutunu kullanarak düzenleyebilirsiniz:
pi@okul zili:~ $ crontab -e
Bu, bir dosya düzenleyiciyi açacak ve bu dosyanın altına aşağıdaki satırı ekleyeceksiniz:
* * * * * python3 /home/pi/schoolbell.py
Bu komut, cron'a betiğinizi normal ana dizinde (/home/pi) yürüten python3'ü çalıştırmasını söyler. Beş *, bunun her dakika (ilk *), her saat (sonraki * …), ayın her günü, her ay ve haftanın her günü çalışması gerektiğini söylüyor.
Şimdi, schoolbell.py betiği her dakika çalışacaktır. Çoğu dakika boyunca, kod çalışacak ve zil çalmadan çıkması gerektiğini görecek, ancak bir zil zamanına çarptığı ortaya çıkarsa, çalacaktır.
Cron yalnızca dakikada bir çalıştığından, çanları dakikadan daha ayrıntılı hale getiremeyeceğinizi unutmayın. Sisteminiz çıkmaza girerse, cron'un dakikanın başından sonra birkaç saniye çalışmayabileceği ve zilin geç kalmasına neden olabileceği teorik olarak mümkün olduğunu düşünüyorum. Bir şekilde cron tüm dakika boyunca çalışmadıysa, zil kaçırılacaktı.
İpucu: Uzatılmış tatiller için (örneğin yaz), bu satırın ilk karakterine bir etiket (#) ekleyebilirsiniz; bu, onu bir yoruma dönüştürür ve böylece çalıştırmayı yok sayar. Okul tekrar oturuma döndüğünde, # işaretini kaldırın ve tekrar çalışmaya başlayacaktır.
6. Adım: Özelleştirin ve Keyfini Çıkarın
Şimdi, çalışan bir evde okul zili sisteminiz olmalı ve öğrenciniz asla derse geç kalmamalıdır.
Zil seslerini değiştirerek bu projeyi özelleştirebilirsiniz.
- Çeyrek saatlik çanlar ve saatleri çaldırarak Big Ben'i çaldırabilirsiniz.
- En sevdiğiniz rapçinin serbest stilini örnekleyebilirsiniz.
- Ders çalışmaya odaklanmak için subliminal mesajlar verebilirsiniz.
Bu COVID zamanında güvende kalın.
"Buna Dokunamam" Aile Yarışmasında İkincilik
Önerilen:
Ev Otomasyonu (ESP-now, MQTT, Openhab) Yoluyla İşitme Engelliler İçin Kapı Zili Bildirimi: 3 Adım
Ev Otomasyonu Yoluyla İşitme Engelliler İçin Kapı Zili Bildirimi (ESP-now, MQTT, Openhab): Bu Eğitilebilir Tabloda size normal kapı zilimi ev otomasyonuma nasıl entegre ettiğimi gösteriyorum. Bu çözüm işitme engelliler için çok uygundur. Benim durumumda, çocukların doğum günü partisinde odanın meşgul ve gürültülü olması durumunda haberdar olmak için kullanıyorum. İ
HomeAssistant için Akıllı Kapı Zili: 4 Adım
HomeAssistant için Akıllı Kapı Zili: Bu nedenle, aşağıdaki özelliklere sahip bir kapı zili istedim: Kapıdan görüntü İki yönlü ses İki düğme HomeAssistant UI'yi gösteren duvara monte tablet ile entegrasyon Doorbird gibi bazı seçenekler geldi (pahalı ve iki yönlü sesli çağrıları yok)
Kapı Zili, Hırsız Alarmı, Duman Alarmı vb. İçin Arduino Push Uyarıları: 8 Adım
Kapı Zili, Hırsız Alarmı, Duman Alarmları vb. İçin Arduino Push Uyarıları: Bir Arduino Uno ve bir Ethernet Kalkanı kullanarak Kapı Zilinizden, Hırsız Alarmınızdan, Duman Alarmlarınızdan vb. IoT Bildirimleri. Web sitemdeki tüm ayrıntılar buradaArduino Push Alert Box Hakkında Wiznet W5100 yongasına dayalı bir Arduino Uno ve Ethernet Kalkanı kullanır
Okul için RC Araba: 5 Adım
Okul için RC Araba: Gerekli malzemeler:1) 2 PVC boru T-Konnektör2) 1 3 inç uzunluğunda PVC boru parçası3) 2 motor (borunun içine sığabileceklerinden emin olun)4) 4-5 fit tel5) 4 tekerlek6) 2 adet küçük çivi (tekerlekleriniz için dingil olarak kullanılacaktır)7) 2 adet anahtar (düğmeler çalışacaktır)
Birden Fazla Bilgisayarla Çalışma (Öğrenciler İçin): 6 Adım
Birden Fazla Bilgisayarla Çalışmak (Öğrenciler İçin): Birden fazla bilgisayarla çalışmak çok zor olabilir. Hangi bilgisayarda hangi dosyaların olduğunu asla bilemezsiniz, aynı dosyanın birden fazla sürümünde sorun yaşayabilir ve sonuç olarak dosyalarınızı hep birlikte kaybedebilir veya en azından