Salut tuturor și să aveți o zi sau o seară frumoasă. De această dată voi împărtăși instrucțiunile pentru realizarea unui ceas de cameră cu un termometru. Centrul de calcul al ceasului va fi Attiny85, asamblat pe o placă de la Digispark. Pentru afișarea ceasului - Afișaj Oled. Termometru - binecunoscutul ds18b20. Pentru energie, luăm li-ion 18650 (pot fi obținute de la o baterie veche de la un laptop). Și adăugați un afișaj al nivelului bateriei. La fel ca în toate ceasurile mele anterioare, vom face fără modulul RTC (ceas în timp real).
Colectăm tot ce este necesar:
- Digispark Attiny85 (versiune micro USB)
- ds18b20 (într-o carcasă din plastic)
- Ecran Oled cu o rezoluție de 128x64, I2C
- 2 buc 18650 baterii sau o baterie veche pentru laptop Li-ion
- Rezistoare (3,3 kΩ, 4,7 kΩ, 10 kΩ)
- Plastic subțire (pentru carcasă)
- conectarea firelor de diferite culori
- Programator ISP (sau altul Arduino contra cost)
- Buton
- Conectori Dupont 2,54 mm "mamă", "tată"
- Cuțit de papetărie, bandă dublă față, bandă electrică, hotmelt
- Totul pentru lipit (fier de lipit, colofon, lipit)
Etapa 1 Caz.
Viitorul ceas de ceas va fi din plastic subțire. Puteți cumpăra o foaie de astfel de plastic într-un magazin specializat sau să comandați pe aliexpress. Sau puteți (să nu așteptați și să nu vă uitați) să mergeți la biroul clerical și să cumpărați un folder de hârtie din plastic de culoarea preferată. Dimensiunile viitorului ceas: lățime - 40 mm, grosime - 30 mm, înălțime - 70 mm. În conformitate cu diagrama de mai jos, am decupat o scanare din plastic:
Taiem linii groase, indoim usor de-a lungul liniilor subtiri. Decupăm dreptunghiul din mijloc folosind un cuțit clerical, aceasta este o fereastră pentru afișare. Drept urmare, obținem o scanare de plastic:
Trecem la Attiny.
Pasul 2 Attiny + Oled.
După cum am spus, în inima noastră de casă va fi Attiny 85. Cel mai bine este să cumpărați acest cip, imediat lipit pe placă împreună cu un regulator de tensiune și ham. Digispark Attiny85 este foarte potrivit. Alegeți versiunea cu micro-USB pe placă. Alte modificări ale plăcii nu se potrivesc ca mărime. Se întâmplă ca această placă să fie vândută cu conectori Dupon „masculi” deja soldați. Dacă da, vindeți toți conectorii. Colectăm fire colorate. Avem nevoie de 10 centimetri în culori diferite. Le-am sudat în Attiny și am notat care sârmă, la care concluzia corespunde. Cablurile P0 și P2 trebuie să fie lipite în două fire. A doua pereche este necesară pentru a conecta ecranul Oled. Obținem următoarele:
Am scris următoarea diagramă pe fir:
Ecranul este mic (pentru a se potrivi cu controlerul), dar arată frumos. OLED (diodă cu emisie de lumină organică) este un afișaj grafic. Nu există iluminare de fundal și, în schimb, fiecare pixel este un LED independent. Dimensiuni ecran - 0,96 inci.Rezolutie 128x64. Conectat prin magistrala I2C. Utilizează doar două fire pentru conectarea cu Attiny. Acestea vin în diferite culori, alege după gustul tău. Mi-a plăcut albastrul cu o dungă galbenă în vârf. Acționăm similar cu Digispark. Dacă există conectori lipiți - lipiți-i. Deocamdată, lipit doar cablurile de alimentare:
Aveți grijă la lipire, nu deteriorați cablul cu un fier de lipit pe afișaj:
Conectăm plăcile folosind banda dublu față:
Am sudat afișajul Digispark Attiny și Oled în conformitate cu schema (culorile firelor pot varia, principalul lucru este să nu încurcați concluziile):
Pentru comoditate și comandă, colectăm toate firele la un loc. Le puteți răsuci cu bandă electrică pentru a nu vă confunda:
La sfârșitul tuturor firelor, atașăm conectorul „mamă” Dupont, îl introducem în izolatoare și îl înfășurăm împreună cu banda electrică pentru a realiza conectorul. Înregistrăm, de asemenea, identificarea conectorului:
Pinout ar trebui să fie astfel, deoarece în viitor vom conecta un fir pentru firmware sau alte elemente de ceas la conector.
Lipim structura rezultată în carcasă și nu uităm să lipim carcasa în sine, lăsând o gemetă să nu fie lipită, pentru alte manipulări:
Când lipiți, acordați atenție faptului că ecranul este egal:
Pasul 3 Putere.
Pentru putere vom folosi două elemente Li-ion. Tip 18650. Le puteți achiziționa separat. În acest caz, lipiți-le în paralel, izolați și ieșiți conectorul pentru conectare și încărcare ulterioară:
Mulți au laptopuri mai vechi. Fie că nu mai lucrează sau nu lucrează în timp. Chiar dacă bateria laptopului este deja defectă și nu este potrivită pentru utilizarea prevăzută, acesta poate fi folosit pentru toate tipurile de produse de casă. În cazul nostru, pentru un ceas. Luăm bateria de la laptop:
Principalul lucru este că el este Li-ion. Îl demontezăm cu atenție, trebuie să deschideți carcasa din plastic, pentru a nu deteriora elementul din interior. Cel mai adesea, bateria este împărțită în două elemente conectate în paralel. Le scoatem și separam o pereche de restul:
Cel mai bine este să lipiți plăcuțele de contact:
Lipiți această pereche pe spatele ceasului:
Pasul 4 Determinarea încărcării bateriei.
O funcție convenabilă a ceasului este de a indica încărcarea bateriei. Vom determina gradul de încărcare prin tensiune. Tensiunea minimă pentru aceste baterii este de 2,4 V. Nu poate fi descărcată în continuare. Tensiunea maximă este de 4,2 V.
Măsurarea tensiunii la portul analog este întotdeauna relativă la o altă tensiune. Nu putem folosi pinul AREF al microcontrolerului, care servește la setarea tensiunii de referință. De asemenea, este imposibil să măsurați tensiunea în raport cu tensiunea de alimentare (raportul va fi întotdeauna același). Prin urmare, vom determina tensiunea în raport cu tensiunea internă de referință sau Vbg (tensiunea de referință Bandgap). Este de 1,1 V. Acum trebuie să calculăm divizorul de tensiune pentru bateria noastră, astfel încât la încărcare maximă (4,2 V) divizorul avea (1,1 V). Puteți calcula după formula:
Sau folosiți
R1 ia o valoare nominală de 10 kOhm. Apoi R2 obținem 3,55 KOhm, cel mai apropiat dintre valorile standard de 3,3 KOhm și îl luăm. Măsurătorile se fac între tensiunea internă și GND, astfel încât rezistența de 3,3 KΩ se lipeste la minus și 10 KΩ la plus. Punem rezistențele pe baterie, retragem sârma din divizor.
Izolăm toate contactele pentru a evita scurtcircuitul:
Firul de la divizor va fi conectat la PB4.
Pasul 5 Măsurați temperatura.
Un complement excelent la ceas este măsurarea temperaturii camerei. Vom folosi senzorul de temperatură integrat DS18B20. Pentru a lucra cu acesta este nevoie de un singur fir (foarte util atunci când utilizați Attiny 85). Toate măsurătorile sunt făcute de el însuși, controlorul central nu deranjează (Attiny 85 are și o memorie excelentă și atât de puțin), trebuie doar să dăm comenzi și să obținem rezultate. Există mai multe scheme diferite pentru conectarea acestui senzor, vom folosi opțiunea care este optimă pentru acest caz, în opinia mea.Folosind putere externă și un rezistor de 4,7 kΩ:
Lipiți fire mici și fixați conectorii
Firul senzorului DQ este conectat la PB 3.
Pasul 6 Buton.
Avem puține concluzii, dar există multe cerințe pentru ceasuri. Vom folosi un buton pentru a seta ora. Nu putem conta pe mai multe. Lipiți firele la buton, un contact de la acesta la GND. Combinați cu senzorul nostru de temperatură:
Al doilea contact de la buton este conectat la PB 1.
Pasul 7 Pregătirea mediului de dezvoltare
Pentru lucrări suplimentare cu schița, precum și pentru editarea și completarea acesteia, avem nevoie de IDE Arduino. Descărcați acest program de la:
Adăugați acum suport pentru Attiny 85 miercuri. Deschideți ID-ul Arduion și parcurgeți calea:
Fișier - Setări - „Adrese adrese URL-urile Managerului” introduceți linkul:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
Faceți clic pe OK.
Accesați:
Instrumente - Board - Boards Manager intră Attiny și faceți clic pe „attiny de David A. Mellis”. Faceți clic pe „Instalare” și lăsați să puneți cafeaua.
Și acum despre biblioteci. Au nevoie de două:
Pentru a lucra cu afișajul Oled
Control senzor temperatura
După descărcarea acestor arhive, despachetați-le în folderul „biblioteci”, care este ușor de găsit mergând pe calea de instalare a Arduino IDE.
Pasul 8 Programator.
Digispark Attiny 85 este o placă excelentă. Proiectat pentru a vă conecta la un computer USB. Și poate fi programat prin intermediul acestuia. Dar Attiny folosește un software USB, care la rândul său ocupă 2 KB de 8 KB de memorie. Acest lucru nu ni se potrivește și, prin urmare, vom flash Flash Attiny prin interfața ISP. Și aici avem nevoie de un programator ISP. Dacă nu este acolo - nu contează. Ia Arduino. În cazul meu, Arduino UNO:
Puteți lua orice altă placă compatibilă de la linia Arduino. Ne conectăm la computer, deschidem Arduino IDE, selectăm portul la care este conectată placa Arduino, deschidem schița în exemple, Arduino ISP și o completăm în placă. De asemenea, avem nevoie de un fir pentru a ne conecta rapid la Attiny.
Conexiunea este următoarea:
D11 - P0
D12 - P1
D13 - P2
D10 - P5
Nu uita de nutriția Attiny.
Pasul 9 Editează și completează schița.
Descărcați schița
Înainte de completare, trebuie să editați schița.
Senzorul integrat ds18b20, după cum am menționat anterior, funcționează folosind protocolul One Wire. Fiecare senzor are propria sa adresă unică pe 64 de biți. Trebuie să găsiți adresa senzorului dvs. și să o scrieți într-o schiță. Deschideți IDE Arduino, urmați calea:
Fișier - Exemple - Dallas Temperatură - OneWireSearch.
Completați schița în Arduino. Deschideți monitorul portului. Ar trebui să vedeți adresele tuturor senzorilor conectați și citirile de temperatură ale acestora. Vă notăm adresa. Deschide-mi schița și schimbă-ți adresa în rândul tău:
byte addr [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63};
Pentru a regla progresul ceasului, utilizați următoarea constantă:
if (micros () - prevmicros & gt; [b] 497000 [/ b])
Cu cât această valoare este mai mare, cu atât este mai lent ceasul.
Pentru control, pe ecran sunt afișate secunde:
OzOled.printNumber ((long) sek, 0, 7); // secunde de ieșire pentru reglaj precis
Comentați această linie pentru a elimina secunde.
Acum conectăm programatorul sau Arduino ca programator, selectăm portul, selectăm placa noastră în meniul Instrumente și setăm următorii parametri:
Board: Attiny 25/45/85
Procesor: Attiny 85
Ceas: interior 16
Apoi selectați în același meniu:
Instrumente - Programator - „Arduino ca ISP”.
Și în final:
Sketch - Descărcați prin programator
Pasul 10 Montajul final și lansarea.
Opriți programatorul și conectați senzorul, puterea și butonul:
Până când este configurat cursul exact al ceasului, puteți închide carcasa folosind cauciuc bancar. Când ați terminat, îl puteți lipi.