사용자 도구

사이트 도구


develop:python:tip:sendsms

문서의 이전 판입니다!


Send SMS

개요

핸드폰과 컴퓨터를 시리얼로 연결하여 AT Command 를 이용하여 문자메시지를 보낼 수 있다. Python 에는 Serial 모듈이 있으며 이를 통해서 시리얼 통신을 할 수 있다.

serial 모듈 설치

Python 에서 시리얼 통신을 하려면 serial 모듈이 있어야 하며, Debian Linux 에서는 아래와 같이 설치한다.

# apt-get install python-serial

문자보내기 (예제)

import serial
 
ser = serial.Serial('/dev/ttyS0', 115200, timeout=1) # 시리얼포트 연결
ser.write("AT*ESMS=1\r") # 문자보내기 기능을 활성화 한다.
serial_result = ser.readlines()
ser.write("ATE0\r")
serial_result = ser.readlines()
ser.write("ATV1\r")
serial_result = ser.readlines()
ser.write("AT+CHV\r") # 호연결 끊기
serial_result = ser.readlines()
ser.write("AT+CSQ?\r") # 장비 테스트
serial_result = ser.readlines()
ser.write("AT+CDV *0661\r") # 호에 연결
serial_result = ser.readlines()
serial_result = ser.readlines()
ser.write("AT*MOREQ 0,0113872176,0162348765,4098,첫번째문자보내기\r") # 첫번째문자 보내기
serial_result = ser.readlines()
ser.write("AT*MOREQ 1,0113872176,0162348765,4098,두번째문자보내기\r") # 두번째문자 보내기
serial_result = ser.readlines()
ser.write("AT+CHV\r") # 호연결 끊기
serial_result = ser.readlines()
ser.close() # 시리얼포트 끊기

위의 예제는 Mailshot 이라는 문자메시지 단말기를 통해서 문자를 보내는 코드이다. Mailshot 은 윈도우용 모듈만 제공하여 필자가 리눅스(기타 OS)에서도 돌아갈 수 있도록 작성한 것이다. 단말기, 통신사에 따라서 명령어가 틀리기 때문에 실제 문자를 보낼때 시리얼포트를 캡쳐하여 알아보아야 한다.

시리얼포트 캡쳐하기

문자메시지를 보낼때 사용하는 명령어를 알기 위해서는 통신사에서 제공하는 프로그램을 설치하고, 핸드폰을 연결한 후에 문자메시지를 보낼 때 주고받는 내용을 시리얼포트에서 캡쳐해내야 한다. 필자가 이용한 캡쳐 프로그램은 Agg Software 의 Advanced Serial Port Monitor 이다. 해당 사이트에서 트라이얼 버전을 다운로드하여 설치하면 일정기간 동안 사용할 수 있다.

AT Command

develop/python/tip/sendsms.1170651942.txt.gz · 마지막으로 수정됨: 2007/02/05 14:05 저자 mattabu