I am in the process of building a home wireless sensor network. I have so far built a simple wireless temperature sensor and a base station for logging temperature readings. My base station is built from the following hardware.
5V 16MHz Arduino Pro Mini on the left inserted into a small breadboard.
USB mini breakout board for power on the bottom.
SD card breakout board with 2GB card in middle.
315MHz RF receiver on the right.
Bluesmirf silver Bluetooth module in the bottom right.
(see attached for photo)
The issue which I have is that my base station correctly receives temperature readings until I connect over Bluetooth to interact with it. While connected I can correctly interact with the base station but no readings are received. When I disconnect again the base station begins to receive readings again.
I wouldn't expect the 2.4GHz Bluetooth radio signal to interfere with the 315MHz signal used for my temperature readings. Is there any other reason why I wouldn't be able to receive readings while connected over Bluetooth?
I think I should clarify the exact circumstances where the base station doesn't receive RF temperature readings.
Firstly, it should be noted that the Manchester encoding library which I am using receives messages in the background with the aid of a regular Timer 2 based interrupt. This should mean that I can receive readings even when the Arduino is receiving/processing/sending serial data.
My wireless temperature sensor broadcasts a reading every 5 minutes. My test case is therefore to do the following.
Connect over Bluetooth
Send "data" command to view the current readings
Wait 6 minutes to allow time for at least 1 reading to be sent
Send "data" command - no new reading
Disconnect the Bluetooth connection
Wait 6 minutes
Reconnect over Bluetooth
Send "data" - new reading has been received
I have also tested with a Serial connection over a USB serial cable instead of over Bluetooth. In this configuration the base station is able to receive readings while connected over the Serial cable to my PC.
This suggests to me that there is something about an active Bluetooth connection which is interfering with the reception of sensor readings.
Firstly, it should be noted that the Manchester encoding library which I am using receives messages in the background with the aid of a regular Timer 2 based interrupt. This should mean that I can receive readings even when the Arduino is receiving/processing/sending serial data.
No, it does not mean that. Serial data processing requires interrupts, too. It is possible that the interrupts are interfering with each other.
This suggests to me that there is something about an active Bluetooth connection which is interfering with the reception of sensor readings.
You mean that one radio interferes with the other? Quite possible.
Firstly, it should be noted that the Manchester encoding library which I am using receives messages in the background with the aid of a regular Timer 2 based interrupt. This should mean that I can receive readings even when the Arduino is receiving/processing/sending serial data.
No, it does not mean that. Serial data processing requires interrupts, too. It is possible that the interrupts are interfering with each other.
I am aware that Serial interrupts could interfere with my own interrupts. However, when I was using a Serial over USB connection this didn't seem to cause any issues.
This suggests to me that there is something about an active Bluetooth connection which is interfering with the reception of sensor readings.
You mean that one radio interferes with the other? Quite possible.
It is possible but is it normal/expected? I am assuming that the whole point of the circuit on my 315MHz RF RX module is to only receive data at 315MHz and to filter out other frequencies.