Table des matières:

Servothermomètre : 6 étapes
Servothermomètre : 6 étapes

Vidéo: Servothermomètre : 6 étapes

Vidéo: Servothermomètre : 6 étapes
Vidéo: Arduino Servo Motor Thermometer Gauge 2024, Novembre
Anonim
Servothermomètre
Servothermomètre
Servothermomètre
Servothermomètre

Il s'agit d'un affichage de température analogique construit à partir d'un capteur numérique ds18b20, d'un mini servo et d'une électronique basée sur un module esp-12f

Il a les caractéristiques suivantes.

  • Unité autonome contenant l'électronique, le servo et la batterie
  • Bonne précision et précision à l'aide du capteur numérique ds18b20
  • LIPO rechargeable avec chargeur intégré
  • Courant de repos très faible (< 20uA) pour une longue durée de vie de la batterie
  • Le servo ne s'est allumé que pendant de courtes périodes, ce qui donne une bonne autonomie de la batterie.
  • Normalement, le module dort entre les mises à jour de la température mais peut être transformé en mode non veille pour la vérification et la configuration
  • Téléchargement des données de configuration et test d'asservissement à partir de l'interface Web
  • Températures minimales, maximales, degrés Celsius. Fahrenheit et intervalle de mise à jour configurables
  • Surveillance de la batterie
  • Le logiciel peut être mis à jour via l'interface Web
  • À bas prix

É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

Les composants suivants sont nécessaires

  • Mini servomoteur (MG90S)
  • Capteur de température Ds18b20
  • ESP-12F (module esp8266)
  • Batterie 18650 LIPO
  • Support de batterie LIPO
  • chargeur micro USB LIPO
  • Régulateur LDO à faible courant de repos 3,3V. J'ai utilisé XC6203
  • Résistances 4K7, 10K
  • Condensateur de découplage 220uF 6V
  • Pilote à seuil bas MOSFET canal n. J'ai utilisé AO3400
  • Pilote de seuil bas MOSFET canal p. J'ai utilisé AO3401
  • Petit morceau de carte prototype de circuit imprimé
  • Faites glisser l'interrupteur d'alimentation
  • Petit bouton poussoir (carré 6mm)
  • Brancher le fil
  • Ruban adhésif double face
  • Conception de boîtier imprimée en 3D disponible sur
  • Pointeur facultatif. J'ai utilisé une aiguille d'horloge de rechange; une version imprimée peut être utilisée.

Les outils suivants sont nécessaires

  • Fer à souder à pointe fine
  • Pistolet à colle chaude
  • Perforatrice

Étape 2: Électronique

Électronique
Électronique

La plupart de l'électronique est une unité de microcontrôleur wifi ESP8266. Une petite quantité d'électronique de support est nécessaire pour activer le servomoteur et réguler la batterie à 3,3 V, prendre en charge les capteurs et un diviseur de résistance pour surveiller la tension de la batterie. L'alimentation du servomoteur est pilotée par 2 transistors MOSFET. Ils sont allumés pendant une courte période avant qu'une mise à jour du servo soit nécessaire et laissés allumés pendant une courte période pour permettre au servo de terminer son mouvement. La charge est si légère que le servo ne bouge pas lorsqu'il n'est pas alimenté.

Toute l'électronique de support, à l'exception du chargeur LIPO, est montée sur la carte prototype de circuit imprimé. J'utilise des composants SMD pour garder cela aussi petit que possible, mais cela pourrait être fait avec des composants de passage car il y a une quantité raisonnable d'espace disponible. Le chargeur LIPO possède un port micro USB qui peut être utilisé pour recharger la batterie. Un interrupteur à glissière peut être utilisé pour allumer et éteindre l'appareil. Un bouton permet de contourner le mode veille lors de la mise sous tension, ce qui permet ensuite l'accès Web pour la configuration et le contrôle.

Étape 3: Assemblage

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

J'ai fait les étapes de montage suivantes

  • Imprimer le boîtier 3D
  • Fil à souder sur l'interrupteur, le bouton et le connecteur à 3 broches
  • Fixez l'interrupteur, le bouton et le connecteur au boîtier en utilisant une petite quantité de colle résine pour fixer
  • Mettre le servo en place. Il y a suffisamment d'espace derrière pour le passage du câblage. Une cale de carton peut ensuite être utilisée pour le fixer.
  • Fixez le chargeur LIPO en place. J'ai utilisé du fil à travers les quatre trous du chargeur LIPO pour ajuster la hauteur (2 mm) de la base pour l'aligner avec le trou USB. Colle chaude en place.
  • Câblez le support de batterie, l'interrupteur et le chargeur en laissant suffisamment de jeu sur les câbles de batterie pour qu'ils puissent être sur le côté.
  • Composez l'électronique périphérique sur un petit morceau de carte de prototypage.
  • Montez la carte de prototypage sur le module esp-12.
  • Câblage de branchement complet
  • Imprimez le cadran sélectionné (et le pointeur si nécessaire) sur du papier glacé rigide et découpez-le.
  • Utilisez une perforatrice pour créer un trou pour le servo
  • Fixez le cadran à la boîte avec du ruban adhésif double face
  • Attacher le pointeur au servo
  • Calibrez la position du pointeur en utilisant la fonction Web pour définir une valeur de température.

Étape 4: Logiciel

Le logiciel de ce projet est disponible sur github

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 chargé en série sur le module. Il est bon de câbler GPIO13 à GND dans votre environnement de développement car le logiciel sera alors en mode continu.

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. Le mode veille profonde normal n'utilise pas le wifi. Il se réveille à l'intervalle de sommeil, lit la température, met à jour le servo et se rendort. Toutes les 10 lectures, il prend une lecture de la batterie et l'enregistre. Cela peut être vérifié en activant le mode wifi sans veille et en vérifiant le fichier journal.

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: Opération

Après la configuration, l'unité ne fonctionnera qu'après avoir été allumée.

S'il est activé avec le bouton enfoncé, un certain nombre de commandes Web peuvent être utilisées.

  • ipAddress/upload donne accès à un simple téléchargement de fichier. Utilisé pour amorcer le système.
  • http:/ipAddress/edit donne accès au système de fichiers (par exemple pour télécharger une nouvelle configuration ou accéder à n'importe quel fichier journal)
  • http:/ipAddress donne accès à un formulaire pour définir l'affichage sur une valeur. Peut être utilisé pour ajuster le pointeur.
  • http:/ipAddress/firmware pour télécharger un nouveau firmware binaire

Étape 6: numérotation et configuration

Le powerpoint contient quelques exemples de cadrans pour une utilisation en centigrades ou en degrés Fahrenheit. Ceux-ci permettent 15 segments, mais la plage peut être facilement ajustée en modifiant l'intervalle de pas. Si plus ou moins de segments sont souhaités, il faut alors modifier les propriétés de l'objet donut. De même, les arrière-plans de couleur des segments peuvent être modifiés.

Les données de configuration sont contenues dans un fichier appelé servoTempConfig.txt Il est conservé dans le système de fichiers du module. Pour modifier la configuration éditez le fichier et téléchargez-le via l'interface web

Les données de configuration ne sont que des valeurs sur les lignes comme suit

  • nom d'hôte
  • température minimale affichée (dans les unités choisies)
  • température maximale affichée (dans les unités choisies)
  • intervalle de sommeil entre les lectures en secondes
  • mode veille (0 = allumé en continu avec wifi, 1 = sommeil profond normal, 2 = allumé en continu pas de wifi
  • journalisation de l'activité dans servoTempLog.txt si journalisation = 1. Les tensions de batterie sont toujours enregistrées.
  • unités de température 0=Centigrade, 1=Fahrenheit
  • Étalonnage ADC_CAL pour les lectures de tension de batterie.

Assurez-vous que les températures min et max sont dans les unités C/F sélectionnées.

Conseillé: