사용자 도구

사이트 도구


develop:python:tip:sendsms

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
develop:python:tip:sendsms [2007/02/05 13:30]
mattabu
develop:python:tip:sendsms [2007/02/08 09:42] (현재)
mattabu
줄 1: 줄 1:
 ====== Send SMS ====== ====== Send SMS ======
 +
 ===== 개요 ===== ===== 개요 =====
 핸드폰과 컴퓨터를 시리얼로 연결하여 AT Command 를 이용하여 문자메시지를 보낼 수 있다. Python 에는 Serial 모듈이 있으며 이를 통해서 시리얼 통신을 할 수 있다. 핸드폰과 컴퓨터를 시리얼로 연결하여 AT Command 를 이용하여 문자메시지를 보낼 수 있다. Python 에는 Serial 모듈이 있으며 이를 통해서 시리얼 통신을 할 수 있다.
줄 8: 줄 9:
 # apt-get install python-serial # apt-get install python-serial
 </code> </code>
 +다른 OS에서는 http://pyserial.sourceforge.net 에서 직접 다운로드 받아 설치한다.
  
-===== 문자보내기 =====+===== 문자보내기 (예제) =====
 <code python> <code python>
 import serial import serial
  
-ser = serial.Serial('/dev/ttyS0', 115200, timeout=1) # 시리얼 연결+ser = serial.Serial('/dev/ttyS0', 115200, timeout=1) # 시리얼포트 연결
 ser.write("AT*ESMS=1\r") # 문자보내기 기능을 활성화 한다. ser.write("AT*ESMS=1\r") # 문자보내기 기능을 활성화 한다.
 serial_result = ser.readlines() serial_result = ser.readlines()
줄 33: 줄 35:
 ser.write("AT+CHV\r") # 호연결 끊기 ser.write("AT+CHV\r") # 호연결 끊기
 serial_result = ser.readlines() serial_result = ser.readlines()
-ser.close() # 시리얼 끊기+ser.close() # 시리얼포트 끊기
 </code> </code>
 +위의 예제는 Mailshot 이라는 문자메시지 단말기를 통해서 문자를 보내는 코드이다. Mailshot 은 윈도우용 모듈만 제공하여 필자가 리눅스(기타 OS)에서도 돌아갈 수 있도록 작성한 것이다. 단말기, 통신사에 따라서 명령어가 틀리기 때문에 실제 문자를 보낼때 시리얼포트를 캡쳐하여 알아보아야 한다.
 +
 +
 +===== 시리얼포트 캡쳐하기 =====
 +문자메시지를 보낼때 사용하는 명령어를 알기 위해서는 통신사에서 제공하는 프로그램을 설치하고, 핸드폰을 연결한 후에 문자메시지를 보낼 때 주고받는 내용을 시리얼포트에서 캡쳐해내야 한다.
 +필자가 이용한 캡쳐 프로그램은 Agg Software 의 Advanced Serial Port Monitor 이다. 해당 사이트에서 트라이얼 버전을 다운로드하여 설치하면 일정기간 동안 사용할 수 있다.
 +  * http://www.aggsoft.com/serial-port-monitor/
 +위의 프로그램을 이용하여 어떤 AT명령어를 사용하는지 알 수 있다. 또한 변수의 모든 값을 보려면 at&v 를 사용한다. 원래 통신사 프로그램을 이용해서 보내는 경우와 새로운 장비에 연결했을때의 변수 값을 비교하여 차이점을 알아낼수 있을 것이다. 예를 들어 필자의 경우는 아래와 같았다.
 +<code>
 +[Windows] - 이동사에서 지원되는 프로그램을 사용하는 장비
 +at&v
 +&C: 1; &D: 2; &F: 0; E: 0; L: 0; M: 0; Q: 0; V: 1; X: 4; Z: 0; S0: 0
 +S10: 14; S11: 95; S3: 13; S4: 10; S5: 8; S6: 2; S7: 50; S8: 2; S9: 6
 ++FCLASS: 0; +CFG: ""; +FCC: 0,1,0,0,0,0,0,0; +FIS: 0,1,0,0,0,0,0,0
 ++FIS: 0,1,0,0,0,0,0,0; +CDR: 0; +CDS: 0,1,2048,6; +CFC: 0; +CQD: 10
 ++CRC: 0; +CRM: 1; *READMT: 0; *READTI: 0; *ESMS: 1; *DELMT: 0; +CTA: 0
 ++CXT: 0; +DR: 0; +DS: 3,0,2048,6; +EB: 1,0,30; +EFCS: 1; +ER: 0
 ++ES: 3,0,2; +ESR: 1; +ETBM: 1,1,20; +FAA: 0; +FAP: 0,0,0; +FBO: 0
 ++FBU: 0; +FCQ: 1,0; +FCR: 0; +FCT: 1E; +FEA: 0; +FFC: 0,0,0,0; +FHS: 0
 ++FIE: 0; +FIP: 0; +FLI: ""; +FLO: 1; +FLP: 0; +FMS: 0; +FNR: 0,0,0,0
 ++FNS: ""; +FPA: ""; +FPI: ""; +FPP: 0; +FPR: 8; +FPS: 1; +FPW: ""
 ++FRQ: 0,0; +FRY: 0; +FSA: ""; +FSP: 0; +ICF: 3,3; +IFC: 2,2; +ILRR: 0
 ++IPR: 115200; +MA: ; +MR: 0; +MS: ; +MV18R: 0; +MV18S: 0,0,0; +CMUX: C,2
 +
 +[Linux] - 필자의 장비
 +at&v
 +&C: 1; &D: 2; &F: 0; E: 1; L: 0; M: 0; Q: 0; V: 0; X: 4; Z: 0; S0: 0
 +S10: 14; S11: 95; S3: 13; S4: 10; S5: 8; S6: 2; S7: 50; S8: 2; S9: 6
 ++FCLASS: 0; +CFG: ""; +FCC: 0,1,0,0,0,0,0,0; +FIS: 0,1,0,0,0,0,0,0
 ++FIS: 0,1,0,0,0,0,0,0; +CDR: 0; +CDS: 0,1,2048,6; +CFC: 0; +CQD: 10
 ++CRC: 0; +CRM: 1; *READMT: 0; *READTI: 0; *ESMS: 0; *DELMT: 0; +CTA: 0
 ++CXT: 0; +DR: 0; +DS: 3,0,2048,6; +EB: 1,0,30; +EFCS: 1; +ER: 0
 ++ES: 3,0,2; +ESR: 1; +ETBM: 1,1,20; +FAA: 0; +FAP: 0,0,0; +FBO: 0
 ++FBU: 0; +FCQ: 1,0; +FCR: 0; +FCT: 1E; +FEA: 0; +FFC: 0,0,0,0; +FHS: 0
 ++FIE: 0; +FIP: 0; +FLI: ""; +FLO: 1; +FLP: 0; +FMS: 0; +FNR: 0,0,0,0
 ++FNS: ""; +FPA: ""; +FPI: ""; +FPP: 0; +FPR: 8; +FPS: 1; +FPW: ""
 ++FRQ: 0,0; +FRY: 0; +FSA: ""; +FSP: 0; +ICF: 3,3; +IFC: 2,2; +ILRR: 0
 ++IPR: 115200; +MA: ; +MR: 0; +MS: ; +MV18R: 0; +MV18S: 0,0,0; +CMUX: C,2
 +</code>
 +위에서 *ESMS, E, V의 값이 차이나는 것을 알 수 있고, 이 변수들을 AT 명령어로 설정해주어야 한다.
 +
 +===== AT Command =====
 +핸드폰으로 문자메시지를 보내려면 모뎀명령어인 AT 명령어를 사용해야 하며, 관련 사이트는 다음과 같다.
 +  * http://www.zoomtel.com/techsupport/dial_up/1048pr3a.html#RTFToC47
 +  * http://www.data-com-experts.com/AT_Basic_Commands.htm
 +  * http://en.wikibooks.org/wiki/Serial_Programming:Modems_and_AT_Commands/%26_Commands#.26Q:_Communications_Mode_Options
 +  * http://www.modemhelp.net/atcommands/ampersand.shtml#Q
 +
 +===== 참고 =====
 +아래 사이트도 참고해보면 좋을 듯 하다.
 +  * http://www.wordhord.co.uk/pysms.html
 +
develop/python/tip/sendsms.1170649857.txt.gz · 마지막으로 수정됨: 2007/02/05 13:30 저자 mattabu