远程监控系统通过SMS发送电子邮件-Remote Monit

嵌入式设计应用

132人已加入

描述

Abstract: This application note demonstrates how to make a simple system that monitors temperature and analog voltages remotely. On meeting certain alarm conditions, the system can send SMS messages, which are then converted to E-mail and forwarded to the designated E-mail address.

System components:

  1. PIC® microcontroller (PIC 16F877)
  2. 1-Wire® temperature sensor (DS18S20)
  3. 8-channel 12-bit, serial A/D converter (MAX127)
  4. GSM modem.
  5. SMS to E-mail conversion service provided by TynTec.


Download source code for this project:
  • Remote_Monitor_EPD_Ver1.0.bas

Project objective and advantages

The project objective is to send E-mail messages automatically when programmed thresholds are met. A user programs alarm thresholds for temperature and analog input. When any of the alarm conditions are met, the system will send a standard SMS message using the GSM module. The SMS message must be sent to the mobile number designated by TynTec. 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. Figure 1 outlines the project concept.

There are several advantages to this system setup.

  • This is an easy way to send E-mail that is automatically generated without human intervention.
  • It is simple way to monitor temperature and voltages remotely.
  • The system can send both E-mail and SMS messages.
  • NO PC intervention is required to achieve the above operations.
  • The system avoids complex TCP/IP connectivity issues, which can be particularly problematic in areas where GPRS coverage is not present.
远程监控
Figure 1.

Detailed system specifics

A BASIC compiler, the Proton+ for the PIC microcontrollers provided by Crownhill, is used (www.crownhill.co.uk). TynTec (www.tyntec.biz) provides the SMS to E-mail conversion. A Seimen's TC35 GSM module is used. Although any other SMS-capable modem can be used, a good source for GSM modules is Alphamicro (www.alphamicro.net). The PIC 16F877 was installed on a Proton Dev development board provided by Crownhill. The standard 16 x 2 LCD module was replaced with a 20 x 4 LCD module. The Proton+ compiler supports the 4 x 20 LCD module via the 'PRINT' command.

The DS18S20 temperature sensor is used. The DS18S20 uses the Dallas Semiconductor 1-Wire protocol, and is connected to PortC pin 0 of the PIC. Make sure that the DQ pin has a 4.7k pull-up resistor connected to 5V.

The MAX127 12-bit, 8-channel ADC with a serial interface is used. The MAX127 uses two I/O pins of the PIC (PortB pin 0 and pin 1), but this example only uses the device's first channel. Code can be adjusted easily to use the other channels if necessary. Users should make sure that the SDL and SDA pins (pin 5 and pin 7, respectively) have 4.7k pull-up resistors connected to 5V.

A Light Dependant Resistor (LDR) is connected to 5V and then to ground via a 1k resistor. The junction of the LDR and resistor is then connected to Channel 0 (pin 13) of the MAX127. A 0 to 5V input range is selected for the ADC.

The connection diagram is shown in Figure 2.

远程监控
Figure 2.

Overview of code operation

  1. The PIC reads the analog input value. This operation 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 ALARMFLAG to '1' indicates that an SMS needs to be sent.
  2. Next, the temperature will be read from the DS18S20. If the temperature is above the specified limit, then the ALARMFLAG will be set. Setting the ALARMFLAG to '1' indicates that an SMS needs to be sent.
  3. The code will now determine whether or not to send an SMS message. If the ALARMFLAG is set, the code will go to a subroutine called SMS to send an SMS message to the designated mobile number.

System setup procedure

  1. Obtain an account for TynTec's 2 Way-SMS tool (www.tyntec.biz, sales@tyntec.biz, or call +49 231 10 87 991). Specify the destination E-mail address, and TynTec will provide a unique mobile number (of the format +44...). Keep this mobile number safe.
  2. Modify the code at the following points.
      a) Line 87: If MAXREAD > 2047 THEN ... This is where the analog-input threshold level will be set. The MAX127 is a 12-bit ADC, so it has 4096 steps. It is configured to have an input voltage range of 0 to 5V. Initially, the code is set with a 2.5V threshold.

      b) Line 119: If temp > 58 THEN At this point the temperature alarm threshold must be set. It is set at +29°C in the code provided. The reading from the DS18S20 is held in the 'temp' register. Dividing 'temp' by two gives the actual temperature in °C. Note that this code only works with positive temperatures.

      c) Line 268: HSEROUT ["AT+CMGS=+447---------"] The destination mobile number provided by TynTec is specified here.

      d) Line 298: UNTIL SMSDELAY = 10 The delay between an SMS message transmission and a repeat 'scan' of the temperature and analog input is adjustable. It is set for a ten-minute delay, but can be adjusted for different situations.

A sample e-mail sent from the system is shown in Figure 3.

远程监控
Figure 3.

Summary

After following the above steps, the system should monitor temperature and analog input. If or when the trip thresholds are exceeded, an SMS message will be sent and will, in turn, initiate an E-mail to the designated recipient.

A similar version of this article appeared in the August 2004 issue of EPD's (UK).
This article has also appeared in the August 2004 issues of Selezione's (Italy) and Electronics Update's (Japan).


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分