Liste over hvad vi har brug for:
- Digispark Attiny85
- Oled skærm 128x64 I2C
- ds18b20 temperatursensor
- Modstand 4.7 Kom 0,25 W
- ISP-programmør eller Arduino Digispark Attiny85 firmware board
- Plasttablet med papirclips eller ark tynd plast
- ledninger
- Dupont 2,54 mm “kvindelige” stik
- Knapper 2 stk.
- Lille kredsløbskort eller lille trim
- loddejern
- Lodde, kolofonium
- saks
- præsterisk kniv
- Varm limpistol
- Varm lim
Trin 1 Valg af komponenter.
Som hovedkontroller vil vi bruge Digispark Attiny85. Der er flere typer af dem. Vi har brug for et kort med et micro USB-stik. Resten passer ikke i uret.
For at få vist, har vi brug for en Oled 128x64 I2C-skærm. De kommer i forskellige farver: hvid, blå, blå med gul. Jeg henleder din opmærksomhed! Udtrykket "tofarve" i beskrivelsen eller titlen på dette skærmbillede betyder en strimmel med en farve øverst på skærmen og den anden farve hele den resterende skærm, og ikke muligheden for at vise to farver med denne skærm! Alle skærme af denne type viser kun en farve eller øverst en strimmel med en farve i bunden - en anden. Som for eksempel den, som jeg vil bruge. Linjen ovenfor er gul; resten af skærmen er blå. Du kan vælge en hvilken som helst farve, du kan lide.
Vi har også brug for den integrerede temperatursensor DS18B20. Det blev ikke valgt ved en tilfældighed. Først kommunikerer DS18B20 med mikrokontrolleren via en enkelt-tråd kommunikationslinje ved hjælp af 1-Wire-interfaceprotokollen. I vores tilfælde er dette vigtigt, da konklusionerne fra Attiny85 uden en sensor er få. For det andet er denne sensor et ciffer, det vil sige den tager alle målingerne i sig selv og overfører simpeltemperaturdata uden at bruge computerens ressourcer til Attiny85.
Hvad angår resten, tror jeg, der ikke vil være spørgsmål, så lad os gå videre til at fremstille sagen.
Trin 2 Montering af huset.
Urtasken er lavet af tynd plast. Jeg havde en plast-tablet med en papirclips på mine hænder. Det er hårdt nok til at holde sin form, og på samme tid kan det klippes med almindelig saks og en kontorkniv. Han kom perfekt op.Hvis det ikke er ved hånden, kan du købe en tablet i en kontorartikelforretning eller finde den rigtige plast til udskiftning af tabletten. Vi laver markeringer på plastik i henhold til ordningen:
Skær alle de solide linier ud. Prikede - let skåret med en klerisk kniv. Stiplede linjer er foldelinjer. Som du allerede har forstået, er dette det sædvanlige terninglayout. Dernæst skal du lodde ledningerne til skærmen, det er bedst at tage flerfarvet og skrive ned, hvilket fører til hvad. Lim skærmen på det smeltede klæbemiddel i midten, så forsiden, det kommer ud fra bagsiden. Som du kan se, har vi lukket skærmbensbetegnelserne. Derfor var det nødvendigt at nedskrive dem. Jeg overleverede let til kniven og skar derved den nederste del af kroppen af. Der er ikke noget galt med det, alt kan limes. Men det er bedre ikke at gentage mine fejl.
Resultatet skal være sådan:
I denne sag er klar. Du kan stadig skære bagcoveret ud af den samme plastik, men dette er valgfrit.
Trin 3 Vi lodder.
Vores sag er lille, og vi er nødt til at proppe meget der. Derfor tager vi et stykke af kredsløbskortet, der ikke er større end 2,8 x 2,8 mm, og lodder i to knapper, en ds18b20-sensor, en modstand og flere kontakter. I henhold til følgende ordning:
Det er ikke nødvendigt at lodde ledninger direkte til Attiny, da det er nødvendigt at afbryde alt til firmware. Resultatet skal være noget som dette:
Knapper er nødvendige for at indstille tiden. Der kan tages strøm fra computerens USB-port. Kombination af henholdsvis plus og minus:
Hvis du vil undvære ledninger, skal du finde et lille lithium-ion-batteri. Her er en, for eksempel:
Dette batteri passer ind i kabinettet. Det er kun nødvendigt at give konklusioner for batteriopladningen.
Trin 4 Forberedelse af programmereren.
Digispark Attiny85 kan programmeres via micro USB-stikket på tavlen ved hjælp af Arduino IDE som programmeringsmiljø. Men på samme tid skal du ofre 2 KB hukommelse til bootloader. Attiny 85 har i alt 8 KB Flash. Min skitse passer ikke med bootloader, så jeg er nødt til at programmere gennem ISP-programmereren. Jeg har ikke en sådan programmør, men der er et Arduino Uno-bord, som jeg vil bruge som programmerer. Hvis du har en ISB-programmør, kan du springe dette element over. Åbn Arduino IDE og udfyld vores skit kaldet ArduinoISP i vores Arduino Uno. Du kan finde det som denne fil - Eksempler - Arduino ISP. Skitsen starter med et tip om, hvordan man slutter Arduino til den programmerbare controller. I stedet for Arduino Uno kan der være et andet Arduino-bord.
// 10: nulstilling af slave
// 11: MOSI
// 12: MISO
// 13: SCK
Forbindelsesplan til Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Trin 5 Forberedelse af programmeringsmiljøet.
For at redigere firmwaren og udfylde skitsen i Attiny 85 skal du forberede ikke kun programmereren, men også selve programmeringsmiljøet. For at gøre dette skal du installere Arduino IDE fra det officielle Arduino.cc-websted og installere også Attiny-tilføjelsen til mikrokontrollere gennem Boards Manager.
Start Arduino IDE, derefter Fil - Indstillinger - i feltet Yderligere Boards Manager-webadresser, indsæt linket:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Klik på OK (du kan indtaste flere links adskilt af et komma i dette felt). Næste værktøjer - Board - Boards Manager i filterfeltet, indtast Attiny og klik på "attiny by David A. Mellis". Klik på Installer, og vent på, at downloadet er afsluttet. I menuen Funktioner skal du vælge:
Bestyrelse - Attiny 25/45/85
Processor - Attiny 85
Ur - intern 16
og vælg den serielle port, som ISP-programmereren eller Arduino er forbundet til som programmereren.
Jeg prøvede mange forskellige biblioteker til at arbejde med skærmen. Efter min mening den mest bekvemme og arbejder på Attiny85: TinyOzOLED.
En temperatursensor har brug for OneWire-biblioteket.
Installer disse to biblioteker. Du kan installere tredjepartsbiblioteker direkte i programmeringsmiljøet. Uden at pakke de downloadede arkiver ud, vælg menuen Sketch - Connect Library i Arduino IDE. Øverst på rullelisten skal du vælge elementet Tilføj .Zip-bibliotek. I det dialogboks, der vises, skal du vælge det bibliotek, du vil tilføje. Åbn menuen Sketch - Connect Library igen. Helt nederst på rullelisten skal du se et nyt bibliotek. Nu kan biblioteket bruges i programmer. Glem ikke at genstarte Arduino IDE efter alt dette.Hvis det ikke hjælper, skal du blot pakke arkiverne ud i mappen "biblioteker", der findes i mappen med Arduino IDE installeret.
Trin 6 Rediger og udfyld skitsen.
Temperatursensoren fungerer i henhold til One Wire-protokollen og har en unik adresse til hver enhed - en 64-bit-kode. Små ressourcer er ikke nok til at kigge efter denne kode hver gang. Derfor skal du først tilslutte sensoren til ethvert Arduino-kort, udfyld skitsen i filen - Eksempler - Dallas-temperatur - OneWireSearch-menuen. Kør derefter Værktøjer - Portmonitor. Arduino skal finde vores sensor, skrive sin adresse og aktuelle temperaturmålinger. Vi kopierer eller blot nedskriver adressen på vores sensor. Åbn skitsen Attiny85_Oled_SPI_Term_2, kig efter linjen:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Vi skriver adressen på din sensor mellem seler og erstatter adressen på min sensor. Tilslut derefter Attiny til programmereren eller Arduino som en programmerer (dette er beskrevet i trin 4) og udfyld skitsen. Det gjenstår at frakoble programmereren og tilslutte alt efter skemaet i 3 trin. Samlingen viser sig sådan:
Skærmen er lille, det er umuligt at placere både tid og temperatur, så den er synlig. Derfor ændrer uret tiden med en temperaturlæsning hvert 10. sekund.