- วัสดุที่ต้องการ:
- Fly Scale SIM900 โมดูล GSM:
- ISD1820 โมดูลเสียง:
- แผนภาพวงจรและคำอธิบาย:
- การเขียนโปรแกรม Arduino ของคุณ:
- การทำงาน:
ในโลกสมัยใหม่ปัจจุบันเราทุกคนต่างพึ่งพาโทรศัพท์มือถือเป็นวิธีหลักในการสื่อสารแบบไร้สาย แต่เราทุกคนต้องเผชิญกับสถานการณ์ที่เราอาจไม่สามารถรับสายได้การโทรเหล่านี้อาจเป็นการโทรส่วนตัวที่สำคัญหรือการโทรทางธุรกิจที่เปลี่ยนแปลงชีวิตและคุณอาจพลาดโอกาสนั้นไปเพราะคุณไม่สามารถตอบได้ โทรตามเวลานั้น ๆ
นี้มีวัตถุประสงค์ของโครงการเพื่อแก้ปัญหานี้โดยการสร้างเครื่องโทรอัตโนมัติตอบโดยใช้ Arduino และ GSM โมดูล ครั้งต่อไปเมื่อคุณเปลี่ยนหมายเลขโทรศัพท์ใหม่หรือออกทริปแสวงบุญเป็นเวลานานหรือเพลิดเพลินกับวันหยุดพักผ่อนที่สมควรได้รับเพียงใช้เครื่องนี้บันทึกเสียงของคุณโดยระบุสาเหตุที่ไม่อยู่และเครื่องนี้และสายของคุณจะรับสายโดยอัตโนมัติ เสียงที่บันทึกไว้จะเล่นให้กับพวกเขา นอกจากนี้ยังสามารถใช้สำหรับหมายเลขธุรกิจของคุณเพื่อรับสายของลูกค้าในช่วงนอกเวลาทำการ ฟังดูน่าสนใจใช่มั้ย? ให้เราสร้างมัน..
วัสดุที่ต้องการ:
โครงการอาจฟังดูซับซ้อนเล็กน้อย แต่มันง่ายมากที่จะสร้างคุณเพียงแค่ต้องมีส่วนประกอบต่อไปนี้
- Arduino Uno
- โมดูล GSM - Flyscale SIM 900
- โมดูลเสียง ISD 1820
- อะแดปเตอร์ 12V เพื่อจ่ายไฟโมดูล GSM
- แบตเตอรี่ 9V เพื่อจ่ายไฟให้กับ Arduino
- การเชื่อมต่อสายไฟ
ก่อนที่เราจะดำเนินการในโครงการจริงให้เราทำความคุ้นเคยกับโมดูล GSM และโมดูลเสียง ISD 1820
Fly Scale SIM900 โมดูล GSM:
โมดูล GSM มีความน่าสนใจในการใช้งานโดยเฉพาะอย่างยิ่งเมื่อโครงการของเราต้องการการเข้าถึงระยะไกล โมดูลเหล่านี้สามารถดำเนินการทั้งหมดที่โทรศัพท์มือถือปกติของเราทำได้เช่นโทรออก / รับสายส่ง / รับ SMS เชื่อมต่ออินเทอร์เน็ตโดยใช้ GPRS เป็นต้นนอกจากนี้คุณยังสามารถเชื่อมต่อไมโครโฟนและลำโพงปกติเข้ากับโมดูลนี้และสนทนากับคุณ โทรศัพท์มือถือ ต่อไปนี้เป็นแบบฝึกหัดเกี่ยวกับการใช้ไมโครคอนโทรลเลอร์ที่แตกต่างกัน
- โทรและส่งข้อความโดยใช้ Arduino และโมดูล GSM
- โทรและส่งข้อความโดยใช้ Raspberry Pi และโมดูล GSM
- โมดูล GSM เชื่อมต่อกับไมโครคอนโทรลเลอร์ PIC - โทรออกและรับสาย
ดังที่แสดงในภาพด้านล่างโมดูล GSM มาพร้อมกับอะแดปเตอร์ USARTซึ่งสามารถเชื่อมต่อโดยตรงกับคอมพิวเตอร์โดยใช้โมดูล MAX232 หรือสามารถใช้หมุด Tx และ Rx เพื่อเชื่อมต่อกับไมโครคอนโทรลเลอร์ คุณยังสามารถสังเกตเห็นหมุดอื่น ๆ เช่น MIC +, MIC-, SP +, SP- ฯลฯ ซึ่งสามารถเชื่อมต่อไมโครโฟนหรือลำโพงได้ โมดูลสามารถขับเคลื่อนด้วยอะแดปเตอร์ 12Vผ่านแจ็ค DC บาร์เรลปกติ
ใส่ซิมการ์ดของคุณในช่องของโมดูลและเปิดเครื่องคุณจะสังเกตเห็นไฟ LED เปิด / ปิดเครื่อง ตอนนี้รอประมาณหนึ่งนาทีและคุณจะเห็นไฟ LED สีแดง (หรือสีอื่น ๆ) กะพริบทุกๆ 3 วินาที ซึ่งหมายความว่าโมดูลของคุณสามารถสร้างการเชื่อมต่อกับซิมการ์ดของคุณได้ ตอนนี้คุณสามารถดำเนินการเชื่อมต่อโมดูลของคุณกับโทรศัพท์หรือไมโครคอนโทรลเลอร์ได้
ISD1820 โมดูลเสียง:
โมดูล ISD 1820 Voice เป็นโมดูลที่ยอดเยี่ยมที่สามารถเพิ่มสีสันให้โครงการของคุณด้วยการประกาศด้วยเสียง โมดูลนี้สามารถบันทึกคลิปเสียงเป็นเวลา 10 วินาทีจากนั้นจึงเล่นเมื่อจำเป็น ตัวโมดูลมาพร้อมกับไมโครโฟนและลำโพง (8 โอห์ม 0.5 วัตต์) และควรมีลักษณะดังนี้ที่แสดงด้านล่าง
โมดูลการทำงานที่ + 5Vและสามารถขับเคลื่อนโดยใช้ berg ไม้ทางด้านซ้าย นอกจากนี้ยังมีปุ่มสามปุ่มที่ด้านล่างซึ่งเป็นปุ่ม Rec ปุ่ม PlayE. ปุ่มและ PlayL ปุ่มตามลำดับ คุณสามารถบันทึกเสียงของคุณได้โดยกดปุ่ม Rec ปุ่มและเล่นโดยใช้ปุ่ม playe PlayL จะเล่นเสียงตราบเท่าที่คุณกดปุ่มค้างไว้ เมื่อเชื่อมต่อกับ MCU เราสามารถใช้หมุดทางด้านซ้าย หมุดเหล่านี้ทนได้ 3V-5V และด้วยเหตุนี้จึงสามารถขับเคลื่อนโดยตรงโดย Arduino / ESP8266 ในโครงการของเราเรากำลังควบคุมพิน PLAYE โดยใช้พิน D8 ของโมดูล Arduino ของเรา เพื่อให้เราสามารถเล่นเสียงที่บันทึกไว้เมื่อโมดูล GSM ตรวจพบและรับสาย
แผนภาพวงจรและคำอธิบาย:
แผนภาพวงจรที่สมบูรณ์ของโครงการเครื่องตอบรับการโทรด้วยเสียงอัตโนมัตินี้แสดงไว้ข้างต้น อย่างที่คุณเห็นการเชื่อมต่อนั้นง่ายมาก เราจ่ายไฟให้โมดูล GSM ด้วยอะแดปเตอร์ 12V 1A และ Arduino พร้อมแบตเตอรี่ 9V โมดูล ISD Voice ใช้พลังงานจากพิน + 5V ของ Arduino ดังที่เราทราบดีว่าเราสามารถบันทึกอะไรก็ได้ในโมดูลเสียงของเราโดยการกดปุ่ม rec และจะเล่นเมื่อกด PE เสียงนี้จะต้องถูกส่งไปยังไมโครโฟนของโมดูล GSM ดังนั้นเราจึงเชื่อมต่อขาลำโพงของโมดูล Voice กับขาไมโครโฟนของโมดูล GSM
ที่นี่โมดูล Arduino และ GSM เชื่อมต่อแบบอนุกรมพิน Tx ของ Arduino เชื่อมต่อกับพิน 9 และขา Rx เชื่อมต่อกับพิน 10 สิ่งนี้จะช่วยให้ Arduino ฟังโมดูล GSM เมื่อมีสายเข้ามาที่โมดูล GSM Arduino จะฟังและขอให้โมดูล GSM รับสาย Arduino ตรวจสอบให้แน่ใจว่าการโทรนั้นใช้งานได้จากนั้นเล่นข้อความเสียงที่บันทึกไว้ในโมดูลเสียงโดยทำให้พิน 8 (เชื่อมต่อกับ PE ของโมดูลเสียง) สูงเป็นเวลา 200 มิลลิวินาที
การเขียนโปรแกรม Arduino ของคุณ:
เรารู้จากย่อหน้าข้างบนว่า Arduino คืออะไร ตอนนี้ให้เราดูรหัสที่เหมือนกัน รหัส Arduino สมบูรณ์ของโครงการจะได้รับที่ด้านล่างของหน้านี้ต่อไปที่นี่ผมได้ spilled รหัสลงในเรือสำเภาขนาดเล็กที่จะอธิบายได้
ก่อนที่เราจะติดตั้ง GSM Library เพิ่มเติมโปรดคลิกที่ลิงก์ Github GSM library นี้เพื่อดาวน์โหลดไลบรารีที่ใช้ในโครงการนี้ คุณจะได้ไฟล์ zip ที่ต้องเพิ่มลงในไลบรารี Arduino ของคุณโดย Sketch -> รวม Librarey -> เพิ่มไฟล์ . ZIP
สามบรรทัดแรกของโค้ดที่แสดงด้านล่างใช้เพื่อรวมไลบรารีเข้ากับโค้ดของเรา เราใช้ไลบรารีอนุกรมและไลบรารีสายเนื่องจากเราไม่ได้ใช้พิน Rx และ Tx เริ่มต้นของ Arduino เพื่อสื่อสารกับโมดูล GSM
# รวม
เราเปิดใช้งานการสื่อสารแบบอนุกรมบนพิน 9 และ 10โดยใช้บรรทัดต่อไปนี้ สิ่งนี้เกิดขึ้นได้โดยไลบรารีอนุกรมของซอฟต์แวร์ที่เรารวมไว้ข้างต้น
SoftwareSerial gprs (9,10); // TX, RX
ภายในฟังก์ชั่น การตั้งค่า ของเราเราเริ่มต้นมอนิเตอร์แบบอนุกรมที่อัตรารับส่งข้อมูล 9600 และโมดูล GSM ก็เริ่มต้นด้วย 9600 Baudrate พิน 8 ที่ทริกเกอร์เสียงจะประกาศเป็นพินเอาต์พุต
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); // Serial monitor ทำงานบน 9600 baudrate สำหรับการดีบัก sim900_init (& gprs, 9600); // โมดูล GSM ทำงานบน pinMode 9600 baudrate (8, OUTPUT); // ปักหมุดเพื่อเปิด Voice Serial.println ("Arduino - Automatic Voice Machine"); }
ต่อไปเราจะต้องสร้างฟังก์ชั่นที่สามารถอ่านและเข้าใจสิ่งที่โมดูล GSM พูดผ่านพอร์ตอนุกรม หากเราใช้บรรทัดการอ่านแบบอนุกรมง่ายๆเช่น“ gprs.read ()” เพื่ออ่านข้อความเราจะได้รับมันในรูปของค่าทศนิยม ASCII สิ่งนี้จะไม่สมเหตุสมผลสำหรับเรา
ดังนั้นฟังก์ชันต่อไปนี้จึงถูกใช้เพื่อแปลงค่าทศนิยมเหล่านี้เป็นสตริงโดยใช้สตริงอ็อบเจ็กต์จากนั้นเชื่อมต่อเข้าด้วยกันเพื่อสร้างสตริง ค่าสตริงสุดท้ายจะถูกเก็บไว้ในตัวแปร Fdata ซึ่งเป็น สตริง ประเภทและสามารถใช้เพื่อเปรียบเทียบกับค่าสตริงใดก็ได้
เป็นโมฆะ check_Incoming () {if (gprs.available ()) // หาก GSM กำลังพูดอะไรบางอย่าง {Incomingch = gprs.read (); // ฟังและเก็บไว้ในตัวแปรนี้ if (Incomingch == 10 - Incomingch == 13) // ถ้ามันบอกว่า space (10) หรือ Newline (13) แปลว่ามันได้คำเดียวเสร็จแล้ว {Serial.println (data); Fdata = ข้อมูล; ข้อมูล = ""; } // พิมพ์คำและล้างตัวแปรเพื่อเริ่มต้นใหม่ {String newchar = String (char (Incomingch)); // แปลงถ่านเป็นสตริงโดยใช้ออบเจ็กต์สตริง data = data + newchar; // หลังจากแปลงเป็นสตริงให้ทำการต่อสายอักขระ}}}
บรรทัดต่อไปนี้จะใช้สำหรับการแก้จุดบกพร่องที่มีเส้นดีบักเหล่านี้คุณสามารถส่งคำสั่ง AT ใด ๆ จากการตรวจสอบอนุกรมของ Arduino เพื่อ GSM และยังเห็นว่าอะไรคือการตอบสนองบนจอภาพแบบอนุกรม
if (Serial.available ()) {// ใช้สำหรับการดีบัก gprs.write (Serial.read ()); // ใช้สำหรับการดีบัก} // ใช้สำหรับการดีบัก
ตามที่กล่าวไว้ก่อนหน้านี้ Arduino ต้องตรวจสอบว่าโมดูล GSM รับสายหรือไม่ สามารถทำได้โดยการทำให้ Arduino ตรวจสอบ“ RING ” เนื่องจากโมดูล GSM จะส่งสัญญาณออก RING ในกรณีที่มีการโทรตามรายการคำสั่ง AT เมื่อพบสายจะรอ 5 วินาทีและส่งคำสั่ง“ ATA ” ไปยังโมดูล GSM สิ่งนี้จะทำให้โมดูล GSM รับสายและหลังจากรับสายจะตอบสนองด้วย“ ตกลง” Arduino รอการตอบรับ“ ตกลง ” อีกครั้งจากนั้นเปลี่ยน Pin 8 ให้สูงเป็นเวลา 200ms เพื่อเล่นเสียงที่บันทึกจากโมดูลเสียง
if (Fdata == "RING") // หากโมดูล GSM ระบุว่า RING {delay (5000); // รอ 5 วินาทีเพื่อสร้างการหน่วงเวลา 3 วงแหวน gprs.write ("ATA \ r \ n"); // รับสาย Serial.println ("Placed received"); // ใช้สำหรับการดีบัก while (Fdata! = "OK") // จนกว่าจะรับสายสำเร็จ {check_Incoming (); // อ่านว่า GSM modue พูดว่า Serial.println ("Playing Recorded message"); // ใช้สำหรับการดีบัก // เล่นการหน่วงเวลาข้อความเสียงที่เรียกคืน (500); digitalWrite (8, สูง); // ไปดีเลย์สูง (200); // รอ 200 msec digitalWrite (8, LOW); // ไปต่ำ}
การทำงาน:
เมื่อโค้ดและฮาร์ดแวร์ของคุณพร้อมแล้วก็ถึงเวลาสนุกกันแล้ว เปิดโมดูลทั้งสองและกดปุ่ม REC บนโมดูลเสียงและบันทึกข้อความ ข้อความนี้มีความยาว 10 วินาทีเท่านั้น
ตอนนี้ตั้งโปรแกรม Arduino ของคุณโดยใช้รหัสที่กำหนดด้านล่างและใส่ซิมคาร์ในโมดูล GSM คุณควรรออย่างน้อย 2 นาทีเพื่อให้โมดูล GSM สามารถสร้างการเชื่อมต่อกับผู้ให้บริการเครือข่ายของคุณ เมื่อเสร็จแล้วคุณจะเห็นไฟ LED สีแดงกะพริบทุกๆ 3 วินาทีซึ่งแสดงว่าซิมของคุณพร้อมที่จะรับสาย ตอนนี้คุณสามารถลองโทรไปยังซิมการ์ดนี้จากหมายเลขใดก็ได้และคุณจะได้ยินข้อความที่บันทึกไว้หลังจากดังต่อเนื่องสามครั้ง การทำงานที่สมบูรณ์แบบของโครงการจะแสดงในวิดีโอด้านล่าง
ทาดาาาาาาา !!! ตอนนี้คุณมีเครื่องตอบรับการโทรด้วยเสียงอัตโนมัติของคุณเองและใช้งานได้เมื่อจำเป็นและทำให้เพื่อนและครอบครัวของคุณประหลาดใจ
หวังว่าคุณจะสนุกกับโครงการและสร้างสิ่งที่คล้ายกันหากคุณมีปัญหาใด ๆ โพสต์ไว้ในส่วนความคิดเห็นและเราจะช่วยคุณ