This article shows a simple set-up that enables remote monitoring of temperature and an analog signal via e-mails. On meeting certain alarm conditions, the system can send SMS messages, which are then converted to e-mails and forwarded to the designated e-mail address.
This project demonstrates how to make a simple remote monitoring system that monitors temperature and analog voltages using a temperature sensor (the DS18S20 from Dallas Semiconductor) and an analog-to-digital converter ADC (the MAX127 from Maxim).
The components required: PIC micro-controller - PIC 16F877; 1 Wire temperature sensor - DS18S20; 8-channel 12-bit serial ADC - MAX127; GSM modem; SMS to e-mail conversion service provided by TynTec.
The user is able to program the alarm thresholds for temperature and the analog input. When any of the alarm conditions are met, the system then sends a standard SMS message using the GSM module. The SMS message must be sent to the designated mobile number provided by TynTec in order for it to be translated to an e-mail. The SMS message is then converted into an e-mail message and forwarded to the designated e-mail address by TynTec's 2-way SMS messaging service.
The main advantages of the project:
* An easy way to send e-mails that are automatically generated without human intervention.
* A very simple way of remotely monitoring temperature and voltages etc.
* It is capable of sending e-mails as well as SMS messages.
* It does not require any PC intervention to achieve the functions above.
* It avoids getting involved with complex TCP/IP connectivity issues - this can be particularly problematic in areas where GPRS coverage is not present.
Details
A BASIC compiler, the Proton+ for the PIC microcontrollers provided by Crownhill www.crownhill.co.uk) is used. The SMS to e-mail conversion facility is provided by TynTec ( www.tyntec.biz). The GSM module used is a Siemen's TC35; although others can be used. In this design a development board, the Proton Dev board from Crownhill with the PIC16F877 installed on it was used. Note that the standard 16 x 2 LCD module was replaced with a 20 x 4 LCD module. The Proton+ compiler supports the 20 x 4 LCD module via the 'PRINT' command.
Temperature sensor: The DS18S20 is used as a temperature sensor. It uses Dallas's 1-Wire protocol. The DS18S20 is connected to PortC pin 0 of the PIC. The DQ pin requires a 4,7 kΩ pull-up resistor connected to 5 V.
Analog to digital converter: The MAX127 is selected for this project. It is a 12-bit 8-channel serial interface device. It uses two I/O pins of the PIC (PortB pins 0 and 1). We only make use of the first channel of this device. The code can be adjusted easily to make use of the other channels if need be. Ensure that the SDL and SDA pins (pins 5 and 7 respectively) have 4,7 kΩ pull-up resistors connected to 5 V.
An LDR (light dependent resistor) is connected to 5 V and then to ground via a 1 kΩ resistor. The junction of the LDR and resistor is then connected to Channel 0 (pin 13) of the MAX127. The input range of the A/D is selected to be 0-5 V. The connection diagram is shown in Figure 2.
Overview of code operation
1) The PIC reads the analog input value. This function is achieved in the 'MAX127IN' subroutine. If the analog voltage is above the specified threshold, then the alarm flag 'ALARMFLAG' will be set. Setting the alarm flag to '1' indicates that an SMS needs to be sent.
2) Following that, the temperature will be read from the DS18S20. If the temperature is above the specified limit, then the alarm flag 'ALARMFLAG' will be set. Setting the alarm flag to '1' indicates that an SMS needs to be sent.
3) Then, the code will decide whether or not to send an SMS message. If the alarm flag 'ALARMFLAG' is set. The code will go to a subroutine called 'SMS' to send an SMS message to the designated mobile number.
Set-up procedure
Firstly, obtain an account for TynTec's '2 Way SMS Tool'. The destination e-mail address will have to be specified to them. TynTec ( www.tyntec.biz) will then provide a unique mobile number.
In the code the following points need modification:
* Line 87: If MAXREAD > 2047 THEN
This is where the analog input threshold level will be set. The MAX127 is a 12-bit A/D converter, so it has 4096 steps. It is configured to have an input voltage range of 0-5 V. At the moment, the code is set with a threshold of 2,5 V.
* Line 119: If temp > 58 THEN
At this point the temperature alarm threshold needs to be set. In the code provided, it is set at 29°C. 'temp' is a register holding the reading from the DS18S20. Dividing 'temp' by 2 gives the actual temperature in degrees C. Note that only this code only works with +ve temperatures.
* Line 268: HSEROUT ["AT+CMGS=+447---------"]
Here the destination mobile number is specified - the number provided by TynTec.
* Line 298: UNTIL SMSDELAY = 10.
The delay between an SMS message transmission and a repeat 'scan' of the temperature and analog input is adjustable. At present it is set for 10 minutes delay. This can be adjusted to suit different situations.
A sample e-mail sent from the unit is shown in Figure 3. After following the steps above, the system should be able to monitor the temperature and analog input. If/when the trip thresholds are exceeded, an SMS message will be sent out which will result in an e-mail being sent to the designated recipient. The code for this project can be downloaded from www.maxim-ic.com/Remote-Emailer.
For more information contact CST Electronics, 011 452 0706 or Electrocomp (Value Added Reseller), 011 458 9000.
Tel: | +27 11 608 0070 |
Email: | [email protected] |
www: | www.cstelectronics.co.za |
Articles: | More information and articles about CST Electronics |
Tel: | +27 11 458 9000 |
Email: | [email protected] |
www: | www.electrocomp.co.za |
Articles: | More information and articles about Electrocomp |
© Technews Publishing (Pty) Ltd | All Rights Reserved