วันพุธที่ 22 กุมภาพันธ์ พ.ศ. 2560

บอร์ด SIM900 Module ส่ง sms โทรออก รับสาย

 บอร์ด SIM900 Module ส่ง sms โทรออก รับสาย 

 การทำให้ Arduino มีความสามารถเหมือนโทรศัพท์ ที่สามารถโทรเข้า/โทรออก รับสาย/วางสาย ส่ง SMS ส่งคำสัง ussd เชื่อมต่ออินเตอร์เน็ต หรือทำงานต่าง ๆ ได้เหมือนโทรศัพท์มือถือ เราสามารถเพิ่มความสามารถโทรศัพท์มือถือนี้ลงไปให้กับ Arduino ได้ง่าย ๆ เพียงแค่เสียบหรือต่อ SIM Module ลงไป
บทความนี้ช้งาน SIM900 Shield Module แบบที่เป็นบอร์ด Shield สำหรับ Arduino เพียงเสียบลงไปก็สามารถใช้ความสามารถได้เหมือนโทรศัพท์มือถือแล้ว
SIM900 Module นี้สามารถติดต่อกับ Arduino ได้ผ่านทาง อินเตอร์เฟส UART หรือทางขา RX , TX ใช้สาญญาณ 2 เส้น โดยคำสั่งที่ติดต่อเรียกว่าคำสั่ง AT Command โดยในขั้นแรกเราจะมาลองเล่นกับ AT Command กันก่อน
หมายเหตุ :
  • การใช้งานบอร์ดจะมีขาจัมเปอร์ให้เซตว่าจะเลือก RX , TX เป็นขาอะไร ในกรณีนี้เราใช้ไลบารี SIM900 ซึ่งขา RX , TX จะเป็นขา 2 และ 3 ตามโปรแกรมในไลบารีที่เซตไว้ ซึ่งเราสามารถเลือกขาใหม่ตามโปรแกรมที่เราเขียนเองได้
  • ไฟที่ SIM900 ใช้บางครั้งมากกว่าไฟที่บอร์ด Arduino ที่ใช้ไฟจาก usb จะจ่ายได้ จึงต้องเสียบไฟเพิ่มเข้าบอร์ดด้วย

แบบที่ 1 . ทดสอบใช้คำสั่งงาน SIM900 ผ่านทาง AT Command
Arduino มีไลบารีสำหรับติดต่อ SIM900 Module พร้อมให้เราเรียกใช้งานแล้ว โดยดาวน์โหลดได้จากที่นี่ ดาวน์โหล ไลบารี SIM900 Arduino  เมื่อติดตั้งเสร็จแล้ว ลองทดสอบโปรแกรมตัวอย่าง GSM_GPRSLibrary_AT.inoจากนั้นเปิด Serial Monitor ขึ้นมา จะเห็นข้อความที่บอร์ด Arduino ติดต่อกับ GSM SIM900 Module ในลักษณะของ AT Command เราสามารถทดลองส่งคำสั่ง AT Command ได้ โดยการพิมพ์ AT แล้วกด Enter ก็จะมีผลตอบกลับ OK จาก SIM900 Module ซึ่งทุกคำสั่งที่ติดต่อกับ SIM900 จะเป็นคำสั่ง AT Command ทั้งหมด
เรามาลองเล่นคำสั่ง AT Command กัน
1. คำสั่งเช็คเครือข่ายที่ SIM900 ใช้อยู่ พิมพ์ AT+COPS? แล้ว enter SIM900 ก็จะตอบเครื่อข่ายที่กำลังเชื่อมอยู่ของผมเป็น dtac ขึ้นแบบนี้แสดงว่าเชื่อมต่อกับเครือข่ายได้แล้ว

+COPS: 0,0,"TH-DTAC"
OK
2. เมื่อเชื่อมต่อกับเครือข่ายมือถือได้แล้ว เราก็สามารถสั่งการมือถือให้โทรออก / รับสาย / วางสายได้ เราลองมาโทรออกกันดู โดยใช้คำสั่ง ATDเบอร์โทร; เช่นโทรไปเบอร์ 0854545454 พิมพ์คำสั่งดังนี้
atd0854545454 ;
OK
3. ต่อมาเราลองโทรเข้ามาที่เบอร์ใน SIM900 ก็จะพบว่า มีคำว่า RING และโชว์เบอร์ที่โทรเข้ามาด้วย ถ้าต้องการกดวางสายก็พิมพ์ ATH
RING
+CLIP: "0854545454",129,"",,"",0
ATH
OK
4. การส่ง SMS แบบง่าย ๆ ผ่านทาง AT command ทำได้โดยใช้หลาย ๆ คำสั่งประกอบกัน
  • พิมพ์ AT+CMGF=1 แล้ว Enter เพื่อเซตค่าเป็นแบบ SIMPLE TEXT MODE ในโหมดนี้สามารถส่งข้อความเป็นภาษาอังกฤษเท่านั้น
  • พิมพ์ AT+CMGS="0854545454" แล้ว Enter เพื่อเซตเบอร์ที่ต้องการจะส่ง
  • จะเห็น > แสดงรอให้พิมพ์ ้ข้อความภาษาอังกฤที่ต้องการส่งแล้ว ctrl +Z เพื่อให้ SIM900 ส่ง SMS ในกรณีนี้ Serial Monitor ส่ง Ctrl+Z ไม่ได้ อาจต้องใช้โปรแกรมอื่นเช่น Tera Term
มีคำสั่ง AT Command ให้เราได้เรียกใช้งานอีกมากมาย คลิกที่คู่มือ SIM900

แบบที่ 2 ทดสอบใช้คำสั่งงาน SIM900 ผ่านทาง ไลบารี SIM900
ไลบารี SIM900 ได้รวบรวมกลุ่มคำสั่ง AT Command ในการสั่งงาน SIM900 ให้เราใช้งานสะดวกขึ้นไม่ต้องพิมพ์ AT Command หลาย ๆ คำสั่งเอง เรามาดูตัวอย่างการส่ง SMS จากตัวอย่าง GSM_GPRSLibrary_SMS.ino สั่งเกตที่คำสั่งนี้
sms.SendSMS("3471234567", "Arduino SMS");
เพียงบรรทัดเดียวก็สามารถส่ง sms ไปยังเบอร์ที่ต้องการได้แล้ว

แบบที่ 3 ทดสอบโดยใช้โปรแกรมบนเครื่องคอม
SIM900 นี้ติดต่อแบบ UART แน่นอนว่าสามารถสื่อสารผ่านทางการเขียนโปรแกรมเช่น Visual Basic หรือ C# ทาง Serial Port ได้ โดยการ เลื่อนจัมเปอร์ Rx ไปที่ ขา 0 และจัมเบอรื TX ไปที่ขา 1 ของบอร์ด SIM900 ดาวน์โหลดโปรแกรมตัวอย่างทดสอบ SIM900 คลิกทีนี่
ถอด SIM900 Shield ออกก่อน จากนั้นอัพโปรแกรม ไฟกระพริบ Blink ลงไปเพื่อให้แน่ใจว่าขา 0 กับขา 1 ของ Arduino ไม่ได้ถูกใช้งาน เพราะเราจะใช้งาน 2 ขานี้ จากนั้นเสียบ SIM900 ลงไปคืน เพียงเท่านี้เราก็สามารถเขียนโปรแกรมติดต่อ SIM900 ผ่านทางเครื่องคอมพิวเตอรืด้แล้ว ดาวน์โหลดโปรแกรมทดสอบ SIM900 จากนั้นเลือก Baud Rate เป็น 9600 กด Open จากนั้นทดสอบคำสั่งต่าง ๆ ได้เลย โปรแกรมนี้เขียนโดย C#
ดาวน์โหลดไลบารี .Net SDK ตัวอย่างจากเว็บนี้ http://www.logiccodesoft.com/lcgsmsms.aspx

ตัวอย่างการใช้งาน  Arduino บอร์ด SIM900 Module เพิ่มเติม
โทรเข้าแล้วกดปุ่มสั่งงาน Arduino จากระยะไกล ด้วยการใช้งานฟังก์ชัน DTMF AT Command
โมดูล sim900 รุ่นนี้รองรับการใช้งาน คำสั่ง DTMF ทำให้เมื่อรับสายแล้ว สามารถเช็คได้ว่าผู้ใช้กดปุ่มอะไรเข้ามา เพื่อที่จะนำค่าปุ่มกด มาควบคุมอุปกรณ์ที่เราต้องการ ตัวอย่างในคลิปนี้จะเอาไปใช้เปิด/ปิดไฟ ผ่านโทรศัพท์มือถือ

วิธีการเปิดใช้งาน ง่าย ๆ เข้าไปพิมพ์คำสั่ง AT command ดังนี้
AT+DDET=1 จะได้รับตอบกลับเป็น OK เท่านี้ก็ใช้งานได้แล้ว คราวนี้ พอมีคนโทรเข้ามา เมื่อรับสายแล้ว คนโทรเข้ากดเลขอะไร ก็จะไปแสดงใน arduino ของเรา ได้แล้ว
 *** หมายเหตุ ฟังก์ชัน DTMF ไม่ใช่ทุกรุ่นของ SIM900 จะทำได้ ขึ้นอยู่กับ Firmware ของบอร์ดแต่ละตัว สำหรับรุ่นนี้รองรับคำสั่ง DTMF

ข้อมูลอุปกรณ์ GSM SIM Module เพิ่มเติม


*** บอร์ดนี้รองรับ SIM 2G ต้องใช้ SIM 2G ด้วย แนะนำ SIM DTAC ซิมคงกระพันครับ ***

ไม่มีความคิดเห็น:

แสดงความคิดเห็น