EngineersGarage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise
You are here: Home / Topics / Interfacing gsm module with microcontroller 89c51 for automatic meter tampering detection

Interfacing gsm module with microcontroller 89c51 for automatic meter tampering detection

|

Microcontroller › 8051 › Interfacing gsm module with microcontroller 89c51 for automatic meter tampering detection

  • This topic has 0 replies, 1 voice, and was last updated 13 years, 8 months ago by Ashish Chakole.
Viewing 1 post (of 1 total)
  • Author
    Posts
  • March 21, 2012 at 7:59 am #1556
    Ashish Chakole
    Participant

    Hello Sir,

    We have been carrying out our project work based on ‘GSM based household meter tampering detection’.(program is given below) . We have experienced some problems while executing the program. It would be very kind of you to go through the program and suggest the corrections.
    The sensors form the input to the microcontroller and a message should be sent as soon as the pin goes high. Also relays have to be controlled using sms sent by the user. 

    We are also planning to interface a 16*2 LCD display (optional), which will display the same message as is to be sent through the GSM modem. If possible could you suggest the required changes in the current program.

    We will be interfacing a SIM300 GSM modem.

    It would be very kind of you to revert back. We have gone through all the programs in engineers garage, please mention any corrections wrt this program.

     

     

     

    #include<reg51.h>
    #define FREQ 12000000
    #define baud 9600
    #define spbrg_value (((FREQ/64)/baud)-1)

    sbit seal=P2^0;
    sbit magnet=P2^1;
    sbit reversed=P2^2;

    int i=0,j,k,temp;
    unsigned char *sms_service=”AT<enter>”;
    unsigned char *sms_format=”AT+CMGF=1<enter>”;
    unsigned char *sms_write=”AT+CMGS=”9999999999″<enter>”; // 10-Digit Mobile Number
    unsigned char *sms=”seal broken”;
    unsigned char *smss=”magnetic material detected”;
    unsigned char *smsss=”current reversal”;
    unsigned char *sms_report=”SMS Sent…”;
    unsigned char sms_terminate=0x1A;
    unsigned char enter=0x0D;

    void delay(unsigned int msec) // Function for delay
    {
    int i,j;
    for(i=0;i<msec;i++)
    for(j=0; j<1275; j++);
    }

    void init_serial() // Initialize serial port
    {
    TMOD=0x20; // Mode2
    TH1=0xFD; //buad rate
    SCON=0x50; // Serial mode=1 ,8-Bit data,1 Stop bit ,1 Start bit, Receiving on
    TR1=1; // Start timer
    }

    void tx_data(unsigned char str) // Transmit data function
    {
    SBUF=str; //Store data in SBUF
    while(TI==0); //Wait till data transmits
    TI=0;
    }

    void gsm_cmd(unsigned char *string)
    {
    i=0;j=0;
    while(string!=’’)
    {
    temp=0;
    if(string
    ==0x5C) // Not to send ” cahracter
    i++;
    tx_data(string
    ); // Send by serial communication
    i++;
    while(temp!=1);
    }
    temp=0;
    tx_data(enter); // Send ASCII code for ‘Enter’ key
    while(temp!=1);
    }

    void main()
    {
    P2=0xFF;
    P2=0x00;
    init_serial();
    while(1)
    {

    if(seal==1)
    {
    gsm_cmd(sms_service);
    gsm_cmd(sms_format);
    delay(1000);
    gsm_cmd(sms_write);
    delay(1000);
    gsm_cmd(sms);
    tx_data(0x1A);
    delay(1000);
    }
    else if(magnet==1)
    {
    gsm_cmd(sms_service);
    gsm_cmd(sms_format);
    delay(1000);
    gsm_cmd(sms_write);
    delay(1000);
    gsm_cmd(smss);
    tx_data(0x1A);
    delay(1000);
    }

    else if(reversed==1)
    {
    gsm_cmd(sms_service);
    gsm_cmd(sms_format);
    delay(1000);
    gsm_cmd(sms_write);
    delay(1000);
    gsm_cmd(smsss);
    tx_data(0x1A);
    delay(1000);
    }

    }
    }

     

  • Author
    Posts
Viewing 1 post (of 1 total)
  • You must be logged in to reply to this topic.
Log In

RSS Recent Posts

  • ESP32-S3 started outputting NMEA GPS location frames after EMC disturbance — what mode is this? November 15, 2025
  • TraxMaker Pro? I only have the non-Pro version. Looking for the Pro version that has the integrated pick and place coordinates export. November 15, 2025
  • Can a small solar panel safely trickle-charge old NiMH AA batteries? November 15, 2025
  • desoldering November 15, 2025
  • Need a fresh eye on my first PCB November 14, 2025

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2025 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise