Liste von dem, was wir brauchen:
- Digispark Attiny85
- Oled Display 128x64 I2C
- Temperatursensor ds18b20
- Widerstand 4,7 Kom 0,25 W.
- ISP-Programmierer oder Arduino Digispark Attiny85 Firmware-Karte
- Plastiktablette mit Büroklammer oder dünner Plastikfolie
- Drähte
- Dupont 2,54 mm „Buchsen“ -Anschlüsse
- Knöpfe 2 Stk.
- Kleine Leiterplatte oder kleine Verkleidung
- Lötkolben
- Lot, Kolophonium
- Schere
- Schreibmesser
- Heißklebepistole
- Heißkleber
Schritt 1 Komponenten auswählen.
Als Hauptcontroller verwenden wir Digispark Attiny85. Es gibt verschiedene Arten von ihnen. Wir brauchen eine Karte mit einem Micro-USB-Anschluss. Der Rest passt nicht in das Uhrengehäuse.
Zur Anzeige benötigen wir eine Oled 128x64 I2C-Anzeige. Sie kommen in verschiedenen Farben: weiß, blau, blau mit gelb. Ich lenke deine Aufmerksamkeit! Der Begriff „zweifarbig“ in der Beschreibung oder im Titel dieses Bildschirms bedeutet einen Streifen mit einer Farbe am oberen Bildschirmrand und der zweiten Farbe auf dem gesamten verbleibenden Bildschirm und nicht die Möglichkeit, mit diesem Bildschirm zwei Farben anzuzeigen! Alle Bildschirme dieses Typs zeigen nur eine Farbe an oder oben einen Streifen einer Farbe unten - eine andere. Wie zum Beispiel die, die ich verwenden werde. Der Balken oben ist gelb, der Rest des Bildschirms ist blau. Sie können eine beliebige Farbe auswählen.
Wir brauchen auch den integrierten Temperatursensor DS18B20. Es wurde nicht zufällig ausgewählt. Zunächst kommuniziert der DS18B20 über eine 1-Draht-Kommunikationsleitung unter Verwendung des 1-Draht-Schnittstellenprotokolls mit dem Mikrocontroller. In unserem Fall ist dies wichtig, da es nur wenige Schlussfolgerungen von Attiny85 ohne Sensor gibt. Zweitens ist dieser Sensor eine Ziffer, dh er nimmt alle Messungen selbst vor und überträgt einfach Temperaturdaten, ohne die Rechenressourcen von Attiny85 zu verbrauchen.
Im Übrigen denke ich, dass es keine Fragen geben wird. Fahren wir also mit der Herstellung des Gehäuses fort.
Schritt 2 Montage des Gehäuses.
Das Uhrengehäuse besteht aus dünnem Kunststoff. Ich hatte ein Plastiktablett mit einer Büroklammer an den Händen. Es ist robust genug, um seine Form zu halten, und gleichzeitig kann es mit einer normalen Schere und einem Büromesser geschnitten werden. Er kam perfekt hoch.Wenn es nicht zur Hand ist, können Sie ein Tablet in einem Bürobedarfsgeschäft kaufen oder den richtigen Kunststoff finden, um das Tablet zu ersetzen. Wir machen Markierungen auf Kunststoff nach dem Schema:
Schneiden Sie alle durchgezogenen Linien aus. Gepunktet - mit einem Schreibmesser leicht geschnitten. Gepunktete Linien sind Faltlinien. Wie Sie bereits verstanden haben, ist dies das übliche Cube-Layout. Als nächstes müssen Sie die Drähte an den Bildschirm anlöten. Nehmen Sie am besten mehrfarbig und notieren Sie, was zu was führt. Kleben Sie den Bildschirm auf den Schmelzkleber in der Mitte, so dass die Vorderseite von hinten austritt. Wie Sie sehen können, haben wir die Bildschirmstiftbezeichnungen geschlossen. Daher war es notwendig, sie aufzuschreiben. Ich übergab es leicht dem Messer und schnitt dabei den unteren Teil des Körpers ab. Daran ist nichts auszusetzen, alles kann geklebt werden. Aber es ist besser, meine Fehler nicht zu wiederholen.
Das Ergebnis sollte folgendermaßen aussehen:
In diesem Fall ist fertig. Sie können die hintere Abdeckung immer noch aus demselben Kunststoff herausschneiden, dies ist jedoch optional.
Schritt 3 Wir löten.
Unser Fall ist klein und wir müssen dort viel stopfen. Daher nehmen wir ein Stück der Leiterplatte, das nicht größer als 2,8 x 2,8 mm ist, und löten zwei Tasten, einen ds18b20-Sensor, einen Widerstand und mehrere Kontakte. Nach folgendem Schema:
Es ist nicht erforderlich, Drähte direkt an Attiny anzulöten, da für die Firmware alles getrennt werden muss. Das Ergebnis sollte ungefähr so aussehen:
Zum Einstellen der Uhrzeit werden Schaltflächen benötigt. Der USB-Anschluss des Computers kann mit Strom versorgt werden. Plus und Minus kombinieren:
Wenn Sie auf Kabel verzichten möchten, müssen Sie einen kleinen Lithium-Ionen-Akku finden. Hier ist zum Beispiel eines:
Diese Batterie passt in das Gehäuse. Es müssen nur Rückschlüsse auf die Batterieladung gezogen werden.
Schritt 4 Vorbereiten des Programmiergeräts.
Digispark Attiny85 kann über den Micro-USB-Anschluss auf der Karte programmiert werden, wobei die Arduino IDE als Programmierumgebung verwendet wird. Gleichzeitig müssen Sie jedoch 2 KB Speicher für den Bootloader opfern. Attiny 85 hat insgesamt 8 KB Flash. Meine Skizze passt nicht zum Bootloader, daher muss ich über den ISP-Programmierer programmieren. Ich habe keinen solchen Programmierer, aber es gibt ein Arduino Uno-Board, das ich als Programmierer verwenden werde. Wenn Sie einen ISB-Programmierer haben, können Sie diesen Punkt überspringen. Öffnen Sie die Arduino IDE und füllen Sie unsere Skizze mit dem Namen ArduinoISP in unser Arduino Uno aus. Sie finden es wie folgt: Datei - Beispiele - Arduino ISP. Die Skizze beginnt mit einem Hinweis, wie der Arduino an die programmierbare Steuerung angeschlossen werden kann. Anstelle von Arduino Uno kann es auch jedes andere Arduino-Board geben.
// 10: Slave zurückgesetzt
// 11: MOSI
// 12: MISO
// 13: SCK
Verbindungsschema zum Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Schritt 5 Vorbereiten der Programmierumgebung.
Um die Firmware zu bearbeiten und die Skizze in Attiny 85 zu füllen, müssen Sie nicht nur den Programmierer, sondern auch die Programmierumgebung selbst vorbereiten. Installieren Sie dazu die Arduino IDE von der offiziellen Website von Arduino.cc und installieren Sie das Add-On für Attiny-Mikrocontroller über den Boards Manager.
Starten Sie die Arduino IDE und fügen Sie dann im Feld Additional Boards Manager URLs den folgenden Link ein: Datei - Einstellungen.
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Klicken Sie auf OK (in dieses Feld können Sie mehrere durch Komma getrennte Links eingeben). Geben Sie unter Tools - Board - Boards Manager im Filterfeld Attiny ein und klicken Sie auf "attiny by David A. Mellis". Klicken Sie auf Installieren und warten Sie, bis der Download abgeschlossen ist. Wählen Sie nun im Menü Extras:
Vorstand - Attiny 25/45/85
Prozessor - Attiny 85
Uhr - intern 16
und wählen Sie die serielle Schnittstelle aus, an die der ISP-Programmierer oder Arduino als Programmierer angeschlossen ist.
Ich habe viele verschiedene Bibliotheken für die Arbeit mit dem Bildschirm ausprobiert. Meiner Meinung nach das bequemste und am meisten an Attiny85 arbeitende: TinyOzOLED.
Ein Temperatursensor benötigt die OneWire-Bibliothek.
Installieren Sie diese beiden Bibliotheken. Sie können Bibliotheken von Drittanbietern direkt in der Programmierumgebung installieren. Wählen Sie in der Arduino IDE das Menü Sketch - Connect Library aus, ohne die heruntergeladenen Archive zu entpacken. Wählen Sie ganz oben in der Dropdown-Liste das Element .Zip-Bibliothek hinzufügen aus. Wählen Sie im angezeigten Dialogfeld die Bibliothek aus, die Sie hinzufügen möchten. Öffnen Sie das Menü Sketch - Connect Library erneut. Ganz unten in der Dropdown-Liste sollte eine neue Bibliothek angezeigt werden. Jetzt kann die Bibliothek in Programmen verwendet werden. Vergessen Sie nicht, die Arduino IDE nach all dem neu zu starten.Wenn dies nicht hilft, entpacken Sie die Archive einfach in den Ordner "Bibliotheken", der sich in dem Ordner befindet, in dem die Arduino IDE installiert ist.
Schritt 6 Bearbeiten und füllen Sie die Skizze.
Der Temperatursensor arbeitet nach dem One Wire-Protokoll und hat für jedes Gerät eine eindeutige Adresse - einen 64-Bit-Code. Attiny-Ressourcen reichen nicht aus, um jedes Mal nach diesem Code zu suchen. Daher müssen Sie zuerst den Sensor an eine Arduino-Karte anschließen und die Skizze im Menü Datei - Beispiele - Dallas-Temperatur - OneWireSearch ausfüllen. Führen Sie als Nächstes Tools - Port Monitor aus. Arduino sollte unseren Sensor finden, seine Adresse und die aktuellen Temperaturwerte schreiben. Wir kopieren oder notieren einfach die Adresse unseres Sensors. Öffnen Sie die Skizze Attiny85_Oled_SPI_Term_2 und suchen Sie nach der Zeile:
Byte-Adresse [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Wir notieren die Adresse Ihres Sensors zwischen geschweiften Klammern und ersetzen die Adresse meines Sensors. Verbinden Sie danach Attiny mit dem Programmierer oder Arduino als Programmierer (dies wird in Schritt 4 beschrieben) und füllen Sie die Skizze aus. Es bleibt, den Programmierer zu trennen und alles gemäß dem Schema in 3 Schritten anzuschließen. Die Montage sieht ungefähr so aus:
Der Bildschirm ist klein, es ist unmöglich, Zeit und Temperatur so einzustellen, dass er sichtbar ist. Daher ändert die Uhr die Zeit mit einer Temperaturanzeige alle 10 Sekunden.