Table des matières:
- Fournitures
- Étape 1: Configurez votre Raspberry Pi
- Étape 2: faites fonctionner votre système audio
- Étape 3: Testez la lecture des sons de cloche et/ou créez de nouveaux sons
- Étape 4: Installez le code et définissez votre horaire
- Étape 5: Automatisez la course avec Crond
- Étape 6: Personnalisez et profitez
Vidéo: Cloche d'école pour les étudiants à distance : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Avec la pandémie de COVID-19, de nombreuses écoles pour enfants sont passées à la livraison à distance. Cette cloche d'école à domicile est une façon amusante de respecter le calendrier qui utilise un Raspberry Pi et un haut-parleur USB. Vous pouvez le faire avec votre enfant et il peut en apprendre davantage sur la programmation et peut « sonner la cloche ». J'ai construit ceci pour ma fille qui entre en 7e année (actuellement via la livraison à distance), et cela fonctionne bien pour nous garder à l'heure.
Fournitures
Pour ce projet, vous aurez besoin de:
- Un ordinateur Raspberry Pi -- Cela fonctionne mieux si vous avez le WiFi, j'ai utilisé un RPi 3B d'un kit Kano
- Un haut-parleur -- j'ai utilisé un haut-parleur USB
Le code pourrait facilement s'exécuter sur l'ordinateur Linux de votre élève ou même sur un microcontrôleur exécutant micropython, tant que le microcontrôleur dispose d'un mécanisme pour obtenir la date/l'heure actuelle. De plus, n'importe quel haut-parleur amplifié, ou même plus froid, un relais / sonnerie analogique, pourrait être utilisé.
Étape 1: Configurez votre Raspberry Pi
Il existe un grand nombre de ressources pour configurer un ordinateur Raspberry Pi, je vous renvoie donc à celle que Google trouve. L'important est que votre ordinateur dispose d'un moyen d'obtenir la date et l'heure correctes. La plupart des ordinateurs Raspberry Pi modernes compatibles WiFi utilisent le protocole NTP pour régler l'heure à partir d'Internet, ce qui est la façon dont j'ai obtenu l'heure correcte. J'ai configuré mon RPi pour qu'il soit "sans tête", ce qui signifie qu'il n'a ni clavier ni moniteur, mais qu'il est accessible par un shell sécurisé (SSH) sur Internet. Si vous maîtrisez bien RPi, vous pouvez effectuer cette configuration sans clavier / vidéo / souris, mais il est plus facile de simplement configurer le pi avec ces accessoires.
Notez que je n'ai pas eu besoin d'utiliser l'interface graphique, je viens donc de télécharger le "Raspberry Pi OS (32 bits) Lite", qui est plus petit et plus rapide à télécharger et à démarrer plus rapidement.
Configurer le réseau et les options d'interfaçage du Raspberry Pi
$ sudo raspi-config
Dans la configuration, procédez comme suit:
- Changez le mot de passe -- faites-le d'abord, espérons-le avant de vous connecter !
-
Dans "Options réseau",
- Changez le nom d'hôte. J'ai utilisé le nom d'hôte: "schoolbell".
- Connectez-vous à votre réseau local sans fil (si vous ne l'avez pas fait lors de la configuration)
- Sous "Options d'interfaçage", activez l'accès SSH
- Il est toujours bon d'exécuter l'option "Mettre à jour"
Une fois que vous avez fait cela et redémarré, vous devriez pouvoir vous connecter au Raspberry Pi à partir d'un autre ordinateur sur le même réseau local en utilisant un client SSH. Connectez-vous à celui-ci en utilisant les informations d'identification suivantes:
nom d'hôte: schoolbell.local
utilisateur: pi mot de passe: whatyousetitas
Depuis une machine Linux, c'est aussi simple que de taper cette ligne de commande à l'invite $:
$ ssh [email protected]
… entrez le mot de passe à l'invite
Cela vous connectera et vous pourrez vérifier que l'heure sur le Raspberry Pi est correcte. Sur la ligne de commande, saisissez la commande date et vérifiez la réponse:
pi@schoolbell:~ $ date
jeu. 3 sept. 20:44:34 AKDT 2020
Espérons que ce soit l'heure actuelle. Si ce n'est pas correct, recherchez sur Google la configuration de NTP sur le Raspberry Pi.
Étape 2: faites fonctionner votre système audio
Nous allons lire des fichiers MP3 pour les cloches, nous devons donc télécharger un logiciel pour décoder ces fichiers audio. J'ai obtenu le package mpg321 en tapant cette commande:
pi@schoolbell:~ $ sudo apt-get install mpg321
Suivez les invites pour installer ce logiciel.
J'ai utilisé un ancien haut-parleur USB, qui avait un pilote étrange et qui n'était pas entièrement configuré automatiquement comme carte son par défaut. J'ai donc découvert que je pouvais "pirater" le haut-parleur pour qu'il fonctionne en utilisant son adresse matérielle. Après avoir branché le haut-parleur, j'ai utilisé la commande 'aplay -l' pour lister les périphériques audio:
pi@schoolbell:~ $ aplay -l
**** Liste des périphériques matériels de LECTURE **** carte 0: Casque [bcm2835 Headphones], périphérique 0: bcm2835 Headphones [bcm2835 Headphones]: sous-périphérique #2 Sous-périphérique #3: sous-périphérique #3 Sous-périphérique #4: sous-périphérique #4 Sous-périphérique #5: sous-périphérique #5 Sous-périphérique #6: sous-périphérique #6 Sous-périphérique #7: sous-périphérique #7 carte 1: CODEC [USB Audio CODEC], périphérique 0: USB Audio [USB Audio] Sous-périphériques: Sous-périphérique n°0: sous-périphérique n°0
L'appareil que je veux est celui du bas, carte 1, appareil 0.
J'ai testé le haut-parleur avec "speaker-test", en utilisant le périphérique "hw:1, 0", c'est-à-dire la carte matérielle 1, périphérique 0
pi@schoolbell:~ $ speaker-test -D hw:1, 0
Ce programme fait sortir le bruit des haut-parleurs. Profitez du bruit puis tapez control-C lorsque vous êtes ennuyé. Si vous n'entendez aucun bruit, essayez google.
Maintenant vous avez le son !
Étape 3: Testez la lecture des sons de cloche et/ou créez de nouveaux sons
Pour ma cloche, j'ai téléchargé le son "bing-bong" sur "freesound.org". Merci à Benboncan d'avoir rendu ce son disponible:
freesound.org/people/Benboncan/sounds/93646/
Vous pouvez jouer le son directement. Je pourrais télécharger directement une version mp3 de ce fichier en tapant cette commande sur l'ordinateur Raspberry Pi (en supposant qu'il soit sur WiFi):
pi@schoolbell:~ $ wget
J'ai ensuite renommé ce fichier:
pi@schoolbell:~ $ mv 93646_634166-hq.mp3 bing-bong-chime-hq.mp3
J'ai ensuite testé que je pouvais sonner la cloche avec cette commande (affichant la sortie):
pi@schoolbell:~ $ mpg321 -a hw:1, 0 bing-bong-chime-hq.mp3
Lecteur audio MPEG 1.0/2.0/2.5 hautes performances pour les couches 1, 2 et 3. Version 0.3.2-1 (2012/03/25). Écrit et copyright par Joe Drew, maintenant maintenu par Nanakos Chrysostomos et d'autres. Utilise le code de diverses personnes. Voir « README » pour en savoir plus ! CE LOGICIEL EST ABSOLUMENT AUCUNE GARANTIE ! À UTILISER À VOS RISQUES ET PÉRILS! Lecture du flux MPEG de bing-bong-chime-hq.mp3 … MPEG 1.0 couche III, 128 kbit/s, 44100 Hz mono [0:02] Décodage de bing-bong-chime-hq.mp3 terminé.
Félicitations! Vous avez le son.
En utilisant le code d'édition du son "audacity" sur mon ordinateur portable, j'ai divisé le fichier en "bing" et "bong" pour plus de plaisir. Vous pouvez utiliser n'importe quel fichier audio mp3 ou peut-être d'un autre format (je n'en ai pas testé d'autres).
Étape 4: Installez le code et définissez votre horaire
Le code est un script python qui obtient la date/l'heure actuelle et si la date est un jour de semaine et non un jour férié, il vérifie si l'heure correspond à une heure de cloche, en sonnant si nécessaire.
D'abord, vous le ferez fonctionner, puis vous l'automatiserez pour qu'il s'exécute toutes les minutes.
Téléchargez le code sur Github:
gist.github.com/BillSimpson/d7a1a531995c8b63492bb47ef8872618
Je trouve qu'il est facile de le faire en enregistrant le fichier sur un ordinateur local, puis en utilisant une copie sécurisée (scp) pour le placer sur le Raspberry pi.
Sur votre ordinateur local, copiez le code de votre navigateur, puis collez-le dans un fichier texte et enregistrez-le sous le nom de fichier "schoolbell.py". Puis scp le fichier par dessus:
local-machine:~ $ scp schoolbell.py [email protected]:~/
Vous serez invité à entrer le mot de passe de l'utilisateur pi sur schoolbell.local -- entrez le mot de passe et le fichier est copié en toute sécurité. Cette commande doit être exécutée dans le même répertoire où le script python a été enregistré et le copie dans le répertoire de base de l'utilisateur pi. Vous pouvez envoyer un ssh sur schoolbell.local et le code devrait être là:
local-machine:~ $ ssh [email protected]
Ensuite, sur schoolbell.local, listez les fichiers (vous pouvez voir plus de fichiers):
pi@schoolbell:~ $ ls
bing-bong-chime-hq.mp3 schoolbell.py
Modifiez maintenant le code pour qu'il ait votre horaire de sonnerie en utilisant un éditeur tel que pico:
pi@schoolbell:~ $ pico schoolbell.py
Le code a trois "dictionnaires" qui définissent les sonneries à jouer, les heures pour les jouer et les jours fériés à éviter. Les sonneries du week-end sont automatiquement ignorées.
Par exemple, le dictionnaire des sonneries est:
sonneries = {
'warn': 'bing-bong-chime-hq.mp3', 'start': 'bing-bong-chime-hq.mp3', 'end': 'bing-bong-chime-hq.mp3' }
Cela définit trois types de cloches, une cloche d'avertissement, un début de classe et une fin. Parce que nous n'avons qu'un seul son de cloche, ils pointent tous vers le même fichier, mais si vous faites des sons différents, vous pouvez les modifier. Vous pouvez même ajouter d'autres types de sonneries. J'ai aussi joué avec un synthétiseur vocal pour faire sonner les cloches, mais cela n'a pas été perçu favorablement par les autres dans la maison.
Le dictionnaire bellschedule est similaire, mais la "clé" est maintenant l'heure de la cloche. vous devez utiliser le format HH:MM avec des zéros non significatifs et une heure de 24 heures (heure militaire).
horaire de la cloche = {
'09:00': 'start', # 'Bus' bell pour être prêt '09:28': 'warn', ….. '13:58': 'warn', # pour la période 4 '14:00 ': 'début', '15:00': 'fin' }
La valeur de cette paire clé:valeur est le type de sonnerie à utiliser et doit correspondre à l'une des sonneries définies ci-dessus.
Enfin, le dictionnaire des jours fériés répertorie les dates des jours fériés. Le format est AAAA-mm-jj, avec des zéros non significatifs comme indiqué.
jours fériés = {
'2020-09-07', …. '2021-03-11', '2021-03-12' }
Une fois que vous avez terminé l'édition, enregistrez le fichier en quittant votre éditeur, en tapant ctrl-X si vous utilisez pico.
Rendez le code python exécutable en:
pi@schoolbell:~ $ chmod a+x schoolbell.py
Cela permet à tous les utilisateurs d'exécuter le code, « a » pour tous, « + » pour l'autorisation d'ajout et « x » pour l'exécution.
Testez maintenant le code et observez la sortie. Notez que vous pouvez exécuter le fichier en tapant le nom du fichier mais devez spécifier qu'il se trouve dans le répertoire courant en tapant un "./" avant le nom du fichier:
pi@schoolbell:~ $./schoolbell.py
C'est un jour d'école, heure de vérification 21:35
Le code vous dira si c'est un jour d'école (par exemple pas un jour férié ou un week-end) et verra si l'heure correspond à une heure de cloche. Dans ce cas, ce n'était pas l'heure de la cloche, donc c'est sorti proprement. Si c'était l'heure de la cloche, elle aurait sonné.
Pour tester que votre code peut jouer des cloches, utilisez l'option de ligne de commande d'un fichier à lire. Nous allons utiliser notre fichier bing-bong:
pi@schoolbell:~/schoolbell $./schoolbell.py bing-bong-chime-hq.mp3
C'est un jour d'école, heure de vérification 21:38 Lecteur audio MPEG 1.0/2.0/2.5 hautes performances pour les couches 1, 2 et 3. Version 0.3.2-1 (2012/03/25). Écrit et copyright par Joe Drew, maintenant maintenu par Nanakos Chrysostomos et d'autres. …. plus de sortie ….
Vous auriez dû entendre la cloche.
Testez maintenant le code en utilisant une heure comme argument. N'oubliez pas d'entrer l'heure avec des zéros non significatifs. Par exemple, pour tester ma sonnette "bus scolaire" à 9h, je tape:
pi@schoolbell:~ $./schoolbell.py 09:00
Cela devrait faire sonner votre cloche ! Vous pouvez également tester qu'il ne sonne pas en dehors des heures de cloche.
Étape 5: Automatisez la course avec Crond
Le « démon » cron est un planificateur qui exécute des tâches répétitives sur un système Linux. Il vérifie si la date/l'heure correspond à un modèle dans la table cron (crontab), puis exécute le code si c'est le cas. Vous pouvez le modifier à l'aide de la commande "crontab -e":
pi@schoolbell:~ $ crontab -e
Cela ouvrira un éditeur de fichier, et au bas de ce fichier, vous ajouterez la ligne suivante:
* * * * * python3 /home/pi/schoolbell.py
Cette commande indique à cron d'exécuter python3 en exécutant votre script dans le répertoire de base normal (/home/pi). Les cinq * indiquent que cela devrait s'exécuter toutes les minutes (premier *), toutes les heures (suivant * …), tous les jours du mois, tous les mois et tous les jours de la semaine.
Maintenant, chaque minute, le script schoolbell.py s'exécutera. Pendant la plupart des minutes, le code s'exécutera et trouvera qu'il devrait simplement s'arrêter sans sonner, mais s'il s'avère qu'il sonne à l'heure de la cloche, il sonnera.
Notez que parce que cron ne s'exécute que toutes les minutes, vous ne pouvez pas rendre les cloches plus granulaires qu'à la minute près. Je pense qu'il est théoriquement possible que si votre système s'enlise, cron ne s'exécute pas pendant quelques secondes après le début de la minute, ce qui retarde la sonnerie. Si, d'une manière ou d'une autre, cron ne fonctionnait pas pendant toute la minute, la cloche serait manquée.
Astuce: Pour les vacances prolongées (par exemple l'été), vous pouvez ajouter un hashtag (#) au premier caractère de cette ligne, ce qui le transforme en commentaire et ignore ainsi son exécution. Lorsque l'école reprend ses cours, supprimez simplement le # et elle recommencera à fonctionner.
Étape 6: Personnalisez et profitez
Maintenant, vous devriez avoir un système de sonnerie d'école à domicile qui fonctionne et votre élève ne devrait jamais être en retard pour les cours.
Vous pouvez personnaliser ce projet en changeant les sonneries.
- Vous pourriez lui faire sonner Big Ben, avec des carillons tous les quarts d'heure et sonner les heures.
- Vous pouvez goûter au freestyle de votre rappeur préféré.
- Vous pourriez faire des messages subliminaux pour vous concentrer sur l'étude.
Restez en sécurité en cette période de COVID.
Finaliste du concours familial « Je ne peux pas toucher à ça »
Conseillé:
Boîte LED pour le Symposium de l'école Delta : 7 étapes
Boîte LED pour le Symposium de l'École Delta :
Voiture télécommandée pour l'école : 5 étapes
Voiture RC pour l'école : Matériel nécessaire : 1) 2 connecteurs en T de tuyaux en PVC2) 1 tuyau en PVC de 3 pouces de long3) 2 moteurs (assurez-vous qu'ils peuvent s'adapter à l'intérieur de votre tuyau)4)4 à 5 pieds de fil5) 4 roues6) 2 petits clous (seront utilisés comme axes pour vos roues)7) 2 interrupteurs (les boutons fonctionneront
Gérez 100 appareils dans les applications, les organisations, les rôles et les utilisateurs Ubidots : 11 étapes
Gérer 100 appareils dans les applications, les organisations, les rôles et les utilisateurs d'Ubidots : à cette occasion, j'ai décidé de tester la fonctionnalité de la plate-forme IoT Ubidots pour la gestion des utilisateurs dans le cas où elle aurait de nombreux appareils pour plusieurs organisations ou entreprises sous la même Plateforme Ubidots. Information du maire : vous
Bandeaux lumineux de couronne de fleurs pour les festivals de musique d'été, les mariages, les occasions spéciales : 8 étapes (avec photos)
Bandeaux lumineux à couronne de fleurs pour les festivals de musique d'été, les mariages et les occasions spéciales : illuminez la nuit avec un magnifique bandeau à fleurs LED ! Parfait pour tous les mariages, festivals de musique, bals de finissants, costumes et occasions spéciales ! Kits avec tout ce dont vous avez besoin pour créer le vôtre bandeau lumineux sont maintenant disponibles dans le magasin Wearables Workshop
Travailler avec plusieurs ordinateurs (pour les étudiants) : 6 étapes
Travailler avec plusieurs ordinateurs (pour les étudiants) : Travailler avec plusieurs ordinateurs peut être très difficile. Vous ne savez jamais quels fichiers se trouvent sur quel ordinateur, vous pourriez rencontrer des problèmes avec plusieurs versions du même fichier et, par conséquent, vous pourriez perdre tous vos fichiers ou au moins avoir votre