Gửi tin nhắn qua GSM module bằng Python

Chào các bạn,
Mình đã code một tool gửi tin nhắn bằng Python qua GSM module đã lâu rồi. Hôm nay đưa lên đây để các bạn có thể tham khảo và đóng góp thêm giúp mình. Tool được chia làm hai phần, phần gửi tin nhắn qua GSM module và đọc số điện thoại từ file excel.

import serial
import time
import xlrd
import re

 
def sendsms(to, message):
  print("Connecting phone")

  
  ser = serial.Serial('COM8', 9600, timeout=5)# Cổng COM phụ thuộc kết nối của bạn với GSM modem
  time.sleep(1)
  ser.write('ATZ\r'.encode(encoding='utf_8', errors='strict'))
  me1 = ser.read(64)
  print(me1)
  time.sleep(1)
  
  ser.write('AT+CMGF=1\r'.encode(encoding='utf_8', errors='strict'))
  me2 = ser.read(64)
  print(me2)
  time.sleep(1)
  m1 = '''AT+CMGS="''' + to + '''"\r'''
  ser.write(m1.encode())
  me3 = ser.read(64)
  print(me3)
  time.sleep(1)
  m2 = message + "\r"
  ser.write(m2.encode())
  me4 = ser.read(64)
  print(me4)
  time.sleep(1)
  ser.write(b'\x1a')
  me5 = ser.read(64)
  print(me5)
  time.sleep(1)
  
  print("disconnecting")

  ser.close()

print("Filling and Sending msg")
#sendsms("0912345678","SMS sent using AT command through Python")

path = "sms.xlsx"# File chứa số điện thoại
book = xlrd.open_workbook(path)
 
worksheet = book.sheet_by_index(0)
first_row = [] # The row where we stock the name of the column
m = '' 
        
for i in range(1,5):
    for col in range(worksheet.ncols):
        first_row.append( worksheet.cell_value(i,col))

    m =   str(first_row[1])  
    num = re.sub(r'\..*$', "", m)
    if(num[0] != '0'):
        num = '0' + num
    print(num)
    message = "Xin chao " + first_row[0] + " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Xin cam on."
    # Gửi tin nhắn cho từng số điện thoại
    sendsms(num, message)
    first_row = []
    time.sleep(1)
2 Likes

Chào bạn!
Mình k biết GSM module đấy dùng thế nào, nhưng thấy bạn làm hay hay nên mình có thử tìm kiếm và thấy có thư viện pyairmore cho phép gửi sms trên điện thoại android cũng hay. Sao bạn lại chọn dùng GSM thế? Mình cũng chưa rõ ưu điểm với nhược điểm của 2 cái này, mong được bạn giải đáp. :smiley:

1 Like

Chào bạn,
Mục đích của người thuê mình yêu cầu là làm trên máy tính nên dùng GSM module và có phần nữa đọc list số điện thoại từ file text nào đấy. Thường tùy theo yêu cầu mình tìm giải pháp cho yêu cầu bạn ạ.
Cái lib pyairmore mình không biết bạn có thể viết một bài hướng dẫn mọi người được không? Cám ơn bạn.

1 Like

À ra vậy, vì mình thấy trong trang fb các bạn nói về mấy cái modem nên mình tưởng bạn làm IOT nên muốn học hỏi thêm. Nay mình mới thamm gia nên chưa biết nhiều, thấy của bạn hay hay nên mình hỏi thêm thôi. Chắc nếu rảnh mình sẽ viết, nhưng mình thấy nó cũng dễ nên chắc mọi người cũng tìm hiểu được. :smiley:

1 Like

IOT là vấn đề rộng quá bạn cái của mình chưa chắc đã đụng đến phần đấy. Mỗi người có một chuyên môn riêng không ai biết tất cả cả bạn ạ. Cái của mình cũng đơn giản thôi nhưng muốn mọi người biết được cái làm rồi được kiểm chứng và đã chạy. Nếu có yêu cầu phức tạp hơn thì sẽ đỡ phải tìm kiếm.

À không, ý mình là cái thư viện pyairmore kia cũng dễ nên mình k muốn viết hướng dẫn ấy. Còn cái IOT kia thì đúng là rộng thật. Mình cũng muốn học hỏi thêm nhưng chưa có điều kiện đầu tư thiết bị :smiley: Thế cái GSM mà bạn nói trong bài là cái gì thế bạn.

1 Like

Mình có giải thích GSM trong group rồi mà bạn nói ngắn gọn là mình dùng cái này.

2 Likes

À. Do trong group mình đọc lướt qua, tưởng nó là IOT nên mình k đọc kỹ. :smiley: Thanks bạn!

1 Like