Le moyen le plus économique de contrôler plusieurs prises de courant (lumières) via le Wi-Fi

41

Ce que j'aimerais voir, c’est le moyen le moins coûteux possible de contrôler mes éclairages avec mon Raspberry Pi.

Ce que j'imagine pour le contrôler

Je construis une interface sur mon smartphone par laquelle je peux envoyer des commandes à mon Raspberry Pi. Le Raspberry Pi enverrait alors un paquet (ou autre chose) à une chose que je pourrais mettre dans ma prise de courant (pour que je ne la voie pas). Notez que cette chose doit être connectée via Wi-Fi (sinon, comment va-t-il recevoir le message de mon Raspberry Pi?).

Qu'est-ce que c'est et quel est le moyen le moins coûteux possible, car je prévois de brancher une douzaine de lampes?

Rick Hoving
la source
Il y a un point de vente contrôlé par wifi que quelqu'un a fait pour environ 20 $ en pièces (sans compter le framboise pi) ProvoTronics.com
Ty Jones

Réponses:

22

J'utilise ces articles:

  • Récepteurs ON-OFF pour contrôler mes lumières (vous mettez généralement un appareil dans la prise murale ou à la place de la prise murale). Ils travaillent dans la bande de 433 MHz (ISM).

Dès le départ, vous disposez d'une télécommande qui envoie un signal à l'appareil récepteur et l'allume ou l'éteint.

Dans mon cas, j'ai créé cette situation:

  • Création d'un site HTML sur mon Raspberry Pi ( /switch.html)
  • J'appelle cette page sur mon smartphone
  • Sur la page se trouvent quatre boutons (je contrôle quatre appareils / voyants)
  • Lorsque je clique sur un bouton, un appel est déclenché de manière asynchrone /switch.php(le .php est sur le Raspberry Pi).
  • Le switch.phpappelle un switch.pyprogramme qui contrôle l'émetteur 433 MHz (voir ci - dessous)
  • L'émetteur 433 MHz fait la même chose que la télécommande prête à l'emploi.

Il s’agit de l’expéditeur, c’est-à-dire le remplacement de la télécommande standard: module de transmetteur sans fil 433 MHz pour super-génération pour Arduino

J'ai également créé un scénario pour une utilisation en dehors de la maison.

Je ne voulais pas connecter mon Raspberry Pi via mon homerouter directement à Internet, alors je me suis construit une autre page Web (sur mon propre domaine) qui ne contrôle pas directement le Raspberry Pi, mais elle envoie un courrier électronique à une personne connue de moi) adresse e-mail ( Gmail ).

Le Raspberry Pi vérifie ce compte de messagerie toutes les 10 minutes pour voir s’il existe des courriels. Dans cet e-mail, par exemple, je dis A ou B off.

Ainsi, lorsque nous rentrons tard et que les lumières sont déjà éteintes, nous accédons au site sur mon mobile (il est prévu d'en faire une application Android), cliquez sur le bouton, la page est publiée et sur le serveur un e-mail est envoyé, puis dans les 0 à 10 minutes suivantes, le Raspberry Pi vérifie le courrier électronique, voit quatre nouveaux courriers électroniques (A activé, B activé, C activé et D activé) et allume les lumières.

Comment commencer

Donc, pour commencer, voici les choses que j'ai faites pour que tout fonctionne. Dans mon cas, j’ai programmé le contrôle de l’expéditeur à 433 MHz en Python (un langage simple si vous savez déjà programmer).

D'abord, vous installez la rpi.gpiobibliothèque.

Cette bibliothèque permet de contrôler les petites épingles de votre Raspberry Pi à partir de votre script Python. Voir Installer la bibliothèque Python RPi.GPIO .

Ensuite, vous pouvez éventuellement lire l’article Didacticiel: Comment utiliser votre Raspberry Pi comme un Arduino , c’est ce que vous pouvez faire avec la rpi.gpiobibliothèque, par exemple des voyants clignotants .

Ce n'est pas obligatoire pour la commutation de lumière Elro cependant.

Ensuite, vous obtenez le code génial pour Elro commandé par HeikoHeiko, à l'adresse http://pastebin.com/aRipYrZ6 . Vous collez ce code dans un fichier nommé ' switchelro.py'.

Vous modifiez ensuite la chaîne de la ligne 94 selon vos propres paramètres de cavalier (comme vous l'avez défini dans votre télécommande et le périphérique de la prise murale. Vérifiez si le périphérique combinaison de la prise murale en façade fonctionne avant de l'essayer avec le Raspberry Pi. Si cela ne fonctionne pas avec les composants standard, il échouera probablement aussi avec le Raspberry Pi).

Vous modifiez ensuite le numéro de code d'identification de votre expéditeur sur la ligne 97.

Le numéro de broche peut être obtenu à partir de périphériques de bas niveau RPi et dans File: RPi P1 header.png .

Vous devez utiliser le nombre 1..26 (l'image en noir), pas les GPIO34, GPIO24, etc. (image verte).

Ensuite, vous tapez ceci à l'invite de commande:

sudo python switchelro.py 2 1

ce qui signifie "allume B" (suivant ce schéma: A = 1, B = 2, C = 4, D = 8, E = 16pour le premier numéro, et 1 = on, 0 = off pour le second).

J'ai changé repeat = 10sur line 30pour repeat = 20au début (je ne me souviens pas pourquoi) et qui fonctionne. Je n'ai jamais refait l'essai avec le réglage '10'.

Michel
la source
1
oh, et le prix .. ici aux Pays-Bas un ensemble de 3 récepteurs walloutlet (que vous cliquez dans la prise murale, et que la lumière entre dans le récepteur) avec télécommande coûte 15 euros. L'expéditeur de 433 Mhz coûte environ 5 $
Michel
Cela sonne exactement ce que je cherche! Pourriez-vous s'il vous plaît m'envoyer les fichiers du projet? (Le switch.html, switch.php et le switch.py) Mon email est dans une réponse ci-dessus. De plus, où puis-je acheter le récepteur on-off2 aux Pays-Bas? Le site Web que vous avez fourni ne fournit aucun prix.
Rick Hoving
Excellente post-Pouvez-vous ajouter où vous avez trouvé la source pour les commandes que vous envoyez via une série? Êtes-vous usign une bibliothèque? Comment ciblez-vous les appareils? +1
Piotr Kula
1
@Nitin Dans mon système, vous pouvez régler le commutateur DIP sur le récepteur (les 5 commutateurs marche / arrêt) et 5 lettres (A .. E). Donc, avec le code default_key = [1,0,0,0,1]du code pastebin.com/aRipYrZ6 , vous contrôlez les commutateurs DIP et avec la pinpropriété dans le def __init__(self, device, key=[1,1,1,1,1], pin=4):code, vous contrôlez le A .. E (a = 1 .. e = 16)
Michel
1
@ Nitin Je ne sais pas comment le contrôler avec C #. J'attends cela avec impatience, car le dernier PI exécutera Win10 et, espérons-le, également C #. Ceci dit, bien que je sois programmeur C #, Python est un apprentissage facile
Michel
6

La chose s'appelle X10 , c'est un standard de l'industrie pour la plupart des tâches de domotique, y compris le contrôle des lumières. Le signal de contrôle est envoyé sur la même ligne électrique que vos appareils.

Pour pouvoir tout contrôler à partir de l'ordinateur, vous voudrez peut-être vous renseigner sur les interfaces d'ordinateur X10 sur le site Web OpenRemote. Le modèle que vous recherchez le plus probablement est le CM15A avec interface USB, compatible Linux.

En outre, il pourrait être une bonne idée de vérifier ebay pour les prises murales et les modules de lampe vissés compatibles X10, ceux-ci peuvent être achetés à moindre coût, entre 10 et 20 $.

Lenik
la source
6

Ce que vous cherchez, c'est un relais à semi-conducteurs ou un relais mécanique . L'idée est qu'une petite quantité de courant à basse tension (comme celle de votre RPi) peut être utilisée pour déclencher le passage d'une plus grande quantité de courant à une tension plus élevée (telle qu'une lampe).

Je recommanderais le module de relais CC 5V SainSmart à 8 canaux pour Arduino Raspberry Pi , car il a déjà été fabriqué en une carte avec des bornes à vis prêtes à l'emploi. Il est doté de FET permettant de générer le courant supplémentaire nécessaire au déclenchement des relais mécaniques. Il existe différents tableaux de la même société, dans une grande variété de disposition / nombre de relais. Celui que j’ai envoyé est composé de 8 canaux. Il se peut qu’il ne soit pas suffisant pour répondre à vos besoins, bien que 16 versions de canaux soient disponibles . Ils sont généralement moins chers que d’acheter plusieurs relais séparément, ce qui facilite leur branchement.

Il y a 4 connexions requises:

  • Une terre commune (partagée par tous les relais) qui se connecte au RPi
  • Entrées séparées alimentées par des lignes individuelles RPi GPIO (pour déclencher des relais)
  • Une entrée haute tension
  • Une sortie haute tension

Les entrées / sorties haute tension sont les connexions qui sont établies ou interrompues par les relais conformément à leurs lignes d’entrée.

J'ai déjà un programme AWESOME C pour la commutation à distance des broches GPIO sur SSH. Si vous le souhaitez, je peux vous donner le code source, ou même vous expliquer comment cela fonctionne.

Alexander - Rétablir Monica
la source
Comment puis-je dire non à un programme IMPRESSIONNANT. Bien que C ne soit pas dans mon répertoire de langues, je peux au moins regarder le code avec le temps.
Rick Hoving
Pouvez-vous envoyer [email protected]? Merci d'avance!
Rick Hoving
Si votre question a reçu une réponse, veuillez cocher la case située sous les flèches de vote.
Alexander - Réintégrer Monica
@XAleXOwnZX puis-je voir ce code Awesome aussi? Peut-être devriez-vous ouvrir une question "Quelqu'un at-il un programme AWESOME C pour la commutation à distance des broches GPIO sur SSH", puis répondez-y.
puk
J'aurai besoin de votre adresse e-mail, je l'enverrai et posterai la question + réponse demain
Alexander - Réintégrer Monica
2

mon système est bon marché: EUR 43.- (récepteur + émetteur) voir ci-dessous.

pour la domotique, j’attache simplement un émetteur FS20 868,35 MHz compatible 3.3V au RPI:

http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html

cet émetteur s'interface directement (par 4 fils uniquement) avec les ports GPIO de RPI (3,3 V, GND, TXD, RXD) et est simplement contrôlé via l'interface de ligne série.

vous pouvez maintenant contrôler la vaste gamme d'appareils FS20 tels que les commutateurs, les commutateurs à bascule, les gradateurs, les minuteries, les radios. récepteurs multi-canaux, etc. en transmettant quelques octets sur l'interface de console série UART de RPI.

Vue d'ensemble du système FS20:

http://www.elv.de/fs20-funkschaltsystem.html

(malheureusement, le site Web est disponible en allemand seulement)

Personnellement, je préfère un simple CLI pour contrôler mes appareils domestiques. Si vous préférez une interface graphique, vous pouvez regarder ici:

http://fhem.de/fhem.html

heureusement en anglais :-)

Bien que très flexible, le système FS20 est très bon marché. Exemples de coûts pour un simple interrupteur marche / arrêt:

passer lui-même: http://www.elv.de/elv-funk-schaltsteckdose-fs20-st.html EUR 22,95

Emetteur UART: http://www.elv.de/elv-fs20-uart-sender-fs20-us-komplettbausatz.html EUR 19,95

Je recommande de contrôler le RPI lui-même par un clavier sans fil. Pour cela, vous pouvez éventuellement acheter cette petite chose ingénieuse:

RT-MWK03 [Sans fil 2,4 Ghz] ( http://www.riitek.com/fr/product-detail-428.html )

sparkie
la source
0

Bien que ce ne soit pas vraiment bon marché, voici ma solution:

http://www.everyhue.com/?page_id=38#/discussion/707/raspberry-touchpad-some-success

Fondamentalement, vous utilisez le Philips Hue (lampes LED multicolores programmables contrôlables par wifi) avec un RPi et un pavé tactile. La surface du touchpad USB agit sur les dimensions de couleur et de luminosité, tandis que les boutons de la souris permettent d'allumer et d'éteindre les lumières. Le coût est RPi + dongle Wifi (11 $) + pavé tactile USB pas cher (15 $) + ensemble Philips Hue (200 $ pour le pont et 3 lumières, puis 60 $ / lumière).

Ilya Haykinson
la source
0

J'ai une approche différente: j'utilise le dongle USB CUL de Busware (prend en charge FS20 + HMS + FHT + d'autres protocoles et périphériques), et j'ai implémenté ma propre API Java pour résumer les périphériques et permettre une automatisation aisée via une application Java.

Au cas où quelqu'un s'intéresserait à mon petit projet: http://www.paulo-lima.org/hans

Paulo Lima
la source