Zoznam, čo potrebujeme:
- Digispark Attiny85
- Olejový displej 128 x 64 I2C
- snímač teploty ds18b20
- rezistor 4,7 Kom 0,25 W
- programátor ISP alebo Arduino Doska firmvéru Digispark Attiny85
- Plastová tableta s kancelárskou sponou alebo listom tenkého plastu
- drôty
- Dupont 2,54 mm „zásuvka“
- Gombíky 2 ks.
- Malá doska plošných spojov alebo malé čalúnenie
- spájkovačka
- Spájka, kolofónia
- nožnice
- kancelársky nôž
- Horúca lepiaca pištoľ
- Horúce lepidlo
Krok 1 Výber komponentov.
Ako hlavný ovládač použijeme program Digispark Attiny85. Existuje ich niekoľko druhov. Potrebujeme dosku s konektorom micro USB. Zvyšok sa nehodí do puzdra na hodinky.
Na zobrazenie potrebujeme displej Oled 128x64 I2C. Prichádzajú v rôznych farbách: biela, modrá, modrá so žltou. Upozorňujem vás! Pojem „dvojfarebný“ v popise alebo názve tejto obrazovky znamená pás jednej farby v hornej časti obrazovky a druhej farby celú zostávajúcu obrazovku, a nie schopnosť zobraziť dve farby s touto obrazovkou! Všetky obrazovky tohto typu zobrazujú iba jednu farbu alebo v hornej časti pruh jednej farby v spodnej časti - druhú. Ako napríklad ten, ktorý použijem. Lišta hore je žltá, zvyšok obrazovky je modrý. Môžete si vybrať ľubovoľnú farbu.
Potrebujeme tiež integrovaný snímač teploty DS18B20. Nebolo vybrané náhodou. Po prvé, DS18B20 komunikuje s mikrokontrolérom prostredníctvom jednodrátovej komunikačnej linky pomocou protokolu 1-Wire interface. V našom prípade je to dôležité, pretože závery Attiny85 bez senzora sú málo. Po druhé, tento senzor je číslica, to znamená, že vykonáva všetky merania sám a jednoducho vysiela údaje o teplote bez vynaloženia výpočtových zdrojov Attiny85.
Pokiaľ ide o zvyšok, myslím si, že nebudú žiadne otázky, takže poďme na výrobu prípadu.
Krok 2 Montáž krytu.
Puzdro na hodinky bude vyrobené z tenkého plastu. Mal som plastovú tabletu s sponkou na ruky. Je dosť odolný na to, aby si udržal svoj tvar, a súčasne ho možno rezať pomocou bežných nožníc a kancelárskeho noža. Prišiel dokonale.Ak nie je po ruke, môžete si kúpiť tablet v obchode s kancelárskymi potrebami alebo nájsť ten správny plast, ktorý tabletu nahradí. Na plasty vyrábame značenie podľa schémy:
Vystrihnite všetky plné čiary. Bodkovaný - mierne rezaný kancelárskym nožom. Bodkované čiary sú línie skladania. Ako ste už pochopili, toto je obvyklé rozloženie kocky. Ďalej je potrebné spájkovať vodiče na obrazovku, najlepšie je vziať si viacfarebné a zapísať, čo vedie k čomu. Sieť nalepte na tavné lepidlo v strede tak, aby predná strana vychádzala zozadu. Ako vidíte, zatvorili sme označenia špendlíkov obrazovky. Preto bolo potrebné ich zapísať. Mierne som podal nôž, a tým som odrezal spodnú časť tela. S tým nie je nič zlé, všetko je možné zlepiť. Ale je lepšie neopakovať moje chyby.
Výsledok by mal byť takýto:
Na tento prípad je pripravený. Zadný kryt môžete stále vystrihnúť z rovnakého plastu, je to však voliteľné.
Krok 3 Spájkujeme.
Náš prípad je malý a musíme sa tam veľa napchať. Preto berieme kus dosky plošných spojov nie väčší ako 2,8 x 2,8 mm a spájkujeme ju pomocou dvoch tlačidiel, senzora ds18b20, rezistora a niekoľkých kontaktov. Podľa nasledujúcej schémy:
Nie je potrebné spájkovať vodiče priamo s Attiny, pretože pre firmvér je potrebné všetko odpojiť. Výsledkom by malo byť niečo také:
Na nastavenie času sú potrebné tlačidlá. Napájanie je možné vykonať z USB portu počítača. Kombinácia kladného a záporného čísla:
Ak chcete robiť bez káblov, musíte nájsť malú lítium-iónovú batériu. Tu je napríklad:
Táto batéria sa vojde do puzdra. Je potrebné uviesť len závery týkajúce sa nabitia batérie.
Krok 4 Príprava programátora.
Program Digispark Attiny85 sa dá programovať prostredníctvom konektora micro USB na doske, pričom sa ako programovacie prostredie používa Arduino IDE. Ale zároveň musíte obetovať 2 KB pamäte pre bootloader. Attiny 85 má celkom 8 KB Flash. Moja skica sa nezmestí na zavádzač, takže musím naprogramovať programátora ISP. Nemám taký programátor, ale existuje tabuľa Arduino Uno, ktorú budem používať ako programátor. Ak máte programátora ISB, môžete túto položku preskočiť. Otvorte Arduino IDE a vyplňte náš náčrt s názvom ArduinoISP do nášho Arduino Uno. Nájdete ho ako tento súbor - príklady - Arduino ISP. Náčrt začína tipom, ako pripojiť Arduino k programovateľnému radiču. Namiesto Arduino Uno môže existovať akákoľvek iná doska Arduino.
// 10: reset slave
// 11: MOSI
// 12: MISO
// 13: SCK
Schéma pripojenia k Digispark Attiny85:
Arduino UNO - Digispark Attiny85
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Krok 5 Príprava programovacieho prostredia.
Na úpravu firmvéru a vyplnenie náčrtu v aplikácii Attiny 85 je potrebné pripraviť nielen programátora, ale aj samotné programovacie prostredie. Na tento účel nainštalujte Arduino IDE z oficiálnej webovej stránky Arduino.cc a tiež nainštalujte doplnok Attiny pre mikrokontroléry prostredníctvom Boards Manager.
Spustite Arduino IDE, potom do poľa File - Settings - File - Settings - vložte URL:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
kliknite na tlačidlo OK (do tohto poľa môžete zadať niekoľko odkazov oddelených čiarkou). Ďalšie nástroje - Board - Boards Manager v poli filtra, zadajte Attiny a kliknite na „attiny by David A. Mellis“. Kliknite na Inštalovať a počkajte na dokončenie sťahovania. Teraz v ponuke Nástroje vyberte:
Stravovanie - Attiny 25/45/85
Procesor - Attiny 85
Hodiny - vnútorné 16
a vyberte sériový port, ku ktorému je programátor ISP alebo Arduino pripojený ako programátor.
Pre prácu s obrazovkou som vyskúšal mnoho rôznych knižníc. Podľa môjho názoru najvýhodnejšie a pracuje na Attiny85: TinyOzOLED.
Snímač teploty potrebuje knižnicu OneWire.
Nainštalujte tieto dve knižnice. Knižnice tretích strán môžete nainštalovať priamo do programovacieho prostredia. Bez rozbalenia stiahnutých archívov vyberte v Arduino IDE ponuku Sketch - Connect Library. Na samom vrchu rozbaľovacieho zoznamu vyberte položku Pridať knižnicu ZIP. V zobrazenom dialógovom okne vyberte knižnicu, ktorú chcete pridať. Znovu otvorte ponuku Sketch - Connect Library. Úplne na konci rozbaľovacieho zoznamu by ste mali vidieť novú knižnicu. Knižnicu je teraz možné používať v programoch. Po tom všetkom nezabudnite reštartovať počítač Arduino IDE.Ak to nepomôže, stačí rozbaliť archívy do priečinka „knižnice“, ktorý sa nachádza v priečinku s nainštalovaným Arduino IDE.
Krok 6 Upravte a vyplňte náčrt.
Snímač teploty pracuje podľa protokolu One Wire a má pre každé zariadenie jedinečnú adresu - 64-bitový kód. Zdroje Attiny nestačia na hľadanie tohto kódu vždy. Preto musíte najprv pripojiť snímač k akejkoľvek doske Arduino a vyplniť náčrt umiestnený v ponuke Súbor - Príklady - Dallas Teplota - OneWireSearch. Ďalej spustite Tools - Port Monitor. Arduino by malo nájsť náš senzor, napísať jeho adresu a aktuálne hodnoty teploty. Skopírujeme alebo jednoducho zapíšeme adresu nášho senzora. Otvorte náčrt Attiny85_Oled_SPI_Term_2, vyhľadajte riadok:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Medzi zátvorky zapíšeme adresu vášho senzora a nahradíme adresu môjho senzora. Potom pripojte Attiny k programátorovi alebo Arduino ako programátor (je to popísané v kroku 4) a vyplňte náčrt. Zostáva odpojiť programátor a pripojiť všetko podľa schémy v 3 krokoch. Zhromaždenie ukazuje niečo také:
Obrazovka je malá, je nemožné nastaviť čas aj teplotu tak, aby bola viditeľná. Hodiny preto menia čas s odčítaním teploty každých 10 sekúnd.