Cum sa faci un termometru USB cu mainile tale
Mult timp în urmă am avut ideea de a face un termometru USB, dar nu trebuie să fie, iar ideea de pace. Odată ce un prieten de la o petrecere a văzut câteva teste USB flash. Unul a murit și m-au eliberat. De curând, eu în mod constant le vânez, tk. în cele mai multe cazuri, controlerul arde și blițul NAND este în viață + cuarț SMD. Și nu se află pe drum.
Deci, cu această unitate flash am avut: cuarț SMD la 12 MHz, un conector USB pe placă și un mic caz, precum și dezvoltarea ideii unui termometru USB.
În decurs de o săptămână au fost elaborate:
1. Diagrama aparatului;
2. structura PCB pentru locuințele existente;
3. Programul pentru MK ATtiny45;
4. Program gazdă (doar o gazdă) pentru a primi date de la MK.
După cum se poate vedea din diagramă, baza facilității este ATtiny45 MC. Alegerea sa se datorează necesității de a minimiza dimensiunea plăcii de circuite imprimate și prezența a 4 Kbytes de memorie flash necesară implementării USB și a funcționării cu DS18B20.
Senzorul (DS18B20) funcționează în modul de alimentare cu paraziți, adică nu necesită o sursă de alimentare separată, dar este conectată la dispozitiv prin 2 fire. Circuitul de intrare USB este standard, recomandat de dezvoltatorii avrusb, cu excepția faptului că rezistențele de tracțiune din versiunea mea sunt activate după 68 ohmi.
Programul este conceput pentru MC într-un mediu AVR Studio cu avrusb bazate pe CCG, iar unele Martin'a Thomas'a biblioteca sursă pentru DS18B20 (nu a existat nici un timp pentru a te scrie). interacțiunea Spopsob cu dispozitivul gazdă este implementat ca un dispozitiv de cod condițională trimiterea (în conformitate cu care dispozitivul va efectua operațiuni necesare) precum și pachete de date cerere cu valoarea temperaturii curente. Întrucât dimensiunea datelor trimise și primite este mică, raportul viitor (tipul pachetului de date) a fost ales din cauza ușurinței manipulării acestuia.
Dacă doriți să remediați programul pentru MK, citiți în prealabil documentul USBID-License.txt din folderul usbdrv.
Există o serie de reguli și restricții pentru utilizarea bibliotecii avrusb.
Programul este scris într-o gazdă Borland Delphi 7, utilizând componenta de bibliotecă JEDI-VCL, care include componenta TJvHidDeviceController care implementează accesul solicitat la dispozitivele compatibile USB HID. Pentru a face utilizarea aparatului cât mai ușor posibil, sa decis să pună în aplicare o gazdă ca o pictogramă cu valoarea temperaturii în tava sitemnom (langa ceas), fără nici o interfață grafică de utilizator, cu excepția meniului kontekstrogo prin apăsarea butonului din dreapta al mouse-ului pe pictograma tavă.
La mine WinXP SP3, pe alt sistem nu a încercat programul.
În general, gazda operează conform următorului algoritm:
1. Pe timer (la fiecare 2 secunde) începem căutarea dispozitivului nostru. Criteriile de căutare sunt numele textului producătorului (furnizorului) și al dispozitivului (produsului);
2. Recepționăm informații de la dispozitiv cu verificarea numeroaselor erori. Dacă apare astfel, puneți pictograma "NA" - fără acces;
3. Dați comanda pentru a citi temperatura de la senzor. Așteptăm;
4. Dați comenzii pentru a începe măsurarea temperaturii;
5. Reveniți la pasul 1 după 2 secunde.
Se pare că a spus totul. oh, aici, am prezentat acest dispozitiv sub forma unui cadou de ziua aceluiasi prieten care a fost blocat pe o unitate flash USB.
Iată câteva fotografii ale dispozitivului terminat.