Chúng tôi điều khiển ổ cắm qua SMS. Báo động GSM ngân sách với bộ não Arduino

Một bài viết dành cho những ai muốn buộc Arduino gửi SMS thông qua điều này mô-đun GSM . Mô-đun NEOWAY M590 dựa trên chip SIM900 phù hợp để tạo hệ thống báo động tự chế, nhà thông minh. Ngoài ra còn có một mô-đun GSM thay thế kết nối trực tiếp với Arduino qua 5 Volts: Sim800L EVB v2.0

Xây dựng vấn đề

  • Chỉ sử dụng Arduino và mô-đun GSM, điều khiển đèn LED thông qua cuộc gọi từ điện thoại của bạn.
  • Gửi SMS (trong khi thông qua lệnh đến qua trình giám sát cổng trong Arduino IDE)

Kết nối với Arduino

Chúng tôi kết nối mô-đun GSM với Arduino.
Mô-đun 5V -> Arduino 5V
Mô-đun GND -> Arduino GND
Mô-đun TX -> Arduino pin2 kỹ thuật số
Mô-đun RX -> Arduino pin3 kỹ thuật số
Sơ đồ chân có thể được nhìn thấy trong ảnh. Thứ tự các tiếp điểm như sau: 1 - +5V, 2 - GND, 7 - TX, 8 - RX.


Mô-đun này có thể được cấp nguồn từ 4V đến 5V, tôi đã sử dụng đầu ra 5 volt.

Mô-đun này yêu cầu nguồn điện riêng vì nó tiêu thụ tới 2A lúc cao điểm. Một tụ điện rất có thể sẽ không giúp ích gì. Vì vậy, khi được cấp nguồn bằng Arduino, nó có thể không hoạt động hoặc có thể bị lỗi.

Phải kết nối mặt đất của Arduino và mô-đun GSM với nguồn điện riêng biệt, nhưng trước tiên, bạn cần đo điện áp giữa các “mặt đất” này bằng đồng hồ vạn năng. Một số khối máy tính Các bộ nguồn có điện áp rơi trên vỏ và nối đất USB lên tới 100V. Dòng điện ở đó rất nhỏ và không thể tiêu diệt được, nhưng rất dễ phá hủy một Arduino hoặc một mô-đun GSM hoặc cả hai cùng nhau.

phác thảo

#bao gồm< Phần mềm nối tiếp. h> Phần mềm nối tiếp mySerial(2, 3); // RX, TX int ch = 0 ; int led = 13 ; Chuỗi giá trị = ""; thiết lập void() (
độ trễ (2000); // thời gian khởi tạo mô-đun pinMode (led, OUTPUT); digitalWrite(led, THẤP); nối tiếp. bắt đầu (9600); // tốc độ cổng nối tiếp. println ("Trình kiểm tra GSM v1.0" ); mySerial. bắt đầu (9600); mySerial. println ("AT+CLIP=1" ); //bật độ trễ ID người gọi (100); mySerial. println ("AT+CMGF=1" ); //Chế độ mã hóa SMS - bình thường (đối với tiếng Anh)độ trễ (100); mySerial. println("AT+CSCS=\"GSM\"" ) ; //chế độ mã hóa văn bảnđộ trễ (100); ) void loop () ( if (mySerial . available () ) ( // nếu mô-đun GSM gửi cho chúng tôi thứ gì đó thì while (mySerial.available()) ( // lưu chuỗi đầu vào vào biến val ch = mySerial. đọc(); val += char(ch); độ trễ(10); ) if (val . indexOf ("RING" ) > - 1 ) ( //nếu phát hiện cuộc gọi thì kiểm tra số if (val . indexOf ("71234567890") > - 1 ) ( // nếu số người gọi là của chúng tôi. Nhập số của bạn không có dấu "+" nối tiếp. println( "--- ĐƯỢC PHÁT HIỆN NHẪN CHỦ ĐẠO ---") ; mySerial. println("ATH0"); //ngắt kết nối digitalWrite(led, CAO); //bật đèn LED trong 3 giâyđộ trễ (3000); digitalWrite(led, THẤP); //tắt rơle ) ) else nối tiếp. println(val); // in dòng nhận được ra màn hình cổng giá trị = ""; ) nếu như ( nối tiếp. có sẵn () ) ( // nếu có gì đó được nhập vào màn hình cổng trong khi ( nối tiếp. có sẵn () ) ( //lưu chuỗi vào biến val ch = nối tiếp. đọc(); val += char(ch); độ trễ(10); ) //mySerial.println(val); //chuyển tất cả các lệnh được gõ trong màn hình cổng tới mô-đun GSM if (val . indexOf ("sendsms") > - 1 ) ( // nếu bạn thấy lệnh gửi SMS sms(String("hello world"), String("+71234567890")); // gửi SMS tới số +71234567890) giá trị = "" ; //clear ) ) void sms (Chuỗi văn bản , Chuỗi điện thoại ) //thủ tục gửi tin nhắn SMS { nối tiếp. println("Đã bắt đầu gửi SMS" ); mySerial. println ("AT+CMGS=\"" + điện thoại + "\"" ); độ trễ (500); mySerial. in(văn bản); độ trễ (500); mySerial. in ((char ) 26 ) ; độ trễ (500); nối tiếp. println ("Gửi SMS hoàn tất" ); độ trễ (2000); )

Bài kiểm tra


GPRS

Trong phiên bản mô-đun 1.30 đang được xem xét, hỗ trợ GPRS bị giảm. Tôi không thể kết nối với máy chủ bằng tên DNS của nó (ví dụ mysite.ru), tôi chỉ thành công bằng địa chỉ IP của nó. Không có vấn đề như vậy trong mô-đun SIM800L khác.

Danh sách một số lệnh AT:

Thư viện này cho phép bạn thực hiện hầu hết các thao tác cơ bản được thực hiện bởi điện thoại GSM: làm việc với các cuộc gọi thoại, gửi và nhận SMS, kết nối Internet qua GPRS.

Bảng mở rộng GSM chứa một modem truyền dữ liệu nhận được tới nó qua mạng GSM. cổng nối tiếp. Mọi hoạt động được modem thực hiện dưới dạng một chuỗi các lệnh AT. Để cải thiện khả năng đọc mã, thư viện tóm tắt các chức năng cấp thấp hoạt động với modem và thẻ SIM. Modem GSM tương tác với Arduino thông qua giao diện nối tiếp bằng thư viện SoftwareSerial.

Theo quy luật, mỗi lệnh được thực thi bởi modem là một đoạn của chuỗi lệnh nhằm thực hiện một chức năng. Thư viện GSM được thiết kế với mục đích này và có khả năng nhận/trả lại thông tin ở bất kỳ giai đoạn nào của chuỗi lệnh.

Cấu trúc thư viện

Chức năng của thư viện GSM khá rộng nên nó kết hợp nhiều nhiều lớp học khác nhau:

  • Lớp học GSM chịu trách nhiệm điều khiển modem vô tuyến. Lớp này chứa các chức năng cấp thấp để kết nối và đăng ký thẻ mở rộng trong mạng GSM. Một thể hiện của lớp này phải được khai báo trong tất cả các chương trình sử dụng GSM/GPRS.
  • Lớp học GSMThoạiCuộc Gọi chịu trách nhiệm về các cuộc gọi thoại.
  • Lớp học GSM_SMS chịu trách nhiệm gửi và nhận tin nhắn SMS.
  • Lớp học GPRS chịu trách nhiệm kết nối với Internet.
  • Trong lớp GSMKhách hàng một ứng dụng khách tương tự như ứng dụng khách trong thư viện Ethernet và WiFi đã được triển khai.
  • Trong lớp Máy chủ GSM một máy chủ tương tự như máy chủ trong thư viện Ethernet và WiFi đã được triển khai. Lưu ý: Một số ISP/nhà khai thác chặn các kết nối đến từ mạng Internet toàn cầu, chỉ cho phép kết nối mạng nội bộ. Kiểm tra với nhà cung cấp dịch vụ của bạn để biết các hạn chế dữ liệu hiện hành.
  • Rất nhiều lớp trợ giúp như Máy quét GSM, GSMModem và vân vân.

Thư viện Ethernet tương thích

Các nhà phát triển đã nỗ lực hết sức để đảm bảo rằng thư viện GSM tương thích nhất có thể với thư viện Ethernet. Nhờ đó, việc chuyển mã sử dụng thư viện Ethernet hoặc WiFi sang Arduino bằng bảng mở rộng GSM sẽ khá đơn giản. Tuy nhiên, để chạy các chương trình được viết cho Ethernet trên thẻ mở rộng GSM, chỉ sao chép mã là chưa đủ. Điều này có thể yêu cầu những thay đổi nhỏ trong chương trình, chẳng hạn như kết nối thư viện GSM và GPRS, lấy cài đặt mạng từ nhà cung cấp, v.v.

Ví dụ

Tất cả các ví dụ về làm việc với thẻ mở rộng GSM có thể được chia thành hai nhóm. Nhóm đầu tiên là các ví dụ thể hiện khả năng của bo mạch (ví dụ: gửi tin nhắn SMS, kết nối Internet, v.v.). Nhóm thứ hai là các công cụ giúp bạn gỡ lỗi chức năng của thư viện và phần cứng Arduino ở mức độ thấp.

Bạn cũng có thể gửi tin nhắn SMS, tất cả những gì bạn cần cho việc này là một mô-đun đặc biệt Arduino GSM/GPRS SIM900. bảng này Phần mở rộng này phù hợp với các bo mạch Arduino UNO, MEGA và Leonardo thông thường. Với sự trợ giúp của nó, bạn có thể thực hiện nhiều dự án khác nhau bằng cách sử dụng internet GPRS hoặc truy cập vào mạng GSM. Nó sẽ hoạt động mọi lúc mọi nơi mạng điện thoại di động. Sử dụng mô-đun này bạn có thể làm báo động GSM, cùng với hệ thống giám sát video, sẽ mang lại sự bảo vệ tuyệt vời cho ngôi nhà của bạn.

Mô-đun này cho phép bạn sử dụng các mạng có tiêu chuẩn và hỗ trợ GSM 850, GSM 900, GSM 1800, GSM 1900 giao thức TCP có khả năng truy cập vào mạng GPRS.

Arduino GSM Mô-đun SIM900 cũng có thể được sử dụng để thực hiện cuộc gọi; bạn có thể vừa nhận và thực hiện cuộc gọi. Với mục đích này, bo mạch có các đầu nối đặc biệt để kết nối micrô và loa, mô-đun cũng có thể được kết nối với máy tính và gửi và nhận dữ liệu trực tiếp từ PC. Ví dụ, bạn có thể làm gửi thư hàng loạt thuê bao được ghi trên thẻ SIM ở chế độ tự động.

Tính năng kết nối bo mạch GSM với bo mạch Arduino Leonardo và Arduino Mega

Bo mạch có phần mở rộng GSM hoạt động trực tiếp với Arduino nhờ thư viện Phần mềm nối tiếp. Tại cài đặt tiêu chuẩn, để tương tác giữa modem và Arduino, các chân kỹ thuật số số 2 và số 3 được kết nối. Arduino Uno Những cài đặt này phù hợp, nhưng đối với vận hành chính xác khiên trên Arduino Leonardo hoặc Arduino Mega cần phải thực hiện những sửa đổi.

Chân GSM_TX, còn được gọi là chân số 2 trên bo mạch mở rộng, gửi thông tin tới Arduino. Để biết chính xác thời điểm cần đọc thông tin, Arduino sử dụng cơ chế ngắt: khi thay đổi cấp độ kỹ thuật số tín hiệu ở chân này, một ngắt tương ứng xảy ra. Tuy nhiên, trên Arduino Leonardo và Arduino Mega, chân số 2 không hỗ trợ ngắt.

Để tấm khiên hoạt động bình thường trên Arduino Mega hoặc Leonardo, bạn không cần phải thay đổi nó chút nào Mã chương trình, thư viện sẽ tự thay đổi số chân Arduino RX khi chọn model thích hợp trong menu "Tools" của môi trường phát triển.

Arduino Leonardo


Để hoạt động chính xác với Leonardo, thư viện GSM sử dụng chân kỹ thuật số số 8. Để làm được điều này, các chân kỹ thuật số số 2 và số 8 phải được kết nối với một dây dẫn trên bảng mở rộng GSM.

Ở mặt sau của bo mạch GSM, bạn cần uốn cong chân tương ứng với chân số 2 sang một bên để nó không tiếp xúc với Arduino Leonardo.

Arduino Mega2560


Thư viện GSM để hoạt động chính xác với Mega sử dụng chân kỹ thuật số số 10. Trên bảng mở rộng GSM, cần phải đoản mạch các chân kỹ thuật số số 2 và số 10 bằng một dây dẫn, như với Arduino Leonardo. Đừng quên uốn cong mặt trái Board GSM hướng về phía chân tiếp xúc tương ứng với chân số 2 để không chạm vào Arduino Mega.

Arduino là một nền tảng phần cứng được sử dụng để tạo nhanh nhiều các thiết bị điện tử, bao gồm cả những vấn đề bảo mật. Nhờ thiết kế đơn giản, ngôn ngữ lập trình đơn giản cũng như việc sử dụng mã mở, ngay cả một người không chuyên cũng có thể độc lập tạo ra một hệ thống báo động đa chức năng để bảo vệ ngôi nhà, ngôi nhà nhỏ, căn hộ hoặc nhà để xe của họ. Mô-đun Arduino GSM sẽ là lựa chọn tốt nhất để tạo ra một hệ thống bảo mật ngân sách có thể được cấu hình tối ưu cho một đối tượng cụ thể.

Khu vực ứng dụng

Nền tảng phần cứng Arduino được sử dụng rộng rãi trong quá trình tạo ra nhiều loại hệ thống điện tử và các thiết bị có thể nhận và xử lý tín hiệu từ nhiều chức năng tương tự hoặc cảm biến kỹ thuật số và cảm biến. Kết quả xử lý tín hiệu nhận được có thể được điều khiển bởi các bộ truyền động bên ngoài và hệ thống được kết nối với Arduino.

Ví dụ về cách sử dụng các mô-đun này trong video:

Mục đích

Nền tảng phần cứng Arduino cho phép tương tác hiệu quả với môi trường được kiểm soát thông qua một loạt các cảm biến chức năng có thể điều khiển thông số khác nhau. Nhờ đó, trên cơ sở các nền tảng như vậy, có thể hình thành các tổ hợp an ninh sẽ giám sát các chuyển động dọc theo chu vi được bảo vệ, việc mở cửa sổ và cửa ra vào cũng như hư hỏng kính. Ngoài cảm biến loại bảo mật, bạn cũng có thể sử dụng cảm biến nhiệt độ, cảm biến để theo dõi rò rỉ nước hoặc gas.

Sử dụng với nền tảng Arduino GSM mô-đun, thông tin về tình huống nguy hiểm hoặc khẩn cấp tại cơ sở có thể được cung cấp cho chủ sở hữu nhanh nhất có thể. Với mục đích này, một trong những mạng của các nhà khai thác di động được sử dụng.

Tính năng đặc biệt Thiết bị Arduino là bộ vi điều khiển của họ có thể được người dùng tự lập trình bằng cách sử dụng ngôn ngữ Arduino, dựa trên hệ thống dây điện. Nhờ đó, mọi người đều có thể lập trình thuật toán vận hành của sản phẩm đã tạo báo động chống trộm theo yêu cầu đối với một đối tượng được bảo vệ cụ thể và các chi tiết cụ thể của ứng dụng của nó.

Lợi ích của việc sử dụng

Ngày nay có nhiều nền tảng phần cứng và bộ vi điều khiển có thể nhận thông tin từ cảm biến bên ngoài, xử lý và gửi tín hiệu điều khiển tới hệ thống điều hành. Nền tảng Arduino đơn giản hóa việc thực hiện các quy trình được liệt kê càng nhiều càng tốt và có nhiều lợi thế hơn các thiết bị khác cùng loại.

  1. Giá thấp. Nền tảng này là những thiết bị khá rẻ so với các thiết bị tương tự, điều này không ảnh hưởng đến chức năng của chúng.
  2. Đa nền tảng. Phần mềm Arduino hoạt động hiệu quả dưới điều kiện như vậy nền tảng điều hành, như Windows, Linux, Macintosh-OSX.
  3. Dễ dàng lập trình. Để cấu hình bộ vi điều khiển, môi trường lập trình Xử lý được sử dụng. Nó phù hợp tối ưu cho cả chuyên nghiệp và nhỏ người dùng có kinh nghiệm, hoạt động với các thiết bị Arduino.
  4. Khả năng cải tiến. Phần mềm Arduino chuyên dụng thì khác mã nguồn mở, cho phép người dùng có kinh nghiệm điều chỉnh nó theo các yêu cầu cụ thể.

Độ tin cậy cao của nền tảng phần cứng. Bo mạch Arduinođược sản xuất với bộ vi điều khiển ATMEGA8 và ATMEGA168 (các mẫu cũ hơn) và với bộ điều khiển ATmega32u4, Atmel ATmega328 (các mẫu mới hơn), được đặc trưng bởi chức năng và độ tin cậy cao.

Nguyên lý hoạt động

Để đảm bảo đầy đủ chức năng hệ thống an ninh hoặc các thiết bị khác được xây dựng bằng nền tảng Arduino, bạn cần phải có mô-đun GSM cho Arduino. Nó có thể được sử dụng để truy cập Internet, thực hiện cuộc gọi thoại hoặc gửi tin nhắn SMS.

Bo mạch GSM sử dụng modem vô tuyến M10 đặc biệt, khả năng tương tác được đảm bảo thông qua các lệnh AT đặc biệt. Việc trao đổi thông tin với modem được thực hiện bằng phần mềm giao diện nối tiếp, sở hữu mã số.

Modem GSM được sử dụng trong Arduino là modem 4 băng tần có thể hoạt động ở các tần số sau: GSM 850 MHz và 900 MHz, PCS1900 MHz và DCS1800 MHz. Modem hỗ trợ các giao thức như TCP/UDP và HTTP, cung cấp kết nối qua GPRS. Tốc độ truyền các gói thông tin ở chế độ này sẽ vào khoảng 90 kbit/giây.

Gửi SMS qua mô-đun Arduino và GSM được triển khai nếu có thẻ SIM đã cài đặt một trong những nhà khai thác di động."

Ngoài ra, có thể chuyển tin nhắn thoại, thực hiện cuộc gọi - để làm được điều này, bạn cũng cần có micrô và loa ngoài. Việc lắp thẻ SIM sẽ cho phép bạn sử dụng Arduino trong thông tin di động hoặc GPRS.

Cách kết nối các mô-đun với Arduino

Trước khi kết nối mô-đun GSM với Arduino trong khe cắm của nó, bạn nên lắp thẻ SIM phù hợp từ một trong các nhà khai thác mạng di động. Sau đó, mô-đun được kết nối với nền tảng phần cứng Arduino theo hướng dẫn và chương trình cơ sở của nó sẽ được flash. Với mục đích này, một PC được sử dụng, được kết nối với thiết bị bằng cáp USB. Sau khi tải xuống môi trường Arduino Bạn nên nhấn nút Tải lên, thao tác này sẽ bắt đầu quá trình tải xuống phần mềm. Khi quá trình này hoàn tất, nền tảng có thể bị ngắt kết nối khỏi máy tính và được cấp nguồn từ hệ thống bên ngoài dinh dưỡng.

Đặc điểm so sánh của mô-đun GSM

Thị trường tiêu dùng cung cấp nhiều lựa chọn mô-đun GSM khác nhau cho Arduino. Dưới đây là những đặc điểm chính của những cái phổ biến nhất.

Neoway M590

Mô-đun Arduino GSM M590 là không dây thiết bị giao tiếpđược sử dụng để nhận và truyền thông tin trong mạng Truyền thông di động. Mô-đun của loạt bài này được tạo trên một bo mạch với hệ thống dây điện tối thiểu và được định vị là mô-đun GSM cho nền tảng phần cứng Arduino.

Với thiết bị này bạn có thể thiết lập liên lạc di động với điện thoại bên ngoài, gửi tin nhắn SMS, trao đổi thông tin sử dụng chuẩn GPRS Class-10. Mô-đun của thiết kế này không có đầu vào micrô, điều này hạn chế khả năng nhận liên lạc bằng giọng nói - có thể thiết lập kết nối nhưng âm thanh sẽ không được truyền đi.

Để điều khiển M590, các lệnh AT được sử dụng, được phát qua giao tiếp nối tiếp. Tần số từ 900 MHz đến 1800 MHz được sử dụng làm tần số vô tuyến hoạt động. Điện áp cung cấp nằm trong khoảng 3,3...5 V. Do đó, mô-đun Neoway M590 GSM kết nối với Arduino thông qua bộ chuyển đổi điện áp đặc biệt 5 V đến 3,3 V.

Mô-đun GSM SIM800L

Mô-đun GSM Sim800l GPRS nhỏ gọn là một thiết bị được sử dụng để hỗ trợ liên lạc di động. Mô-đun này được xây dựng trên bánh trứng đường SIM-800L, do SIMCom Wireless Solutions tạo ra và được thiết kế để cung cấp dịch vụ cho các dịch vụ mạng thông tin GPRS\GSM, sử dụng tần số từ 850 MHz đến 1900 MHz. Nó có thể được sử dụng để gửi tin nhắn SMS, thực hiện cuộc gọi và trao đổi thông tin qua các kênh GPRS.

Mô-đun GSM được trang bị ăng-ten; nếu bạn cần cải thiện mức tín hiệu, bạn có thể sử dụng ăng-ten bổ sung. Để điều khiển mô-đun, có thể sử dụng PC, kết nối qua bảng chuyển đổi giao diện USB-UART đặc biệt hoặc trực tiếp qua chính UART. Nếu sử dụng mô-đun GSM GSM Sim800l , kết nối với Arduino phải được thực hiện thông qua bộ chuyển đổi mức logic. Điều này là do SIM800L có giá trị điện áp trên mạch logic cấp độ cao là 2,8 V và trong Arduino - 3,3...5 V.

Khiên GPRS của Seeed Studio

Sự liên quan mô-đun GSM với Arduino sẽ cung cấp khả năng sử dụng các công nghệ trao đổi dữ liệu GSM/GPRS cũng như thực hiện cuộc gọi và gửi tin nhắn SMS. Các thiết bị loại này được chế tạo bằng mô-đun SIMCom SIM900. Họ có một khe để lắp thẻ SIM, một đầu nối để kết nối ăng-ten bên ngoài, một bộ giắc cắm 3,5 mm cho đầu vào và đầu ra âm thanh. Việc điều khiển và làm việc với Arduino GSM Shield được thực hiện thông qua các kết nối Serial và bộ lệnh AT chuyên dụng.

Mô-đun này là phí đặc biệt, dùng để điều khiển thiết bị kỹ thuật số từ xa cũng như để trao đổi thông tin. Việc sử dụng SIM900 cho phép Arduino hoạt động bằng công nghệ GSM/GPRS, cung cấp âm thanh giao tiếp, gửi SMS và trao đổi dữ liệu bằng mạng di động và mạng di động.

Để vận hành mô-đun này, bộ điều khiển điều khiển, nguồn điện, ăng-ten được kết nối với nó và thẻ SIM cũng được lắp đặt nhà điều hành điện thoại di động. Sử dụng các jumper đặc biệt, bạn định cấu hình phương thức trao đổi dữ liệu với bộ điều khiển. Nếu cần, bạn có thể kết nối loa và micrô.

Tôi muốn giới thiệu cho bạn một cách rất đơn giản điều khiển từ xa Nguồn cấp
Chúng tôi sẽ sử dụng ổ cắm RC làm sẵn nên không cần hàn bất cứ thứ gì. Điều này rất tuyệt, vì tốt hơn hết là không nên chạm vào điện áp 220 V (dành cho người mới bắt đầu).

Mã số

Nếu bạn không sử dụng GSMSHIELD mà sử dụng một số thư viện khác thì mã tất nhiên sẽ khác, nhưng nguyên tắc sẽ giống nhau. Vào những khoảng thời gian nhất định, chúng tôi kiểm tra xem có bất kỳ SMS nào chưa đọc hay không, phân tích chúng và nếu một lệnh hợp lệ đến từ một số được ủy quyền, chúng tôi sẽ gửi tín hiệu vô tuyến bằng các hàm mySwitch.switchOff hoặc mySwitch.switchOn, chuyển cho chúng địa chỉ của ổ cắm.
Ghi chú trong trường hợp của tôi, để có tấm chắn từ Seeedstudio, tôi phải truy cập GSM.cpp và thay đổi chân được chỉ định lúc 7 và 8./* Mã ví dụ về công tắc GSM của Arduino Bật/tắt các ổ cắm được điều khiển bằng sóng vô tuyến Tác giả: Vladislav Ross, 2014 Liên hệ: [email được bảo vệ] Bạn cần tải xuống: 1. rc-switch https://code.google.com/p/rc-switch/ 2. GSMSHIELD http://www.gsmlib.org/ Dành cho GSMSHIELD: * Để thay đổi chân cho Serial Phần mềm, sử dụng hai dòng trong GSM.cpp. * Nếu bạn đang sử dụng Mega, hãy bỏ ghi chú dòng "#define MEGA" trong HWSerial.h * Bạn có thể bật thông báo gỡ lỗi trên cổng nối tiếp bằng cách xác định DEBUG_ON */ #include "SIM900.h" #include #include "sms.h" #include "call.h" #include // Chân phát 433 MHz const byte RCpin = 12; char groupAddress = "11111"; char smsLetters = "ABC"; char* deviceAddresses = ( "10000", //A "01000", //B "00100" //C ); char adminNumber = "+74991356235"; //số điện thoại của bạn GọiGSM gọi; tin nhắn SMSGSM; RCSwitch mySwitch = RCSwitch(); số ký tự; chỉ số byte=0; char smsText; vị trí byte; int deviceLetterIdx = -1; byte i,j; void setup() ( gsm.begin(2400); delay(10000); for(i = 1; i<= 21; i++) { sms.DeleteSMS(i); } mySwitch.enableTransmit(RCpin); }; void loop() { //hang up all incoming calls /*stat=call.CallStatus(); if(stat==CALL_INCOM_VOICE) { call.HangUp(); }*/ position = sms.IsSMSPresent(SMS_UNREAD); //get new SMS if (position) { sms.GetSMS(position, number, smsText, 10); sms.DeleteSMS(position); if(strcmp(number, adminNumber) == 0) //accept SMS only from defined number { for (i = 0; i < sizeof(smsText) - 1; i++) { if(deviceLetterIdx != -1) { //got letter, now expecting 0 or 1 if(smsText[i] == "0") { mySwitch.switchOff(groupAddress, deviceAddresses); delay(500); } if(smsText[i] == "1") { mySwitch.switchOn(groupAddress, deviceAddresses); delay(500); } deviceLetterIdx = -1; } else { //waiting for letter A,B,C... for(j = 0; j < sizeof(smsLetters) - 1; j++) { if(smsLetters[j] == smsText[i]) { deviceLetterIdx = j; break; } } } } } } delay(10000); }; GitHub .

Các vấn đề?

Nếu ổ cắm không muốn chuyển sang ổ cắm nào, bạn có thể thử nhận tín hiệu từ điều khiển từ xa ban đầu đến bộ thu. rc-switch có mã mẫu.

Cái gì tiếp theo?

Làm thế nào dự án này có thể được phát triển hơn nữa?
Đầu tiên, chúng ta vẫn còn một loạt chân cắm trên Arduino và trên tấm chắn GSM. Bạn có thể kết nối một số cảm biến hoặc thiết bị với chúng. Ví dụ, theo dõi nhiệt độ từ xa hoặc tưới hoa.
Thứ hai, chúng tôi chỉ sử dụng SMS và mô-đun này cũng có thể truyền giọng nói và GPRS. GPRS có thể truyền nhiều dữ liệu hơn. Ngoài ra, bạn không cần phải cúp máy khi gọi mà chẳng hạn như chấp nhận cuộc gọi và để họ lắng nghe những gì đang diễn ra ngay tại chỗ.
Cũng có thể bạn muốn nhận SMS kiểm soát không phải từ một số mà từ nhiều số. Trong trường hợp này, tôi khuyên bạn nên lưu trữ các số trong sổ địa chỉ, thư viện có các chức năng thích hợp.
TẠI+CMGF=1 TRÊN chế độ văn bản(SMS chỉ bằng tiếng Latin)
AT+CSCS= "GSM" TRÊN chế độ
TẠI+CLIP=1 bật ID người gọi cuộc gọi đến
Nếu bạn gửi lệnh bằng 0, việc nhận dạng số sẽ bị tắt và mô-đun sẽ chỉ gửi tin nhắn “RING” thay vì số của người gọi.
AT+CMGS="+79123456789" Gửi tin nhắn SMS
ATI Nhận thông tin thiết bị
AT+IPR=19200 cài đặt tốc độ cổng
AT+GSN sẽ trả lại IMEI của mô-đun
AT+CCLK? đọc thời gian từ mô-đun
AT+CCLK=“yy/mm/dd,hh:mm:ss+zz” trong đó thứ tự là “năm/tháng/ngày, giờ: phút: giây + múi giờ” Dữ liệu phải được gửi với các số 0 đứng đầu, tức là, ví dụ: nếu tháng của chúng ta là “4” thì phải gửi “04” .
Lấy lại nó thời điểm hiện tại và ngày có thể được gửi bằng cách gửi cùng một lệnh, chỉ với dấu “?”:
TẠI+CMEE=0 mức độ thông tin lỗi. Có thể từ 0 đến 2.
0 - bị vô hiệu hóa. Nó sẽ chỉ viết LỖI.
1 - mã lỗi. Sẽ trở lại mã kỹ thuật số lỗi.
2 - mô tả lỗi. Anh ấy sẽ viết ra chính xác những gì anh ấy không thích về đội.
Để làm việc với mô-đun thông qua thiết bị đầu cuối, các chế độ ATV1, ATE1 AT+CMEE=2 thuận tiện hơn; để giao tiếp với vi điều khiển, tốt hơn nên sử dụng ATV0, ATE0 và AT+CMEE=0 - điều này sẽ giúp việc giao tiếp dễ dàng hơn xử lý các phản hồi nhận được.
Các cài đặt này không được lưu sau khi khởi động lại mô-đun, vì vậy bạn phải đưa các lệnh này vào mã chương trình.
AT+CSQ thông tin về chất lượng tín hiệu.
Mô-đun sẽ trả về hai số +CSQ: 17.0
17 - mức tín hiệu. Có thể nằm trong khoảng 0..31 hoặc 99. Hơn nhiều chủ đề hơn tốt hơn, nhưng 99 có nghĩa là không có nó.
0 - tỷ lệ lỗi giao tiếp (còn gọi là RXQUAL). Có thể từ 0 đến 7 hơn số ít chủ đề hơn chất lượng truyền thông tốt hơn.
AT+COPS? thông tin về nhà điều hành mạng có mô-đun được đăng ký
ATD+79121234567; quay số. (";" Nhất thiết)
Mô-đun sẽ gọi số được chỉ định và sẽ trả lại một trong các tùy chọn
BẬN - số đang bận
KHÔNG DIALTONE - không có tín hiệu trên đường dây
KHÔNG CÓ nhà cung cấp dịch vụ - không có mạng hoặc vấn đề khác (ví dụ: không có tiền trong tài khoản)
NA TRẢ LỜI - không có câu trả lời
KẾT NỐI - có một liên hệ!
AT+CMGR=3.0