Zdravím všechny a přeji hezký den nebo večer. Tentokrát se podělím o pokyny pro výrobu pokojových hodin s teploměrem. Počítačovým centrem hodinek bude Attiny85, sestavený na desce od společnosti Digispark. Zobrazení hodin - Oled displej. Teploměr - známý ds18b20. Pro napájení vezmeme li-ion 18650 (lze je získat ze staré baterie z notebooku). A přidejte zobrazení stavu baterie. Stejně jako u všech mých předchozích hodinek se obejdeme bez modulu RTC (hodiny reálného času).
Shromažďujeme vše potřebné:
- Digispark Attiny85 (verze micro USB)
- ds18b20 (v plastovém pouzdře)
- Oledová obrazovka s rozlišením 128x64, I2C
- 2ks 18650 baterií nebo stará Li-ion baterie pro notebook
- rezistory (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Tenký plast (pro bydlení)
- Spojovací dráty různých barev
- ISP programátor (nebo jakýkoli jiný) Arduino poplatek)
- Tlačítko
- Dupontové konektory 2,54 mm „matka“, „otec“
- Kancelářský nůž, oboustranná páska, elektrická páska, tavná lepenka
- Vše pro pájení (páječka, kalafuna, pájka)
Krok 1 Případ.
Budoucí pouzdro na hodinky bude vyrobeno z tenkého plastu. List takového plastu si můžete koupit ve specializovaném obchodě nebo objednat na aliexpress. Nebo můžete (nečekat a nehledat se) chodit do kancelářské kanceláře a koupit si plastovou papírovou složku své oblíbené barvy. Rozměry budoucích hodinek: šířka - 40 mm, tloušťka - 30 mm, výška - 70 mm. Podle následujícího diagramu jsme vyřízli sken z plastu:
Řezáme podél tlustých linií, jemně se ohýbáme podél tenkých linií. Vystřihli jsme obdélník ve středu pomocí úředního nože, toto je okno pro zobrazení. Výsledkem je sken plastu:
Předáváme Attiny.
Krok 2 Attiny + Oled.
Jak jsem řekl, v našem srdci domácí bude Attiny 85. Nejlepší je koupit tento čip, okamžitě připájený k desce spolu s regulátorem napětí a postrojem. Digispark Attiny85 se dobře hodí. Vyberte si verzi s micro-USB na desce. Další modifikace desky nebudou odpovídat velikosti. Stává se, že se tato deska prodává s pájenými konektory Dupon „male“. Pokud ano, připájejte všechny konektory. Sbíráme barevné dráty. Potřebujeme 10 centimetrů v různých barvách. Pájeli jsme je v Attiny a zapište si, který drát, kterému závěru odpovídá. Vodiče P0 a P2 musí být pájeny ve dvou vodičích. Druhý pár je potřebný pro připojení obrazovky Oled. Dostáváme následující:
Na drát jsem napsal následující diagram:
Obrazovka je malá (aby odpovídala ovladači), ale vypadá to krásně. OLED (organická světelná dioda) je grafické zobrazení. Není podsvícení a místo toho je každý pixel samostatnou LED. Velikost obrazovky - 0,96 palce.Rozlišení 128x64. Připojeno přes sběrnici I2C. Pro spojení s Attiny používá pouze dva dráty. Přicházejí v různých barvách, vyberte podle svého vkusu. Mně se líbil modrý se žlutým pruhem nahoře. Chováme se podobně jako Digispark. Pokud existují pájené konektory - pájejte je. Pájejte prozatím pouze napájecí dráty:
Při pájení buďte opatrní, nepoškozujte kabel páječkou na displeji:
Desky spojujeme pomocí oboustranné pásky:
Pájíme displeje Digispark Attiny a Oled společně podle schématu (barvy drátů se mohou lišit, hlavní věcí je, že si nepochopí závěry):
Pro větší pohodlí a pořádek shromažďujeme všechny dráty dohromady. Můžete je otáčet elektrickou páskou, abyste se nezměnili:
Na konci všech vodičů připojíme „matečný“ konektor Dupont, vložíme jej do izolátorů a navineme je společně s elektrickou páskou, aby se konektor vytvořil. Zaznamenáváme také pinout konektoru:
Pinout by měl být takový, protože v budoucnu připojíme drát pro firmware nebo jiné prvky hodinek ke konektoru.
Výslednou strukturu lepíme do pouzdra a nezapomeňte lepit pouzdro samo, nechat jeden sténání nelepený, pro další manipulace:
Při lepení dbejte na to, aby obrazovka byla dokonce:
Krok 3 Napájení.
Pro napájení použijeme dva Li-ionové prvky. Typ 18650. Můžete si je zakoupit samostatně. V tomto případě je pájejte paralelně, izolujte a vydejte konektor pro připojení a následné nabíjení:
Mnoho z nich má starší notebooky. Zda už nepracují nebo nepracují časem. I když je baterie notebooku již špatná a není vhodná pro zamýšlené použití, lze ji použít pro všechny druhy domácích produktů. V našem případě na hodinky. Bereme baterii z notebooku:
Hlavní věc je, že je Li-ion. Pečlivě ji rozebírejte, musíte otevřít plastové pouzdro, abyste nepoškodili prvek uvnitř. Baterie je nejčastěji rozdělena na dva prvky zapojené paralelně. Vyjmeme je a oddělíme jeden pár od ostatních:
Nejlepší je pájet na kontaktní podložky:
Přilepte tento pár na zadní stranu hodinek:
Krok 4 Určení nabití baterie.
Pohodlnou funkcí hodinek je indikovat nabití baterie. Určíme stupeň nabití podle napětí. Minimální napětí těchto baterií je 2,4 V. Nelze jej dále vybíjet. Maximální napětí je 4,2 V.
Měření napětí na analogovém portu je vždy relativní k jinému napětí. Nemůžeme použít AREF pin mikrokontroléru, který slouží k nastavení referenčního napětí. Je také nemožné měřit napětí s ohledem na napájecí napětí (poměr bude vždy stejný). Proto určíme napětí ve vztahu k internímu referenčnímu napětí nebo Vbg (referenční napětí Bandgap). Je to 1,1 V. Nyní musíme vypočítat dělič napětí pro naši baterii, takže při maximálním nabití (4,2 V) měl dělič (1,1 V). Můžete vypočítat podle vzorce:
Nebo použít
R1 má nominální hodnotu 10 kOhm. Pak R2 dostaneme 3,55 KOhm, nejbližší vhodnější ze standardních hodnot 3,3 KOhm a vezmeme to. Měření se provádí mezi vnitřním napětím a GND, takže rezistor 3,3 KΩ je připájen k zápornému a 10 KΩ k plusu. Umístíme rezistory na baterii, stáhneme vodič z děliče.
Izolujeme všechny kontakty, abychom se vyhnuli zkratu:
Drát z děliče bude připojen k PB4.
Krok 5 Změřte teplotu.
Vynikajícím doplňkem hodinek je měření teploty místnosti. Použijeme integrovaný teplotní senzor DS18B20. Pro práci s ním je nutný pouze jeden vodič (velmi užitečné při používání Attiny 85). Všechna měření jsou prováděna sám, centrální ovladač se neobtěžuje (Attiny 85 má také vynikající paměť a tak málo), musíme pouze dávat příkazy a získat výsledky. Existuje několik různých schémat pro připojení tohoto senzoru, použijeme možnost, která je pro tento případ optimální, podle mého názoru.Použití externího napájení a rezistoru 4,7 kΩ:
Pájejte malé dráty a upevněte konektory
Drát ze senzoru DQ je připojen k PB 3.
Krok 6 Tlačítko.
Máme několik závěrů, ale existuje mnoho požadavků na hodinky. Použijeme jedno tlačítko pro nastavení času. Nemůžeme se spolehnout na více. Připájejte dráty k tlačítku, jeden kontakt od GND. Kombinujte s naším teplotním senzorem:
Druhý kontakt z tlačítka je připojen k PB 1.
Krok 7 Příprava vývojového prostředí
Pro další práci s náčrtem, stejně jako pro jeho úpravy a vyplnění, potřebujeme Arduino IDE. Stáhněte si tento program z:
Nyní přidejte podporu pro Attiny 85 ve středu. Otevřete Arduion IDE a jděte po cestě:
Soubor - Nastavení - „Další adresy URL Správce desek“ vložte odkaz:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Klikněte na OK.
Přejít na:
Tools - Board - Boards Manager zadejte Attiny a klikněte na "attiny by David A. Mellis". Klikněte na "Instalovat" a nechte dát kávu.
A teď o knihovnách. Potřebují dva:
Práce s displejem Oled
Ovládání teplotního senzoru
Po stažení těchto archivů je rozbalte do složky „knihovny“, které lze snadno najít po instalační cestě Arduino IDE.
Krok 8 Programátor.
Digispark Attiny 85 je skvělá deska. Navrženo pro připojení k počítači USB. A to lze naprogramovat. Attiny však používá softwarové USB, které zase zabírá 2 KB z 8 KB paměti. To nám nevyhovuje, a proto budeme blikat Attiny 85 prostřednictvím rozhraní ISP. A tady potřebujeme programátora ISP. Pokud tam není - na tom nezáleží. Vezměte Arduino. V mém případě Arduino UNO:
Můžete si vzít jakoukoli jinou kompatibilní desku z řady Arduino. Připojíme se k počítači, otevřete Arduino IDE, vybereme komunikační port, ke kterému je připojena Arduino deska, v příkladech otevřete náčrtek, Arduino ISP a vyplníme jej do desky. Potřebujeme také drát pro rychlé připojení k Attiny.
Spojení je následující:
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Nezapomeňte na výživu Attiny.
Krok 9 Upravte a vyplňte náčrt.
Stáhněte si skicu
Před vyplněním je třeba upravit náčrt.
Integrovaný senzor ds18b20, jak bylo uvedeno výše, pracuje s použitím protokolu One Wire. Každý senzor má svou jedinečnou 64bitovou adresu. Musíte najít adresu senzoru a napsat ji do náčrtu. Otevřete Arduino IDE, sledujte cestu:
Soubor - Příklady - Dallas Temperature - OneWireSearch.
Vyplňte náčrt do Arduina. Otevřete monitor portu. Měli byste vidět adresy všech připojených senzorů a jejich teplotu. Zapíšeme vaši adresu. Otevřete moji skicu a změňte adresu na svou vlastní v řádku:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Chcete-li upravit průběh hodin, použijte následující konstantu:
if (micros () - prevmicros> [b] 497000 [/ b])
Čím větší je tato hodnota, tím pomaleji jsou hodiny.
Pro ovládání jsou na obrazovce zobrazeny sekundy:
OzOled.printNumber ((long) sek, 0, 7); // výstupní sekundy pro přesné ladění
Chcete-li odebrat sekundy, okomentujte tento řádek.
Nyní připojíme programátor nebo Arduino jako programátor, vybereme com-port, vybereme naši desku v nabídce Nástroje a nastavíme následující parametry:
Strava: Attiny 25/45/85
Procesor: Attiny 85
Hodiny: vnitřní 16
Poté vyberte ve stejné nabídce:
Nástroje - Programátor - "Arduino jako ISP".
A konečně:
Skica - Stahování prostřednictvím programátoru
Krok 10 Konečná montáž a spuštění.
Vypněte programátor a připojte senzor, napájení a tlačítko:
Dokud nebude nakonfigurován přesný průběh hodin, můžete případ uzavřít pomocí bankovní gumy. Až budete hotovi, můžete ji přilepit.