Table des matières:

Bouton de l'encodeur rotatif : 6 étapes
Bouton de l'encodeur rotatif : 6 étapes

Vidéo: Bouton de l'encodeur rotatif : 6 étapes

Vidéo: Bouton de l'encodeur rotatif : 6 étapes
Vidéo: Projet Encodeur Rotatif avec Arduino [TUTO] 2024, Décembre
Anonim
Bouton de l'encodeur rot-t.webp
Bouton de l'encodeur rot-t.webp

Il s'agit d'une télécommande rotative basée sur un encodeur rotatif. Il a les caractéristiques suivantes.

  • Fonctionne sur batterie avec une très faible consommation de courant lorsqu'il est activé
  • Activation automatique lorsque la commande est tournée
  • Sommeil automatique après une période d'inactivité
  • Actions configurables lorsque le contrôle est modifié

    • Accès Web simple avec position signalée
    • Rapports MQTT
    • Contrôle du variateur de lampe Lighwaverf
  • Très petite taille
  • À bas prix
  • Mise à jour du logiciel via wifi
  • Gestion des accès au réseau wifi

Étape 1: Composants et outils nécessaires

Composants et outils nécessaires
Composants et outils nécessaires
Composants et outils nécessaires
Composants et outils nécessaires
Composants et outils nécessaires
Composants et outils nécessaires

Les composants suivants sont nécessaires

Boîtier - Boîtier imprimé en 3D disponible sur

www.thingverse.com/thing:3173779

  • Module ESP-12F ESP8266
  • Commande encodeur rotatif (EC11) + Bouton
  • Interrupteur à glissière marche/arrêt
  • prise 3 broches
  • Batterie LIPO 400mAh 802030
  • Réfrigérateur de tension 3,3 V (xc6203)
  • Condensateur 220uF
  • Résistances 1M, 4K7 (2)
  • Diode Schottky 1N5819 (2)
  • MOSFET canal P (AO3401)
  • Fil émaillé (soudable)
  • Brancher le fil

Les outils suivants sont nécessaires

Fer à souder à pointe fine

Étape 2: Électronique

Électronique
Électronique

L'électronique est basée sur un module ESP-12F. Une petite quantité d'électronique de support est utilisée pour réguler la batterie et permettre l'allumage et l'extinction automatiques.

Le contrôle de l'alimentation se fait via le signal EN sur l'ESP-12F qui doit être élevé pour que le module s'allume. Ceci est maintenu bas par la résistance 1M mais peut être tiré vers le haut par le transistor MOSFET. Le condensateur 4u7 donne un minimum de plusieurs secondes d'activation même après la désactivation du MOSFET.

Le transistor MOSFET est initialement activé par l'un des commutateurs de codage rotatifs mis à la terre lorsqu'il tourne. Il peut ensuite être maintenu par un signal GPIO au démarrage du code ESP8266.

Le MOSFET s'éteint lorsque le signal GPIO est libéré après la détection d'une inactivité pendant une période de temporisation.

Étape 3: Assemblage

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

J'ai effectué les étapes de montage suivantes.

  • Imprimer boîtier 3d
  • Mettre en place un interrupteur marche/arrêt et un point de chargeur à 3 broches. Utilisez de la résine pour fixer en place et clipsez les étiquettes internes à la longueur minimale
  • Abaissez les pieds de la commande rotative afin qu'ils affleurent la base pour minimiser la hauteur
  • Attachez 4 fils au contrôle. Un côté de l'interrupteur à bouton-poussoir est connecté au connecteur central des interrupteurs d'encodage.
  • Fixez l'encodeur dans le boîtier et fixez-le avec son écrou de montage. Ajouter un bouton
  • Montez le régulateur sur le condensateur et attachez les fils de celui-ci aux broches d'alimentation du module ESP-12F
  • Soudez les autres composants électroniques à l'arrière du module ESP-12F. J'ai utilisé du fil de cuivre émaillé pour les raccorder. Un petit bout de fil a été utilisé sur la broche EN car plusieurs composants y sont attachés.
  • Souder sur le fil de raccordement à l'interrupteur marche / arrêt
  • La soudure sur la batterie mène au point de chargeur et à l'alimentation de l'interrupteur marche / arrêt
  • Souder sur le fil de l'interrupteur marche/arrêt à l'entrée du régulateur.
  • Attachez les 4 fils de l'encodeur à la carte.

Remarque J'ai utilisé des composants smd partout pour garder la taille aussi petite que possible. Si vous utilisez des composants plus gros, vous devrez probablement augmenter la hauteur du boîtier 3D. De même si vous utilisez une batterie de taille différente. Les dimensions sont facilement ajustables dans le fichier SCAD.

Étape 4: Logiciel

Le logiciel de ce projet est disponible sur

Il s'agit d'un projet basé sur Arduino, configurez donc un environnement de développement Arduino esp8266. Vous voudrez peut-être définir les mots de passe pour WifiManager et la mise à jour du logiciel dans le fichier ino sur quelque chose de plus sensé.

Il doit être compilé dans l'IDE Arduino ESP8266 et téléchargé en série sur le module.

La première utilisation démarrera un point d'accès qui doit être connecté sur un téléphone ou une tablette. Voir le code pour le mot de passe. Le navigateur du téléphone ou de la tablette doit ensuite être utilisé pour accéder à 192.168.4.1, ce qui permettra de sélectionner le ssid et le mot de passe du wifi local. Cela ne doit être fait qu'une seule fois ou si le réseau wifi change. À partir de là, le module se connectera au réseau wifi local si nécessaire.

Certains fichiers de support doivent également être téléchargés. Ceux-ci se trouvent dans le dossier de données du fichier git. Ils peuvent être téléchargés en accédant à ip/upload. Une fois que ceux-ci ont été téléchargés, ip/edit peut être utilisé pour effectuer d'autres téléchargements plus facilement.

Étape 5: Configuration

La configuration est contenue dans le fichier RotaryEncoderConfig.txt

Cela a deux paramètres de base (nom d'hôte et délai d'inactivité en millisecondes plus la configuration de jusqu'à 3 encodeurs rotatifs.

Bien que cette version n'utilise qu'un seul encodeur, la bibliothèque utilisée en permet jusqu'à 3.

Chaque encodeur a une ligne dans le fichier de configuration avec un certain nombre de paramètres.

  • broche 1, broche 2, bouton broches GPIO
  • valeur min de l'encodeur
  • valeur max de l'encodeur
  • valeur de la position de départ (la dernière valeur est également mémorisée lorsqu'elle est activée.
  • type d'action à effectuer 0=Aucun, 1=web GET, 2=UDP / Lightwave, 3=MQTT
  • l'intervalle est la durée minimale en ms entre les actions
  • le modèle d'action est un modèle de base pour l'action
  • par1, par2, par3, par4, par5 sont des paramètres supplémentaires

Le modèle d'action a des variables qui sont remplacées avant utilisation

  • $p Position rotative
  • $d Sens de rotation
  • $e numéro d'encodeur (0 est le premier)
  • $l fait une fonction d'onde lumineuse
  • $x, $y, $z, $u, $v remplacent par1 - par5
  • $t compteur de monnaie de remplacement
  • $c remplacer la virgule

Étape 6: Opération

Une fois le wifi configuré, le contrôle est activé en cliquant dessus une étape dans les deux sens. Cela ne change pas la position et ne déclenche pas d'action.

Dès lors, toute rotation déclenchera l'action configurée. L'intervalle d'action minimum limitera potentiellement les actions effectuées lors de la rotation du contrôle. Par exemple, si l'intervalle minimum est de 2000 ms, une rotation rapide peut n'envoyer que le premier et le dernier changement. La dernière position déclenchera toujours une action, donc si un gradateur est contrôlé, sa valeur reflétera la position de fin même si certaines étapes intermédiaires sont manquées.

Fonctionnement LightwaveRF

Un exemple est montré dans le fichier de configuration fourni. L'action de base est UDP vers le lien Lightwaverf. L'adresse IP et le numéro de port de l'hôte sont placés dans par1 et par2. La chaîne Room/Device est mise au par3.

Le lien doit d'abord être couplé au lien pour lui permettre d'accepter les commandes de l'adresse mac de l'esp8266. Pour ce faire, placez un fichier appelé initLink, txt dans le système de fichiers, puis envoyez une commande en tournant le contrôle d'un cran (après l'activation). Cela enverra une commande d'appairage au lien qui doit être acquittée en appuyant sur un bouton sur le lien. Le fichier initLink est automatiquement supprimé.

Maintenance

L'appareil peut être mis en mode maintenance où il ne s'éteindra pas automatiquement, en s'allumant avec la commande rotative enfoncée. Pour le sortir de ce mode, il suffit de l'éteindre puis de le rallumer.

Conseillé: