2
\$\begingroup\$

I want to make a simple wireless thermometer using TMP36. I've seen people making it using Xbee and some RF modules but I want to know if I can use a simple AM transceiver instead of specific RF modules.

My idea is to amplify signals from TMP36 (temperature sensor), send it to an AM transmitter, and use a ADC (i.e. from an Arduino) on the receiver side to convert the output of the AM receiver into a digital signals.

Can the same thing be done using FM or PM (Pulse Modulation)?

\$\endgroup\$
  • \$\begingroup\$ What is described is not a digital signal transceiver, because the digitizing is done on the receive side. \$\endgroup\$ – Kaz Oct 10 '13 at 23:38
5
\$\begingroup\$

My idea is to amplify signals from TMP36 (temperature sensor), give it to AM transmitter, use a ADC (i.e. Arduino) at receiver side to convert output of AM receiver into digital signals

It won't work the way you describe. Your proposed method implies you take a slow moving signal and modulate a carrier. This will just be a carrier with some slight changes in amplitude when temperature changes.

At the very least you need to transmit 3 levels to adequately recover the analogue signal from amplitude modulation. However, as you wish to end with a digital value it makes sense to modulate with a digital signal up-front.

Now, because you are transmitting digital information you can send two amplitude levels and the simplest is OOK or on-off-keying. But it's a little more complex than just sending binary levels to modulate a carrier. You will need an ADC and possibly a small micro that can take the analogue value and convert it to a bit stream (maybe 8 bits or 10 bits).

You won't need to send it continually so you package up the "value" with a preamble to allow your receiver to "lock-in" its AGC (automatic gain control) to the received strength of the signal. The preamble will need to be recognizable from the data and it probably would help if the final part of the preamble was a special character like an address so that if you had ten of these transmitting you can differentiate which one it is.

Then you send your data and finally you might add something like a checksum. You could transmit the temperature data three times and ignore any "byte" that doesn't tally with the other two bytes. This gives some resilience against corruptions.

You'd pretty much use the same method if you were using FM - the preamble gives the receiver time to lock-in its data-slicer to the average carrier frequency and the rest is history so to speak.

A lot of car locking mechanisms use AM and they transmit a code that represents the special number of that particular vehicle. The receiver is expecting that code and no other. There will be a code for open and code for close and maybe one for opening the boot/trunk.

FM is up to 6dB more resiliant than OOK because its transmission is there 100% of the time whereas AM OOK is "on" then "off" etc..

The receiver is more complex/spohisticated than the transmitter so don't underestimate the difficulties in getting this side working.

Pulse modulation can be described as OOK but if you mean pulse-position modulation this can also use AM OOK and you decode the analogue value from the gap between the correct pair of pulses i.e. you need a reference pulse-pair and then your analogue voltage positions a third pulse.

\$\endgroup\$
  • \$\begingroup\$ You mean Add the ADC at transmitter side ? instead of Receiver side ? \$\endgroup\$ – Parth Parikh Oct 10 '13 at 19:38
  • \$\begingroup\$ @ParthParikh please re-read your comment on Dave Tweed's answer - you seem to have grasped this when you wrote it. You need to convert "analogue" to "digital" and most little microcontrollers have ADCs built in to do this. \$\endgroup\$ – Andy aka Oct 10 '13 at 19:49
4
\$\begingroup\$

To keep it simple, you could feed the signal from the Temp sensor into a VCF (voltage to frequency converter) like a TI 231 or I think there are 555 timer based versions. This signal then can go to the modulator and then the tone detected on the receive side. The receive tone could be simply a comparator and timer on the Arduino (don't know details - but it should have these)or similar circuit instead of an ADC.

\$\endgroup\$
  • \$\begingroup\$ Why VCF ? I don't get it. Can you please explain further ? \$\endgroup\$ – Parth Parikh Oct 10 '13 at 21:02
  • \$\begingroup\$ clever idea for simplicity. \$\endgroup\$ – Andy aka Oct 11 '13 at 9:37
2
\$\begingroup\$

Yes, it's called "on-off keying" (OOK), and you can purchase some very inexpensive transmitter and receiver modules that implement it.

However, it is a method that is not very robust against noise, so simply connecting a device that expects to have a wired connection to the transmitter may not give you the results you hope for. It would be a good idea to add a microcontroller to the path to "wrap" the payload data in a packet structure that implements some form of error detection/correction. You would use a similar setup on the receive side to recover the payload.

EDIT: Note that your question asks about digital transmission, which is what I addressed, but the sensor you mention has an analog output.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.