Table des matières:

Comment contrôler les prises à l'aide d'un Raspberry Pi : 6 étapes
Comment contrôler les prises à l'aide d'un Raspberry Pi : 6 étapes

Vidéo: Comment contrôler les prises à l'aide d'un Raspberry Pi : 6 étapes

Vidéo: Comment contrôler les prises à l'aide d'un Raspberry Pi : 6 étapes
Vidéo: Tutoriel Raspberry Pi : Prendre le contrôle à distance de Raspberry avec VNC | video2brain.com 2024, Juillet
Anonim
Comment contrôler les prises à l'aide d'un Raspberry Pi
Comment contrôler les prises à l'aide d'un Raspberry Pi
Comment contrôler les prises à l'aide d'un Raspberry Pi
Comment contrôler les prises à l'aide d'un Raspberry Pi
Comment contrôler les prises à l'aide d'un Raspberry Pi
Comment contrôler les prises à l'aide d'un Raspberry Pi

Dans ce Instructable, je vais vous montrer comment créer une interface Web pour contrôler les prises de courant dans votre maison à l'aide d'un Raspberry Pi. J'ai choisi d'écrire ce projet lorsque j'ai vu le concours Sensors, et comme ce projet implique l'utilisation d'un capteur pour lire les codes de la télécommande fournie avec les prises que vous achetez, j'ai pensé que ce projet conviendrait parfaitement.

Je vais travailler pour maintenir ce niveau aussi élevé que possible et fournir du code pour que tout cela fonctionne. Pour tous les singes du code, n'hésitez pas à fouiller dans le code et à me scruter dans les commentaires ! Je cherche toujours à m'améliorer. Il se passe pas mal de choses là-dedans, donc si vous avez des questions sur une étape, veuillez laisser un commentaire afin que je puisse mettre à jour l'Instructable avec les détails nécessaires.

Ce projet utilise des prises contrôlées par radiofréquence à 433MHz couplées à un émetteur RF connecté à votre raspberry pi. Les prises sont livrées avec des télécommandes qui peuvent allumer/éteindre les prises, mais ce n'est pas amusant ! Nous utiliserons à la place un serveur web fonctionnant sur le raspberry pi qui permet à toute personne connectée au réseau d'allumer ou d'éteindre certaines prises. Une interface Web pour ce projet est idéale, car tout périphérique connecté au Web sur votre réseau peut être utilisé comme télécommande.

C'est un projet que je rêve de réaliser depuis des années, et bien qu'il y ait encore de la place pour des ajouts, le projet décrit ci-dessous est un système fonctionnel.

Fournitures

  • Un Raspberry Pi (j'ai utilisé un RPi 3 Model B+)
  • Un émetteur et récepteur 433MHz (j'ai utilisé celui-ci)
  • Prises 433MHz (j'ai utilisé ceci)
  • Pulls femme à femme (j'ai acheté ce lot)
  • Un ordinateur ou un appareil portable capable d'accéder à Internet

Étape 1: Configurez votre Raspberry Pi

Configurer votre Raspberry Pi
Configurer votre Raspberry Pi

Commencez par installer la dernière version de Raspbian sur votre nouveau Raspberry Pi. Si vous envisagez d'utiliser un Pi existant (ce que vous pouvez tout à fait faire), tout ce dont vous avez besoin est de vous assurer que vous avez Python 3 sur votre Pi, car c'est dans cela que tout le code source que je fournis est écrit. Pour ce faire, taper

python3

dans la ligne de commande. Si vous avez Python 3, vous devriez voir le terminal python ouvert. Quittez le terminal en fermant ou en tapant

sortir()

Une fois que vous avez confirmé cela, vous devez installer le flacon sur votre Pi. Flask nous permet de créer notre serveur web. À partir de la ligne de commande Pi, tapez

flacon d'installation sudo pip3

Si vous n'avez pas pip installé sur votre Pi, vous devrez taper

sudo apt-get installer python3-pip

Je préfère développer sur mon Raspberry Pi dans le confort de mon ordinateur de bureau. Si vous aussi vous préférez cette option, vous devez installer une sorte d'environnement pour SSH dans le Pi. PuTTY fonctionnera, mais je préfère avoir une GUI (interface utilisateur graphique), ce qui donne l'impression que vous êtes directement sur le Pi. Pour l'option GUI, vous souhaiterez installer VNC Viewer sur l'ordinateur sur lequel vous prévoyez de travailler. Il y a aussi des paramètres que vous devrez ajuster sur votre Pi. Les instructions pour modifier les paramètres peuvent être trouvées ici.

Étape 2: connexion de votre matériel

Branchement de votre matériel
Branchement de votre matériel

À ce stade, il est temps d'établir toutes les connexions physiques dont vous aurez besoin pour préparer la configuration du code source de ce projet. Vous connecterez les broches de l'émetteur et du récepteur aux broches GPIO de votre Pi. Vous voudrez faire référence religieusement au schéma de brochage des broches GPIO. Pour ce faire, ouvrez le terminal sur votre Pi et tapez

brochage

Voici les connexions que j'ai faites. Vous pouvez avoir une configuration différente si vous avez acheté un matériel émetteur/récepteur différent de celui que j'ai indiqué dans l'introduction. Si vous décidez de choisir des codes PIN différents de ceux que j'indique ci-dessous, n'ayez crainte ! Lorsque vous téléchargez le code source, modifiez simplement les numéros de broche au besoin dans le fichier RxTx.py.

Récepteur (grosse puce):

  • GND - Toute broche de terre désignée
  • DONNÉES - Broche 11
  • DER - Non connecté
  • +5V - Toute broche +5V désignée
  • ------
  • +5V - Toute broche +5V désignée
  • GND - Toute broche de terre désignée
  • GND - Non connecté
  • ANT - Non connecté

Remarque: vous pouvez connecter une antenne au besoin, mais j'ai découvert que je n'en avais pas besoin. Cette petite puce était étonnamment sensible et détecte fidèlement les signaux jusqu'à au moins 50 pieds de l'endroit où elle se trouvait et à travers au moins deux murs.

Émetteur:

  • P - La broche 3.3V
  • DA - Broche 7
  • G - Toute broche de terre désignée
  • AN - non connecté

Remarque: encore une fois, vous pouvez connecter une antenne à l'émetteur au besoin, mais j'ai découvert que je n'en avais pas besoin. La portée est plus que suffisante (50+pi).

Étape 3: Ajout du code

C'est la partie sur laquelle j'ai passé le plus clair de mon temps lorsque j'ai développé ce projet. J'essaie de commenter autant que possible, mais j'ai probablement laissé des lacunes qui pourraient nécessiter des explications si l'un d'entre vous passe du temps à essayer de le comprendre. Si cela vous arrive, laissez un commentaire !

Les langues concernées ici sont:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Le Python est utilisé dans le serveur de flacons et dans le

RxTx.py

fichier, qui gère la transmission et la réception du code. CSS est utilisé pour générer le style de la page Web. Qui veut un site Web ennuyeux !? Javascript est utilisé dans n'importe quelle gestion d'événement (appuyer sur un bouton, etc.). HTML est le bloc de construction de base de la page Web. Enfin, JQuery/Ajax est utilisé pour communiquer entre la page Web et le backend Python.

Si toutes ces langues semblent intimidantes, ne vous inquiétez pas ! Je ne connaissais que Python pour ce projet, qui s'est avéré être le langage qui impliquait le moins de codage, allez comprendre… Qu'il suffise de dire, prenez votre temps pour parcourir le code si c'est ce que vous choisissez de faire. Si tu ne veux pas, tu n'es pas obligé !

Ce qui suit est la structure de répertoires que j'ai choisi d'employer avec cette page Web. Le dossier zippé attaché à cette étape contient tout le code source dans la structure suivante.

Commutateur de sortie-> comm-- DataRW.py-- keys.py-- RxTx.py-> page Web-- statique----- favicon.ico----- style.css-- templates----- index.html----- schedule.html-- app.py-- data.file

Vous pouvez placer le dossier Outlet Switch n'importe où sur votre Pi. Lorsque vous êtes prêt à exécuter votre serveur Web, ouvrez le terminal sur votre Pi et

CD

(changer de répertoire) dans le répertoire de la page Web. Tapez ensuite

python3 app.py

dans le terminal. S'il n'y avait pas d'erreurs, vous devriez être prêt à partir !

P. S. Veuillez être patient si vous rencontrez des bugs. J'ai essayé de les écraser tous avant de les télécharger.

Étape 4: Essayez-le

Donner un coup de feu!
Donner un coup de feu!

Maintenant que vous exécutez le code, vous pouvez avoir une idée de l'interface Web à portée de main. Le contrôle du système est très simple:

  • Vous pouvez ajouter autant de points de vente que vous le souhaitez à l'aide de l'interface Web.
  • La suppression est aussi simple que de cliquer sur modifier, de sélectionner les points de vente que vous souhaitez supprimer et de cliquer sur supprimer.

La vidéo YouTube ci-dessus montre comment ajouter un nouveau point de vente à votre liste. Pour résumer ce qu'il montre:

  • Entrez d'abord le titre du point de vente dans le champ Titre
  • Cliquez ou touchez en dehors du champ Titre pour permettre au programme de vérifier que le titre n'existe pas déjà. Vous ne pouvez pas avoir de titres du même nom
  • Une fois validés, les boutons ON Code et OFF Code sont activés.
  • Appuyez et maintenez enfoncé le bouton ON de la télécommande fournie et cliquez rapidement sur le bouton ON Code de l'interface. Maintenez le bouton de la télécommande enfoncé jusqu'à ce que votre code binaire remplisse le champ adjacent.
  • Répétez l'étape précédente pour le code OFF.
  • Cliquez sur OK et vous êtes maintenant prêt à changer cette prise !

Comme mentionné dans l'introduction, le projet n'est pas complet à 100% pour mes propres usages. Le plus gros composant que je n'ai pas encore terminé et mis en œuvre est la capacité de planification. Je prévois de permettre à l'utilisateur de créer un calendrier qui permettrait d'allumer et d'éteindre automatiquement les points de vente à des heures désignées.

Étape 5: Débogage et fichier RxTx.py

Débogage et fichier RxTx.py
Débogage et fichier RxTx.py
Débogage et fichier RxTx.py
Débogage et fichier RxTx.py
Débogage et fichier RxTx.py
Débogage et fichier RxTx.py
Débogage et fichier RxTx.py
Débogage et fichier RxTx.py

La seule limitation connue du système est qu'il existe un risque d'incompatibilité entre les différents points de vente des fournisseurs. Les messages de code d'activation et de désactivation sont de 25 bits pour mon système, et si un système a une longueur de message différente, il n'est pas immédiatement compatible avec ce projet. Si vous avez exactement suivi les instructions et que vous rencontrez toujours des problèmes pour que cela fonctionne, ce qui suit serait le meilleur moyen de déboguer le problème.

  • Assurez-vous que matplotlib est installé sur votre Pi. Vous pouvez le faire en tapant ce qui suit dans le terminal du Pi:

    • python3

    • importer matplotlib

    • Si vous recevez une erreur, vous devez installer matplotlib.
    • Quittez le shell python en utilisant

      sortir()

  • Pour installer matplotlib, tapez

    sudo pip3 installer matplotlib

  • dans le terminal
  • Téléchargez le fichier test.py joint et placez-le à côté du fichier RxTx.py sur votre Pi
  • Ouvrez le terminal python et changez de répertoire dans le dossier comm.
  • Taper

    python3 test.py

  • Lorsqu'il est dit "**Enregistrement démarré**", maintenez enfoncé le bouton ON ou OFF de votre télécommande jusqu'à la fin de l'enregistrement.
  • Le programme chargera une figure matplotlib qui ressemble à ce qui précède. Zoomez jusqu'à ce que vous voyiez le signal répétitif comme le montrent les photos ci-dessus.
  • Comptez le total logique 1 et logique 0 pour chaque message, où un message est une itération du signal répétitif vu ci-dessus. Si le total est de 25, le fichier RxTx.py n'est probablement pas en cause. Si vous rencontrez autre chose que 25, assurez-vous de commenter ci-dessous, et je réorganiserai le fichier RxTx.py pour qu'il soit plus ouvert (ou n'hésitez pas à vous y essayer).

Que faire si je ne vois pas de signal répétitif ?

Si vous ne voyez pas de signal répétitif, l'une des deux choses suivantes ne va pas. Tout d'abord, vérifiez que toutes les connexions de vos câbles de démarrage sont correctement effectuées. Si tout semble bon, vous avez peut-être un mauvais récepteur. Avez-vous acheté celui que j'ai suggéré? Quand j'ai acheté ma première puce de réception, c'était très bruyant. Tellement bruyant que je n'ai pas pu obtenir un signal clair. J'ai ensuite rendu cette puce et récupéré celle que j'avais liée, et cela n'aurait pas pu mieux fonctionner.

Étape 6: Profitez

Vous savez que vous avez la possibilité d'activer/de désactiver les prises de votre téléphone, tablette, ordinateur ou autre appareil connecté au Web ! Dites moi ce que vous en pensez dans les commentaires !

Conseillé: