» Électronique » Arduino »Horloge avec thermomètre sur Attiny

Montre Thermomètre Attiny

Montre Thermomètre Attiny



Bonjour à tous et bonne journée ou soirée. Cette fois, je vais partager les instructions pour faire une horloge de pièce avec un thermomètre. Le centre de calcul de la montre sera Attiny85, assemblé sur une carte de Digispark. Pour afficher l'horloge - Affichage Oled. Thermomètre - le bien connu ds18b20. Pour l'alimentation, nous prenons du li-ion 18650 (ils peuvent être obtenus à partir d'une vieille batterie d'un ordinateur portable). Et ajoutez un affichage du niveau de la batterie. Comme pour toutes mes montres précédentes, nous nous passerons du module RTC (horloge temps réel).

Nous collectons tout ce qui est nécessaire:

- Digispark Attiny85 (version micro USB)
- ds18b20 (dans un boîtier en plastique)
- Écran Oled avec une résolution de 128x64, I2C
- 2 piles 18650 ou une vieille batterie d'ordinateur portable Li-ion
- Résistances (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Plastique mince (pour le logement)
- Fils de connexion de différentes couleurs
- Programmeur FAI (ou tout Arduino frais)
- Bouton
- Connecteurs Dupont 2,54 mm "mère", "père"
- Couteau de papeterie, ruban adhésif double face, ruban électrique, thermofusible
- Tout pour la soudure (fer à souder, colophane, soudure)

Étape 1 Cas.
Le futur boîtier de la montre sera en plastique fin. Vous pouvez acheter une feuille de ce plastique dans un magasin spécialisé ou commander sur aliexpress. Et vous pouvez (ne pas attendre et ne pas regarder) aller au bureau et acheter un dossier en papier plastique de votre couleur préférée. Dimensions de la future montre: largeur - 40 mm, épaisseur - 30 mm, hauteur - 70 mm. Selon le schéma ci-dessous, nous avons découpé une numérisation en plastique:


Nous coupons le long de lignes épaisses, plions doucement le long de lignes fines. Nous avons découpé le rectangle au milieu à l'aide d'un couteau de bureau, c'est une fenêtre d'affichage. En conséquence, nous obtenons une analyse du plastique:


Nous passons à Attiny.

Étape 2 Attiny + Oled.
Comme je l'ai dit, dans notre cœur fait maison sera Attiny 85. Il est préférable d'acheter cette puce, immédiatement soudée à la carte avec un régulateur de tension et un faisceau. Digispark Attiny85 est bien adapté. Choisissez la version avec micro-USB sur la carte. Les autres modifications apportées au tableau ne rentreront pas dans la taille. Il arrive que cette carte soit vendue avec des connecteurs Dupon "mâles" déjà soudés. Si c'est le cas, soudez tous les connecteurs. Nous collectons des fils colorés. Nous avons besoin de 10 centimètres de différentes couleurs. Soudez-les dans Attiny et notez à quel fil, à quelle conclusion correspond. Les fils P0 et P2 doivent être soudés en deux fils. La deuxième paire est nécessaire pour connecter l'écran Oled. Nous obtenons ce qui suit:


J'ai écrit le schéma suivant sur le fil:


L'écran est petit (pour correspondre au contrôleur), mais il est magnifique. OLED (diode électroluminescente organique) est un affichage graphique. Il n'y a pas de rétro-éclairage, et à la place, chaque pixel est une LED indépendante. Tailles d'écran - 0,96 pouces.Résolution 128x64. Connecté via le bus I2C. Utilise seulement deux fils pour se connecter à Attiny. Ils viennent en différentes couleurs, choisissez à votre goût. J'ai aimé le bleu avec une bande jaune en haut. Nous agissons de la même manière que Digispark. S'il y a des connecteurs soudés - soudez-les. Souder, pour l'instant, seuls les fils d'alimentation:


Soyez prudent lors de la soudure, n'endommagez pas le câble avec un fer à souder sur l'écran:


Nous connectons les cartes à l'aide de ruban adhésif double face:


Nous soudons ensemble l'affichage Digispark Attiny et Oled selon le schéma (les couleurs des fils peuvent varier, l'essentiel n'est pas de jouer avec les conclusions):


Pour plus de commodité et de commande, nous collectons tous les fils ensemble. Vous pouvez les tordre avec du ruban électrique pour ne pas vous confondre:


À la fin de tous les fils, nous fixons le connecteur «mère» Dupont, l'insérons dans les isolateurs et l'enroulons tous ensemble avec du ruban électrique pour faire le connecteur. Nous enregistrons également le brochage du connecteur:


Le brochage devrait être comme ceci, car à l'avenir, nous connecterons un fil pour le firmware ou d'autres éléments de la montre au connecteur.
Nous collons la structure résultante dans le boîtier, et n'oubliez pas de coller le boîtier lui-même, en laissant un gémissement non collé, pour d'autres manipulations:


Lors du collage, veillez à ce que l'écran soit uniforme:


Étape 3 Alimentation.
Pour l'alimentation, nous utiliserons deux éléments Li-ion. Tapez 18650. Vous pouvez les acheter séparément. Dans ce cas, soudez-les en parallèle, isolez et sortez le connecteur pour la connexion et la charge suivante:


Beaucoup ont des ordinateurs portables plus anciens. Qu'ils ne travaillent plus ou travaillent dans le temps. Même si la batterie de l'ordinateur portable est déjà mauvaise et ne convient pas à son utilisation prévue, elle peut être utilisée pour toutes sortes de produits faits maison. Dans notre cas, pour une montre. Nous prenons la batterie de l'ordinateur portable:


L'essentiel est qu'il soit Li-ion. Nous le démontons soigneusement, vous devez ouvrir le boîtier en plastique, afin de ne pas endommager l'élément à l'intérieur. Le plus souvent, la batterie est divisée en deux éléments connectés en parallèle. Nous les sortons et séparons une paire des autres:


Il est préférable de souder aux plots de contact:


Collez cette paire au dos de la montre:


Étape 4 Détermination de la charge de la batterie.
Une fonction pratique de la montre est d'indiquer la charge de la batterie. Nous déterminerons le degré de charge par tension. La tension minimale de ces batteries est de 2,4 V. Elle ne peut plus être déchargée. La tension maximale est de 4,2 V.

La mesure de tension au port analogique est toujours relative à une autre tension. Nous ne pouvons pas utiliser la broche AREF du microcontrôleur, qui sert à régler la tension de référence. Il est également impossible de mesurer la tension par rapport à la tension d'alimentation (le rapport sera toujours le même). Par conséquent, nous déterminerons la tension par rapport à la tension de référence interne ou Vbg (tension de référence Bandgap). Il s'agit de 1,1 V. Maintenant, nous devons calculer le diviseur de tension pour notre batterie, de sorte qu'à la charge maximale (4,2 V) le diviseur avait (1,1 V). Vous pouvez calculer par la formule:



Ou utilisez

R1 prend une valeur nominale de 10 kOhm. Ensuite, R2, nous obtenons 3,55 KOhm, le plus proche approprié des valeurs standard de 3,3 KOhm, et prenons-le. Les mesures sont effectuées entre la tension interne et GND, de sorte que la résistance de 3,3 KΩ est soudée au moins et 10 KΩ au plus. On place les résistances sur la batterie, on retire le fil du diviseur.


Nous isolons tous les contacts afin d'éviter les courts-circuits:


Le fil du diviseur sera connecté au PB4.

Étape 5 Mesurez la température.
Un excellent complément à la montre est la mesure de la température ambiante. Nous utiliserons le capteur de température intégré DS18B20. Pour l'utiliser, un seul fil est nécessaire (très utile lors de l'utilisation d'Attiny 85). Toutes les mesures sont faites par lui-même, le contrôleur central ne dérange pas (Attiny 85 a également une excellente mémoire et si peu), il suffit de donner des commandes et d'obtenir des résultats. Il existe plusieurs schémas différents pour connecter ce capteur, nous utiliserons l'option qui est optimale pour ce cas, à mon avis.Utilisation d'une alimentation externe et d'une résistance de 4,7 kΩ:


Soudez les petits fils et fixez les connecteurs


Le fil du capteur DQ est connecté au PB 3.

Étape 6 Bouton.
Nous avons peu de conclusions, mais il y a de nombreuses exigences pour les montres. Nous utiliserons un bouton pour régler l'heure. On ne peut pas compter sur plus. Souder les fils au bouton, un contact de celui-ci à GND. Combinez avec notre capteur de température:


Le deuxième contact du bouton est connecté au PB 1.

Étape 7 Préparation de l'environnement de développement
Pour continuer à travailler avec l'esquisse, ainsi que son édition et son remplissage, nous avons besoin de l'IDE Arduino. Téléchargez ce programme depuis:

Ajoutez maintenant la prise en charge d'Attiny 85 mercredi. Ouvrez l'IDE Arduion et suivez le chemin:
Fichier - Paramètres - "URL du gestionnaire de cartes supplémentaires" insérer le lien:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Cliquez OK.
Allez à:
Tools - Board - Boards Manager entrez Attiny et cliquez sur «attiny by David A. Mellis». Cliquez sur "Installer" et laissez reposer le café.
Et maintenant sur les bibliothèques. Ils en ont besoin de deux:

Pour travailler avec l'écran Oled

Contrôle du capteur de température

Après avoir téléchargé ces archives, décompressez-les dans le dossier «bibliothèques», qui est facile à trouver en suivant le chemin d'installation de l'IDE Arduino.

Étape 8 Programmeur.
Digispark Attiny 85 est une excellente planche. Conçu pour se connecter à un ordinateur USB. Et il peut être programmé à travers lui. Mais Attiny utilise un logiciel USB, qui à son tour prend 2 Ko de 8 Ko de mémoire. Cela ne nous convient pas, et nous allons donc flasher Attiny 85 via l'interface ISP. Et ici, nous avons besoin d'un programmeur ISP. S'il n'est pas là - cela n'a pas d'importance. Prenez l'Arduino. Dans mon cas, Arduino UNO:


Vous pouvez prendre n'importe quelle autre carte compatible de la ligne Arduino. Nous nous connectons à l'ordinateur, ouvrons l'IDE Arduino, sélectionnons le port com auquel la carte Arduino est connectée, ouvrons l'esquisse dans les exemples, Arduino ISP et remplissons-la dans la carte. Nous avons également besoin d'un fil pour se connecter rapidement à Attiny.


La connexion est la suivante:

D11 - P0
D12 - P1
D13 - P2
D10 - P5

N'oubliez pas la nutrition Attiny.

Étape 9 Modifiez et remplissez l'esquisse.

Télécharger le croquis

Avant de remplir, vous devez modifier l'esquisse.
Le capteur intégré ds18b20, comme mentionné précédemment, fonctionne en utilisant le protocole One Wire. Chaque capteur a sa propre adresse 64 bits unique. Vous devez trouver l'adresse de votre capteur et l'écrire dans un croquis. Ouvrez l'IDE Arduino, suivez le chemin:
Fichier - Exemples - Dallas Temperature - OneWireSearch.

Remplissez l'esquisse dans Arduino. Ouvrez le moniteur de port. Vous devriez voir les adresses de tous les capteurs connectés et leurs lectures de température. Nous notons votre adresse. Ouvrez mon croquis et changez l'adresse en votre propre ligne:

octet addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


Pour ajuster la progression de l'horloge, utilisez la constante suivante:

if (micros () - prevmicros & gt; [b] 497000 [/ b]) 


Plus cette valeur est élevée, plus l'horloge est lente.
Pour le contrôle, les secondes s'affichent à l'écran:

OzOled.printNumber ((long) sek, 0, 7); // secondes de sortie pour un réglage précis 


Mettez cette ligne en commentaire pour supprimer les secondes.
Maintenant, nous connectons le programmeur ou Arduino en tant que programmeur, sélectionnez le port com, sélectionnez notre carte dans le menu Outils et définissez les paramètres suivants:
Conseil: Attiny 25/45/85
Processeur: Attiny 85
Horloge: interne 16
Sélectionnez ensuite dans le même menu:
Outils - Programmeur - "Arduino as ISP".
Et enfin:
Sketch - Télécharger via le programmeur

Étape 10 Assemblage final et lancement.
Éteignez le programmateur et connectez le capteur, l'alimentation et le bouton:


Jusqu'à ce que le cours exact de l'horloge soit configuré, vous pouvez fermer le boîtier à l'aide de caoutchouc de banque. Une fois terminé, vous pouvez le coller.


Regarder la note
Total des votes: 13
10
10
10

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer
9 commentaires
L'auteur
L'idée est géniale. J'ai fait quelque chose à ce sujet. Ce n'était qu'à ma portée une variable de 5 kΩ. Je l'ai inclus dans l'épaule inférieure. Et puis remplacé par le permanent le plus approprié. Mais dans les instructions de fabrication, je pense que l'écriture n'est pas nécessaire. Pourquoi ne pas faire ces mesures plusieurs fois.
Je n'ai pas vu la nécessité d'écrire sur des procès longs et fastidieux.
Pas besoin de faire quoi que ce soit de long et fastidieux. Allumez la résistance (2,7 ... 3) kOhm dans le bras inférieur, séquentiellement avec lui un trimmer de 1 kOhm. À partir d'une source d'alimentation réglable, vous entrez les valeurs extrêmes de la tension contrôlée à l'entrée, ajustez le point de fonctionnement, puis, si vous le souhaitez, vous pouvez mesurer la résistance du trimmer et le remplacer par une résistance constante.
L'auteur
À une fréquence de 8 MHz, je n'ai pas essayé de démarrer l'horloge et de mesurer en conséquence la précision du parcours. Toutes les mesures ont été faites à 16 de l'intérieur. Je ne peux pas dire non plus du mois. Jusqu'à présent, sans arrêt, ils ont travaillé au maximum une semaine. Des expériences et des améliorations sont toujours en cours.
L'auteur
Concernant le diviseur de tension, il y a vraiment beaucoup de nuances et d'erreurs. Et la diffusion de la résistance des résistances et la diffusion de la tension de référence. J'ai tout essayé en pratique. Lorsque vous utilisez une résistance de 3,6 kΩ, même avec une tension de batterie de 3,9 V, le port analogique Attiny affiche 1023 (lorsqu'il est converti à 100%). Lorsque vous utilisez une résistance de 3,3 kΩ, la valeur du port analogique diminue déjà à 4,1 V sur la batterie. Par conséquent, j'ai écrit que le témoignage est obtenu avec plus de précision, je n'ai tout simplement pas vu la nécessité d'écrire sur les procès ennuyeux et longs.
L'auteur
J'ai réglé l'horloge pendant une semaine, ajusté sa progression tous les jours ou plus souvent. En conséquence, à une valeur de 497343, ils se précipitent pendant environ 10 secondes par semaine.
La fréquence peut être réduite. Je n'ai pas changé le paramètre, il n'y avait pas besoin
Eh bien, et quelle est la précision de l'horloge RC à 8 MHz? Par mois?
et pourquoi Clock: interne 16?
Il vaut mieux choisir moins, alors les lectures sont plus précises.
Pas plus précisément, mais simplement la tension d'entrée doit être inférieure à la référence. De plus, dans votre raisonnement, vous ne prenez pas du tout en compte la dispersion des paramètres: les résistances, très probablement, vous aurez cinq pour cent, Vbg = (1,0 ... 1,2) V. Donc 3,3 kOhm peuvent être trop grands, et peut-être que 3,6 kOhms suffiront.
L'auteur
Si vous utilisez une tension de sortie de 3,6, nous obtenons 1,11. Bien que pas beaucoup, mais plus de tension de référence. Lors de l'utilisation de 3.3 - 1.04. Il vaut mieux choisir moins, alors les lectures sont plus précises.
Et quant à Oh, vous avez raison, je n'ai tout simplement pas prêté attention à ce petit détail.
Après avoir collé le boîtier, l'accès à la prise de charge et aux boutons peut être obtenu à partir du bas de la montre en coupant le couvercle inférieur ou simplement en ne le collant pas.
Ensuite, R2 nous obtenons 3,55 KOhm, le plus proche des valeurs standard de 3,3 KOhm,
Pas du tout. Le plus proche dans la plage standard E24 est de 3,6 kOhm. Et au fait, pas "KOhm, mais" KOhm.
Jusqu'à ce que le cours exact de l'horloge soit configuré, vous pouvez fermer le boîtier à l'aide de caoutchouc de banque. Une fois terminé, vous pouvez le coller.
Comment chargerons-nous la batterie?
Et comment manipuler le bouton?

Nous vous conseillons de lire:

Donnez-le au smartphone ...