Étape 10 : Renforcer le système d’automatisation et les correctifs liés
Ce système peut être étendu en ajoutant plusieurs codes saisis provenant de différents systèmes. Alors que cette partie est facile, il existe deux autres facteurs que vous aurez à prendre en considération.
Amélioration 1 (rapide): Travailler avec des signaux IR de différentes longueurs
- Les Codes IR de différents systèmes viennent avec différentes longueurs, même entre deux produits provenant du même fabricant.
- Par exemple, dans ce cas, l’IR code longueur de tableau pour le téléviseur LED s’élève à 67 tandis que celle de la barre de son Samsung est environ 87.
- Ce qui signifie, si je me suis tourné sur la barre de son tout d’abord, la le tableau tampon IR dans le sketch Arduino aurait rempli avec une séquence de Code IR qui contient les 87 codes
- Suite à cela, si je me suis tourné sur le téléviseur LED, il comblerait le tableau tampon IR avec seulement 67 codes, mais les 20 codes restants de l’opération précédente serait toujours autour de
Le résultat ? Le téléviseur LED ne s’allume pas parce que le tampon de Code IR a été corrompu par les extra 20 codes ne pas nettoyés de l’opération précédente !
Difficulté 1 (la solution de facilité, non recommandé)
Modifier le Arduino Sketch comme suit :
Changer les appels de fonction suivant dans la fonction loop() {}
Apporter des modifications à la signature de la fonction ci-dessus :
C’est facile, le tableau n’obtient jamais vraiment complètement dégagé et donc ce n’est pas une solution très propre
Difficulté 2 (pas dur, recommandée)
Déclarez une variable supplémentaire tout en haut de l’esquisse de l’Arduino, après la section des commentaires:
Ajoutez cela au début de la fonction setup():
Défilez vers le bas et ajouter une nouvelle fonction à l’esquisse immédiatement après le transmitIRCode() fonction :
Enfin, appelez nouvelle fonction ci-dessus au suivant emplacement dans la fonction loop():
Il s’agit d’une approche plus propre qu’il a effectivement réinitialise tous les emplacements dans le tableau Buffer IR qui étaient peuplées par le signal IR Code plus récent sans rien laisser au hasard.
Amélioration 2 (plus impliqué): répétition de Transmission de Signal IR pour certains dispositifs
- Certains périphériques exigent le même signal transmis plusieurs fois afin de répondre
Exemple : dans ce cas, la barre de son Samsung nécessite le même code à envoyer deux fois avec un écart de 1 seconde
Le correctif dans le Concept a été discuté ici car c’est un peu plus compliqué et aura besoin de tests.
Ajout de la fonctionnalité de répéter à l’esquisse Ardunio signifiera que vous aurez à clignoter le croquis chaque fois que vous ajoutez un nouveau périphérique à votre système Home Automation
Au lieu de cela, ajoutant ce correctif au client HTML SignalR et l’application de SignalR Service Python rend la solution beaucoup plus flexible. Et cela pourrait se faire en principe comme suit :
Modifier le client SignalR HTML pour transmettre des informations répétées sur le Hub
Où, 2 correspond à la valeur de répétition et 1000 est la valeur de délai en millisecondes , entre les deux signaux de répétition
Lorsque vous cliquez sur ce bouton, le moyeu SignalR recevra la clé Code + Repeat_Spec
Modifier les méthodes de côté serveur SignalR pour analyser uniquement le Code clé :
- Utilisez le Code clé pour récupérer le Code IR de la base de données comme d’habitude
- Transmettre le Code de clé + Repeat_Spec et le IRCode pour les Clients de SingalR comme d’habitude
Modifier l’Application de Service de SignalR Python pour transmettre des signaux en utilisant les valeurs de répétition :
Ouvrez le client Python et modifier les deux fonctions suivantes :
- De cette façon, l’Arduino n’a pas à être flashé à plusieurs reprises
- N’importe quel nombre de fréquences de répétition pourrait être construit dans ce système
- En outre, si vous utilisez l’UNO, il y a une limite à la taille que peut atteindre votre croquis !