One morning I woke up and wanted to know what the temperature outside was, and instead of running over to Home Depot and picking up a $2.00 glass thermometer, I decided to build my own wireless temperature sensor. At the heart of the board is a PIC12F675 microcontroller in an SO8 package. The right-hand side of the board houses the linear power supply (LP2950), bottom-center is the DS18B20 1-Wire temperature sensor, and out in left-field you can see the Sure TTL Bluetooth Module.
Figure 1.0: The Completed PCB (Click to Enlarge)
Being a big fan of standard protocols, I opted to transmit the temperature data over a Bluetooth SPP (Serial Port Protocol) link as opposed to XBee or another similar wireless architecture. Though the Bluetooth radio sucks a fair bit of power in comparison to an XBee module, the advantage is that not custom hardware is required on the receiving end. Since nearly all modern laptops have an integrated Bluetooth chipset, this effectively means that no hardware is required on the PC end.
After looking through all of my boxes of miscellaneous junk, I found a Sure Bluetooth Module I had bought several years ago for another project. For prototyping, the surface-mount module had already been attached to a home-etched PCB with header pins so that it could be plugged into a breadboard. Since I don't have access to a hot-air rework station, I ordered another GP-GC021 module for the final project. The module shown below was the one I originally started out with, whereas the photo above shows my most recently acquired module.
Figure 1.1: Sure GP-GC021 TTL Serial Bluetooth Module
I decided to use a PIC12F675 for the main MCU for no reason other than the fact that I had one sitting in my parts bin. I was originally planning to exploit the PIC's internal 4MHz oscillator, however I found out later that since the serial module is fixed at 9600 baud, the main system clock had to be jacked up to 8MHz to keep pace and transmit data at the right speed.
Figure 1.2: Main Schematic
Figure 1.3: Linear Power Supply
As with all my projects, the schematics and PCB layout were done in Altium Designer. Over the years I have tried my hand at a few different EDA (Electronic Design Automation) suites including Eagle, ExpressPCB, and EdwinXP, however I find Altium stands head-and-shoulders above the rest of the crowd. If you are just a hobbyist, Altium is probably out of your price range, however their student licensing is fantastic; and many colleges and universities maintain large license sets or even site licenses. At Okanagan College we are very fortunate to have access to the colleges' floating license, which allows students to use Altium on any computer we want, regardless of whether or not we are on campus. I should make it clear that while I do not work for Altium, I have fought many epic battles with CAD software over the years; and while Altium and I have had our disagreements, overall it is a pleasure to work with.
Figure 1.4: 3D Rendering of the PCB
Figure 1.5: RealTerm displaying the incoming data from the thermometer
- The schematics, firmware, and all other related files are all included in the attached ZIP archive.
- Programming is not one of my strong suites, and as such the firmware is written in PICBasic. A ready-to-burn HEX file is in the ZIP archive, however if you want to modify the firmware at all you will need to have a copy of ProtonIDE in order to compile it.
- If you are planning on making a PCB from the included Gerber files, beware that the land size for F1 (the fuse on the sensor VCC bus) is actually too small (sorry).
- Everything here is presented as-is with no warranty whatsoever.
- You are more than welcome to incorporate all of or any part of this project into your own work, but please do mention where you found it. I won't ask you for money - I PROMISE!
Content will be posted here as progress is made. In the mean time, the blurb about original thermometer is available on my blog (http://www.sillycircuits.blogspot.com/)
Last Updated: December 4 2010
Update - December 10 2010
Though the ZIP archive contains everything, I have attached the firmware and the project summary (PDF) separately.