USB HID thermometer with software (DS18B20 + ATTiny2313)

Go To Last Post
2 posts / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello everbody,

I got some spare time, when my girlfriend is at school so I put out my old electronic great and started to work on some cool projects. First one was Igor Ceskos USB IR receiver. When that worked I wanted more :D. So I found this page:

Some Russian guy made a design for USB thermometer device wich was based on HID Joystick firmware. It supported Maxims DS18B20 and DS18S20 sensors. I could only find DS18B20 in our local stores so I decided to build one. It's HID based so no drivers :).

Had lot of problems with programming the ATTiny2313 chip and finding correct fuse settings, but once I sorted that out the design was made and working. Original author wrote a program in VC++, but could only show full rounded value of the temperature and it offered logging into TXT file. But I wanted more.

First idea was to fix the firmware since the DS18B20 was able to be punctual to 0.0625 degrees. With no knowledge of assembler for Atmel chips I've managed to fix it so it would send what it originaly reads from the sensor.

When this was done I had to write my own program from zero. I decided to use C++ Builder since it's what I always use :). It's simple RAD tool and perfect for an amateur programmer like me.

And for Delphi/BCB someone already wrote a HID access component:

Actualy I've just checked. He release a new version, wich doesn't support BCB. (Make mental not to send author an email and kindly as to add the support back)

The program also uses libmysql.dll to access MySQL database for storing the sensor data.

I've tried many things and scripts to help me create the graphs from the collected data. They were all difficult to use or way too complicated for this project. Then found a page from mr. Sami Sipponen:

He wrote his own script to display data and it was perfect for this project. I've asked him if he can share it. So far he is still deciding if he would share it publicly under GPL. But he did send it to me. After so midification I was able to use it for storing data from my program.

Here are some images:

I love balloons:

Multilingual support:

Setup window:

Graphing and fetching the data from database (PHP):

Finaly the files:

Database structure for Sami's graph script

Main program

Full firmware (ASM+HEX)

Source code for the program is avaible on demand and some kind words ;). Desing plans are avaible withing the program under Design plans menu. Some more images of the PCB can be found on Slovenian forum Slo-Tech where I initialy posted this project:

It's in Slovenian language, but look at pretty pictures :).

Now for the main problem. I've built three of this devices. One is in living room where my server is. Two are in my room. One leads outside the window, one sits on my desk. Three devices, three USB ports. If anyone here is willing to help me, I want to make one device wich would be able to have unlimited sensors connected to it and would only take one USB port. Also my program only supports max 2 devices connected on one PC. Also second thing I would very much like is to have a sensor for humidity. No idea how to build it or even better, add it to this device.

Any comments are welcomed. I hope someone else will build a device like this and find it usefull.

And if someone will get hooked into this project like I have with good knowledge of the AVR programming I sure hope he will share his improvement, just like I did by sharing mine.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

thank you for your project in i had a question abute saving temperature data in EEPROM.

your software saving temperature in text file but i want to save in EEPROM please tell me how i can do it.

in fact i want to add writing & reading EEPROM to your project like igorusb but igorusb dos'nt work on HID

your project is HID and will very good if we can add write/read eeprom to this project . please help me

thank you very much