Project showcase
Garage Door Opener with Siemens TC35i Modem and Pro Mini

Garage Door Opener with Siemens TC35i Modem and Pro Mini © LGPL

This is a GSM modem (Siemen TC35i) that can be operated with a garage door opening and closing device.

  • 3,883 views
  • 2 comments
  • 9 respects

Components and supplies

About this project

This is a GSM gateway (Siemen TC35i) that can be operated with a garage door opening and closing device. The cause of the project is that the Beninca remote control very expensive but quickly wears out (breaks crack, etc.). I found out that I would use Arduino Mini Pro and a GSM module. Because a mobile is almost handy and only one remote control is in use. The remote control alignment does not want to prevent switching, so only a simple relay operates a remote control. The code is half simplicity, but it is not really elegant.There is no fault tolerance if there is no modem or something is wrong, there is no feedback. However, it only works with numbers that are included in the database. Neither SMS or any other call responds. The call is rejected at the same time (if there is a number in the database and if not if it is not in the database).

The code: https://pastebin.com/Y6p1mjy1

Code

Garage door openin with Siemens TC35i + Arduino mini proArduino
#include <SoftwareSerial.h>						//Including Sotware Serial lib for second serial port to connect Siemens TC35i

String tel_1 = "+11221234567";  				//Telephone number 1
String tel_2 = "+11227654321";  				//Telephone number 2

String temp;									//Define temp string

int rxpin = 9;									//Define rx and tx pin
int txpin = 8;

byte door = 10;                  				//Relay output

SoftwareSerial serial2(rxpin,txpin); 			//RX,TX 

void setup() {

  	pinMode(door, OUTPUT);    					//Set relay port to output
    digitalWrite(door, HIGH); 					//Set relay port to high (switch relay default state)

    Serial.begin(115200);       				//Initialize HW serial port for debug
    serial2.begin(57600);   					//Initialize SW serial port for communicat with modem

    Serial.println("Starting...."); 			//Program starting
  
    delay(120000);								//Waiting for modem (120sec is enough)
    serial2.println("at");  					//Send AT Command
    Serial.println("at");
    temp = serial2.readString();
    Serial.print(temp);
    delay(1000);
  
    Serial.println("at+clip=1");  				//Send AT Command to receiving caller ID
    serial2.println("at+clip=1");
    temp = serial2.readString();
    Serial.println(temp);
    delay(1000);
  
  Serial.println("Enter to loop..."); 			//Loop is stating...
  
}

void loop() {

      digitalWrite(door, HIGH);       			//Set relay outpout to high (relay normal state)

    if (serial2.available()) {          		//Wait for SW Serial communication is active
        String str = serial2.readString();    	//Read out full string from SW serial
        temp = (str.substring(18,30));      	//Parser out from only Caller ID
        Serial.println(str.substring(18,30));   //Show Caller ID (only ID, without any text. Example: RING ect..
      
      
     if (temp == tel_1)             			//Find caller id in database
     {
        Serial.println("Telephone number 1");   //Print caller id in debug port
        serial2.println("AT H");          		//Hang up the call/ring    
    dooropen();               					//Open the door
     } 
     
     if (temp == tel_2)            				//Find caller id in database
     {
        Serial.println("Telephone number 2"); 	//Print caller id in debug port
        serial2.println("AT H");        		//Hang up the call/ring  
    dooropen();               					//Open the door
     }

   
     else {
        Serial.println("Unknow number door sill locked"); //Print to debug port
        serial2.println("AT H");              	//Hang up the call/ring  
        temp = serial2.readString();            //Eliminate "OK" feedback to AT H command 
        
     }

   }

}

void dooropen()
{
  Serial.println("Opening the door");     		//Print to debug port
  digitalWrite(door, LOW);                  	//Set relay output LOW, activate the relay
  delay(1000);                        			//Wait 1 sec 
  digitalWrite(door, HIGH);                  	//Set relay output HIGH, relay normal state
}

Schematics

Garage door openin with Siemens TC35i + Arduino mini pro
35884076 10215510650953522 2790517046226452480 o xb9zxvvxnd

Comments

Similar projects you might like

Smart BT Door Lock (Simple Arduino)

Project showcase by Arun

  • 7,263 views
  • 1 comment
  • 19 respects

Automatic Sliding Door for the Garage

Project tutorial by DVDMDN

  • 13,375 views
  • 32 comments
  • 64 respects

Dooreo - The Alexa Powered Automatic Door Opener

Project tutorial by Keith Caskey

  • 2,744 views
  • 0 comments
  • 12 respects

Arduino RFID Garage Door Opener

Project tutorial by Team RobotGeek Projects Team

  • 2,139 views
  • 1 comment
  • 6 respects

Windows 10 Universal Bluetooth Garage Door Opener

Project showcase by Ronald P. Kessler

  • 1,098 views
  • 1 comment
  • 6 respects

Garage Parking Sensor

Project tutorial by Chip McClelland

  • 8,113 views
  • 5 comments
  • 14 respects
Add projectSign up / Login