รับ ส่ง sms raspberry pi

รับส่ง sms ด้วย raspberry PI  ด้วย python  aircard   truemove H 3G+ HUWEI E303

 

ติดตั้งโปรแกรม gammu ครับ โดยใช้คำสั่ง

 

sudo apt-get install gammu usb-modeswitch python-gammu

gammu

กด Y ใหญ่ จนเสร็จ

 

ตรวจสอบ aircard โดยใช้คำสั่ง lsusb

lsusb

จะได้ตามรูป

lsusbHUWEI E303

 

ตั้งค่า  usb_modeswitch

sudo nano /etc/usb_modeswitch.conf

 

DefaultVendor

กด Ctr+x  กด y เพื่อ save

ตรวจสอบ USB

dmesg | grep ttyUSB*

config โปรแกรม Gammu

sudo gammu-config

gammu-config

กด enter

ttyusb0

แก้ไขเป็น ttyUSB0 ส่วนตัวอื่นๆ ไม่ได้แก้ไขอะไร

 

ทดสอบ ส่ง sms

sudo gammu sendsms TEXT +668913996xx -textutf8 “elesmile.com”

หรือจะเขียนโดยใช้ python  ถ้าเขียน ด้วย python  ให้ใส่  เครื่องหมาย \  หน้า เครื่องหมาย ”

โดยสร้าง ไฟล์ python

sudo nano testsms.py

แล้วเขียน code ตามข้างล่าง

import os

os.system(“sudo gammu sendsms TEXT +668913996xx -textutf8 \”elesmile.com\””)

กด Ctr+x แล้ว Y

จากนั้น รันโปรแกรม

 

sudo python testsms.py

 

ก็จะได้ผลตามด้านล่าง พร้อมกับ  ส่ง sms
testsentsms

 

ตัวอย่าง การเขียนรับส่ง sms ครับ

[code lang=”python”]
import gammu
import time
import os
smsCount = 0
def executeCommand(command,telnumber):
if command==’onoff’: #ถ้าส่ง sms ข้อความมาว่า onoff ให้ดำเนินการ
os.system(‘sudo python /home/pi/testrelay.py’)#ผมเขียน โปรแกรม .py มาอีกอันเพื่อไม่ให้รกแล้วไปเรียกอีกที
print "reset"
print telnumber
str= "sudo gammu sendsms TEXT "
str1= str+telnumber
str2=str1+" -textutf8 \" RESET COMPLET \""
os.system(str2)

def checkSMS():
global smsCount
status = sm.GetSMSStatus()
newSmsCount = status[‘SIMUsed’]
print "SMS count = " + str(newSmsCount)
if (newSmsCount > 0) and (newSmsCount != smsCount) :
smsCount = newSmsCount
sms = sm.GetNextSMS(Folder=0, Location=smsCount-1)
if sms[0][‘State’].lower() == ‘unread’:
command = sms[0][‘Text’].lower()
number = sms[0][‘Number’].lower()
print number
print "New command: " + command
executeCommand(command,number)
print "Done"
#____________________________________________________
sm = gammu.StateMachine()
sm.ReadConfig()
sm.Init()
os.system("sudo gammu deleteallsms 1")#เปิดเครื่องมาให้ลบ SMS
countreset = 0
while True:
print "Checking SMS"
checkSMS()
time.sleep(10)
countreset= countreset +1
if countreset > 8640: #8640 ครบ 24 ชั่วโมงให้ รีบูตตัวเอง ต้องไป setให้โปรแกรมนี้ทำงานหลับ RPI boot
os.system("sudo reboot")
[/code]

  • Categories

  • Categories