Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Réplicateur infrarouge connecté à Internet

Composants et fournitures

Photon de particule
× 1
Diode du récepteur infrarouge Adafruit
× 1
LED Adafruit - Infrarouge 950nm
× 1
Arduino UNO
× 1
Teensy 3.1
× 1
Microchip Technology ATmega328
× 1
Microchip Technology ATtiny85
× 1
Espressif ESP8266 ESP-01
× 1
Bluz DK
× 1
RedBear Duo
× 1

Applications et services en ligne

porteur

À propos de ce projet

Il y a quelque temps, je me suis lancé dans le décodage d'une télécommande infrarouge AC dans le but de contrôler un climatiseur via WIFI.

J'ai appris une tonne de choses en cours de route et je voulais partager ces connaissances avec vous tous au cas où cela pourrait vous aider dans de futurs projets (futur-me:je vous regarde aussi). J'ai utilisé un photon de particules, mais vous pouvez choisir d'utiliser un MCU différent, car la bibliothèque IRremote Arduino (de Ken Shirriff) utilisée dans ce projet en prend en charge de nombreux autres. Voici aussi sa page officielle.

Il y a beaucoup d'informations sur cette page, assurez-vous d'en lire une partie pour une compréhension approfondie du fonctionnement des signaux IR, mais je reproduirai certains points importants dans la section suivante.

Quelques informations sur les codes IR

Ce qui suit est une transcription du message original de l'auteur :

Une télécommande IR fonctionne en allumant et en éteignant la LED selon un motif particulier. Cependant, pour éviter les interférences des sources IR telles que la lumière du soleil ou les lumières, la LED n'est pas allumée en continu, mais est allumée et éteinte à une fréquence de modulation (généralement 36, 38 ou 40 KHz). Le moment où un signal modulé est envoyé sera appelé une marque, et quand la LED est éteinte sera appelé un espace.

Chaque touche de la télécommande a un code particulier (typiquement 12 à 32 bits) qui lui est associé, et diffuse ce code lorsque la touche est enfoncée. Si la touche est maintenue enfoncée, la télécommande diffuse généralement à plusieurs reprises le code de la touche. Pour une télécommande NEC, un code de répétition spécial est envoyé lorsque la touche est maintenue enfoncée, plutôt que d'envoyer le code à plusieurs reprises. Pour les télécommandes Philips RC5 ou RC6, un bit dans le code est basculé chaque fois qu'une touche est enfoncée; le récepteur utilise ce bit de basculement pour déterminer quand une touche est enfoncée une deuxième fois.

Du côté de la réception, le détecteur IR démodule ce signal et émet un signal de niveau logique indiquant s'il reçoit ou non un signal. Le détecteur IR fonctionnera mieux lorsque sa fréquence correspond à la fréquence de l'expéditeur, mais en pratique, cela n'a pas beaucoup d'importance.

Vous êtes maintenant prêt pour la prochaine étape...

Construisez le circuit du récepteur IR

Pour décoder les signaux infrarouges, vous avez besoin d'une diode de réception infrarouge :

Et vous construisez le circuit récepteur comme indiqué dans la bibliothèque :

Voici le brochage :

Ma maquette a fini par ressembler à ceci :

Pour l'instant, concentrez-vous sur la connexion de la diode réceptrice (la noire) et oubliez l'émetteur (la transparente) - nous nous en occuperons plus tard.

Décoder certains signaux IR

Étant donné que le projet videra les codes reçus via la ligne série, nous devons le connecter à un ordinateur. Allumez le Photon avec un câble USB et connectez-le à un port USB de votre ordinateur. Ce sera maintenant le bon moment pour flasher le firmware joint.

Ouvrez une console ou un terminal et utilisez la Particle CLI pour surveiller le port USB.

REMARQUE : Si vous n'avez pas installé Particle CLI, veuillez le faire en suivant la documentation ici.

Dans Ubuntu Linux, voici ce que j'ai dû taper pour surveiller le port série du Photon :

$ sudo chmod 666 /dev/ttyACM0 $ moniteur série de particules  

Selon votre ordinateur et votre système d'exploitation, le port peut avoir un nom différent et/ou le chmod peut ne pas avoir besoin d'être exécuté.

REMARQUE : vous pouvez utiliser n'importe quel autre logiciel pour recevoir des données sur le port série USB de votre ordinateur.

Après avoir fait cela, vous pouvez pointer la télécommande que vous souhaitez décoder vers la diode du récepteur IR (le composant noir semblable à une LED). Commencez à appuyer sur les boutons et vérifiez ce qui est imprimé dans la console.

Si tout se passe bien, vous obtiendrez quelque chose comme ceci :

1FEA05F29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,5000,550,150,500,500,150,550,500,550,1500,500,500,550,500,500,500,550,500,5000,550,150,500,500 ,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 ,0,0,0,0,0,0,FIN
  • Première ligne (1FEA05F) et troisième ligne :oubliez-les pour l'instant
  • Deuxième ligne :cette ligne imprime la commande IR envoyée par la télécommande

Notre première commande IR décodée

Parlons de la commande IR reçue :

29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,0,5500,5450,150,500,500,550,500,500,500,550,500,500,550,500,0,5500,5450,550,500,5000,550,550,550,500,500,5000,550,550,550,500,500,500,550,550,550,500,500 

Nous pouvons rejeter la première valeur, 29168950 dans ce cas, car la bibliothèque IR indique ce qui suit :"le tampon de réception commence par la durée de l'espace vide avant la première marque ". Nous ne nous soucions pas de cette durée, car c'est le temps qui s'est écoulé entre nos tests, ou le temps qu'il vous a fallu pour appuyer sur un bouton de la télécommande.

Par conséquent, à partir de la sortie reçue, c'est ce qui est vraiment intéressant et ce qui façonne la commande IR :

8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,550,500,1500,550,150,150,550,500,500,500,500,550,500,500,500,550,500,500,550,550,500,1500,550,150,150,550,500,500,500,500,500,550,500,500,550,550,500,1500,550,150,150,550,50,500,150,500,500,550,500, 

Ces nombres représentent la durée des impulsions infrarouges en microsecondes. Si nous le voulions, nous pourrions envoyer cette commande avec le code suivant :

function sendIt() { unsigned int ircommand[59]={8550,4000,550,1500,550,450,550,500,500,550,500,1550,500,500,500,500,550,500,500,500,550,500,500,500,550,500,500,1500,550,500,500,500,0,5550,450,500,500,1500,550,550,500,500,0,5550,450,500,500 ,500,500,550,500,500,500,550,450,550} ; irsend.sendRaw(ircommand,59,38); } 

Mais pour cela, nous devrons construire le circuit émetteur. Faisons-le ensuite.

Construisez le circuit de l'émetteur IR

Le circuit le plus simple ressemble à ceci :

Cependant ce circuit ne vous donnera que moins d'un mètre de portée.

Si vous le pouvez, câblez un circuit comme celui-ci ci-dessous pour une portée améliorée (environ 10 mètres) :

Voici le côté émetteur de mon circuit :

Test du circuit de l'émetteur IR

J'ai ajouté quelques fonctions dans le firmware pour contrôler le volume sur un téléviseur Samsung. C'est ainsi que vous pouvez tester si votre circuit d'émetteur fonctionne dans le cas où vous avez un téléviseur Samsung dans les parages.

Dirigez simplement la LED de votre émetteur vers votre téléviseur et appuyez sur les fonctions sendSamsungVolumeUp() et sendSamsungVolumeDown().

REMARQUE : N'oubliez pas que vous pouvez utiliser la caméra de votre téléphone portable pour vérifier si la LED IR transmet, car IR s'affiche ici :

Rendre les commandes IR plus lisibles

Si on identifie des valeurs autour de 500 avec un 0 et 1500 avec un 1, cette sélection étant arbitraire, attribuant également 3 aux valeurs supérieures à 5000 et 2 aux valeurs autour de 4000, on aboutit à la représentation suivante :

3,3,2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1, 0,0,0,1,0,0,0,0,0,0,0,0,0,FIN

Souvenez-vous maintenant que dans cet encodage totalement arbitraire :

  • 3 signifie une impulsion de 8 500 microsecondes
  • 2 signifie une impulsion de 4000 microsecondes
  • 1 signifie une impulsion de 1500 microsecondes
  • 0 signifie une impulsion de 500 microsecondes

Pourquoi encoder en chiffres, me direz-vous ?

Cela aide à visualiser et à comparer les commandes, j'espère. De cette façon, il devient plus facile de comparer les impulsions qui changent ou restent les mêmes entre les différentes commandes.

Exemple :vous voulez comparer ce qui change entre une commande pour régler la température à 18 et 19 degrés dans le cas d'une télécommande AC ? Plus facile quand vous avez des 1 et des 0.

J'aime aussi ce format pour stocker les commandes IR dans le code du firmware. N'oubliez pas de les convertir en impulsions juste avant de transmettre (en appelant la fonction convertToPulseDuration() dans le firmware).

Ressources de lecture

J'ai lu pas mal de sites pour comprendre le sujet. Voici une liste de certains d'entre eux :

  • Reverse engineering d'un protocole de télécommande infrarouge de climatiseur
  • Utiliser des télécommandes arbitraires avec la bibliothèque arduino IRremote
  • ce fil de discussion dans la communauté des particules
  • Comprendre le protocole IR des télécommandes de climatiseur
  • ce blog sur adafruit

Conclusion

Avec un peu de travail, un MCU et quelques composants, vous pourrez décoder et reproduire la plupart des télécommandes que vous avez dans votre maison. Avec certaines limitations, cela peut vous permettre de contrôler tous ces appareils à partir de votre téléphone, tablette, ordinateur portable, ordinateur et même de créer des automatisations simples pour eux. Cool, hein ?

Vous pouvez maintenant penser à ajouter Blynk, créer une application dans Ionic Framework, lui parler avec Google Now ou Alexa, ou la contrôler avec Porter.

Je prévois d'appliquer ces connaissances pour contrôler quelques appareils dans la maison et j'espère créer plus d'écritures à l'avenir. Restez à l'écoute !

Mise à jour du 5 février 2018 :

Voici une mise en œuvre de ce projet :un foyer infrarouge contrôlé depuis Internet.

Besoin d'aide ?

Si vous avez besoin d'une aide professionnelle dans vos projets, n'hésitez pas à m'écrire une ligne sur vos besoins à [email protected]. Merci !

Code

réplicateur infrarouge
le code sourcehttps://github.com/gusgonnet/infraredReplicator

Schémas


Processus de fabrication

  1. Comment les wagons de marchandises sont connectés à Internet
  2. Internet des objets et le rôle de la 5G dans les véhicules connectés
  3. Cybersécurité et Internet des objets :l'heure de la biométrie ?
  4. Internet des objets :une toile de monde connecté
  5. Comment pouvons-nous faciliter l'enseignement avec l'Internet des objets ?
  6. Chars laser Leap Motion !
  7. UnifiedWater v1
  8. Compresseurs d'air connectés, industrie 4.0 et Internet des objets
  9. Vlog de A à Z sur l'air comprimé et le gaz :IOT, Internet 4.0 et les compresseurs connectés