
Désolé, je ne m'amuse pas depuis longtemps avec le nommage, ainsi qu'avec les périphériques pour la domotique. Plus précisément, cette chose - la télécommande de la lumière - s'est avérée parce que je voulais quelque chose avec une interface push-twist-click, et non avec une dispersion habituelle de boutons. L'effet wow n'a pas été atteint: à la maison, je ne remarque pas la télécommande à bout portant, mais au moins j'ai fermé la gestalt.
TOR TOR:
1) Gestion de trois groupes d'éclairage dans la cuisine
2) Gestion de trois groupes d'éclairage dans la salle
3) Gestion de toutes les sources lumineuses en même temps
4) Durée de vie raisonnable de la batterie (à partir d'une semaine)
5) Compatible avec le codage Livolo, SC2260, EV1527
Donc, vous n'avez pas besoin de lire plus si vous n'aimez pas Arduino, les commutateurs Livolo et les prises radio chinoises. Parce que le premier est la base de la télécommande, et le deuxième et le troisième sont la périphérie.
Concept
La logique de contrôle m'a semblé comme suit:
- Une pression sur le «bouton» commute les zones du groupe d'éclairage dans un anneau (cuisine - pièce - tout).
- Tourner le bouton, selon le sens de rotation, allume ou éteint l'éclairage du groupe sélectionné.
- Le mode de fonctionnement (groupe sélectionné) est affiché par une indication LED discrète.
Étant donné que j'utilise la radiocommande selon l'option la plus méprisée, sans protection contre les interférences et les retours, en même temps, une petite astuce est fournie en cas d'opération manquée.
Si le fait de tourner le bouton n'aboutit pas au résultat souhaité, une pression et une rotation combinées dans le sens opposé vous permettent de sauter la commande. Ensuite, la commande peut être répétée comme d'habitude.
Autrement dit, si j'ai tourné le bouton dans le sens des aiguilles d'une montre et que la lumière principale ne s'est pas allumée, je peux appuyer sur le bouton, le tourner dans le sens inverse des aiguilles d'une montre, puis le relâcher et le tourner à nouveau dans le sens des aiguilles d'une montre pour répéter l'activation.
Pourquoi si dur? Ensuite, en plus des protocoles maladroits, j'ai aussi des périphériques maladroits. Par exemple, les interrupteurs d'éclairage radiocommandés Livolo et les relais radio, qui ont la même commande pour allumer et éteindre, ainsi que les prises radio ordinaires, dans lesquelles les commandes pour allumer et éteindre sont séparées.
L'astuce de saut d'équipe vous permet de battre de manière créative la non-inclusion (non-exclusion) sans rompre le schéma général de l'éclairage. De plus, sauter une commande vous permet de sauter par-dessus des sources de lumière que vous n'avez pas besoin d'activer ou de désactiver.
Eh bien, bien sûr, pour comprendre ce qui se passe avec la télécommande, elle a un indicateur séparé qui s'allume lors de l'envoi d'une commande.
Si la console n'est pas touchée pendant un certain temps (configuré dans le code), le contrôleur se met en veille. Cependant, il ne sauvegarde pas le dernier état, et quand il se réveille en appuyant sur le stylo, il recommence sa vie à zéro.
Ce n'est pas une erreur. Je le répète, j'ai des commutateurs sans rétroaction et la console est physiquement incapable d'obtenir des informations sur l'état actuel de chaque périphérique contrôlé.
Par conséquent, immédiatement après le réveil, le tour du bouton allume ou éteint la lumière à partir de zéro.
Première approche
Le concept visuel du type «boîte avec une torsion» exigeait, comme vous pouvez le deviner, deux choses: des boîtes et des torsions. Dans la première version, le rôle de la box était joué par une banque d'alimentation mince, dont l'utilisation résolvait deux problèmes à la fois: j'avais à la fois un boîtier et un système de charge de batterie, en plus avec un connecteur. La batterie elle-même, bien sûr, devait être remplacée par une batterie plus compacte, sinon le remplissage ne pourrait plus tenir.

Cela s'est avéré plus complexe avec la torsion. En cherchant, j'ai trouvé que plus le bouton du potentiomètre était joli et plus il était grand, plus le coût de son gramme était proche du coût d'un gramme d'or. Par conséquent, j'ai acquis un stylo, qui me convenait peu aux propriétés esthétiques.

La partie contrôle était le résultat d'une expérience avec ATmega328P et une suite logique du scénario défini par la domotique existante (sur les mêmes protocoles radio Arduino et primitifs).
Je n'ai pas acheté très cher une dispersion des contrôleurs mentionnés et des prototypes conditionnels (en fait, un adaptateur d'un petit boîtier à une grande étape) de circuits imprimés dans le but d'essayer d'en faire une version à petit budget d'Arduino avec un nombre minimal (mais raisonnable) d'éléments.



L'expérience s'est avérée réussie et le contrôleur configuré pour l'environnement Arduino a fait clignoter la LED avec succès après avoir avalé le Blink classique. Eh bien, sur le principe de «terminer la chouette», j'ai ajouté un encodeur (avec un bouton), trois LED et un émetteur normal avec modulation d'amplitude sur une porteuse de 433,92 MHz à la carte résultante.
Pour placer tous les éléments dans un petit boîtier, j'ai dû souffrir un peu, mais la télécommande fonctionnait toujours. Et bien que, semble-t-il, le problème soit résolu, j'en voulais plus - le cas d'origine.


Deuxième approche
En fait, la première version (se plaignant) en apparence d'un groupe de camarades a été brisée, donc je l'ai reportée indéfiniment. Mais il ne l'a pas démonté: c'est dommage.
Mais lorsque l'imprimante 3D est apparue, il s'est promis un jour de fabriquer le même boîtier d'origine et donc de clore la question avec la télécommande.
Je ne sais pas si cela s’est avéré bon ou mauvais - je ne sais pas vraiment comment évaluer mes affaires. Mais sur 3DToday, l'équipe est plus accueillante que sur MySKU (dont je ne me plains pas - ce n'est pas un cadeau moi-même), et ils ont évalué le cas plus haut que moi.

Mais ayant une totale liberté d'action, j'ai abandonné les batteries chinoises fragiles et agitées, et j'ai pris le bon vieux 18650 comme source d'énergie. Et, comme vous pouvez facilement le voir, ce sont précisément ses dimensions qui déterminent largement les dimensions de l'ensemble du boîtier.
J'ai commencé à rendre le boîtier lui-même modulaire, composé de nombreuses pièces, ce qui m'a permis de réimprimer uniquement des éléments individuels (erronés ou peu optimaux), et non le produit entier.
Un autre point est que je n'aime vraiment pas faire de découpes pour les connecteurs, ce que je ne peux vraiment pas faire. Par conséquent, dans la chaîne d'approvisionnement, il y a une autre astuce connue par
Evelyn le hérisson : la recharge sans fil.

Dans ma zashashnik, il n'y avait qu'un autre récepteur, que j'ai immédiatement mis en action.
Enfin, la dernière astuce est assez évidente, mais quand même: pour que la télécommande ne rampe pas autour de la table, j'ai collé un morceau de tapis de voiture antidérapant au fond. Et à la fin, cette chose est un monolithe absolu, bien que le réorganiser à un autre endroit ne soit pas non plus un problème.
Ce qu'il faut pour répéter
Morceau de fer
1) Contrôleur ATmega328P - 1 pc. (dans mon package TQFP, mais tout le monde peut)
2) Résistance 10 kOhm - 5 pcs. (4 pour supprimer le rebond de l'encodeur, 1 pour le contrôleur)
3) Résistance 100 Ohms - 3 pcs.
4) Condensateurs céramiques 0,1 microfarads - 4 pcs. (au contrôleur et suppression du rebond de l'encodeur)
5) Encodeur push (valcoder) - 1 pc. (J'ai
PEC12-4220F-S0024 )
6) LED - 3 pièces. (diamètre 3 mm)
7) Carte de charge de batterie au lithium - 1 pc. (à partir de la banque d'alimentation qui est venue à la main, en théorie, n'importe qui avec un allumage automatique sous charge fera l'affaire)
8) Récepteur de charge sans fil Qi - 1 pc.
9) Un émetteur avec modulation d'amplitude à 433 MHz - 1 pc. (
comme ça )
10) De la fibre de verre pour la carte d'encodeur
11) Imprimante 3D
12) Plastique approprié (j'ai imprimé du PLA)
13) Vis M4x30 - 4 pièces.
En général, le nombre de composants peut être réduit. Par exemple, dans une version très minimale, le contrôleur ne nécessite pas du tout de cerclage, bien que j'ai décidé de suivre
les conseils de Nick Gammon et de ne pas ménager quelques condensateurs et une résistance.
De la même manière, vous ne pouvez pas vous soucier de la suppression matérielle du rebond de contact et essayez de vous en tirer avec le logiciel. Ensuite, vous pouvez barrer quatre autres résistances et une paire de condensateurs.
Alternativement, vous pouvez utiliser une carte Arduino prête à l'emploi, comme la Pro Mini, mais dans ce cas, je ne peux pas garantir un faible niveau de consommation d'énergie, et vous devrez le faire vous-même. Dans le même temps, le cas devra être corrigé.
Schéma:

Pour référence, le brochage ATmega328p dans le boîtier TQFP-32 de
Hobby Electronics :

Pour mon encodeur, j'ai dessiné une petite planche:



S'il est bon, il devra être percé pour monter l'encodeur, ou enfoncé avec son «ventre sur la carte (en prenant soin de l'isolement pour qu'il n'y ait pas de court-circuit) afin que l'encodeur soit monté a) plus ou moins uniformément et b) ne vacille pas. Historiquement, j'ai une deuxième option.
Pour le cas, il est important que la hauteur de la carte avec des pièces, à l'exclusion de l'encodeur, ne soit pas plus (ou pas beaucoup plus) de 5 mm.
Si la carte Arduino n'est pas prête à portée de main, alors pour que tout fonctionne, vous devez d'abord écrire le chargeur de démarrage Arduino sur le contrôleur ATmega328P.Pour ce faire, ajoutez d'abord une description de contrôleur à l'environnement Arduino. Pour ce faire, rendez-vous
sur le site officiel d'Arduino et téléchargez l'archive de description adaptée à votre version de l'environnement (
pour 1.6 ,
pour 1.5 ,
pour 1.0 ).
Le contenu de l'archive doit être extrait dans le dossier matériel du dossier d'environnement Arduino. À l'avenir, je décris ce qui se passe sur l'exemple de l'environnement 1.0.3, que j'utilise toujours.
Lorsque les descriptions sont copiées, vous devez démarrer Arduino et charger l'esquisse du programmeur dans Arduino, qui sera utilisé comme ce programmeur lui-même. L'esquisse se trouve dans le menu Fichier - Exemples - ArduinoISP.

Bien sûr, vous devez choisir votre carte et votre port. Je choisis Mega, car je l'ai:

Après avoir chargé l'esquisse du programmeur, vous devez passer à la carte cible. C'est-à-dire dans notre cas - ATmega328 avec une fréquence de 8 MHz et un oscillateur maître interne. Il figurera dans la liste des tableaux si les descriptions mentionnées ci-dessus sont copiées correctement:

Vous devez maintenant connecter les lignes MISO, MOSI et SCK de la carte de programmation et de la carte avec le futur Arduino, et également connecter RESET, GND et VCC. Plus la puissance est meilleure en dernier lieu.
Sur la base de l'infographie et de la description d'Arduino Mega ci-dessus, l'image suivante émerge:
SPI - Arduino Mega - ATmega328p
MISO - 50 - 16
MOSI - 51 - 15
SCK - 52 - 17
SS (RESET) - 53 - 29
Connexion physique à votre goût, j'ai utilisé une méthode exclusivement barbare - des fils de planche à pain ordinaires directement dans les trous de la carte, sans soudure ni isolation:

Si tout est prêt, notez le chargeur de démarrage. Tout d'abord, assurez-vous que le bon programmeur est sélectionné (Service - Programmeur - Arduino en tant que FAI):

Ensuite, nous faisons le service - Enregistrer le chargeur de démarrage:

Après cela, la sortie est une carte Arduino minimaliste, pour charger des croquis dans lesquels vous pouvez utiliser l'adaptateur USB-série ou une carte Arduino complète avec un tel adaptateur à bord. Dans le premier cas, vous devez connecter RX et TX en croix, et n'oubliez pas de connecter une masse commune. Dans le deuxième cas, il est en outre nécessaire de court-circuiter la réinitialisation de l'Arduino, qui est utilisé comme adaptateur, à la masse.
Si vous, comme moi, n'avez pas de circuit pour réinitialiser automatiquement le contrôleur avant de télécharger l'esquisse, il y a deux options: soit tirer sa réinitialisation, soit simplement allumer son alimentation lorsque l'environnement Arduino indique que le téléchargement a commencé.
Logement
Le boîtier, comme je l'ai dit, est modulaire. Cela signifie que sur la partie intérieure cachée des yeux, vous pouvez laisser entrer le plastique qui est périmé et ne convient plus. Vous pouvez y mettre de l'électronique:

J'attire l'attention sur le fait que l'étui est spécifique et est conçu pour s'adapter à ma version du remplissage.
Je propose de rendre le rotor transparent pour qu'il disperse la lumière des indicateurs. Pour plus de poids, un écrou M16 peut être inséré à l'intérieur du rotor:

Encore besoin d'une chemise de rotor et d'une couverture. Le couvercle est simplement inséré vers l'intérieur et repose sur la friction. Et, bien sûr, vous ne pouvez pas vous passer des parties supérieure et inférieure du boîtier extérieur.
J'ai imprimé un rotor avec un remplissage de 10%, le reste des éléments avec un remplissage de 5%. Plastique - PLA. La température réglée de la buse sur mon imprimante est de 200 ° C sur les trois premières couches, 185 ° C sur la suivante. Malheureusement, je ne peux pas dire quelle est la vraie température de la buse. La table est froide.
L'assemblage est simple.

Les planches sont placées dans les rainures du boîtier durable, les LED - pieds dans les rainures de la partie inférieure du boîtier durable. L'antenne de l'émetteur est abaissée, le récepteur de charge sans fil est abaissé de la même manière - de sorte qu'il est plus proche de cette même charge.

Le remplissage est fixé par une plaque intermédiaire, dans la gorge de laquelle passe le faisceau de câbles du codeur.
L'encodeur est fixé avec la plaque supérieure, le tout est serré avec des vis M4x30, qui coupent elles-mêmes les filetages en plastique.
Maintenant, le boîtier durable peut être enfermé dans les moitiés du boîtier externe. Un rotor est placé sur l'arbre du codeur et une chemise est placée sur le rotor. En option, un tapis antidérapant est collé au bas du corps. Une autre option est un insert décoratif qui cache la couture entre les moitiés du corps.
CodeDans le code, vous devez spécifier des commandes pour allumer et éteindre vos périphériques. Facultatif - modifiez le délai d'arrêt automatique.
Tout cela se trouve dans la section variable.
Modèle de cas
par référence .
C’est tout.
PS: J'ai essayé de ne rien oublier, mais j'ai pu. Si oui, je m'excuse et ferai de mon mieux pour répondre correctement aux questions principales et corriger les erreurs.