Liste de ce dont nous avons besoin:
- Digispark Attiny85
- Écran Oled 128x64 I2C
- Capteur de température DS18B20
- Résistance 4,7 Kom 0,25 W
- Programmeur FAI ou Arduino Carte de micrologiciel Digispark Attiny85
- Tablette en plastique avec trombone ou feuille de plastique mince
- fils
- Connecteurs «femelles» Dupont 2,54 mm
- Boutons 2 pcs.
- Petite carte de circuit imprimé ou petite garniture
- fer à souder
- Soudure, colophane
- ciseaux
- couteau de bureau
- Pistolet à colle chaude
- Colle chaude
Étape 1 Sélection des composants.
En tant que contrôleur principal, nous utiliserons Digispark Attiny85. Il en existe plusieurs types. Nous avons besoin d'une carte avec un connecteur micro USB. Le reste ne rentrera pas dans le boîtier de la montre.
Pour afficher, nous avons besoin d'un écran Oled 128x64 I2C. Ils viennent en différentes couleurs: blanc, bleu, bleu avec jaune. J'attire votre attention! Le terme «bicolore» dans la description ou le titre de cet écran signifie une bande d'une couleur en haut de l'écran et la deuxième couleur de tout l'écran restant, et non la possibilité d'afficher deux couleurs avec cet écran! Tous les écrans de ce type affichent une seule couleur, ou en haut une bande d'une couleur en bas - une autre. Comme, par exemple, celui que j'utiliserai. La barre ci-dessus est jaune; le reste de l'écran est bleu. Vous pouvez choisir n'importe quelle couleur que vous aimez.
Nous avons également besoin du capteur de température intégré DS18B20. Il n'a pas été choisi par hasard. Tout d'abord, le DS18B20 communique avec le microcontrôleur via une ligne de communication monofil à l'aide du protocole d'interface 1-Wire. Dans notre cas, c'est important, car les conclusions d'Attiny85 sans capteur sont peu nombreuses. Deuxièmement, ce capteur est un chiffre, c'est-à-dire qu'il prend toutes les mesures lui-même et transmet simplement les données de température sans dépenser les ressources informatiques d'Attiny85.
Pour le reste, je pense qu'il n'y aura pas de questions, alors passons à la fabrication de l'étui.
Étape 2 Assemblage du boîtier.
Le boîtier de la montre sera en plastique fin. J'avais une tablette en plastique avec un trombone sur les mains. Il est suffisamment résistant pour conserver sa forme et peut être coupé en même temps avec des ciseaux ordinaires et un couteau de bureau. Il est venu parfaitement.S'il n'est pas à portée de main, vous pouvez acheter une tablette dans un magasin de fournitures de bureau ou trouver le bon plastique pour remplacer la tablette. Nous réalisons des marquages sur plastique selon le schéma:
Découpez toutes les lignes pleines. Pointillé - légèrement coupé avec un couteau de bureau. Les lignes pointillées sont des lignes de pliage. Comme vous l'avez déjà compris, c'est la disposition habituelle du cube. Ensuite, vous devez souder les fils à l'écran, il est préférable de prendre plusieurs couleurs et d'écrire ce qui mène à quoi. Collez l'écran sur l'adhésif thermofusible au milieu, de sorte que le côté avant, il sort de l'arrière. Comme vous pouvez le voir, nous avons fermé les désignations des broches d'écran. Il fallait donc les noter. J'ai légèrement remis le couteau et ainsi coupé la partie inférieure du corps. Il n'y a rien de mal à cela, tout peut être collé. Mais il vaut mieux ne pas répéter mes erreurs.
Le résultat devrait être comme ceci:
Sur ce cas est prêt. Vous pouvez toujours découper le capot arrière dans le même plastique, mais cela est facultatif.
Étape 3 Nous soudons.
Notre cas est petit, et nous devons en faire beaucoup. Par conséquent, nous prenons un morceau de la carte de circuit imprimé ne dépassant pas 2,8 x 2,8 mm et soudons en deux boutons, un capteur ds18b20, une résistance et plusieurs contacts. Selon le schéma suivant:
Il n'est pas nécessaire de souder les fils directement à Attiny, car il est nécessaire de tout déconnecter pour le firmware. Le résultat devrait être quelque chose comme ceci:
Des boutons sont nécessaires pour régler l'heure. L'alimentation peut être prélevée sur le port USB de l'ordinateur. Combinant respectivement le plus et le moins:
Si vous voulez vous passer de fils, vous devez trouver une petite batterie lithium-ion. En voici un, par exemple:
Cette batterie tient à l'intérieur du boîtier. Il suffit de fournir des conclusions pour la charge de la batterie.
Étape 4 Préparation du programmateur.
Digispark Attiny85 peut être programmé via le connecteur micro USB de la carte, en utilisant l'IDE Arduino comme environnement de programmation. Mais en même temps, vous devez sacrifier 2 Ko de mémoire pour le chargeur de démarrage. Attiny 85 a un total de 8 Ko Flash. Mon croquis ne correspond pas au chargeur de démarrage, j'ai donc besoin de programmer via le programmeur ISP. Je n'ai pas un tel programmeur, mais il y a une carte Arduino Uno, que j'utiliserai comme programmeur. Si vous avez un programmeur ISB, vous pouvez ignorer cet élément. Ouvrez l'IDE Arduino et remplissez notre croquis appelé ArduinoISP dans notre Arduino Uno. Vous pouvez le trouver comme ceci Fichier - Exemples - Arduino ISP. L'esquisse commence par un indice sur la façon de connecter l'Arduino au contrôleur programmable. Au lieu d'Arduino Uno, il peut y avoir n'importe quelle autre carte Arduino.
// 10: réinitialisation de l'esclave
// 11: MOSI
// 12: MISO
// 13: SCK
Schéma de connexion à Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Étape 5 Préparation de l'environnement de programmation.
Pour éditer le firmware et remplir l'esquisse dans Attiny 85, vous devez préparer non seulement le programmeur, mais aussi l'environnement de programmation lui-même. Pour ce faire, installez l'IDE Arduino à partir du site Web officiel Arduino.cc, et installez également le module complémentaire Attiny pour les microcontrôleurs via le gestionnaire de cartes.
Lancez l'IDE Arduino, puis Fichier - Paramètres - dans le champ URL du gestionnaire de cartes supplémentaires, collez le lien:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
cliquez sur OK (vous pouvez saisir plusieurs liens séparés par une virgule dans ce champ). Outils suivants - Board - Boards Manager dans le champ de filtre, entrez Attiny et cliquez sur "attiny by David A. Mellis". Cliquez sur Installer et attendez la fin du téléchargement. Maintenant, dans le menu Outils, sélectionnez:
Planche - Attiny 25/45/85
Processeur - Attiny 85
Horloge - interne 16
et sélectionnez le port série auquel le programmeur ISP ou Arduino est connecté en tant que programmeur.
J'ai essayé de nombreuses bibliothèques différentes pour travailler avec l'écran. À mon avis, le plus pratique et le plus efficace sur Attiny85: TinyOzOLED.
Un capteur de température a besoin de la bibliothèque OneWire.
Installez ces deux bibliothèques. Vous pouvez installer des bibliothèques tierces directement dans l'environnement de programmation. Sans déballer les archives téléchargées, dans l'IDE Arduino, sélectionnez le menu Sketch - Connect Library. En haut de la liste déroulante, sélectionnez l'élément Ajouter la bibliothèque .Zip. Dans la boîte de dialogue qui apparaît, sélectionnez la bibliothèque que vous souhaitez ajouter. Ouvrez à nouveau le menu Sketch - Connect Library. Tout en bas de la liste déroulante, vous devriez voir une nouvelle bibliothèque. Maintenant, la bibliothèque peut être utilisée dans des programmes. N'oubliez pas de redémarrer l'IDE Arduino après tout cela.Si cela ne vous aide pas, décompressez simplement les archives dans le dossier «bibliothèques» situé dans le dossier avec l'IDE Arduino installé.
Étape 6 Modifiez et remplissez l'esquisse.
Le capteur de température fonctionne selon le protocole One Wire et possède une adresse unique pour chaque appareil - un code 64 bits. Les ressources Attiny ne sont pas suffisantes pour rechercher ce code à chaque fois. Par conséquent, vous devez d'abord connecter le capteur à n'importe quelle carte Arduino, remplir le croquis situé dans le menu Fichier - Exemples - Température de Dallas - OneWireSearch. Ensuite, exécutez Tools - Port Monitor. Arduino devrait trouver notre capteur, écrire son adresse et les relevés de température actuels. Nous copions ou notons simplement l'adresse de notre capteur. Ouvrez l'esquisse Attiny85_Oled_SPI_Term_2, recherchez la ligne:
octet addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Nous notons l'adresse de votre capteur entre accolades, en remplaçant l'adresse de mon capteur. Après cela, connectez Attiny au programmateur ou Arduino en tant que programmeur (cela est décrit à l'étape 4) et remplissez le croquis. Il reste à déconnecter le programmateur et à tout connecter selon le schéma en 3 étapes. L'assemblage s'avère quelque chose comme ceci:
L'écran est petit, il est impossible de mettre à la fois le temps et la température pour qu'il soit visible. Par conséquent, l'horloge change l'heure avec une lecture de température toutes les 10 secondes.