» Électronique » Arduino »Montres Oled sur Attiny85

Montres Oled sur Attiny85

Bonjour et je suis de nouveau avec mes jouets. Aujourd'hui, je vous présente des instructions pour fabriquer des montres petites mais mignonnes avec un capteur de température ambiante.
Montres Oled sur Attiny85


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.
tinyozoled-master.rar [15,99 Ko] (téléchargements: 477)


Un capteur de température a besoin de la bibliothèque OneWire.
onewire.rar [16.75 Kb] (téléchargements: 263)


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.
attiny85_oled_spi_term_2.rar [2,33 Ko] (téléchargements: 574)

Attiny 85
Nombre total d'électeurs: 118
9.3
10
8.7

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
13 commentaires
Vseslav
Merci, merci!
L'auteur
Bonsoir Je n'ai pas utilisé la bibliothèque de Digispart. Ils ont un chargeur de démarrage trop grand, avec lui le croquis de l'horloge ne convenait pas. J'ai utilisé la bibliothèque TinyOzOLED. Elle n'a pas le russe. En général, avec Attiny 85 c'est difficile, il y a trop peu de mémoire.
Vseslav
Bien pensé et fait, un défaut mineur - les inscriptions dans Aglitsky. Peut-on simplement les échanger contre du russe, ou est-ce difficile pour Digispark de le faire?
L'auteur
Bon après-midi Les horloges en temps réel occupent suffisamment d'espace, elles ne rentreront pas dans ce boîtier.
Hmm .. pourquoi ne pas mettre une horloge en temps réel au lieu d'un capteur de température?
L'auteur
Autre astuce, une LED est connectée au Digispar Attiny 85 P1, si vous utilisez cette broche, pensez à sa présence. J'ai surnommé cette diode sur ma carte, car à mon avis elle n'interfère que.
L'auteur
Bon après-midi Il n'est pas nécessaire de faire un pull-up avec une résistance, car la suspension intégrée à Attiny est incluse dans le croquis. Retirez votre bretelle et réessayez.
Vous pouvez également essayer un autre croquis de mes autres montres, ils ont le même contrôleur et écran, et la configuration se fait avec un seul bouton:
https://frm.imdmyself.com/14217-chasy-s-termometrom-na-attiny.html
Guest Roman
Bonjour. Merci pour l'idée et le travail. Soit mes mains ne sont pas comme ça, soit je ne comprends pas. Les boutons de réglage de l'heure ne fonctionnent pas normalement. J'ai essayé à la fois votre skech et le mien, dans mon seul ajout du mode pin des boutons d'entrée, et j'ai passé de 10k à 5V. Et en cela et en ce que le bouton ne comprenait pas comment appuyer pour changer. Ou je me retrouve dans des retards ou quelque chose ne va pas avec les boutons, l'horloge habituelle.
écran cool. Mais gourmand. La RAM mange beaucoup.
Tu es un maître! se faufiler dans un tel tinku85.
L'auteur
Tu as raison, fait une faute de frappe, 2,8 x 2,8 cm
Citation: maxim0512
Ne rentre plus simplement dans le boîtier.
Par zone, vous pouvez cent fois plus que ce que vous avez proposé.
L'auteur
Ne rentre plus simplement dans le boîtier. Il n'y a que deux boutons, une résistance et un capteur de température. Tout va juste.
... carte de circuit imprimé non supérieure à 2,8 x 2,8 mm
Ce ne sera pas suffisant. )))

Nous vous conseillons de lire:

Donnez-le au smartphone ...