«

»

ธ.ค. 19

รับ ส่ง 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 ครับ

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")


  • %d bloggers like this: