- Vật liệu thiết yếu:
- Mô-đun GSM SIM900 Fly Scale:
- ISD1820 Mô-đun thoại:
- Sơ đồ mạch và giải thích:
- Lập trình Arduino của bạn:
- Đang làm việc:
Trong thế giới hiện đại ngày nay, tất cả chúng ta đều phụ thuộc vào điện thoại di động như một phương tiện giao tiếp không dây chính. Tuy nhiên, tất cả chúng ta đều phải đối mặt với những tình huống mà chúng ta có thể không thể trả lời cuộc gọi của mình, những cuộc gọi này có thể là cuộc gọi cá nhân quan trọng hoặc cuộc gọi kinh doanh thay đổi cuộc sống và bạn có thể đã bỏ lỡ cơ hội đó vì bạn không thể trả lời gọi vào thời điểm cụ thể đó.
Dự án này nhằm giải quyết vấn đề này bằng cách tạo ra Máy trả lời cuộc gọi tự động bằng cách sử dụng mô-đun Arduino và GSM. Lần tới khi bạn thay đổi một số điện thoại mới hoặc đi một chuyến hành hương dài ngày hoặc tận hưởng một kỳ nghỉ xứng đáng, chỉ cần sử dụng máy này để ghi âm giọng nói của bạn nêu lý do vắng mặt và tất cả các cuộc gọi của bạn sẽ được máy này trả lời tự động và của bạn giọng nói đã ghi sẽ được phát cho họ. Điều này cũng có thể được sử dụng cho các số doanh nghiệp của bạn để trả lời các cuộc gọi của khách hàng trong giờ không phải giờ hành chính. Nghe thật thú vị phải không? Vì vậy, hãy để chúng tôi xây dựng nó..
Vật liệu thiết yếu:
Dự án nghe có vẻ hơi phức tạp nhưng nó thực sự rất dễ xây dựng, bạn chỉ cần các thành phần sau
- Arduino Uno
- Mô-đun GSM - Flyscale SIM 900
- Mô-đun thoại ISD 1820
- Bộ chuyển đổi 12V để cấp nguồn cho mô-đun GSM
- Pin 9V để cấp nguồn cho Arduino
- Kết nối dây
Trước khi thực sự tiến hành dự án, chúng ta hãy làm quen với mô-đun GSM và Mô-đun thoại ISD 1820
Mô-đun GSM SIM900 Fly Scale:
Mô-đun GSM rất hấp dẫn để sử dụng đặc biệt khi dự án của chúng tôi yêu cầu truy cập từ xa. Các mô-đun này có thể thực hiện tất cả các hành động mà điện thoại di động thông thường của chúng ta có thể thực hiện, như thực hiện / nhận cuộc gọi, gửi / nhận SMS, kết nối Internet bằng GPRS, v.v. Bạn cũng có thể kết nối micrô và loa thông thường với mô-đun này và trò chuyện trên cuộc gọi di động. Dưới đây là một số hướng dẫn về chúng bằng cách sử dụng vi điều khiển khác nhau:
- Gọi và Nhắn tin bằng Arduino và Mô-đun GSM
- Gọi và Nhắn tin bằng Raspberry Pi và Mô-đun GSM
- Mô-đun GSM Giao tiếp với Vi điều khiển PIC - Thực hiện và Nhận cuộc gọi
Như hình dưới đây, mô-đun GSM đi kèm với bộ điều hợp USART có thể được giao tiếp trực tiếp với máy tính bằng cách sử dụng mô-đun MAX232 hoặc các chân Tx và Rx có thể được sử dụng để kết nối nó với một Bộ vi điều khiển. Bạn cũng có thể nhận thấy các chân khác như MIC +, MIC-, SP +, SP- vv nơi có thể kết nối micrô hoặc Loa. Các mô-đun có thể được cung cấp bởi một adapter 12V thông qua một jack cắm thùng DC bình thường.
Lắp thẻ SIM vào khe của mô-đun và bật nguồn, bạn sẽ thấy đèn LED nguồn BẬT. Bây giờ, hãy đợi khoảng một phút và bạn sẽ thấy đèn LED màu đỏ (hoặc bất kỳ màu nào khác) nhấp nháy một lần sau mỗi 3 giây. Điều này có nghĩa là Mô-đun của bạn có thể thiết lập kết nối với thẻ SIM của bạn. Bây giờ bạn có thể tiến hành kết nối mô-đun của mình với Điện thoại hoặc bất kỳ Vi điều khiển nào.
ISD1820 Mô-đun thoại:
Mô-đun Thoại ISD 1820 thực sự là một mô-đun thú vị có thể thêm gia vị cho các Dự án của bạn bằng thông báo bằng Giọng nói. Mô-đun này có khả năng ghi một đoạn Audio trong 10 giây và sau đó phát nó khi được yêu cầu. Bản thân mô-đun đi kèm với một micrô và một loa (8ohms 0,5watts) và nó sẽ trông giống như hình bên dưới.
Các mô-đun hoạt động trên + 5V và có thể được cung cấp bằng cách sử dụng gậy berg bên trái. Nó cũng có ba nút ở dưới cùng là Rec. nút PlayE. và PlayL. nút tương ứng. Bạn có thể ghi âm giọng nói của mình bằng cách nhấn Rec. và phát nó bằng nút PlayE. PlayL sẽ phát giọng nói miễn là bạn giữ nút. Khi giao tiếp với MCU, chúng ta có thể sử dụng các chân ở bên trái. Các chân này có thể chịu được 3V-5V và do đó có thể được điều khiển trực tiếp bởi Arduino / ESP8266. Trong dự án của chúng tôi, chúng tôi đang điều khiển chân PLAYE bằng cách sử dụng chân D8 của mô-đun Arduino của chúng tôi. Để chúng ta có thể phát giọng nói đã ghi khi mô-đun GSM phát hiện và nhận cuộc gọi.
Sơ đồ mạch và giải thích:
Sơ đồ mạch hoàn chỉnh của dự án Máy trả lời cuộc gọi thoại tự động này được đưa ra ở trên. Như bạn có thể thấy các kết nối thực sự đơn giản. Chúng tôi cấp nguồn cho mô-đun GSM bằng bộ chuyển đổi 12V 1A và Arduino bằng pin 9V, mô-đun ISD Voice được cấp nguồn bằng chân + 5V của Arduino. Như chúng ta biết, chúng ta có thể ghi bất cứ thứ gì trên mô-đun giọng nói của mình bằng cách nhấn nút rec và điều này sẽ được phát khi nhấn PE, âm thanh này phải được gửi đến micrô của mô-đun GSM. Vì vậy, chúng tôi kết nối chân loa của mô-đun Thoại với chân micrô của mô-đun GSM.
Ở đây, mô-đun Arduino và GSM được kết nối nối tiếp, chân Tx của Arduino được kết nối với chân 9 và chân Rx được kết nối với chân 10. Điều này sẽ giúp Arduino lắng nghe mô-đun GSM. Khi có cuộc gọi đến mô-đun GSM, Arduino sẽ lắng nghe cuộc gọi đó và yêu cầu mô-đun GSM trả lời cuộc gọi. Arduino đảm bảo rằng cuộc gọi đang hoạt động và sau đó phát tin nhắn thoại đã ghi trên mô-đun thoại bằng cách làm cho chân 8 (Được kết nối với PE của mô-đun thoại) tăng cao trong 200ms.
Lập trình Arduino của bạn:
Qua đoạn trên chúng ta đã biết vai trò của Arduino ở đây là gì; bây giờ chúng ta hãy xem mã mà làm tương tự. Các mã hoàn chỉnh Arduino của dự án được đưa ra ở dưới cùng của trang này, hơn nữa ở đây tôi đã đổ mã vào chiếc thuyền nhỏ để giải thích nó.
Trước khi chúng tôi cài đặt thêm Thư viện GSM, vui lòng nhấp vào liên kết thư viện Github GSM này để tải xuống thư viện được sử dụng trong dự án này. Bạn sẽ nhận được một tệp zip phải được thêm vào thư viện Arduino của bạn bằng Sketch -> Bao gồm Librarey -> Thêm tệp.Zip .
Ba dòng đầu tiên của mã được hiển thị bên dưới được sử dụng để đưa thư viện vào mã của chúng tôi. Chúng tôi sử dụng thư viện nối tiếp và thư viện dây vì chúng tôi không sử dụng các chân Rx và Tx mặc định của Arduino để giao tiếp với mô-đun GSM.
#include
Chúng tôi kích hoạt giao tiếp nối tiếp trên chân 9 và 10 bằng cách sử dụng dòng sau. Điều này được thực hiện nhờ thư viện nối tiếp phần mềm mà chúng tôi đã đưa vào ở trên.
SoftwareSerial gprs (9,10); // TX, RX
Bên trong chức năng thiết lập của chúng tôi, chúng tôi khởi tạo màn hình nối tiếp ở tốc độ 9600 baud và mô-đun GSM cũng được khởi tạo với 9600 Baudrate. Chân 8 kích hoạt giọng nói được khai báo là chân đầu ra.
void setup () {Serial.begin (9600); // Màn hình nối tiếp hoạt động trên 9600 baudrate để gỡ lỗi sim900_init (& gprs, 9600); // Mô-đun GSM hoạt động trên pinMode 9600 baudrate (8, OUTPUT); // ghim để bật Voice Serial.println ("Arduino - Máy thoại tự động"); }
Tiếp theo, chúng ta phải tạo một chức năng có thể đọc và hiểu mô-đun GSM đang nói gì thông qua cổng Serial của nó. Nếu chúng tôi sử dụng dòng đọc nối tiếp đơn giản như “gprs.read ()” để đọc thông báo, chúng tôi sẽ nhận được chúng ở dạng giá trị thập phân ASCII, điều này sẽ không có ý nghĩa gì đối với chúng tôi.
Vì vậy, hàm sau đây được sử dụng để chuyển đổi các giá trị thập phân này thành chuỗi bằng cách sử dụng các đối tượng chuỗi và sau đó nối chúng để tạo thành một chuỗi. Giá trị chuỗi cuối cùng được lưu trữ trong biến Fdata , thuộc loại chuỗi ký tự và có thể được sử dụng để so sánh với bất kỳ giá trị Chuỗi nào.
void check_Incoming () {if (gprs.available ()) // Nếu GSM đang nói điều gì đó {Incomingch = gprs.read (); // Nghe nó và lưu trữ trong biến này if (Incomingch == 10 - Incomingch == 13) // Nếu nó cho biết dấu cách (10) hoặc Newline (13) thì có nghĩa là nó đã hoàn thành một từ {Serial.println (data); Fdata = dữ liệu; dữ liệu = ""; } // In từ và xóa biến để bắt đầu làm mới else {String newchar = String (char (Incomingch)); // chuyển đổi char thành chuỗi bằng cách sử dụng đối tượng chuỗi data = data + newchar; // Sau khi chuyển đổi thành chuỗi, hãy thực hiện nối chuỗi}}}
Các dòng sau được sử dụng để gỡ lỗi, với các dòng gỡ lỗi này, bạn có thể gửi bất kỳ lệnh AT nào từ bộ theo dõi nối tiếp của Arduino đến GSM và cũng có thể xem phản hồi trên bộ theo dõi nối tiếp là gì.
if (Serial.available ()) {// Dùng để gỡ lỗi gprs.write (Serial.read ()); // Dùng để gỡ lỗi} // Dùng để gỡ lỗi
Như đã nói trước đó, Arduino phải kiểm tra xem mô-đun GSM có nhận bất kỳ cuộc gọi nào không. Điều này có thể được thực hiện bằng cách làm cho Arduino kiểm tra “ RING ” vì mô-đun GSM sẽ xuất ra RING trong trường hợp có cuộc gọi theo danh sách lệnh AT. Khi tìm thấy cuộc gọi, nó sẽ đợi trong 5 giây và gửi lệnh “ ATA ” đến mô-đun GSM, điều này sẽ làm cho mô-đun GSM trả lời cuộc gọi và sau khi trả lời, nó sẽ trả lời bằng “OK”. Arduino lại đợi xác nhận “ OK ” và sau đó vặn chân 8 ở mức cao trong 200ms để phát giọng nói đã ghi từ mô-đun giọng nói.
if (Fdata == "RING") // Nếu mô-đun GSM thông báo RING {delay (5000); // đợi 5sec tạo trễ 3 chuông. gprs.write ("ATA \ r \ n"); // Trả lời cuộc gọi Serial.println ("Đã nhận được đặt"); // Dùng để gỡ lỗi while (Fdata! = "OK") // Cho đến khi trả lời thành công cuộc gọi {check_Incoming (); // Đọc những gì chế độ GSM đang nói Serial.println ("Đang phát tin nhắn đã ghi"); // Được sử dụng để gỡ lỗi // Phát độ trễ tin nhắn thoại đã lưu trữ (500); digitalWrite (8, CAO); // Đi đến độ trễ cao (200); // đợi 200 msec digitalWrite (8, LOW); // Đi xuống thấp}
Đang làm việc:
Khi mã và phần cứng của bạn đã sẵn sàng, đây là lúc để vui chơi. Bật nguồn cho cả hai mô-đun và nhấn nút GHI trên mô-đun Thoại và ghi lại tin nhắn. Tin nhắn này chỉ có thể dài 10 giây.
Bây giờ hãy lập trình Arduino của bạn bằng cách sử dụng mã dưới đây và lắp SIM ô tô vào mô-đun GSM, bạn nên đợi ít nhất 2 phút bây giờ để mô-đun GSM có thể thiết lập kết nối với nhà cung cấp dịch vụ mạng của bạn. Sau khi hoàn tất, bạn sẽ thấy đèn LED màu đỏ nhấp nháy một lần sau mỗi 3 giây, điều này cho thấy SIM của bạn đã sẵn sàng nhận cuộc gọi. Bây giờ bạn có thể thử gọi đến thẻ SIM này từ bất kỳ số nào và bạn sẽ nghe thấy tin nhắn đã ghi sau ba lần đổ chuông liên tục. Toàn bộ hoạt động của dự án được hiển thị trong video dưới đây.
Tadaaaaaa !!! Giờ đây, bạn đã có Máy trả lời cuộc gọi thoại tự động của riêng mình và chỉ cần tiếp tục và sử dụng nó khi được yêu cầu và khiến bạn bè và gia đình ngạc nhiên với nó.
Hy vọng bạn thích dự án và xây dựng một cái gì đó tương tự, Nếu bạn gặp bất kỳ khó khăn nào, hãy đăng chúng trên phần bình luận và tôi sẽ giúp bạn.