» Elektronik » Arduino »Uhr mit Thermometer auf Attiny

Attiny Thermometer Uhr

Attiny Thermometer Uhr



Hallo an alle und einen schönen Tag oder Abend. Dieses Mal werde ich die Anweisungen zur Herstellung einer Raumuhr mit einem Thermometer teilen. Das Rechenzentrum der Uhr wird Attiny85 sein, das auf einer Tafel von Digispark montiert ist. Anzeige der Uhr - Oled-Anzeige. Thermometer - das bekannte ds18b20. Für die Stromversorgung verwenden wir Li-Ion 18650 (sie können von einem alten Akku eines Laptops bezogen werden). Und fügen Sie eine Anzeige des Batteriestands hinzu. Wie bei allen meinen vorherigen Uhren werden wir auf das RTC-Modul (Real Time Clock) verzichten.

Wir sammeln alles Notwendige:

- Digispark Attiny85 (Micro-USB-Version)
- ds18b20 (in einem Kunststoffgehäuse)
- Oled Bildschirm mit einer Auflösung von 128x64, I2C
- 2 Stück 18650 Akkus oder ein alter Li-Ionen-Laptop-Akku
- Widerstände (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Dünner Kunststoff (für Gehäuse)
- Verbindungsdrähte in verschiedenen Farben
- ISP-Programmierer (oder ein beliebiger Arduino Gebühr)
- Knopf
- Dupont-Steckverbinder 2,54 mm "Mutter", "Vater"
- Schreibwarenmesser, doppelseitiges Klebeband, Isolierband, Hotmelt
- Alles zum Löten (Lötkolben, Kolophonium, Lot)

Schritt 1 Fall.
Das zukünftige Uhrengehäuse wird aus dünnem Kunststoff bestehen. Sie können eine solche Plastikfolie in einem Fachgeschäft kaufen oder bei aliexpress bestellen. Oder Sie können (nicht warten und nicht hinsehen) zum Büro gehen und einen Plastikpapierordner Ihrer Lieblingsfarbe kaufen. Abmessungen der zukünftigen Uhr: Breite - 40 mm, Dicke - 30 mm, Höhe - 70 mm. Gemäß dem folgenden Diagramm schneiden wir einen Scan aus Kunststoff aus:


Wir schneiden entlang dicker Linien, biegen sanft entlang dünner Linien. Wir schneiden das Rechteck in der Mitte mit einem Schreibmesser aus, dies ist ein Fenster zur Anzeige. Als Ergebnis erhalten wir einen Scan von Kunststoff:


Wir gehen zu Attiny über.

Schritt 2 Attiny + Oled.
Wie gesagt, in unserem Herzen hausgemacht wird Attiny 85 sein. Es ist am besten, diesen Chip zu kaufen, der sofort zusammen mit einem Spannungsregler und einem Kabelbaum auf die Platine gelötet wird. Digispark Attiny85 ist gut geeignet. Wählen Sie die Version mit Micro-USB auf der Platine. Andere Änderungen an der Platine passen nicht in die Größe. Es kommt vor, dass diese Platine mit bereits gelöteten Dupon-Steckern verkauft wird. Wenn ja, löten Sie alle Stecker. Wir sammeln farbige Drähte. Wir brauchen 10 Zentimeter in verschiedenen Farben. Wir löten sie in Attiny und schreiben auf, welchem ​​Draht welche Schlussfolgerung entspricht. Die Drähte P0 und P2 müssen in zwei Drähten verlötet werden. Das zweite Paar wird benötigt, um den Oled-Bildschirm anzuschließen. Wir bekommen folgendes:


Ich habe das folgende Diagramm auf den Draht geschrieben:


Der Bildschirm ist klein (passend zum Controller), sieht aber wunderschön aus. OLED (Organic Light Emitting Diode) ist eine grafische Anzeige. Es gibt keine Hintergrundbeleuchtung und stattdessen ist jedes Pixel eine unabhängige LED. Bildschirmgrößen - 0,96 Zoll.Auflösung 128x64. Verbunden über I2C-Bus. Verwendet nur zwei Drähte, um sich mit Attiny zu verbinden. Sie kommen in verschiedenen Farben, wählen Sie nach Ihrem Geschmack. Ich mochte das Blau mit einem gelben Streifen oben. Wir verhalten uns ähnlich wie Digispark. Wenn gelötete Steckverbinder vorhanden sind, löten Sie diese. Löten Sie vorerst nur die Stromkabel:


Seien Sie beim Löten vorsichtig und beschädigen Sie das Kabel nicht mit einem Lötkolben auf dem Display:


Wir verbinden die Platinen mit doppelseitigem Klebeband:


Wir löten das Digispark Attiny- und das Oled-Display gemäß dem Schema zusammen (die Farben der Drähte können variieren, die Hauptsache ist, sich nicht mit den Schlussfolgerungen herumzuschlagen):


Zur Vereinfachung und Bestellung sammeln wir alle Drähte zusammen. Sie können sie mit Klebeband drehen, um nicht verwirrt zu werden:


Am Ende aller Drähte befestigen wir den Dupont-Mutterstecker, stecken ihn in die Isolatoren und wickeln alles zusammen mit Klebeband, um den Stecker herzustellen. Wir zeichnen auch die Pinbelegung des Steckers auf:


Die Pinbelegung sollte so sein, da wir in Zukunft ein Kabel für Firmware oder andere Uhrenelemente an den Anschluss anschließen werden.
Wir kleben die resultierende Struktur in das Gehäuse und vergessen nicht, das Gehäuse selbst zu kleben, sodass ein Stöhnen für weitere Manipulationen nicht aufgeklebt bleibt:


Achten Sie beim Kleben darauf, dass der Bildschirm eben ist:


Schritt 3 Stromversorgung.
Für die Stromversorgung werden zwei Li-Ionen-Elemente verwendet. Typ 18650. Sie können sie separat erwerben. Löten Sie sie in diesem Fall parallel, isolieren Sie den Stecker und geben Sie ihn für den Anschluss und das anschließende Laden aus:


Viele haben ältere Laptops. Ob sie nicht mehr arbeiten oder durch die Zeit arbeiten. Auch wenn der Akku des Laptops bereits schwach und nicht für den beabsichtigten Gebrauch geeignet ist, kann er für alle Arten von hausgemachten Produkten verwendet werden. In unserem Fall für eine Uhr. Wir nehmen den Akku aus dem Laptop:


Die Hauptsache ist, dass er Li-Ion ist. Wir zerlegen es sorgfältig, Sie müssen das Kunststoffgehäuse öffnen, um das Element im Inneren nicht zu beschädigen. Meistens ist die Batterie in zwei parallel geschaltete Elemente unterteilt. Wir nehmen sie heraus und trennen ein Paar vom Rest:


Es ist am besten, an die Kontaktflächen zu löten:


Kleben Sie dieses Paar auf die Rückseite der Uhr:


Schritt 4 Ermitteln der Batterieladung.
Eine praktische Funktion der Uhr besteht darin, die Batterieladung anzuzeigen. Wir werden den Ladungsgrad anhand der Spannung bestimmen. Die Mindestspannung für diese Batterien beträgt 2,4 V. Sie kann nicht weiter entladen werden. Die maximale Spannung beträgt 4,2 V.

Die Spannungsmessung am analogen Anschluss ist immer relativ zu einer anderen Spannung. Wir können den AREF-Pin des Mikrocontrollers nicht verwenden, der zum Einstellen der Referenzspannung dient. Es ist auch unmöglich, die Spannung in Bezug auf die Versorgungsspannung zu messen (das Verhältnis ist immer das gleiche). Daher werden wir die Spannung in Bezug auf die interne Referenzspannung oder Vbg (Bandlückenreferenzspannung) bestimmen. Es ist 1,1 V. Jetzt müssen wir den Spannungsteiler für unsere Batterie berechnen, damit der Teiler bei maximaler Ladung (4,2 V) (1,1 V) hatte. Sie können nach der Formel berechnen:



Oder verwenden

R1 nimmt einen Nennwert von 10 kOhm an. Dann R2 erhalten wir 3,55 KOhm, das am besten geeignete aus den Standardwerten von 3,3 KOhm, und nehmen es. Es werden Messungen zwischen der internen Spannung und GND durchgeführt, sodass der 3,3-KΩ-Widerstand mit dem Minus und 10 KΩ mit dem Plus verlötet wird. Wir legen die Widerstände auf die Batterie, wir ziehen den Draht vom Teiler ab.


Wir isolieren alle Kontakte, um Kurzschlüsse zu vermeiden:


Der Draht vom Teiler wird mit PB4 verbunden.

Schritt 5 Messen Sie die Temperatur.
Eine hervorragende Ergänzung zur Uhr ist die Messung der Raumtemperatur. Wir werden den integrierten Temperatursensor DS18B20 verwenden. Um damit zu arbeiten, ist nur ein Draht erforderlich (sehr nützlich bei Verwendung von Attiny 85). Alle Messungen werden von ihm selbst durchgeführt, der zentrale Controller kümmert sich nicht darum (Attiny 85 hat auch ein ausgezeichnetes Gedächtnis und so wenig), wir müssen nur Befehle geben und Ergebnisse erhalten. Es gibt verschiedene Anschlussschemata für diesen Sensor. Wir werden meiner Meinung nach die für diesen Fall optimale Option verwenden.Verwendung einer externen Stromversorgung und eines 4,7-kΩ-Widerstands:


Löten Sie kleine Drähte und befestigen Sie die Stecker


Das Kabel vom DQ-Sensor ist mit PB 3 verbunden.

Schritt 6 Taste.
Wir haben nur wenige Schlussfolgerungen, aber es gibt viele Anforderungen an Uhren. Wir werden eine Taste verwenden, um die Zeit einzustellen. Mehr können wir nicht erwarten. Löten Sie die Drähte an den Knopf, einen Kontakt von dort an GND. Kombinieren Sie mit unserem Temperatursensor:


Der zweite Kontakt über die Taste ist mit PB 1 verbunden.

Schritt 7 Vorbereiten der Entwicklungsumgebung
Für die weitere Arbeit mit der Skizze sowie für deren Bearbeitung und Füllung benötigen wir die Arduino IDE. Laden Sie dieses Programm herunter von:

Fügen Sie jetzt am Mittwoch Unterstützung für Attiny 85 hinzu. Öffne die Arduion IDE und gehe den Pfad entlang:
Datei - Einstellungen - "Zusätzliche Boards Manager-URLs" fügen Sie den Link ein:

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


Klicken Sie auf OK.
Gehe zu:
Tools - Board - Boards Manager geben Attiny ein und klicken auf "attiny by David A. Mellis". Klicken Sie auf "Installieren" und lassen Sie den Kaffee stehen.
Und jetzt zu den Bibliotheken. Sie brauchen zwei:

So arbeiten Sie mit dem Oled-Display

Temperatursensorsteuerung

Entpacken Sie diese Archive nach dem Herunterladen in den Ordner "Bibliotheken", der leicht zu finden ist, indem Sie den Installationspfad der Arduino IDE befolgen.

Schritt 8 Programmierer.
Digispark Attiny 85 ist ein großartiges Board. Entwarf, an einen USB-Computer anzuschließen. Und es kann dadurch programmiert werden. Attiny verwendet jedoch eine USB-Software, die wiederum 2 KB oder 8 KB Speicher belegt. Dies passt nicht zu uns und daher werden wir Attiny 85 über die ISP-Schnittstelle flashen. Und hier brauchen wir einen ISP-Programmierer. Wenn es nicht da ist, spielt es keine Rolle. Nimm den Arduino. In meinem Fall, Arduino UNO:


Sie können jedes andere kompatible Board aus der Arduino-Reihe nehmen. Wir verbinden uns mit dem Computer, öffnen die Arduino IDE, wählen den COM-Port aus, an den die Arduino-Karte angeschlossen ist, öffnen die Skizze in den Beispielen, Arduino ISP und füllen sie in die Karte aus. Wir brauchen auch einen Draht, um schnell eine Verbindung zu Attiny herzustellen.


Die Verbindung ist wie folgt:

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

Vergessen Sie nicht Attiny Ernährung.

Schritt 9 Bearbeiten und füllen Sie die Skizze.

Skizze herunterladen

Vor dem Ausfüllen müssen Sie die Skizze bearbeiten.
Der integrierte Sensor ds18b20 arbeitet, wie bereits erwähnt, mit dem One Wire-Protokoll. Jeder Sensor hat eine eigene 64-Bit-Adresse. Sie müssen die Adresse Ihres Sensors finden und in eine Skizze schreiben. Öffnen Sie die Arduino IDE und folgen Sie dem Pfad:
Datei - Beispiele - Dallas Temperature - OneWireSearch.

Füllen Sie die Skizze in Arduino. Öffnen Sie den Portmonitor. Sie sollten die Adressen aller angeschlossenen Sensoren und deren Temperaturwerte sehen. Wir schreiben Ihre Adresse auf. Öffnen Sie meine Skizze und ändern Sie die Adresse in der Zeile in Ihre eigene:

Byte-Adresse [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};


Verwenden Sie die folgende Konstante, um den Fortschritt der Uhr anzupassen:

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


Je größer dieser Wert ist, desto langsamer ist die Uhr.
Zur Steuerung werden Sekunden auf dem Bildschirm angezeigt:

OzOled.printNumber ((long) sek, 0, 7); // Sekunden für eine genaue Abstimmung ausgeben 


Kommentieren Sie diese Zeile aus, um Sekunden zu entfernen.
Jetzt verbinden wir den Programmierer oder Arduino als Programmierer, wählen den Com-Port aus, wählen unsere Karte im Menü Extras aus und stellen die folgenden Parameter ein:
Vorstand: Attiny 25/45/85
Prozessor: Attiny 85
Uhr: intern 16
Wählen Sie dann im selben Menü:
Tools - Programmierer - "Arduino als ISP".
Und endlich:
Skizze - Download über den Programmierer

Schritt 10 Endmontage und Start.
Schalten Sie den Programmierer aus und schließen Sie Sensor, Stromversorgung und Taste an:


Bis der genaue Verlauf der Uhr konfiguriert ist, können Sie das Gehäuse mit Bankgummi schließen. Wenn Sie fertig sind, können Sie es kleben.


Bewertung ansehen
Stimmen insgesamt: 13
10
10
10

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
9 Kommentare
Der Autor
Die Idee ist großartig. Ich habe etwas dagegen getan. Nur an meinen Fingerspitzen war eine 5 kΩ Variable. Ich habe es in die untere Schulter aufgenommen. Und dann durch die am besten geeignete bleibende ersetzt. Aber in den Herstellungsanweisungen denke ich, dass es unnötig ist, sie zu schreiben. Warum nicht diese Messungen mehrmals durchführen?
Ich sah keine Notwendigkeit, über langwierige und lange Prüfungen zu schreiben.
Sie müssen nichts langes und langwieriges tun. Schalten Sie den Widerstand (2,7 ... 3) kOhm im Unterarm ein, nacheinander einen 1 kOhm-Trimmer. Über eine einstellbare Stromquelle geben Sie die Extremwerte der geregelten Spannung in den Eingang ein, stellen den Betriebspunkt ein und können bei Bedarf den Widerstand des Trimmers messen und durch einen konstanten Widerstand ersetzen.
Der Autor
Bei einer Frequenz von 8 MHz habe ich nicht versucht, die Uhr zu starten und dementsprechend die Genauigkeit des Kurses zu messen. Alle Messungen wurden bei 16 von innen durchgeführt. Ich kann auch nichts über den Monat sagen. Bisher arbeiteten sie ohne Herunterfahren maximal eine Woche. Experimente und Verbesserungen sind noch im Gange.
Der Autor
In Bezug auf den Spannungsteiler gibt es wirklich viele Nuancen und Fehler. Und die Streuung des Widerstands der Widerstände und die Streuung der Referenzspannung. Ich habe alles in der Praxis versucht. Bei Verwendung eines 3,6-kΩ-Widerstands zeigt der Attiny-Analoganschluss auch bei einer Batteriespannung von 3,9 V 1023 an (bei Umwandlung in 100% Prozent). Bei Verwendung eines 3,3-kΩ-Widerstands nimmt der analoge Anschlusswert sogar bei 4,1 V an der Batterie ab. Deshalb schrieb ich, dass das Zeugnis genauer erhalten wird, ich sah einfach nicht die Notwendigkeit, über langweilige und lange Prüfungen zu schreiben.
Der Autor
Ich stellte die Uhr auf eine Woche ein und passte ihren Fortschritt jeden Tag oder öfter an. Infolgedessen rasen sie bei einem Wert von 497343 etwa 10 Sekunden pro Woche.
Die Frequenz kann reduziert werden. Ich habe den Parameter nicht geändert, es gab keine Notwendigkeit
Nun, und wie genau ist der 8-MHz-RC-Takt? Im Monat?
und warum Uhr: intern 16?
Es ist besser, weniger zu wählen, dann sind die Messwerte genauer.
Nicht genauer, sondern einfach die Eingangsspannung sollte kleiner als die Referenz sein. Außerdem berücksichtigen Sie in Ihrer Argumentation die Streuung der Parameter absolut nicht: Widerstände haben höchstwahrscheinlich fünf Prozent, Vbg = (1,0 ... 1,2) V. 3,3 kOhm können sich also als zu groß herausstellen. und vielleicht reichen 3,6 kOhm.
Der Autor
Wenn Sie eine Ausgangsspannung von 3,6 verwenden, erhalten wir 1,11. Obwohl nicht viel, aber mehr Referenzspannung. Bei Verwendung von 3.3 - 1.04. Es ist besser, weniger zu wählen, dann sind die Messwerte genauer.
Und was Oh, du hast Recht, ich habe dieses kleine Detail einfach nicht beachtet.
Nach dem Verkleben des Gehäuses können Sie von der Unterseite der Uhr aus auf die Ladebuchse und die Tasten zugreifen, indem Sie die untere Abdeckung abschneiden oder einfach nicht aufkleben.
Dann R2 erhalten wir 3,55 KOhm, der nächste von den Standardwerten von 3,3 KOhm,
Überhaupt nicht. Der nächstgelegene Wert im Standardbereich E24 beträgt 3,6 kOhm. Und übrigens nicht "KOhm, sondern" KOhm.
Bis der genaue Verlauf der Uhr konfiguriert ist, können Sie das Gehäuse mit Bankgummi schließen. Wenn Sie fertig sind, können Sie es kleben.
Wie laden wir den Akku auf?
Und wie manipuliere ich den Knopf?

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...