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.