Jouez votre propre chanson thème quand vous entrez dans la chambre avec pi framboise

Avez-vous déjà voulu arriver à la maison à un accueil personnalisé? Avec un Raspberry Pi et quelques composants simples, vous pouvez! Dans ce simple projet, nous allons utiliser un commutateur à lames pour déclencher un air de thème quand une porte est ouverte. Nous utiliserons un Raspberry Pi comme contrôleur ici, mais vous pouvez utiliser presque tous les autre microcontrôleur

pour ce projet en utilisant le même circuit. Voici une démo.5 $ Microcontrôleurs: Arduino, Raspberry Pi zéro ou NodeMCU?5 $ Microcontrôleurs: Arduino, Raspberry Pi zéro ou NodeMCU?Il fut le cas que si vous vouliez obtenir un ordinateur, vous auriez à réhypothéquer votre maison à payer pour cela. Maintenant, vous pouvez en obtenir un pour un Abraham Lincoln.Lire la suite

Tu auras besoin de

Vous posséderez probablement déjà toutes les pièces dont vous avez besoin de faire cela, sinon le commutateur à lames, qui est d`environ 2-3 $, ou vous pouvez obtenir un paquet de 5 pour un peu plus de 8 $ ici.

  • Un Raspberry Pi (tout modèle fonctionnera pour cela).
  • 1 x résistance de 220 ohms.
  • 1 x 1K ohms résistance.
  • 3 x 10K Ohm résistance.
  • 1 x interrupteur magnétique à lame.
  • 1 x LED.
  • 2 x interrupteur à bouton-poussoir.
  • Breadboard.
  • câbles de branchement.
  • haut-parleur de l`ordinateur ou similaire.

Nous allons utiliser le Raspberry Pi pour jouer une chanson lorsque la pièce est entrée, et la conception d`un circuit avec des boutons sur notre carte de test pour l`activer sur un retard, et arrêter le programme.

Ce projet, tout en étant fait la plupart du temps pour le plaisir, couvre les bases pour de nombreuses applications domotique bricolage et aussi sécurité bricolage à domicile

Raspberry PI 3 Modèle B A1.2GHz quad-core 64 bits ARMv8 CPU, RAM 1 GoRaspberry PI 3 Modèle B A1.2GHz quad-core 64 bits ARMv8 CPU, RAM 1 Go1.2GHz quad-core CPU ARMv8 64 bits, 1 GB RAM Acheter sur Amazon 30,39 $

Commencer

Commençons par faire de notre circuit. Assurez-vous que votre Pi est sans moteur, et configurer votre circuit comme celui-ci:

Fritzing HQ annotés

La LED est connectée à la broche 7 sur notre pi. Les deux interrupteurs à bouton-poussoir sont fixés à des broches 11 et 13, et le commutateur à lames se connecte à la broche 15. Notre alimentation est à la broche 1 (3c3) et la broche 6 (Gnd).

Schéma de broches

Assurez-vous de vérifier que tout est exactement au bon endroit.

Pendant que vous testez ce projet, il peut aider à garder votre interrupteur à lames souples devant vous afin que vous puissiez facilement choisir de l`afficher ou non. Dans ce cas, le commutateur Reed était déjà installé au-dessus de la porte. Une fois que votre projet est en cours d`exécution et vous pouvez attacher temporairement le passage à votre porte à l`aide du ruban, ou si vous vous sentez plus à l`aise, vous pouvez le joindre de façon plus permanente pour une utilisation dans des projets futurs!

interrupteur à lames installé

Connectez la sortie jack 3,5 mm vous Pi à votre système de haut-parleurs. Une fois que tout est mis en place, il devrait ressembler à ceci:

Installation complète correcte

Notez que la carte de test utilisé ici a ses rails d`alimentation dans l`autre sens au schéma Fritzing ci-dessus.

Maintenant, la puissance de votre Pi et y accéder en utilisant SSH afin que nous puissions accéder au terminal. Si vous n`êtes pas sûr de savoir comment faire, ce guide peut vous aider. Si vous utilisez votre Raspberry Pi avec un moniteur, souris et clavier, sauter cette étape et ouvrez le terminal. Configuration de votre Raspberry Pi pour être utilisé avec SSH sans tête Configuration de votre Raspberry Pi pour être utilisé avec SSH sans têteLe Raspberry Pi peut accepter des commandes SSH lorsque vous êtes connecté à un réseau local (soit par Ethernet ou Wi-Fi), ce qui vous permet de mettre facilement en place. Les avantages de SSH vont au-delà perturber la projection quotidienne ...Lire la suite

Avant de commencer, il convient de vérifier si vous êtes à jour. Type sudo apt-get update dans le terminal.

Maintenant, nous pouvons passer à obtenir notre Pi parler à notre circuit.

Test Notre configuration

Pour commencer, permet de vérifier notre circuit en utilisant un programme simple. Si vous êtes sûr que vous avez câblé tout droit jusqu`à ce jour, vous pouvez sauter cette étape, bien que je le recommande car il peut sauver des maux de tête plus tard.

Si vous ne l`avez jamais programmé en Python avant et se sentent un peu intimidés, il y a une foule de grands sites qui peut vous aider à démarrer.Les 5 meilleurs sites Web pour apprendre la programmation PythonLes 5 meilleurs sites Web pour apprendre la programmation PythonAu cours de la dernière décennie, le langage de programmation Python a explosé en popularité parmi les programmeurs dans tous les domaines de codage. De développeurs web pour les concepteurs de jeux vidéo pour les créateurs d`outils en interne, beaucoup de gens sont tombés ...Lire la suite

Dans le terminal, créez un nouveau script:

nano test.py

Une fois ouvert, ajoutez ce code au fichier et appuyez sur Ctrl-C pour quitter, à la suite du dialogue sauver:

Video: Parysis - Ah ! Les fraises et les framboises

#Ceci code a été écrit pour un article sur MakeUseOf.com par Ian Buckley.importer RPi.GPIO comme GPIOimporter timeGPIO.SetWarnings(Faux)GPIO.mode réglages(GPIO.PLANCHE)GPIO.installer(7,GPIO.EN DEHORS)GPIO.installer(11,GPIO.DANS)GPIO.installer(13,GPIO.DANS)GPIO.installer(15,GPIO.DANS)tandis que Vrai:GPIO.sortie(7,GPIO.HAUTE)si (GPIO.contribution(11)==1):impression("Bouton sur GPIO 11")temps.dormir(1)si (GPIO.contribution(13)==1):impression("Bouton sur GPIO 13")temps.dormir(1)si (GPIO.contribution(15)==1):impression("Bouton sur GPIO 15")temps.dormir(1)GPIO.nettoyer()

Ce code lit la valeur des boutons et des impressions à l`écran lorsqu`ils changent. Les deux boutons poussoirs ont des résistances tirer vers le bas, de sorte qu`ils rapportent HIGH lorsqu`il est pressé. L`interrupteur magnétique Reed rapporte chaque fois que son aimant HIGH accompagnant est proche.

interrupteurs

Exécutez le programme:

python test.py

Vous devriez voir le haut de la lumière LED, et un rapport à l`écran lorsque vous appuyez sur vos deux boutons et tirez l`aimant loin de votre commutateur à lames. Si vous ne recevez pas la rétroaction lorsque vous appuyez sur les boutons, vérifiez votre circuit à nouveau et assurez-vous que tout est connecté comme il devrait être. Lorsque vous avez terminé le test, appuyez sur CTRL-C pour arrêter le programme.

Video: FRAMBOISE 434 (Aurélien Belle)

tester

Maintenant, nous pouvons mettre en place un programme simple à mettre, à déclencher et réinitialiser notre capteur de porte. Nous allons passer en revue le code dans les parties et expliquer brièvement ce que chaque partie fait, mais si vous voulez voir le défilement complet de code vers le bas pour le voir présenté dans son intégralité.

Nous devons commencer par l`importation de certains modules:

importer Rpi.GPIO comme GPIOimporter pygame.mixerimporter temps

Nous utiliserons la pygame module pour jouer notre musique. Il est livré en standard avec Raspbian Jessie, et est une grande bibliothèque pour tout ce dont vous avez besoin pour faire des jeux Python et beaucoup d`autres projets étonnants.Comment construire un Raspberry Pi Twitter BotComment construire un Raspberry Pi Twitter BotTwitter est le monde le plus grand dépôt de courts messages de personnes avec rien à dire - et maintenant vous pouvez vous aussi contribuer à ce projet épique avec un bot Twitter automatisé, alimenté par votre framboise ...Lire la suite

Nous allons utiliser une variable appelée actif de décider si notre système est actif ou non. Laissez définir quelques fonctions qui le fera pour nous:

def ActiveSetup():global activeactive=0impression("Actuellement Inactive")def ActiveState():global actifsi actif==1:actif=0GPIO.sortie(7,GPIO.FAIBLE)impression("Actuellement Inactive")Elif actif==0:impression ("Activation en 10 secondes")pour X dans gamme(0,dix):GPIO.sortie(7,GPIO.HAUTE)temps.dormir(0,5)GPIO.sortie(7,GPIO.FAIBLE)temps.dormir(0,5)actif=1GPIO.sortie(7,GPIO.HAUTE)impression("actuellement actif")autre: revenir

La première fonction crée ici une variable nommée actif, et il met à 0. Donner l`état actif une valeur numérique signifie que si vous envisagez d`évoluer plus tard votre programme pour avoir des états actifs, vous pouvez les numéroter en conséquence. Bien qu`il pourrait ne pas être la meilleure programmation Python dans le monde, il suffit plus pour ce projet.

Video: 06 - Sifflet - Epouvantail et Framboises

La seconde fonction en cas d`appel vérifie si le système est actif (ou == active 1). Le cas échéant, il définit le système de ne pas actif (actif == 0), Tourne la DEL éteinte et imprime à la console. Dans le cas contraire, il vous donne un décompte de 10 secondes pour quitter la salle dans laquelle le voyant clignote, avant de rester à montrer que le système est actif.

Maintenant, nous pouvons définir une fonction qui regarderont notre interrupteur magnétique à lames:

def watchDoor():global playingplaying = Fauxtandis que Vrai:si actif==1 et GPIO.contribution(15)==1 et en jouant == Faux:en jouant=Vraipygame.mixer.la musique.jouer()si GPIO.contribution(13)==1:impression("Arrêt bouton enfoncé: Exiting")pygame.mixer.la musique.Arrêtez()Pausesi GPIO.contribution(11)==1:ActiveState()temps.dormir(0,5)

Nous créons une autre variable appelée ici en jouant - cela est simplement là pour arrêter le programme en essayant de commencer à jouer de manière répétée lorsque l`interrupteur est déclenché.

A l`intérieur de la boucle while, la première instruction if commence la musique (que nous n`avons pas pour l`instant, mais pas à vous inquiéter, il vient). Il ne laisse passer que le début de la musique si le système est actif, le commutateur à lames est ouvert, et il est pas déjà en cours de lecture.

La deuxième instruction if est notre bouton de sortie. Si ce bouton est enfoncé les arrêts de musique et le programme sort.

La troisième instruction if est pour BASCULEMENT si le système est actif ou non. le le sommeil de temps fonction ici est d`empêcher plusieurs boutons lit quand il est pressé.

Maintenant, il est temps de mettre en place sur les broches de Pi.

GPIO.mode réglages(GPIO.PLANCHE)GPIO.installer(7, GPIO.EN DEHORS,initiale=GPIO.FAIBLE)GPIO.installer(11,GPIO.DANS)GPIO.installer(13,GPIO.DANS)GPIO.installer(15,GPIO.DANS)

Si vous avez fait des expériences avec Pi avant cela devrait vous être familier. le initial = GPIO.LOW l`argument dans la configuration de la broche 7, il met à bas dès qu`il est initialisés.

Maintenant, nous pouvons appeler notre fonction qui définirait le système ne soit pas actif lorsque le programme démarre.

ActiveSetup()

Musique Maestro!

À ce stade, nous devrions commencer à penser à la musique à jouer. Vous pouvez choisir un fichier de musique que vous le souhaitez, mais nous choisirons quelque chose de disponible à tout le monde pour l`instant. Si vous regardez YouTube vous êtes probablement déjà familier avec la musique de Kevin MacLeod. Permet de télécharger un air fantastique en lui disant « Maestro One-eyed ». Ceci, avec une grande partie de la musique sur son site, est distribué sous licence Creative Commons, et il y a de bonnes raisons d`utiliser le contenu de ces licences pour vos projets.Qu`est-ce que Creative Commons, et vous en servir?Qu`est-ce que Creative Commons, et vous en servir?Creative Commons est un ensemble de licences qui vous donnent automatiquement l`autorisation de faire des choses différentes, telles que la réutilisation et distribuer le contenu. Découvrons plus et comment l`utiliser.Lire la suite

wget

De retour dans notre code, nous devons commencer le mélangeur Pygame et charger notre air.

pygame.mixer.initialisation(44100,-16,2,1024)pygame.mixer.la musique.set_volume(1.0)prénom = "Borgnes Maestro.mp3"pygame.mixer.la musique.charge(prénom)impression("piste chargée - "+ str(prénom))

La première ligne de ce bloc amorce la pygame mixer. Le dernier argument dans les parenthèses est le tampon qui contrôle le temps d`attente dans lequel le son est joué. Si vous rencontrez une lecture saccadée plus tard quand votre musique joue, essayez d`augmenter ce nombre à 4096. Les paramètres comme ils sont le travail sans problème sur Pi 3.

Si vous avez téléchargé votre fichier de musique dans un répertoire différent de votre door.py programme, vous devrez fournir le chemin complet à l`intérieur des crochets lorsque vous définissez la variable nom.

Maintenant, tout ce qui reste à faire est de mettre en place une boucle qui nous attend soit définir le programme actif, ou en sortir.

tandis que Vrai:si(GPIO.contribution(13)==1):impression("Arrêt bouton enfoncé: Exiting")pygame.mixer.la musique.Arrêtez()Pausesi(GPIO.contribution(11)==1):ActiveState()temps.dormir(0,5)si(actif==1):watchDoor()PauseGPIO.nettoyer()

Cette boucle while attend une entrée de l`un des boutons et se ferme ou modifie l`état à l`état actif en conséquence. Si l`état actif devient 1, le watchDoor fonction que nous avons définie plus haut est appelée et la prochaine fois que la porte ouvre notre air va jouer. Nous demandons également GPIO.cleanup () pour réinitialiser nos broches à la sortie, ce qui est généralement une bonne pratique pour toute la programmation sur le Raspberry Pi.

C`est tout ce que nous devons faire pour ce projet et en cours d`exécution, voici le code complet:

importer RPi.GPIO comme GPIOimporter pygame.mixerimporter tempsdef ActiveSetup():global activeactive=0impression("Actuellement Inactive")def ActiveState():global actifsi actif==1:actif=0GPIO.sortie(7,GPIO.FAIBLE)impression("Actuellement Inactive")Elif actif==0:impression ("Activation en 10 secondes")pour X dans gamme(0,dix):GPIO.sortie(7,GPIO.HAUTE)temps.dormir(0,5)GPIO.sortie(7,GPIO.FAIBLE)temps.dormir(0,5)actif=1GPIO.sortie(7,GPIO.HAUTE)impression("actuellement actif")autre: revenirdef watchDoor():global playingplaying = Fauxtandis que Vrai:si actif==1 et GPIO.contribution(15)==1 et en jouant == Faux:en jouant=Vraipygame.mixer.la musique.jouer()si GPIO.contribution(13)==1:impression("Arrêt bouton enfoncé: Exiting")pygame.mixer.la musique.Arrêtez()Pausesi GPIO.contribution(11)==1:ActiveState()temps.dormir(0,5)GPIO.mode réglages(GPIO.PLANCHE)GPIO.installer(7, GPIO.EN DEHORS,initiale=GPIO.FAIBLE)GPIO.installer(11,GPIO.DANS)GPIO.installer(13,GPIO.DANS)GPIO.installer(15,GPIO.DANS)ActiveSetup()pygame.mixer.initialisation(44100,-16,2,1024)pygame.mixer.la musique.set_volume(1.0)prénom = "Borgnes Maestro.mp3"pygame.mixer.la musique.charge(prénom)impression("piste chargée - "+ str(prénom))tandis que Vrai:si(GPIO.contribution(13)==1):impression("Arrêt bouton enfoncé: Exiting")pygame.mixer.la musique.Arrêtez()Pausesi(GPIO.contribution(11)==1):ActiveState()temps.dormir(0,5)si(actif==1):watchDoor()PauseGPIO.nettoyer()

Si vous défiler vers le bas ici pour saisir le code complet tout de suite, gardez à l`esprit que vous aurez toujours besoin de télécharger la musique sur votre Pi pour que cela fonctionne!

Maintenant, vous devriez avoir un air de thème bienvenue à la maison qui fonctionne! Attachez votre commutateur à lames à votre porte, et l`essayer. Embarrassant danse est facultative mais recommandée.

Ce projet a couvert les bases de nombreuses formes de surveillance à domicile, la sécurité et l`automatisation, et nous espérons était amusant aussi!

Maintenant que vous êtes venu jusqu`ici, pourquoi arrêter là? Vous pouvez ajouter d`autres pistes et que le programme choisir un au hasard dans une liste. Vous pourriez ajouter un relais et ont d`autres objets sont déclenchés à l`entrée. Si vous avez un système de musique à la maison, pourquoi ne pas avoir une chanson thème pour chaque pièce?Mise en route avec GPIO Sur un Raspberry PiMise en route avec GPIO Sur un Raspberry PiSi vous que l`Arduino était cool, attendez jusqu`à ce que vous obtenez vos mains sur un Pi framboise - ces choses sont incroyables. En plus d`être un ordinateur entièrement fonctionnel, ils ont aussi un ...Lire la suite

feux de relais

Serez-vous concevez votre propre message d`accueil de bienvenue personnel? Avez-vous été inventif avec des commutateurs à lames dans votre maison d`une autre façon? Si oui, laissez un commentaire sur ce que vous envisagez ou avez déjà fait dans la section commentaires ci-dessous!

Articles connexes