This morning I decided that I wanted to know how warm it was outside, and I figured that since I might want the same information in the future it would be a good idea to build a thermometer. A wireless thermometer. A Bluetooth wireless thermometer. A solar-powered Bluetooth wireless thermometer. Yes, that's it!
Below is a photo of what I rigged up, it's not working yet (firmware) but it's a start. In the top-left you can see the Sure Bluetooth module that I picked up of eBay some time ago. With nothing more than +3.3V, this little champ emulates a Bluetooth serial port, which you can communicate with in more or less the same fashion as you would with a real RS-232 COM port. All of the pairing, PIN, and security nonsense is taken care of by the Bluetooth stack on your PC. The big gotcha with this module is that it is fixed at 9600 baud, making it too slow for many applications. My plan was to read the temperature every fifteen minutes and fire it into my PC through the "make believe" COM port; 9600 baud is MORE than ample for what I need.
The actual temperature measurement and A2D conversion is done by a Dallas Semiconductor DS1820B 1-Wire Digital Thermometer. This device sends the temperature data to the 8-pin PIC12F675 microcontroller that takes care of getting the data from the thermometer and sending it on its merry way to my PC through the Bluetooth link.
That pretty much sums it up; coming in from stage right we have +3.3V(ish) from an LM317 based power supply.
Once I get a working version together I'll draft up some schematics and post them here along with the PIC firmware. My eventual plan is to have a small (40mm x 40mm) PCB that includes everything onboard. The Bluetooth module will then plug into a female 10-pin 2.54mm header socket at the back to make a "double-decker" assembly.
- Crystals are temperature dependent; will this cause a problem for this circuit?
- How much power does the Bluetooth link consume in standby?
- How big will the solar cell need to be?
- How big will the battery/supercap need to be?