Як зробити usb термометр своїми руками - зроби своїми руками

Як зробити USB термометр своїми руками

Як зробити usb термометр своїми руками - зроби своїми руками


Давно у мене народилася ідея зробити USB термометр, проте потреби не було, і ідея лежала. Якось у одного в гостях зауважив пару USB флешок. Одна була дохла і дісталася мені нахаляву. З недавнього часу постійно за ними полюю, тому що в більшості випадків згорає контролер, а NAND flash жива + SMD кварц. А таке на дорозі не валяється.
Так ось, з цієї флешки я поимел: SMD кварц на 12 МГц, USB штекер на плату і маленький корпус, а також розвиток ідеї USB термометра.

Як зробити usb термометр своїми руками - зроби своїми руками


Протягом тижня були розроблені:
1. Схема пристрою;
2. Розведення друкованої плати під наявний корпус;
3. Програма для МК ATtiny45;
4. Програма-хост (Даллі просто хост) для прийому даних від МК.

Як зробити usb термометр своїми руками - зроби своїми руками

Як зробити usb термометр своїми руками - зроби своїми руками


Як видно зі схеми, основа устроуства - МК ATtiny45. Його вибір обумовлюється необхідністю мінімізувати розміри друкованої плати і наявністю у нього 4 Кбайт флеш пам'яті, потрібних для реалізації USB і роботи з DS18B20.
Датчик (DS18B20) працює в режимі паразитного харчування, тобто не вимагає окремого підведення харчування, а підключається до пристрою 2 проводами. Вхідна ланцюг USB - стандартна, рекомендована розробниками avrusb, за винятком того, що підтягує резистори в моєму варіанті включені після захисних на 68 Ом.

Як зробити usb термометр своїми руками - зроби своїми руками


Програма для МК розроблена в середовищі AVR Studio з використанням GCC на основі бібліотеки avrusb і початкових кодів якогось Martin'a Thomas'a для DS18B20 (часу не було самому писати). Спопсоб взаємодії хоста з пристроєм реалізований у вигляді відправки пристрою умовного коду (відповідно до якого пристрій буде виконувати необхідні операції), а також запиту пакета даних із значенням поточної температури. Так як розмір відправляються і приймаються даних малий, то був обраний future репорт (тип пакета даних) зважаючи на простоту роботи з ним.
Якщо ви захочете виправити програму для МК, будь ласка, перед цим уважно прочитайте документ USBID-License.txt, що знаходиться в папці usbdrv.
Там міститься ряд правил і обмежень по використанню бібліотеки avrusb.
Програма-хост написана в Borland Delphi 7 з використанням бібліотеки компонентів JEDI-VCL, до складу якої входить компонент TJvHidDeviceController, який реалізує просить доступ до HID сумісним USB пристроїв. Щоб зробити використання пристрою максимально зручним було вирішено реалізувати хост у вигляді значка з'являється та температура в сітемном треї (біля годинника) без будь-якого графічного інтерфейсу, за винятком контекстрого меню після натискання правої кнопки миші по значку в треї.
У мене WinXP SP3, на інших ОС програму не Пробував.

Як зробити usb термометр своїми руками - зроби своїми руками


Загалом, хост работет за наступним алгоритмом:
1. За таймером (раз в 2 секунди) запускаємо пошук нашого девайса. Критерії пошуку - текстові імена виробника (vendor) і пристрої (product);
2. Приймаємо інформацію від пристрою з численними перевірками на помилки. Якщо такі виникають - ставимо значок "NA" - no access;
3. Віддаємо команду читання температури з датчика. чекаємо;
4. Віддаємо команду початку вимірювання температури;
5. Повернення до пункту 1 через 2 сек.

Начебто все сказав. ах ось, цей пристрій я підніс у вигляді подарунка на день народження того самого друга, у якого схалявіть дохлу флешку.
Ось кілька фото готового пристрою.

Як зробити usb термометр своїми руками - зроби своїми руками

Як зробити usb термометр своїми руками - зроби своїми руками

Схожі статті