Table des matières:

Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation) : 6 étapes
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation) : 6 étapes

Vidéo: Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation) : 6 étapes

Vidéo: Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation) : 6 étapes
Vidéo: PiPower de SunFounder : Une alimentation non interruptible UPS pour Raspberry Pi 2024, Juillet
Anonim
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)
Prises secteur télécommandées Raspberry Pi RF (prises d'alimentation)

Contrôlez les prises secteur 433MHz bon marché (prises murales) à l'aide d'un Raspberry Pi. Le Pi peut apprendre les codes de commande émis par la télécommande des prises et les utiliser sous le contrôle du programme pour activer une ou toutes les prises à distance dans toute la maison.

La conception ne repose pas sur une connectivité Internet externe (c.-à-d.) « Internet des objets » et est donc (à mon humble avis) beaucoup plus sécurisée que les contrôleurs Web. Cela dit, j'ai essayé l'intégration avec Google Home, mais j'ai rapidement perdu l'envie de vivre lorsque les commandes prenaient parfois plusieurs dizaines de secondes à s'exécuter ou ne s'exécutaient jamais du tout.

Une application évidente autour de la période de Noël consiste à contrôler les lumières des arbres de Noël et (si vous êtes de cette façon incliné) les lumières d'affichage à l'extérieur. Bien que ce soit une utilisation simple, en construisant cet Instructable, vous vous retrouverez avec un contrôleur de sockets super flexible qui peut répondre aux entrées de capteurs et à d'autres appareils sur votre réseau domestique, tels que Raspberry Pis exécutant Linux Motion.

Par exemple, j'ai un ensemble de lumières de cuisine qui s'allument lorsqu'une caméra fonctionnant sous « Motion » détecte un mouvement dans la cuisine, puis les éteint après cinq minutes d'inactivité. ça marche vraiment bien !

Avec « Tasker » et « AutoTools SSH » du Google Play Store, vous pouvez configurer toutes sortes de télécommandes sophistiquées pour téléphone.

Le projet repose sur des cartes réceptrices et émetteurs 433MHz bon marché largement disponibles sur eBay. Ceux-ci sont compatibles avec (au Royaume-Uni au moins) les prises secteur à distance 433MHz vendues avec les télécommandes. Mon projet comprend un récepteur afin que de nouveaux ensembles de commandes de télécommande puissent être incorporés facilement et rapidement. Un point à noter - les prises à distance disponibles au Royaume-Uni semblent se décliner en deux versions - celles avec un ID programmé par un interrupteur sur la prise et celles qui dépendent de la programmation à partir de la télécommande. Ce projet est compatible avec les deux mais les premiers ne perdent pas leur identité en cas de coupure de courant et sont donc préférables.

Le projet utilise un ancien boîtier de routeur - j'en ai quelques-uns et ils ont très facilement la plupart des connecteurs externes nécessaires, tels que l'alimentation, Ethernet, USB et antenne(s). Ce que vous utilisez dépendra de ce dont vous disposez, donc ce Instructable est probablement plus utile comme guide général plutôt que comme un ensemble d'instructions étape par étape.

Bien que cela ne soit pas strictement nécessaire pour ce projet, j'ai également ajouté un ventilateur de refroidissement et une carte contrôleur. Sans ventilateur, le Pi peut devenir assez chaud (environ 60°C). Les détails peuvent être fournis dans un Instructable ultérieur.

Je dois mentionner que je ne suis pas un programmeur. Le logiciel est (principalement) écrit en Python et les trucs intelligents sont copiés par des gens qui savent ce qu'ils font. J'ai reconnu les sources où je peux - si j'en ai manqué, faites-le moi savoir et je corrigerai le texte.

L'Instructable suppose une certaine capacité de soudure et une familiarité passagère avec Python, Bash et parler à votre Pi via SSH (bien que je vais essayer de rendre les instructions aussi complètes que possible). Il est également écrit en anglais britannique, donc si vous lisez de l'autre côté de l'étang, veuillez ignorer les lettres supplémentaires dans les mots et les noms étranges des choses (comme les « prises secteur », que vous connaîtrez comme quelque chose comme « prises murales »).

Tous les commentaires, suggestions d'améliorations et d'utilisations, etc. sont également les bienvenus !

Étape 1: Préparation du cas

Préparation de cas
Préparation de cas
Préparation de cas
Préparation de cas
Préparation de cas
Préparation de cas

J'ai utilisé un ancien routeur TP-Link TD-W8960N pour ce projet. C'est une bonne taille et une fois que j'ai trouvé comment y entrer, c'est assez facile à travailler.

J'ai également conservé l'alimentation 12v @ 1A du routeur, qui est un peu sous-alimentée mais en pratique est OK pour cette application.

Pour ouvrir le boîtier, il suffit de retirer deux vis au bas du boîtier, puis d'utiliser un outil de levier autour du bord du boîtier pour faciliter l'ouverture des clips. Les deux vis se trouvent sous les pieds en caoutchouc à l'arrière du boîtier (voir flèches rouges). Les clips les plus difficiles à ouvrir sont ceux à l'avant mais j'avais confiance et ils se sont pliés à mon outil de levier.

Une fois le boîtier ouvert, desserrez les deux écrous des connecteurs d'antenne et le circuit imprimé peut être retiré.

Comme vous utiliserez les deux antennes plus tard, dessoudez les câbles coaxiaux du circuit imprimé et mettez-les de côté.

Si vous vous sentez courageux (comme moi), vous pouvez retirer l'interrupteur poussoir, la prise cc et les prises RJ45 de la carte de circuit imprimé. La meilleure façon que j'ai trouvée de le faire est de serrer la carte dans un étau et d'appliquer la chaleur d'un pistolet thermique tout en tirant avec un outil d'ouverture de boîtier mince approprié ou un tournevis. La logique est que toutes les connexions de soudure sont fondues en même temps, ce qui réduit la contrainte thermique globale sur le boîtier en plastique du composant par rapport à l'utilisation d'un fer à souder sur chaque jonction. C'est du moins la théorie. En pratique, il y a de la chance ! La quantité de chaleur à appliquer est une question de jugement, mais soyez prudent et pécher par excès de trop peu. Si tout se passe bien, vous vous retrouverez avec les composants utilisables montrés sur la photo (vous noterez cependant le bouton de l'interrupteur fondu et la réglette de prise RJ45 légèrement déformée !).

Sinon, c'est sur Internet pour acheter vos morceaux.

Étape 2: Liste des pièces

Raspberry Pi - Je soupçonne que n'importe quelle saveur fera l'affaire mais j'ai utilisé un 3B+

Carte émetteur 433MHz - recherchez sur eBay 'Émetteur RF 433MHz avec kit récepteur pour Arduino Arm Mcu Wireless' ou similaire

Carte récepteur 433MHz - idem. Typiquement 1,98 £ par paire

Régulateur Buck LM2596 - eBay, généralement 1,95 £. Pour convertir l'alimentation 12v en 5v pour le Pi

Conduit de lumière - recherchez sur eBay "Câble à fibre optique - 0,25 / 0,5 / 0,75 / 1 / 1,5 / 2 / 2,5 / 3 mm de diamètre - Guide de lumière" - J'ai utilisé un tuyau de 2 mm mais 1,5 mm aurait été plus facile à utiliser (j'ai payé £ 2,95 pour 1m)

Interrupteur à bascule miniature à 2 pôles (agréable à avoir mais en option)

Prise USB type A soudable à 180° - via eBay, j'ai payé 1,90 £ pour dix

Interrupteur poussoir bipolaire (agréable à avoir mais facultatif) - J'ai le mien à partir de la carte modem/routeur

Prise(s) RJ45 - récupérée de la carte modem/routeur

Prise d'alimentation CC - via eBay (10X Prise d'alimentation CC Connecteur femelle à montage sur panneau 5,5 x 2,1 mm 0,99 €)

Antennes 430MHz - convertissez les antennes 2GHz du modem/routeur

Alimentation 12v cc 12W (minimum) - idéalement, cela viendra avec le modem/routeur. Sinon, vous devez vous assurer que la prise d'alimentation CC ci-dessus correspond à celle que vous utilisez. L'exigence de 12v est déterminée par l'émetteur 433MHz

Les pièces du mod de ventilateur de refroidissement seront détaillées dans un Instructable ultérieur.

Étape 3: Consommables et outils

Vous aurez besoin des consommables suivants:

Soudure (au besoin)

Colle thermofusible (au besoin)

Fil d'interconnexion - (par exemple) 22 & 24AWG (au besoin)

Manchon thermorétractable (au besoin)

Chat sacrificiel. 5 câbles de raccordement Ethernet

Câble patch USB 2 sacrificiel.

Outils:

Pince à dénuder

Coupe-fil (de préférence coupe-fil)

Outil de prix

Tournevis approprié pour démonter le boîtier.

Fer à souder

Pistolet à colle

Sèche-cheveux (pour courber les conduits de lumière et pour toute interruption impromptue de la coiffure)

Récepteur de communication FM 433MHz (en option - pour le dépannage des problèmes d'émetteur) - (par exemple) AR1000

Étape 4: Assemblage

Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée
Assemblée

La façon dont vous assemblez le Pi et les cartes auxiliaires dépend du boîtier que vous utilisez. Les photos montrent ce que j'ai fait.

Le Pi se trouve à peu près au milieu du boîtier, laissant suffisamment de place pour l'utilisation des différents connecteurs (notez que le HDMI n'est pas utilisé car le Pi communique avec SSH (c'est-à-dire) "sans tête".

J'ai attaché le Pi à la base à l'aide de quelques attaches en plastique récupérées (voir photo). Comme la boîte n'est pas destinée à une utilisation portable, vous pouvez vous en tirer en n'utilisant que deux attaches. Vous pouvez facilement utiliser des vis de 2,5 mm avec des entretoises ou même de la colle thermofusible (que j'ai utilisée dans le passé - assurez-vous simplement de ne pas en utiliser trop et d'éviter les composants de montage en surface sur la face inférieure car vous en aurez inévitablement pour retirer la planche à un moment donné (première loi de construction - vous DEVEZ la démonter)).

J'ai utilisé de la colle chaude pour fixer les différentes planches sur les côtés du boîtier. Les mêmes considérations que ci-dessus s'appliquent.

Une fois que tout est en place, vous pouvez câbler les choses.

Le schéma fonctionnel montre le schéma de câblage que j'ai utilisé. Notez que j'utilise l'interrupteur à bascule en option pour alterner l'alimentation entre les cartes émetteur et récepteur - il y a probablement peu de risque de le faire mais je ne voulais pas faire frire le récepteur lors de la transmission.

Il m'est également venu à l'esprit que l'interrupteur poussoir aurait pu être utilisé pour éteindre le Pi en douceur (il existe un certain nombre de modèles disponibles sur Internet). Je n'ai pas pris la peine - dans ce cas, il s'agit d'un simple interrupteur marche/arrêt. Je dois juste faire attention à éteindre le Pi via SSH avant d'appuyer sur l'interrupteur.

Vous remarquerez les conduits de lumière utilisés pour canaliser la lumière des deux LED du Pi et de la LED d'état de l'alimentation vers l'avant du boîtier. J'ai utilisé la chaleur d'un sèche-cheveux pour plier les tuyaux (vous ne voulez certainement PAS utiliser de pistolet thermique !). Il s'agit d'essais et d'erreurs, mais cela en vaut la peine, car vous pouvez voir directement ce que les LED signalent plutôt que de vous fier à un logiciel et à des LED externes. C'est votre choix bien sûr. La coupe des tuyaux se fait avec une paire de pinces coupantes (les pinces coupantes sont les meilleures) mais vous pouvez également utiliser des ciseaux pointus. Encore une fois, de la colle thermofusible peut être utilisée pour fixer les tuyaux en place mais attention à n'en utiliser qu'une petite quantité - qui refroidit rapidement - car la colle peut déformer les tuyaux.

Idéalement, vous devriez modifier les antennes. Ils seront généralement dimensionnés pour fonctionner à 2 GHz et feront des antennes très inefficaces lorsqu'ils seront utilisés à 433 MHz.

Pour ce faire, vous devez d'abord retirer le couvercle de l'antenne pour exposer le fil d'antenne. Je pense que j'ai eu de la chance car le couvercle s'est détaché de chaque antenne avec seulement une petite quantité de prise.

Coupez à l'endroit indiqué pour retirer l'antenne 2 GHz d'origine et exposer le câble coaxial. Accédez avec précaution au noyau interne, en enlevant bien la tresse et soudez-la à un nouveau morceau de fil comme indiqué. La longueur du nouveau fil est d'environ 1/4 de longueur d'onde de 433 MHz (c'est-à-dire) longueur = 0,25 * 3E8/433E6 = 17 cm. La partie inférieure peut être enroulée à l'aide d'un petit foret ou similaire pour permettre à toute la longueur de s'adapter dans le couvercle de l'antenne.

Avant le remontage, vérifiez qu'il n'y a pas de court-circuit entre les contacts intérieurs et extérieurs de l'antenne.

J'ai seulement modifié l'antenne de l'émetteur en tant que récepteur « sourd » est probablement avantageux lors de l'apprentissage des codes de télécommande RF (voir plus loin).

La connexion ethernet se fait par câblage d'un cat. sacrificiel. 5 câble d'interconnexion à la prise RJ45 récupérée du modem. Coupez le câble en fonction de la distance entre la prise Ethernet Pi et la prise RJ45 du boîtier et dénudez les huit fils. Utilisez un testeur de continuité pour vous assurer de câbler la broche 1 du câble à la broche 1 de la prise, etc. Un moyen simple de le faire est de brancher le connecteur dans la prise à laquelle vous câblez et de sonner entre les contacts de la prise et les extrémités dénudées du câble. Comme une seule des quatre prises RJ45 externes est utilisée, marquez la prise filaire en conséquence pour éviter des erreurs embarrassantes ultérieurement.

De même, le connecteur USB est câblé à l'aide d'un câble patch sacrificiel USB 2, câblé broche 1 à broche 1 etc. Le connecteur USB du monde extérieur est collé à chaud sur le boîtier, en utilisant le trou dans le boîtier laissé par la prise de ligne téléphonique.

Étape 5: Notes de l'émetteur

Notes de l'émetteur
Notes de l'émetteur
Notes de l'émetteur
Notes de l'émetteur
Notes de l'émetteur
Notes de l'émetteur

Les cartes d'émission et de réception à 433 MHz que j'ai utilisées sont omniprésentes sur Internet et comme elles sont si bon marché, j'ai commandé deux paires de chacune (pour permettre des montages expérimentaux). J'ai trouvé que les récepteurs étaient fiables, mais l'émetteur que j'utilisais avait besoin d'être modifié pour qu'il fonctionne de manière fiable.

Le circuit de l'émetteur FS1000A que j'ai acheté* est indiqué sur le schéma. J'ai découvert par essais et erreurs qu'un condensateur de 3pF devait être installé dans la position C1 SoT (sélectionner lors du test) pour que la chose fonctionne. Comme j'ai un récepteur à large bande qui couvre 430 MHz, il était relativement facile de résoudre ce problème. Comment vous pourriez tester sans récepteur est une question intéressante….

*Remarque: j'ai acheté un deuxième lot d'émetteurs après que je n'ai pas pu faire fonctionner les deux premiers. Ceux-ci sont tous venus sans la bobine collectrice. Hmmm!

J'avais un condensateur 3pF dans ma boîte à ordures mais ce ne sera pas le cas pour la plupart des gens je suppose et dans tous les cas, la valeur nécessaire pourrait être supérieure, disons 7pF. Un remplacement grossier peut être effectué avec deux morceaux de fil torsadé (le câble à paire torsadée de ma connaissance a une capacité d'environ 100 pF par pied pour vous donner une indication de la longueur), mais ce n'est pas recommandé car d'autres problèmes peuvent survenir. J'espère que vous aurez de la chance et que vous n'aurez pas ce genre de problème. Vous pouvez toujours acheter un émetteur plus cher (et donc probablement) de meilleure qualité.

Notez également que la fréquence de l'émetteur n'est pas très précise ou stable, mais dans la pratique, elle a été suffisamment bonne pour faire fonctionner de manière fiable les prises à distance.

Veuillez également noter que le trou métallisé adjacent au mot « ANT » sur l'émetteur n'est PAS la connexion de l'antenne - c'est celui dans le coin sans marquage (voir photo). C'est la première erreur que j'ai commise….

La connexion des broches utilement marquée « ATAD » devrait en fait indiquer « DONNÉES » bien sûr.

Étape 6: Présentation du logiciel

Présentation du logiciel
Présentation du logiciel

Veuillez garder à l'esprit que je ne suis pas un programmeur. Comme indiqué précédemment, le truc intelligent est le code des autres, mais j'en sais assez pour le pincer et l'adapter pour le faire fonctionner ensemble. C'est aussi le premier Instructable que j'ai publié avec du code, donc désolé si je l'ai mal fait ! Si vous avez des questions, s'il vous plaît gardez cela à l'esprit…

Le logiciel de base que j'ai utilisé est le suivant:

  • Raspbian Stretch Lite
  • PiGPIO (une bibliothèque fantastique pour piloter des servos, etc.)
  • _433.py code (pour coder et décoder les codes de contrôle RF) - lié à partir du site Web PiGPIO.
  • Python3 (fourni avec Raspbian)

Logiciel supplémentaire que j'utilise:

  • pyephem (calcule les heures d'aube et de crépuscule - utile pour la commutation de la lumière)
  • L'excellent 'Tasker' et 'AutoTools SSH' pour créer une télécommande sur mon téléphone Android - voir photo (tous deux disponibles dans le Google Play Store). [Comment créer une 'scène' Tasker est en dehors de la portée de ce Instructable car il y a une courbe d'apprentissage assez raide impliquée mais je suis heureux de discuter de ce que j'ai fait]

Mon propre code (en Python). Brut mais fonctionnel:

  • tx.py - logiciel d'argumentation de menu et/ou de ligne de commande qui envoie le code approprié à l'émetteur 433MHz.
  • dawn-dusk - calcule les heures d'aube et de crépuscule à mon emplacement et met à jour le crontab de l'utilisateur (utilisé pour les lumières des arbres de Noël, etc.)

Le code personnel ci-dessus est accessible via GitHub:

La fonctionnalité du projet est fournie par le code PiGPIO et _433.py. Ce dernier a une fonction de réception qui écoute les commandes de télécommande de votre télécommande RF 433MHz et décode les impulsions de synchronisation, produisant une sortie qui peut être stockée pour une utilisation ultérieure par la fonction de transmission. Cela permet au système d'apprendre n'importe quelle télécommande RF « normale » de 433 MHz. En principe, il peut également être utilisé pour apprendre les télécommandes RF de votre voisin. Je déconseille fortement cela, car les voisins voient rarement le côté amusant des sonnettes qui sonnent au hasard. Je ne le ferais pas.

Installer

Comme le Pi de cette application fonctionne « sans tête » (c'est-à-dire sans moniteur ni clavier, vous devez lui parler via ssh. Il existe de nombreux guides disponibles expliquant comment configurer un Pi sans tête, mais pour simplifier les choses, je suppose que vous démarrez d'abord le Pi avec un moniteur et un clavier. Une fois démarré, démarrez le terminal et entrez 'sudo raspi-config'. Sélectionnez '5. Options d'interfaçage' puis 'P2 SSH'. Activez le serveur ssh et fermez raspi-config (qui se terminera probablement par un redémarrage).

Les communications suivantes avec le Pi peuvent ensuite être effectuées à partir d'un terminal distant via ssh. Notez que le code ne nécessite pas d'adresse IP LAN fixe pour le Pi, mais cela aide certainement (et c'est certainement nécessaire si vous vous plongez dans le contrôle de Tasker). Encore une fois, il existe de nombreux tutoriels en ligne expliquant comment procéder. Mon routeur domestique me permet d'attribuer une adresse IP fixe à l'adresse MAC du Pi, donc je le fais de cette façon, plutôt qu'en modifiant la configuration du Pi.

Installation de PiGPIO:

ssh dans le Pi et entrez les commandes suivantes:

mise à jour sudo apt

sudo apt installer pigpio python-pigpio python3-pigpio

sudo apt installer git

git clone

sudo apt installer python3-RPi. GPIO

Pour exécuter PiGPIO au démarrage:

crontab -e

ajoutez la ligne suivante:

@reboot /usr/local/bin/pigpiod

Obtenez le code Python pour transmettre et décoder les codes à distance RF 433MHz:

wget

décompressez _433_py.zip

Déplacez le fichier _433.py décompressé dans un répertoire approprié (par exemple) ~/software/apps

Taper (dans ce répertoire)

_433.py

place le Pi en mode 433 rx, en attendant les codes de télécommande RF démodulés sur la broche GPIO 38.

Avec le récepteur 433MHz connecté, lorsqu'une télécommande 433MHz est utilisée à proximité, quelque chose comme les données suivantes s'affichera à l'écran:

code=5330005 bits=24 (écart=12780 t0=422 t1=1236)

Ces données sont utilisées dans votre programme Python pour régénérer la transmission de la télécommande.

Pour rediriger ces données vers un fichier pour une utilisation ultérieure, exécutez:

_433.py > ~/software/apps/remotedata.txt

Une fois que vous avez les données, l'étape suivante consiste à les utiliser pour modifier le code 'tx.py' que vous pouvez copier à partir de mon référentiel GitHub. Ce code utilise les données pour générer des formes d'onde comprises par la ou les prises distantes à transmettre par l'émetteur 433MHz. Espérons que les modifications requises seront raisonnablement évidentes et que le reste dépend de vous…..

Conseillé: