Gửi SMS qua mô-đun Arduino và GSM NEOWAY M590

Trong thập kỷ qua, trộm xe là một trong những tội phạm phổ biến nhất những nơi quan trọng trong cơ cấu tội phạm được thực hiện trên thế giới. Điều này không phải do mức độ nghiêm trọng cụ thể của loại trộm cắp này so với tổng số tội phạm, mà là do mức độ nghiêm trọng của thiệt hại gây ra do giá ô tô cao. Hiệu quả yếu kém của các biện pháp chống trộm xe được thực hiện vào cuối những năm 90 đã dẫn đến việc thành lập các nhóm ổn định chuyên thực hiện các tội ác này và sở hữu tính năng đặc biệt tội phạm có tổ chức; Có lẽ bạn đã từng nghe đến thuật ngữ "kinh doanh ô tô đen". Đội xe ô tô của các nước châu Âu hàng năm thiếu ≈ 2% số ô tô trở thành đối tượng của các cuộc tấn công tội phạm. Đó là lý do tại sao tôi nảy ra ý tưởng làm báo động GSM cho ô tô của mình dựa trên Arduino Uno.

Hãy bắt đầu nào!

Chúng ta sẽ thu thập từ đâu?

Chúng ta cần chọn trái tim của hệ thống của chúng ta. Theo tôi, không có gì tốt hơn Arduino Uno để truyền tín hiệu như vậy. Tiêu chí chính là có đủ số lượng “chân” và giá cả.


Các tính năng chính của Arduino Uno

Vi Điều Khiển - ATmega328
Điện áp hoạt động - 5 V
Điện áp đầu vào (khuyến nghị) - 7-12 V
Điện áp đầu vào (giới hạn) - 6-20 V
Đầu vào/Đầu ra kỹ thuật số - 14 (6 trong số đó có thể được sử dụng làm đầu raPWM)
Đầu vào tương tự - 6
Dòng điện một chiều qua đầu vào/đầu ra - 40 mA
Dòng điện không đổi cho đầu ra 3,3V - 50mA
Bộ nhớ flash - 32 KB (ATmega328) trong đó 0,5 KB được sử dụng cho bộ nạp khởi động
RAM - 2 KB (ATmega328)
EEPROM - 1 KB (ATmega328)
Tần số đồng hồ - 16 MHz


Phù hợp!

Bây giờ bạn cần chọn mô-đun GSM, vì hệ thống báo động của chúng tôi phải có khả năng thông báo cho chủ xe. Vì vậy, bạn cần phải “Google”... Đây, một cảm biến tuyệt vời - SIM800L, kích thước đơn giản là tuyệt vời.


Tôi nghĩ và đặt mua nó từ Trung Quốc. Tuy nhiên, mọi thứ hóa ra không hề màu hồng như vậy. Cảm biến chỉ từ chối đăng ký thẻ SIM trên mạng. Mọi thứ có thể đã được thử - kết quả là con số không.
Có những người tốt bụng đã cung cấp cho tôi một thứ tuyệt vời hơn - Sim900 Shield. Bây giờ đây là một điều nghiêm trọng. Shield có cả micrô và giắc cắm tai nghe, khiến nó trở thành một chiếc điện thoại hoàn chỉnh.


Các tính năng chính của Sim900 Shield

4 chuẩn tần số hoạt động 850/ 900/ 1800/ 1900 MHz
GPRS đa khe loại 10/8
Trạm di động GPRS loại B
Tuân thủ GSM giai đoạn 2/2+
Loại 4 (2 W @850/ 900 MHz)
Lớp 1 (1 W @ 1800/1900 MHz)
Điều khiển bằng lệnh AT (GSM 07.07, 07.05 và lệnh AT mở rộng SIMCOM)
Tiêu thụ điện năng thấp: 1,5mA (chế độ ngủ)
Phạm vi nhiệt độ hoạt động: -40°C đến +85°C


Phù hợp!

Được rồi, nhưng bạn cần lấy số đo từ một số cảm biến để thông báo cho chủ sở hữu. Đột nhiên chiếc xe bị kéo đi, khi đó vị trí của chiếc xe rõ ràng sẽ thay đổi trong không gian. Hãy lấy một gia tốc kế và một con quay hồi chuyển. Tuyệt vời. Được rồi, bây giờ chúng tôi đang tìm kiếm một cảm biến.

Tôi nghĩ rằng GY-521 MPU6050 chắc chắn sẽ phù hợp. Hóa ra nó còn có cảm biến nhiệt độ. Chúng ta cũng nên sử dụng anh ấy, mọi chuyện sẽ như thế này “ tính năng sát thủ" Giả sử chủ nhân của chiếc ô tô đã đậu nó dưới nhà và rời đi. Nhiệt độ bên trong xe sẽ thay đổi “êm dịu”. Điều gì xảy ra nếu kẻ đột nhập cố gắng đột nhập vào xe? Ví dụ, anh ta sẽ có thể mở cửa. Nhiệt độ trong xe sẽ bắt đầu thay đổi nhanh chóng khi không khí trong cabin bắt đầu hòa quyện với không khí môi trường. Tôi nghĩ nó sẽ hoạt động.


Các tính năng chính của GY-521 MPU6050

Con quay hồi chuyển 3 trục + mô-đun gia tốc 3 trục GY-521 trên chip MPU-6050. Cho phép bạn xác định vị trí và chuyển động của một vật thể trong không gian, vận tốc góc trong quá trình quay. Nó cũng có một cảm biến nhiệt độ tích hợp. Nó được sử dụng trong nhiều loại máy bay trực thăng và mô hình máy bay; một hệ thống ghi lại chuyển động cũng có thể được lắp ráp dựa trên các cảm biến này.

Chip - MPU-6050
Điện áp cung cấp - từ 3,5V đến 6V (DC);
Phạm vi con quay hồi chuyển - ±250 500 1000 2000°/s
Phạm vi gia tốc - ±2±4±8±16g
Giao diện truyền thông - I2C
Kích thước - 15x20 mm.
Trọng lượng - 5 g


Phù hợp!

Một cảm biến rung cũng sẽ có ích. Đột nhiên họ cố gắng mở xe " lực lượng vũ phu", nếu không trong bãi đậu xe sẽ có một chiếc xe khác tông vào xe của bạn. Hãy lấy cảm biến rung SW-420 (có thể điều chỉnh).


Đặc điểm chính của SW-420

Điện áp nguồn - 3,3 - 5V
Tín hiệu đầu ra - Cao/Thấp kỹ thuật số (thường đóng)
Cảm biến được sử dụng - SW-420
Bộ so sánh được sử dụng là LM393
Kích thước - 32x14 mm
Ngoài ra - Có điện trở điều chỉnh.


Phù hợp!

Vít mô-đun thẻ nhớ SD. Chúng tôi cũng sẽ viết một tập tin nhật ký.


Đặc điểm chính của mô-đun thẻ nhớ SD

Mô-đun này cho phép bạn lưu trữ, đọc và ghi vào thẻ SD dữ liệu cần thiết cho hoạt động của thiết bị dựa trên bộ vi điều khiển. Việc sử dụng thiết bị có liên quan khi lưu trữ các tệp từ hàng chục megabyte đến hai gigabyte. Bảng mạch chứa hộp đựng thẻ SD, bộ ổn định nguồn thẻ và phích cắm đầu nối cho giao diện và đường dây nguồn. Ví dụ: nếu bạn cần làm việc với âm thanh, video hoặc dữ liệu quy mô lớn khác, ghi nhật ký các sự kiện, dữ liệu cảm biến hoặc lưu trữ thông tin máy chủ web, thì mô-đun thẻ nhớ SD cho Arduino sẽ giúp bạn có thể sử dụng thẻ SD cho những mục đích này. Sử dụng mô-đun này, bạn có thể nghiên cứu các tính năng của thẻ SD.
Điện áp cung cấp - 5 hoặc 3,3 V
Dung lượng bộ nhớ thẻ SD - lên tới 2 GB
Kích thước - 46 x 30 mm


Phù hợp!

Và hãy thêm một bộ điều khiển servo; khi các cảm biến được kích hoạt, bộ điều khiển servo có đầu ghi video sẽ quay và quay video về sự cố. Hãy lấy ổ servo MG996R.


Các tính năng chính của Ổ đĩa servo MG996R

Ổn định và bảo vệ đáng tin cậy từ thiệt hại
- Ổ đĩa kim loại
- Vòng bi hai hàng
- Chiều dài dây 300 mm
- Kích thước 40x19x43mm
- Trọng lượng 55 g
- Góc quay: 120 độ.
- Tốc độ hoạt động: 0,17 giây/60 độ (4,8V không tải)
- Tốc độ hoạt động: 0,13 giây/60 độ (6V không tải)
- Momen khởi động: 9,4kg/cm ở nguồn điện 4,8V
- Momen khởi động: 11kg/cm ở nguồn điện 6V
- Điện áp hoạt động: 4,8 - 7,2V
- Toàn bộ bộ phận truyền động được làm bằng kim loại


Phù hợp!

Chúng tôi thu thập

Về việc kết nối từng cảm biến trong Google số lượng lớn bài viết. Và tôi không có mong muốn phát minh ra những chiếc xe đạp mới, vì vậy tôi sẽ để lại liên kết đến các phương án đơn giản và hiệu quả.

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 tin nhắn đặc biệt mô-đun Arduino GSM/GPRS SIM900. bảng này các phần mở rộng 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 GSM 850, GSM 900, GSM 1800, GSM 1900 và hỗ trợ giao thức TCP với quyền 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 này 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 tới các 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. Các cài đặt như vậy phù hợp với Arduino Uno, nhưng dành cho. 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 Bảng 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.

Shield GPRS/GSM SIM900 có ăng-ten
Bộ phát triển bốn băng tần SIM900 GPRS/GSM Shield cho Arduino tương thích

Mô-đun hoạt động của vi điều khiển Thiết bị Arduino và tương tự trong mạng thông tin di động theo tiêu chuẩn GSM và GPRS. Tập trung vào việc sử dụng trong các hệ thống tự động hóa và điều khiển. Trao đổi dữ liệu với các mô-đun khác xảy ra thông qua Giao diện UART. Shield GPRS/GSM SIM900 có ăng-ten có thể giao tiếp trực tiếp với vi điều khiển thông qua giao diện UART hoặc hoạt động cùng với máy tính cá nhân khi sử dụng bộ chuyển đổi giao diện portPC-UART. Điều này có được là nhờ khả năng tương thích phần mềmở cấp độ lớp lệnh được sử dụng để điều khiển modem - lệnh AT.
Các đối tượng được giám sát và kiểm soát thông qua việc trao đổi dữ liệu trong tầm tay Truyền thông di động. Cung cấp Kết nối bằng giọng nói, gửi SMS, MMS và nhiều chức năng, dịch vụ khác. Hoạt động của mô-đun dựa trên thành phần SIM900.

Bài báo bằng tiếng Nga từ một tạp chí về linh kiện SIM900. Thành phần này được phát triển bởi SIMCom Wireless Solutions. Trang web SIMCom có ​​phiên bản tiếng Nga. Bảng mô-đun GSM ở phía thành phần chứa các đầu nối để kết nối ăng-ten, tai nghe và micrô. Trên mặt hàn của bo mạch có một giá đỡ pin CR1220 3 volt hỗ trợ hoạt động của đồng hồ mô-đun và hộp đựng để lắp thẻ SIM.
Một trong những ứng dụng của thiết bị là hệ thống theo dõi chuyển động của xe kết hợp với GLONASS hoặc thiết bị GPS. Gửi tin nhắn SMS cho phép bạn sử dụng mô-đun trong việc gửi đi, báo động không dây và trong hệ thống an ninh. Do các sự kiện đang diễn ra, tin nhắn có thể được gửi tin nhắn SMS khác nhau: “Dừng khẩn cấp thang máy số 2 nhà số 34”, “Cửa ô tô mở”, “Tầng hầm mở”, “Điện áp 220 V bị tắt”, “ Cửa vào Ngôi nhà nông thôn đang mở”, “Đèn đang bật”, “Nhiệt độ trong nhà kính dưới mức tới hạn.” Module không thể thiếu trong việc giám sát, điều khiển các vật thể chuyển động đang chuyển động khoảng cách xa. Hoặc trong trường hợp xóa toán tử trên khoảng cách xa từ một vật đứng yên.

Shield GPRS/GSM SIM900 có ăng-ten mang lại nhiều cơ hội nghiên cứu hoạt động của linh kiện SIM900. Việc lắp đặt thành phần SIM900 được thực hiện theo hầu hết các công nghệ hiện đại tại sao phải hàn bảng mạch in SIM900 trong điều kiện phòng thí nghiệm là rất khó khăn. Sau khi cài đặt mô-đun SIM900, bạn có thể tiến hành thử nghiệm cách sử dụng thành phần SIM900. Khi được sử dụng trong sự phát triển riêng Thành phần SIM900 có thể được gỡ lỗi phần mềm và xác minh các giải pháp mạch.

Đặc trưng

Dinh dưỡng
điện áp, V
danh nghĩa 5
phạm vi 4,8-5,2
hiện hành
chế độ bình thường 50-450 mA
ở chế độ ngủ 1,5 mA
xung tối đa 2 A
Hỗ trợ thẻ SIM 1.8 và 3 V
Băng tần truyền thông 850, 900, 1800, 1900 MHz
Hỗ trợ mạng 2G
Công suất truyền ở các dải khác nhau
1 W 1800 và 1900 MHz
2 W 850 và 900 MHz
tuân thủ tiêu chuẩn GSM giai đoạn 2/2+
Được xây dựng trong giao thức TCP và UDP
Lớp truyền tải Dữ liệu GPRS lớp nhiều khe 10/8
Bộ giải mã âm thanh HR, FR, EFR, AMR, khử tiếng vang
CSD lên tới 14,4 kbit/s
ngăn xếp PPP
MUX (07.10)
giao thức HTTP và FTP
Có thể gửi tín hiệu DTMF và phát bản ghi âm như trên máy trả lời tự động
Hỗ trợ đồng hồ thời gian thực RTC
Nhiệt độ, oC
không khí trong quá trình vận hành -30...75
lưu trữ -45...90
kích thước 86 x 58 x 19 mm

Linh kiện điều khiển

Công tắc chọn nguồn đặt nguồn điện: bên ngoài, được kết nối với đầu nối đồng trục hoặc nguồn điện của mô-đun vi điều khiển Arduino.

Phím Nguồn bật hoặc tắt nguồn khi được nhấn và giữ trong 2 giây.

chỉ định

Trạng thái của mô-đun được biểu thị bằng 3 đèn LED:
PWR (màu xanh lá cây) - đèn báo nguồn mô-đun,
Trạng thái (màu đỏ) - Đèn báo nguồn thành phần SIM900,
Net Light (màu xanh lá cây) - kết nối với mạng.
Thông báo đèn LED Net Light.
Tắt - SIM900 không hoạt động.
Nhấp nháy theo từng khoảng thời gian, được biểu thị bằng giây:
0,064 bật và 0,8 tắt - không phát hiện thấy mạng,
0,064 bật và 0,3 tắt - đã phát hiện mạng,
Bật 0,064, tắt 0,03 - Đã kết nối GPRS.

Liên lạc

Thành phần SIM900 chứa một cổng UART, tín hiệu của nó được xuất ra các chân thành phần và được kết nối với các jumper để xác định chân nào của mô-đun Shield GPRS/GSM SIM900 sẽ được kết nối với cổng UART của thành phần SIM900 với D0, D1 hoặc D7, D8.
Có thể kết nối UART Shield GPRS/GSM: với giao diện phần cứng của MK thông qua các tiếp điểm TXD và RXD của mô-đun Shield GPRS/GSM, D0, D1 được sử dụng cho việc này. Hoặc đối với Arduino mô phỏng phần mềm, để làm điều này, các tiếp điểm D7 và D8 của mô-đun Shield GPRS/GSM được sử dụng. Giao diện UART đầy đủ có 10 tín hiệu xuất ra các chân ở góc bo mạch: R1, DCD, DSR, CTS, RTS, GND, 2V8, TX, RX, DTR.
12 liên hệ đã ký dòng kỹ thuật số Các I/O GPIO được đặt ở góc của bảng. Có 2 chân tín hiệu đầu ra có điều chế độ rộng xung PWM1,PWM2. Chân ADC đầu vào ADC. Giao diện bộ đếm thời gian tích hợp có 4 số liên lạc. Ký hiệu chân: DISP_CLK, DISP_DATA, DISP_D/C, DISP_CS.
Chân D9 được sử dụng cho điều khiển chương trình bật hoặc tắt SIM900.
Bảng mạch có một đầu nối để kết nối ăng-ten.

Việc gán chân của thành phần SIM900.

Bật và tắt nguồn bên ngoài

Bạn có thể bật hoặc tắt nguồn của mô-đun bằng tín hiệu ở đầu vào điều khiển D9. Để thay đổi trạng thái, một xung kéo dài 1 giây được gửi tới D9. Sự thay đổi trạng thái xảy ra 3,2 giây sau khi bắt đầu xung.

Kích hoạt mô-đun. Đồ thị của điện áp nguồn mô-đun, xung điều khiển bên ngoài và đèn báo nguồn TÌNH TRẠNG.

Khi điều khiển mô-đun bằng thiết bị điều khiển, việc bật phải được thực hiện mà không cần sử dụng Nút nguồn phím, tức là ngay sau khi cấp nguồn. Để thực hiện việc này, một số lệnh cần được thêm vào chương trình MK.

Vô hiệu hóa powerUpOrDown()
{
pinMode(9, OUTPUT);
digitalWrite(9,THẤP);
độ trễ (1000);
digitalWrite(9,CAO);
độ trễ (2000);
digitalWrite(9,THẤP);
độ trễ (3000);
}

Nhóm lệnh này trong chương trình cũng có thể được sử dụng để tắt mô-đun. Cũng tắt mô-đun GSM Bạn có thể gửi lệnh AT.

GSM-lib được viết dưới Arduino IDE phiên bản 1.0. Tải xuống phiên bản mới nhất của thư viện từ ví dụ làm sẵn có thể được sử dụng từ kho dự án. Để cài đặt, hãy giải nén kho lưu trữ GSM vào thư mục thư viện (/arduino-1.0/libraries/GSM). Sau khi khởi động môi trường phát triển Arduino, trong menu chương trình “Tệp -> Ví dụ”, mục GSM sẽ xuất hiện cùng với các ví dụ về bản phác thảo.

Thư viện GSM được thiết kế để hoạt động với tấm chắn “ ”. Nó tương thích với phần cứng Bo mạch Arduino(Uno, Duemilanove và các chất tương tự khác). Khi sử dụng các bo mạch khác, bạn có thể cần thực hiện các thay đổi đối với GSM.cpp để chỉ ra đúng cổng mà đường dây kích hoạt modem được kết nối từ tấm chắn.

TRONG Hiện nay Thư viện thực hiện các chức năng sau.

  • Đăng ký mạng GSM
  • Gửi tin nhắn SMS
  • Nhận và phân tích SMS
  • Nhận cuộc gọi đến
  • Kiểm tra trạng thái kết nối với mạng GSM, khôi phục mạng trong trường hợp mất tín hiệu

Đăng ký mạng GSM

Để đăng ký modem trên mạng, bạn phải chỉ định mã PIN của thẻ SIM. Điều quan trọng cần nhớ là nếu bạn chỉ định sai số, thẻ SIM có thể bị chặn vì chức năng khởi tạo sẽ được lặp lại định kỳ cho đến khi chúc may mắn. Quá trình khởi tạo thường mất khoảng 1 phút.

Việc khởi tạo chính được thực hiện trong hàm setup().

#bao gồm #bao gồm const char CHƯƠNG TRÌNH PIN = "0000"; // PIN void setup() ( while (GSM.Init(PIN)<0); // Регистрация в сети GSM.NewSMSindic(); // Настройка индикатора новых SMS GSM.WaitCall(); // Ждем входящие вызовы GSM.WaitSMS(); // Ждем входящих SMS }

Gửi tin nhắn SMS

Để gửi tin nhắn văn bản, hãy sử dụng hàm SendSMS(), hàm này chuyển 2 tham số - số người nhận SMS và chính tin nhắn đó.

While(GSM.SendSMS(RemoteID, "Xin chào từ Arduino!")< 0);

Trong đó RemoteID là số người nhận. Tốt nhất nên đặt hằng số này trong tiêu đề chương trình.

Const char CHƯƠNG TRÌNH ID từ xa = "+79280000000";

Văn bản tin nhắn cũng có thể được tạo động.

Chuỗi văn bảnMessage; textMessage += "Cảm biến1"; textMessage += "Cảm biến2"; char Out; textMessage.toCharArray(Out,(textMessage.length())+1); while(GSM.SendSMS(RemoteID, Out)< 0);

Nhận và phân tích SMS

Để đọc tin nhắn SMS đến, hãy sử dụng chức năng ReadSMS(), trong đó 2 tham số được chuyển đến - chỉ mục SMS và con trỏ nơi văn bản sẽ được sao chép. Dưới đây là một đoạn phác thảo phân tích văn bản của tin nhắn đến. Khi SMS bằng 1, chúng tôi thực hiện một số hành động và khi nó bằng 2, chúng tôi thực hiện một hành động khác. Để biết ví dụ hoàn chỉnh về bản phác thảo SmsCheck.ino, hãy xem các ví dụ.

If (GSM.CheckSMS()== 1) ( //Có SMS mới GSM.ReadSMS(NewSMS_index, (char*) SMStxt); GSM.DeleteAllSMS(); // Xóa SMS (chúng tôi sẽ không tích lũy!) strSMS = String( SMStxt); if(strSMS == "1") ( // thực hiện hành động 1 tại đây) if(strSMS == "2") ( // thực hiện hành động 2 tại đây) GSM.WaitCall();

Ghi chú. Thư viện GSM chỉ có thể hoạt động với các ký tự Latinh; chữ Cyrillic hiện không được hỗ trợ.

Nhận cuộc gọi đến

Chức năng này rất hữu ích khi bạn cần nhận được phản hồi khá nhanh từ tấm chắn. Mặc dù tin nhắn SMS có thể được gửi hơi chậm nhưng các cuộc gọi đến sẽ diễn ra gần như ngay lập tức. Ngoài ra, việc sử dụng chức năng đó sẽ miễn phí nếu bạn không nhấc máy.

Ví dụ: bạn có thể thực hiện cuộc gọi đến tấm chắn, kiểm tra số người gọi trên Arduino và nếu nó khớp với số mẫu, hãy gửi SMS có kết quả đọc cảm biến tới nó. Đoạn sau thực hiện chức năng tương tự. Để biết phiên bản đầy đủ của bản phác thảo CallCheck.ino, hãy xem ví dụ.

If (IncomingCall == 1) ( //một cuộc gọi đã đến! while (GSM.TerminateCall()<0); // Ложим трубку IncomingCall = 0; // Проверяем, если номер звонящего CallerID совпал с шаблоном RemoteID if (strstr_P(CallerID, RemoteID)) { while(GSM.SendSMS(RemoteID, "Hello from Arduino!") < 0);// SMS из SRAM памяти } GSM.WaitCall(); }

Kiểm tra trạng thái kết nối với mạng GSM

Có những tình huống khi kết nối với mạng bị mất. Để phát hiện mất mạng, hãy sử dụng hàm CheckStatus(), hàm này trả về 0 khi mất kết nối với mạng. Một ví dụ về cách sử dụng được đưa ra trong khối mã sau.

// Tại những khoảng thời gian nhất định, chúng tôi kiểm tra trạng thái kết nối GPRS! if(currentMillis - previousMillis > interval) ( if ((GSM.CheckStatus() != 1)) ( // Kết nối GPRS không được thiết lập! while (GSM.Init(PIN)<0); // Делаем инициализацию } GSM.WaitCall(); currentMillis = previousMillis = millis(); }

Thực hiện các lệnh AT tùy ý từ bản phác thảo

Để thực thi các lệnh AT từ bản phác thảo, hàm WriteStr_P() được sử dụng.

GSM.WriteStr_P(PSTR("AT\r\n"));

Chào buổi chiều Một lần nữa, một bài đánh giá đa dạng về linh kiện điện tử Trung Quốc, như thường lệ về mọi thứ một chút, tôi sẽ cố gắng nói ngắn gọn, nhưng liệu nó có hiệu quả không? Vì vậy, đáp ứng hệ thống báo động GSM có giá lên tới 700 ₽. Hấp dẫn? Vui lòng sử dụng "cắt"!

Bắt đầu nào! Trước khi bắt đầu, tôi khuyên bạn nên xem cái này, ít thành phần hơn và khả năng tự chủ cao hơn. Vì vậy, “thông số kỹ thuật”, các yêu cầu cơ bản về tín hiệu:

1) Thông báo khi cảm biến được kích hoạt.
2) Trong trường hợp mất điện, phải cung cấp một số quyền tự chủ.
3) Kiểm soát báo động qua SMS và cuộc gọi.

Do quá trình tạo cảnh báo mất vài tháng và một số người bán không còn bán các thành phần đã mua từ họ nữa nên các liên kết sẽ được cập nhật tới các sản phẩm từ những người bán khác có số lượng sản phẩm bán ra tối đa hoặc gần với mức tối đa và giá tốt nhất. Giá trong bài đánh giá là hiện tại kể từ ngày viết.

Danh sách những gì bạn sẽ cần:

Danh sách thay đổi

GSM_03_12_2016-14-38.hex- Đã sửa lỗi hoạt động của thiết bị với modem M590.
GSM_05_12_2016-13-45.hex- thêm lệnh memtest console, tối ưu hóa việc sử dụng RAM.
GSM_2016_12_06-15-43.hex- thêm đầu ra của kết quả lệnh vào bảng điều khiển, tối ưu hóa bộ nhớ. Chiếm dụng: 49% SRAM.
GSM_2016_12_07-10-59.hex- bây giờ số điện thoại đã được thêm và xóa một cách chính xác. Bận: 49% SRAM, 74% Bộ nhớ Flash.
GSM_2016_12_07-15-38.hex- thêm khả năng kết nối cảm biến chuyển động, được kết nối với chân A0 (trong trường hợp này, chân A0 được sử dụng làm chân kỹ thuật số). Đã thêm lệnh SMS PIROn, PIRTắt. Bận: 48% SRAM, 76% Bộ nhớ Flash.
GSM_2016_12_08-13-53.hex- Bây giờ, sau khi thực hiện thành công lệnh không gửi tin nhắn SMS phản hồi, thiết bị sẽ nhấp nháy đèn LED màu xanh lam một lần. Bây giờ, sau khi thực hiện sai lệnh mà không gửi tin nhắn SMS phản hồi, thiết bị sẽ nhấp nháy đèn LED màu xanh lam hai lần. Bây giờ, sau khi khởi tạo các thông số của thiết bị, nếu bật chế độ “im lặng” (SendSms = 0), thiết bị sẽ nhấp nháy đèn LED màu xanh lam thường xuyên trong 2 giây. Đã sửa lỗi khiến số này không phải lúc nào cũng bị xóa khỏi bộ nhớ bằng lệnh DeletePhone. Bận: 48% SRAM, 78% Bộ nhớ Flash.
GSM_2016_12_11-09-12.hex- Đã thêm lệnh console AddPhone và DeletePhone, cú pháp tương tự như lệnh SMS. Tối ưu hóa bộ nhớ. Bận: 43% SRAM, 79% Bộ nhớ Flash.
GSM_2017_01_03-22-51.hex- Hỗ trợ đã được triển khai cho các bộ mở rộng cổng I/O tương tự trên chip PCF8574, để kết nối thêm 8 cảm biến, bao gồm cả công tắc sậy. Tự động tìm kiếm địa chỉ và cấu hình mô-đun tự động. Tên tiêu chuẩn của cảm biến và mức logic phản hồi của chúng được thay đổi bằng lệnh EditSensor. Nội dung của SMS cảnh báo cho cảm biến chính (chân D0) đã được thay đổi: “Báo động! Cảm biến chính! và cảm biến chuyển động (chân A0) “Báo động! Cảm biến PIR! Đã thêm lệnh EditSensor và I2CScan. Bận: 66% SRAM, 92% Bộ nhớ Flash.
GSM_2017_01_15-23-26.hex- Hỗ trợ modem A6_Mini. Giám sát sự hiện diện của nguồn điện bên ngoài (chân D7). Đã thêm lệnh SMS WatchPowerOn, WatchPowerOff. Đã thêm các lệnh console ListConfig, ListSensor. Bây giờ lệnh SMS EditSensor hoạt động chính xác. Đầu ra của thông tin gỡ lỗi tới màn hình cổng đã giảm đi một chút. Chiếm: 66% SRAM, 95% bộ nhớ Flash.
GSM_2017_01_16-23-54.hex- Bây giờ, trong tin nhắn phản hồi lệnh SMS “Thông tin”, trạng thái của cảm biến chuyển động cũng được báo cáo. Đã sửa lỗi đôi khi gửi tin nhắn SMS trả lời trống. Giờ đây, thiết bị không chỉ thông báo về việc tắt máy mà còn thông báo về việc nối lại nguồn điện bên ngoài. Tất cả các modem bắt đầu ít ồn ào hơn và giờ đây màn hình cổng đã sạch sẽ hơn một chút. Chiếm: 66% SRAM, 95% bộ nhớ Flash.
GSM_2017_02_04-20-23.hex- Đã sửa lỗi “Xem nguồn bật”. Bây giờ, sau khi vô hiệu hóa, “chân báo động” sẽ bị tắt. Bây giờ, sau khi xóa một số, thông tin chính xác sẽ được hiển thị trong bảng điều khiển. Có thể đã sửa lỗi do đôi khi các tin nhắn SMS trả lời trống được gửi đi. Bận: 66% SRAM, 90% Bộ nhớ Flash.
GSM_2017_02_14-00-03.hex- Lúc này tin nhắn SMS được gửi theo mặc định, thông số SendSms lại bằng 1. Lúc này, khi các điểm tiếp xúc của cảm biến sậy chính đóng (đóng cửa), thiết bị sẽ nhấp nháy đèn LED màu xanh lam trong 2 giây, báo hiệu hoạt động bình thường của cảm biến. Bận: 66% SRAM, 90% Bộ nhớ Flash.
GSM_2017_03_01-23-37.hex- Lệnh WatchPowerOn đã bị loại bỏ. Đã thêm lệnh bảng điều khiển WatchPowerOff, giống với lệnh SMS. Đã thêm lệnh WatchPowerOn1, WatchPowerOn2. WatchPowerOn1 - giám sát nguồn điện bên ngoài được bật nếu hệ thống báo động được trang bị, WatchPowerOn2 - giám sát nguồn điện bên ngoài luôn được bật. Chức năng kích hoạt và giải giáp bằng các thiết bị bên ngoài được thực hiện; các chân A1(D15) và A2(D16) được sử dụng cho việc này. Cảnh báo sẽ bật/tắt khi mức cao +5V xuất hiện ở chân A1(D15) hoặc mức GND thấp xuất hiện ở chân A2(D16). Chân A1(D15) được kéo lên GND, chân A2(D16) được kéo lên +5V thông qua điện trở 20 (10) kOhm. Đã thêm các lệnh GuardButtonOn và GuardButtonOff. Bây giờ, sau khi kích hoạt, đèn LED màu đỏ sẽ nhấp nháy cho đến khi kiểm tra tính toàn vẹn của mạch công tắc sậy chính. Nếu mạch còn nguyên vẹn, đèn LED màu đỏ sẽ sáng lên. Chiếm: 66% SRAM, 95% bộ nhớ Flash.
GSM_2017_03_12-20-04.hex- Bây giờ bảng điều khiển thậm chí còn trở nên gọn gàng hơn, nhưng nếu chế độ kiểm tra “TestOn” được bật, thông tin bổ sung sẽ được hiển thị trong bảng điều khiển. Lỗi “Đã gửi!” đã được sửa; thông tin về việc gửi tin nhắn hiện được hiển thị chính xác trong bảng điều khiển. Đã sửa lỗi "gọi sai liên tục". Bây giờ yêu cầu số dư sẽ hoạt động chính xác trên tất cả các modem. Chiếm: 67% SRAM, 95% bộ nhớ Flash.
GSM_2017_04_16-12-00.hex- Đã sửa. Bây giờ các lệnh Thông tin và Tiền sẽ luôn gửi SMS phản hồi. Lệnh GuardButtonOn đã được thay thế bằng lệnh GuardButtonOn1 và GuardButtonOn2. Chiếm: 67% SRAM, 99% bộ nhớ Flash.
GSM_2017_04_21-09-43.hex - không được khuyến khích sử dụng, chỉ dành cho mục đích thử nghiệm, cảm ơn vì đã xác định lỗi :) - Bây giờ tham số sendms không ảnh hưởng đến việc gửi tin nhắn SMS để giám sát lưới điện. Đã thêm lệnh SMS DelayBeforeGuard chịu trách nhiệm về độ trễ khi kích hoạt, giá trị không thể vượt quá 255 giây. Đã thêm lệnh SMS DelayBeforeAlarm, chịu trách nhiệm trì hoãn việc gửi thông báo và bật “chân báo động” khi giá trị được kích hoạt không được vượt quá 255 giây; Các lệnh ClearSMS đã bị xóa, tin nhắn hiện sẽ tự động bị xóa khi nhận được. Chiếm: 68% SRAM, 100% bộ nhớ Flash.
GSM_2017_04_22-20-42.hex- Đã sửa nhiều lỗi. Các lệnh ClearSMS lại xuất hiện trong phần sụn. Tối ưu hóa bộ nhớ. Bận: 68% SRAM, 98% bộ nhớ Flash.
GSM_2017_04_23-17-50.hex- Bây giờ yêu cầu số dư sẽ hoạt động chính xác trên tất cả các modem. Việc kích hoạt và giải giáp với các thiết bị bên ngoài hiện hoạt động chính xác. Tin nhắn phản hồi SMS từ lệnh Thông tin không được để trống. Tối ưu hóa bộ nhớ. Bận: 68% SRAM, 98% bộ nhớ Flash.
GSM_2017_04_24-13-22.hex- Bây giờ các lệnh của bảng điều khiển chỉ được gửi đến mô-đun GSM nếu chế độ kiểm tra được bật. Giờ đây không còn sự phân chia giữa lệnh SMS và lệnh bảng điều khiển; tất cả các lệnh hiện có có thể được truyền cả qua SMS và qua bảng điều khiển. Lỗi với lệnh Thông tin có thể đã được sửa. Tối ưu hóa bộ nhớ. Bận: 68% SRAM, 94% Bộ nhớ Flash.
GSM_2017_04_25-20-54.hex- Đã sửa lỗi lệnh ListConfig thay đổi giá trị của sự kiện cuối cùng. Giờ đây, khi nhập lệnh qua bảng điều khiển, các tin nhắn SMS không cần thiết sẽ không được gửi. Lỗi với lệnh Thông tin có thể đã được sửa. Tối ưu hóa bộ nhớ. Chiếm: 66% SRAM, 94% Bộ nhớ Flash.
GSM_2017_04_30-12-57.hex- Tạm thời kích hoạt đầu ra thông tin bổ sung tới bảng điều khiển khi gửi tin nhắn SMS và tạo phản hồi cho lệnh Thông tin. Lỗi với lệnh Thông tin có thể đã được sửa. Tối ưu hóa bộ nhớ. Bận: 66% SRAM, 92% Bộ nhớ Flash.
GSM_2017_05_06-11-52.hex- Đã sửa lỗi với chức năng DelayBeforeAlarm. Bận: 66% SRAM, 93% Bộ nhớ Flash.
GSM_2017_05_23-21-27.hex- Đầu ra thông tin trên bảng điều khiển đã được thay đổi một chút. Đã thêm hỗ trợ cho các mô-đun mở rộng cổng trên PCF8574A với các địa chỉ từ 0x38 đến 0x3f. Đã sửa lỗi c. Bây giờ thiết bị sẽ tự động khởi động lại sau các lệnh FullReset, ResetConfig, ResetPhone và nếu lệnh MemTest được thực thi thành công. Đã thêm lệnh WatchPowerTime. Giờ đây, bạn có thể đặt thời gian sau đó tin nhắn SMS sẽ được gửi cho biết nguồn điện bên ngoài đã tắt. Bận: 67% SRAM, 94% Bộ nhớ Flash.
GSM_2017_05_26-20-22.hex- Đã sửa lỗi khởi tạo bộ nhớ cảm biến bảng mở rộng. Cú pháp lệnh AddPhone đã được thay đổi. Đã thêm lệnh EditMainPhone. Nguyên lý hoạt động của hệ thống thông báo đã được thay đổi, khi kích hoạt cảm biến, tin nhắn SMS sẽ được gửi trước, sau đó mới thực hiện cuộc gọi thoại. Tin nhắn SMS báo động sẽ được gửi đến các số điện thoại có ký hiệu “S” (SMS). Cuộc gọi thoại sẽ được thực hiện tới các số có dấu “R” (Đổ chuông). Thông báo tắt/bật nguồn điện ngoài sẽ được gửi đến các số điện thoại có ký hiệu “P” (Nguồn). Đã thêm lệnh RingTime. Hiện tại có thể đặt thời lượng của cuộc gọi thoại báo động; tham số có thể có giá trị từ 10 đến 255 giây. Lệnh RingOn/RingOff giờ đây sẽ bật/tắt cảnh báo cuộc gọi thoại trên toàn cầu. Đã thêm lệnh ResetSensor. Chiếm: 68% SRAM, 99% bộ nhớ Flash.
GSM_2017_06_02-17-43.hex- Tham số “I” (Thông tin) đã được thêm vào lệnh AddPhone và EditMainPhone, có nhiệm vụ gửi thông báo SMS về việc kích hoạt hoặc vô hiệu hóa thiết bị. Bây giờ sau khi thêm số chính, thiết bị sẽ tự động khởi động lại. Bây giờ bạn có thể nhập các số giống nhau vào bộ nhớ của thiết bị. Khi thêm các số trùng lặp thứ hai và các số tiếp theo, các thuộc tính “M”, “S”, “P” và “I” sẽ tự động bị xóa khỏi chúng. Những số này sẽ được sử dụng cho các cuộc gọi thoại lặp đi lặp lại khi cảm biến được kích hoạt. Đã sửa lỗi đầu ra bảng điều khiển không chính xác sau khi thực hiện lệnh AddPhone; hiện tại thông tin không được hiển thị tự động sau khi thêm số. Đã thêm lệnh Khởi động lại. Chiếm: 69% SRAM, 99% bộ nhớ Flash.
GSM_2017_06_11-00-07.hex- Bây giờ, một lần nữa, khi các điểm tiếp xúc của cảm biến sậy chính đóng (đóng cửa), thiết bị sẽ nhấp nháy đèn LED màu xanh lam trong 2 giây, cho biết cảm biến hoạt động bình thường, nhưng không tính đến việc thiết bị có được trang bị vũ khí hay không hoặc bị tước vũ khí. Lệnh RingOn/RingOff đã bị loại bỏ. Giờ đây, thiết bị có thể được tắt khi có cuộc gọi báo động; giờ đây chúng được thực hiện ở chế độ nền. Chiếm: 69% SRAM, 99% bộ nhớ Flash.
GSM_2017_07_04-21-52.hex- Bây giờ lệnh Tạm dừng không gửi SMS phản hồi. Các lệnh TestOn và TestOff đã bị xóa. Thuộc tính Quản lý đã bị xóa khỏi tất cả các số. Bận: 68% SRAM, 96% bộ nhớ Flash.
GSM_2017_07_24-12-02.hex- Đã thêm lệnh ReedSwitchOn/ReedSwitchOff để theo dõi cảm biến sậy chính, giờ đây nó có thể được bật/tắt giống như cảm biến chuyển động. Đã sửa lỗi trong lệnh Thông tin. Các lệnh TestOn và TestOff lại xuất hiện trong phần sụn. Bận: 68% SRAM, 96% bộ nhớ Flash.
GSM_2017_07_26-10-03.hex- Đã thêm lệnh ModemID. Việc tự động phát hiện modem chỉ được thực hiện nếu giá trị của tham số này bằng 0. Sau khi đặt giá trị tham số thành 0, thiết bị sẽ tự động khởi động lại. Bận: 68% SRAM, 98% bộ nhớ Flash.
GSM_2017_08_03-22-03.hex- Bây giờ báo thức có thể điều khiển các thiết bị bên ngoài. Để điều khiển, đầu ra analog A3 được sử dụng (D17 - được sử dụng làm kỹ thuật số). Mức đầu ra logic (+5V hoặc GND) có thể được thay đổi; sau khi thay đổi mức thông qua lệnh cấu hình, thiết bị sẽ tự động khởi động lại. Thời lượng của tín hiệu điều khiển thiết bị bên ngoài có thể được thay đổi. Đã thêm các lệnh ExtDeviceLevelLow, ExtDeviceLevelHigh, ExtDeviceTime, Open. Một số thay đổi về logic của các lệnh điều khiển. Tối ưu hóa bộ nhớ. Chiếm: 68% SRAM, 99% bộ nhớ Flash.
GSM_2017_08_10-12-17.hex- Các lệnh SmsOn/SmsOff, ReedSwitchOn/ReedSwitchOff, PIROn/PIROff và mọi thứ liên quan đến chúng đã bị xóa. Lệnh DelayBeforeAlarm đã được thay thế bằng các lệnh mở rộng. Đã thay đổi đầu ra của lệnh Thông tin. Đầu ra của lệnh ListConfig tới bảng điều khiển đã được tối ưu hóa. Giờ đây, bất kỳ cảm biến kỹ thuật số nào có mức phản hồi cao hoặc thấp, bao gồm cả công tắc sậy, đều có thể được kết nối với chân D6 và A0. Chân D6 và A0 phải được nối đất (GND) thông qua điện trở 10 (20) kOhm. Nếu cảm biến được đặt ở mức phản hồi thấp (được bật ở chế độ chuyển mạch sậy), thì tính toàn vẹn của mạch sẽ được kiểm tra. Mức kích hoạt logic ở đầu vào D6 và A0 (+5V hoặc GND) có thể được thay đổi; sau khi thay đổi mức logic, thiết bị sẽ tự động khởi động lại. Đối với mỗi cảm biến (chính, phụ, bảng mở rộng PCF), khi được kích hoạt, thời gian riêng của cảm biến có thể được đặt, sau đó sẽ có thông báo (SMS và/hoặc cuộc gọi thoại). "Cảm biến PIR" đã được đổi tên thành "Cảm biến thứ hai". Đã sửa lỗi hoạt động của thẻ mở rộng, lỗi khiến thiết bị luôn thông báo khi cảm biến được kích hoạt, bất kể thiết bị có được trang bị vũ khí hay không. Bây giờ bạn có thể chọn chế độ hoạt động trong đó thiết bị có thể giám sát các cảm biến của thẻ mở rộng cả ở chế độ trang bị (GuardOn) và ở chế độ tắt (GuardOff). Đã thêm các lệnh PCFForceOn/PCFForceOff, MainSensorLevelHigh/MainSensorLevelLow/MainSensorLevelOff, SecondSensorLevelHigh/SecondSensorLevelLow/SecondSensorLevelOff, MainDelayBeforeAlarm, SecondDelayBeforeAlarm, PCFDelayBeforeAlarm. Chiếm: 68% SRAM, 99% bộ nhớ Flash.

*Các phiên bản phần sụn tiếp theo bao gồm những thay đổi so với các phiên bản trước.


Cổng Arduino Nano v3 được sử dụng

D4- đầu ra của chân “báo động”; khi cảm biến được kích hoạt, tín hiệu mức cao sẽ được đặt trên chân này
D5- đầu ra nghịch đảo của chân “báo động”; khi cảm biến được kích hoạt, tín hiệu mức thấp sẽ được đặt trên chân này

D6- cảm biến sậy. Bắt đầu từ phiên bản GSM_2017_08_10-12-17.hex, mọi cảm biến kỹ thuật số có mức phản hồi cao hoặc thấp, bao gồm cả công tắc sậy, đều có thể được kết nối với chân D6. Chân D6 phải được kéo xuống đất (GND) thông qua điện trở 10 (20) kOhm.
D7- được kết nối với bộ chia điện áp từ nguồn điện + 5V bên ngoài. Cánh tay trên 2,2 kOhm, cánh tay dưới 3,3 kOhm.

Chia điện áp


D8- Modem TX
D9- Modem RX

D10- dẫn màu đỏ
D11- đèn LED màu xanh
D12- đèn LED màu xanh lá cây

Kết nối ngoại vi:
A0- Cảm biến chuyển động. Bắt đầu từ phiên bản GSM_2017_08_10-12-17.hex, mọi cảm biến kỹ thuật số có mức phản hồi cao hoặc thấp, bao gồm cả công tắc sậy, đều có thể được kết nối với chân A0. Chân A0 phải được kéo xuống đất (GND) thông qua điện trở 10 (20) kOhm.

A1- Đầu vào để điều khiển bên ngoài. Cảnh báo sẽ bật/tắt khi có mức +5V cao xuất hiện ở đầu vào.
A2- Đầu vào nghịch đảo cho điều khiển bên ngoài. Cảnh báo sẽ bật/tắt khi mức GND thấp xuất hiện ở đầu vào.

A3- Đầu ra (+5V hoặc GND) có thể định cấu hình để điều khiển các thiết bị bên ngoài. Khi nhận được lệnh điều khiển, giá trị ở đầu ra này sẽ thay đổi tùy thuộc vào giá trị được đặt trong một khoảng thời gian nhất định.

A4- SDA I2C
A5- SLC I2C
, để kết nối thêm 8 cảm biến.


Các lệnh điều khiển cho phần mềm hex

Chú ý!Đội ngũ cống hiến in đậm chỉ có thể được thực thi từ số chính vì chúng chịu trách nhiệm về cấu hình thiết bị. Các lệnh khác có thể được thực thi từ các số có thuộc tính “Quản lý”.

SMS - lệnh điều khiển không phân biệt chữ hoa chữ thường:
Thêm số điện thoại- Thêm số điện thoại. Tổng cộng, không thể thêm quá 9 số + 1 số chính, số này sẽ tự động được lưu vào bộ nhớ trong lần đầu tiên bạn gọi đến thiết bị sau khi khôi phục cài đặt gốc bằng lệnh Đặt lại điện thoại hoặc Đặt lại hoàn toàn. Những thứ kia. ai gọi đến máy trước sau khi khôi phục cài đặt gốc là “chính”, số này được nhập vào ô nhớ đầu tiên và không thể thay đổi hoặc xóa qua SMS. Không thể cộng hai số giống nhau.
Lệnh ví dụ:



Cú pháp lệnh:

Thêm số điện thoại- đội
: - dấu phân cách
5 - ghi vào ô nhớ thứ năm
+71234567890 - số điện thoại
Lên đến phiên bản GSM_2017_05_26-20-22.hex:
a - Thông số “Báo động” - Tin nhắn SMS sẽ được gửi đến các số có thông số này - tin nhắn về việc kích hoạt báo động và tin nhắn về việc kích hoạt hoặc giải giáp.
Bắt đầu từ phiên bản GSM_2017_05_26-20-22.hex:
m - Tham số “Quản lý” - quản lý cảnh báo được bật
s - Thông số “SMS” - một tin nhắn SMS sẽ được gửi khi cảm biến được kích hoạt
r - Thông số “Ring” - cuộc gọi thoại sẽ được thực hiện khi cảm biến được kích hoạt
p - Thông số “Nguồn” - tin nhắn SMS sẽ được gửi khi bật/tắt nguồn điện bên ngoài
i - Tham số “Thông tin” - một tin nhắn SMS sẽ được gửi khi kích hoạt hoặc giải giáp
Nếu thiếu các thông số “m”, “s”, “r”, “p”, “i”, điện thoại sẽ được lưu vào bộ nhớ nhưng không được sử dụng dưới bất kỳ hình thức nào.


XóaĐiện thoại- Xóa số điện thoại.
Lệnh ví dụ:

Cú pháp lệnh:

XóaĐiện thoại - lệnh
: - dấu phân cách
+71234567891 - số điện thoại


Chỉnh sửaĐiện thoại chính- Thay đổi các thông số “s”, “r”, “p”, “i” của điện thoại chính, số này được lưu ở ô nhớ đầu tiên.
Lệnh ví dụ:

Cú pháp lệnh:

EditMainPhone - lệnh
: - dấu phân cách
srpi - tham số


Số dưSố- Thay đổi số yêu cầu số dư và xử lý độ dài của phản hồi yêu cầu. Giá trị mặc định cho Beeline: #100#L22.
Lệnh ví dụ:

Cú pháp lệnh:

Số dư - lệnh
: - dấu phân cách
#103# - số yêu cầu số dư
L24 - Độ dài (len) của phản hồi được chuyển tiếp là 24 ký tự, chúng tôi đã loại bỏ thư rác khỏi yêu cầu số dư.


Chỉnh sửaCảm biến- Thay đổi tên cảm biến và mức phản hồi logic. Tổng cộng không thể có nhiều hơn 8 cảm biến bổ sung. Sau khi thay đổi các thông số, thiết bị phải được khởi động lại.
Lệnh ví dụ:
Chỉnh sửaCảm biến:1+Datchik dvizheniya v koridore#h

Cú pháp lệnh:

EditSensor - lệnh
: - dấu phân cách
1 - ghi vào ô nhớ đầu tiên
+ - dải phân cách
Datchik dvizheniya v koridore - tên của cảm biến, không được vượt quá 36 ký tự, kể cả dấu cách.
#h - Dấu hiệu mức logic cao từ cảm biến, khi nhận được tín hiệu này, cảnh báo sẽ được kích hoạt. Nếu thiếu "#h", cảnh báo sẽ được kích hoạt khi nhận được mức logic thấp từ cảm biến.


Giờ ngủ- Thời gian báo thức chuyển sang chế độ ngủ khi nhận được lệnh SMS “Tạm dừng” được tính bằng phút. Giá trị mặc định: 15, không thể nhỏ hơn 1 hoặc lớn hơn 60.
Lệnh ví dụ:

Cú pháp lệnh:

Giờ ngủ - lệnh
: - dấu phân cách
20 - 20 phút “ngủ”.


Báo ĐộngPinThời Gian- Thời gian bật/tắt cảnh báo/chân nghịch đảo được biểu thị bằng giây. Giá trị mặc định: 60, không được nhỏ hơn 1 giây và lớn hơn 43200 giây (12 giờ).
Lệnh ví dụ:

Cú pháp lệnh:

AlarmPinTime - lệnh
: - dấu phân cách
30 - 30 giây để bật/tắt chốt báo động.


Trì hoãn trước khi bảo vệ- Thời gian trước khi kích hoạt thiết bị, sau khi nhận được lệnh tương ứng.
Lệnh ví dụ:

Cú pháp lệnh:

DelayBeforeGuard - lệnh
: - dấu phân cách
25 - 25 giây trước khi kích hoạt


Trì hoãn trước khi báo động- Khoảng thời gian sau đó thông báo SMS “báo động” sẽ được gửi nếu báo động không được tắt trong khoảng thời gian này. Được thay thế bằng các lệnh mở rộng bắt đầu từ phiên bản GSM_2017_08_10-12-17.hex
Lệnh ví dụ:

Cú pháp lệnh:

DelayBeforeAlarm - lệnh
: - dấu phân cách
40 - 40 giây trước khi gửi thông báo “báo động”


XemQuyền LựcThời Gian- Thời gian tính bằng phút sau đó sẽ có tin nhắn SMS thông báo tắt nguồn điện bên ngoài. Nếu nguồn điện bên ngoài được khôi phục trước khi hết thời gian đã đặt, tin nhắn sẽ không được gửi.
Lệnh ví dụ:

Cú pháp lệnh:

WatchPowerTime - lệnh
: - dấu phân cách
5 - 5 phút trước khi gửi tin nhắn SMS


chuông thời gian- Thời lượng của cuộc gọi thoại báo động, tham số có thể có giá trị từ 10 đến 255 giây.
Lệnh ví dụ:

Cú pháp lệnh:

RingTime - lệnh
: - dấu phân cách
40 - 40 thời lượng cuộc gọi sẽ là 40 giây, sau đó thuê bao tiếp theo sẽ được gọi.


ID modem- Buộc cài đặt model modem đang sử dụng. Các giá trị có thể có: 0 - tự động phát hiện modem, 1 - M590, 2 - SIM800l, 3 - A6_Mini.
Lệnh ví dụ:

Cú pháp lệnh:

ModemID - lệnh
: - dấu phân cách
2 - ID modem.


ExtThiết bịThời gian- Số giây mà mức tín hiệu ở đầu ra điều khiển của thiết bị bên ngoài sẽ thay đổi.
Lệnh ví dụ:

Cú pháp lệnh:

ExtDeviceTime- lệnh
: - dấu phân cách
5 - 5 giây


ExtThiết bịCấp độThấp- Thiết bị ngoại vi kết nối với đầu ra A3 được điều khiển bằng mức tín hiệu thấp (GND). Đầu ra sẽ mặc định ở mức cao +5V cho đến khi nhận được lệnh điều khiển từ thiết bị bên ngoài
ExtThiết bịCấpCao- Một thiết bị bên ngoài kết nối với đầu ra A3 được điều khiển bằng mức tín hiệu cao (+5V). Đầu ra sẽ mặc định ở mức GND thấp cho đến khi nhận được lệnh điều khiển thiết bị bên ngoài.

Đặt lạiCảm biến- thiết lập lại cảm biến mở rộng cổng

Đặt lại cấu hình- đặt lại cài đặt về cài đặt gốc

Đặt lại điện thoại- xóa tất cả số điện thoại khỏi bộ nhớ

Đặt lại hoàn toàn- đặt lại cài đặt, xóa tất cả số điện thoại khỏi bộ nhớ, khôi phục giá trị mặc định của lệnh BalanceNum.

Đổ chuông- bật thông báo bằng cách gọi đến số “chính” được ghi trong ô nhớ đầu tiên khi cảm biến được kích hoạt. Đã xóa bắt đầu từ phiên bản GSM_2017_06_11-00-07.hex
Tắt chuông- tắt thông báo bằng cách đổ chuông khi cảm biến được kích hoạt. Đã xóa bắt đầu từ phiên bản GSM_2017_06_11-00-07.hex

tin nhắn sms trên- bật thông báo SMS khi cảm biến được kích hoạt. Đã xóa bắt đầu từ phiên bản GSM_2017_08_10-12-17.hex
tắt tin nhắn- tắt thông báo SMS khi cảm biến được kích hoạt. Đã xóa bắt đầu từ phiên bản GSM_2017_08_10-12-17.hex

PIROn- kích hoạt xử lý cảm biến chuyển động
PIRTắt- vô hiệu hóa xử lý cảm biến chuyển động

ReedSwitchBật- cho phép xử lý cảm biến sậy chính
ReedTắt- tắt xử lý cảm biến sậy chính

XemPowerOn- kích hoạt điều khiển nguồn điện bên ngoài, một tin nhắn SMS về việc tắt nguồn điện bên ngoài sẽ được gửi với điều kiện hệ thống báo động được trang bị. Đã xóa bắt đầu từ phiên bản GSM_2017_03_01-23-37.

XemPowerOn1- kích hoạt điều khiển nguồn điện bên ngoài, một tin nhắn SMS về việc tắt nguồn điện bên ngoài sẽ được gửi với điều kiện hệ thống báo động được trang bị.
XemPowerOn2- bật điều khiển nguồn điện bên ngoài, một tin nhắn SMS về việc tắt nguồn điện bên ngoài sẽ được gửi trong mọi trường hợp

XemTắt Nguồn- tắt điều khiển nguồn điện bên ngoài

Nút Bảo VệBật- điều khiển cảnh báo bằng thiết bị bên ngoài hoặc nút được bật. Đã xóa bắt đầu từ phiên bản GSM_2017_04_16-12-00.
Nút Bảo VệTrên1- chức năng thiết lập hoặc loại bỏ bảo vệ bằng thiết bị bên ngoài hoặc nút được kích hoạt
Nút Bảo VệOn2- chức năng chỉ sản xuấtđược trang bị bởi các thiết bị bên ngoài hoặc nút được bật; việc giải giáp được thực hiện bằng cách gọi đến thiết bị hoặc sử dụng lệnh SMS.
Nút Bảo VệTắt- điều khiển báo động bằng thiết bị bên ngoài hoặc nút bị vô hiệu hóa

PCForceBật- giám sát liên tục một nhóm tất cả các cảm biến mô-đun mở rộng
PCFBuộc Tắt- chỉ giám sát một nhóm gồm tất cả các cảm biến mô-đun mở rộng khi thiết bị được trang bị

ChínhCảm biếnMứcCao- thông báo cảnh báo sẽ được gửi khi tín hiệu mức cao (+5 V) xuất hiện ở đầu vào (D6) từ cảm biến
Cảm biến chínhMức độThấp- thông báo cảnh báo sẽ được gửi khi tín hiệu mức thấp (GND) xuất hiện ở đầu vào (D6) từ cảm biến
Cảm biến chínhCấp độTắt- xử lý đầu vào cảm biến (D6) bị tắt

Cảm biến thứ haiMức cao- thông báo cảnh báo sẽ được gửi khi tín hiệu mức cao (+5 V) xuất hiện ở đầu vào (A0) từ cảm biến
Cảm biến thứ haiMức độThấp- thông báo cảnh báo sẽ được gửi khi tín hiệu mức thấp (GND) xuất hiện ở đầu vào (A0) từ cảm biến
Mức độ cảm biến thứ haiTắt- việc xử lý đầu vào cảm biến (A0) bị vô hiệu hóa

ChínhTrì hoãnTrướcBáo động- thời gian sau đó, thông báo SMS “báo động” sẽ được gửi khi cảm biến chính (D6) được kích hoạt, nếu cảnh báo chưa được tắt trong khoảng thời gian này. Cú pháp giống như lệnh DelayBeforeAlarm.
Thứ haiĐộ trễTrướcBáo động- thời gian sau đó thông báo SMS “cảnh báo” sẽ được gửi khi cảm biến bổ sung (A0) được kích hoạt, nếu cảnh báo chưa được tắt trong khoảng thời gian này. Cú pháp giống như lệnh DelayBeforeAlarm.
PCFDelayTrướcBáo động- thời gian sau đó thông báo SMS “báo động” sẽ được gửi khi cảm biến bảng mở rộng (PCF8574) được kích hoạt, nếu cảnh báo không được tắt trong khoảng thời gian này. Cú pháp giống như lệnh DelayBeforeAlarm.

GuardOn - cánh tay
GuardOff - loại bỏ bảo vệ

Lệnh mở - điều khiển thiết bị bên ngoài

Thông tin - kiểm tra trạng thái, để trả lời tin nhắn này, một SMS sẽ được gửi cùng với thông tin về số nào đã bật/tắt bảo mật

Tạm dừng - tạm dừng hệ thống trong khoảng thời gian được đặt bởi lệnh thời gian ngủ tính bằng phút, hệ thống không phản hồi với các kích hoạt cảm biến.

TestOn - chế độ kiểm tra được bật, đèn LED màu xanh lam nhấp nháy.
TestOff - chế độ kiểm tra bị tắt.

LedOff - tắt đèn LED chờ.
LedOn - bật đèn LED chờ.

Tiền - yêu cầu số dư.

ClearSms - Xóa tất cả tin nhắn khỏi bộ nhớ

Các lệnh trên bảng điều khiển (tối đa phiên bản GSM_2017_04_24-13-22.hex) - được nhập vào màn hình cổng Arduino IDE:

AddPhone - tương tự như lệnh sms AddPhone

DeletePhone - tương tự như lệnh sms DeletePhone

EditSensor - tương tự như lệnh sms EditSensor

ListPhone - xuất ra cổng giám sát danh sách các điện thoại được lưu trong bộ nhớ

ResetConfig - tương tự như lệnh sms ResetConfig

ResetPhone - tương tự như lệnh sms ResetPhone

FullReset - tương tự như lệnh sms FullReset

ClearSms - tương tự như lệnh sms ClearSms

WatchPowerOn1 - tương tự như lệnh sms WatchPowerOn1
WatchPowerOn2 - tương tự như lệnh sms WatchPowerOn2
WatchPowerOff - tương tự như lệnh sms WatchPowerOff

GuardButtonOn - tương tự như lệnh sms GuardButtonOn. Đã xóa bắt đầu từ phiên bản GSM_2017_04_16-12-00
GuardButtonOn1 - tương tự như lệnh sms GuardButtonOn1
GuardButtonOn2 - tương tự như lệnh sms GuardButtonOn2
GuardButtonOff - tương tự như lệnh sms GuardButtonOff

Memtest - kiểm tra bộ nhớ không thay đổi của thiết bị; tất cả các cài đặt của thiết bị sẽ được đặt lại, tương tự như lệnh FullReset.

I2CScan - tìm kiếm và khởi tạo các thiết bị được hỗ trợ trên bus I2C.

ListConfig - hiển thị cấu hình thiết bị hiện tại cho màn hình cổng.

ListSensor - xuất ra màn hình cổng của cấu hình cảm biến hiện tại.

CẬP NHẬT. Khi sử dụng cảm biến chuyển động, để tránh hiện tượng dương tính giả trong quá trình vận hành modem, cần thiết giữa ghim GNDA0 Arduino bày tỏ sự phản kháng, cảm ơn đồng chí
AllowPhone = (“70001234501”, “70001234502”, “70001234503”, “70001234504”, “70001234505”) - Các số được phép quản lý bảo mật.
AlarmPhone = (“70001234501”, “70001234502”) - Các số để gửi thông báo SMS khi cảm biến được kích hoạt và thông báo về việc giải giáp hoặc kích hoạt. Số đầu tiên trong danh sách sẽ được gọi khi cảm biến được kích hoạt nếu lệnh RingOn được thực thi; theo mặc định, tùy chọn này được bật. Điều này được thực hiện vì tin nhắn SMS có thể đến trễ đôi chút nhưng cuộc gọi sẽ được thực hiện ngay lập tức.

Nếu một cuộc gọi được nhận từ một số được ủy quyền hoặc một tin nhắn SMS có lệnh GuardOn/GuardOff thì tùy thuộc vào trạng thái bảo mật hiện tại, một tin nhắn SMS về việc kích hoạt hoặc vô hiệu hóa sẽ được gửi đến các số được liệt kê trong mảng AlarmPhone và một Tin nhắn SMS cũng sẽ được gửi đến số mà cuộc gọi đến.

Khi cảm biến được kích hoạt Tin nhắn SMS được gửi đến tất cả các số từ mảng (danh sách) AlarmPhone và một cuộc gọi thoại được thực hiện tới số đầu tiên trong mảng này.

Chỉ báo ánh sáng:
Đèn LED sáng màu đỏ - nó được trang bị vũ khí.
Đèn LED sáng màu xanh lá cây - không được kích hoạt, bật/tắt bằng lệnh SMS LedOn/LedOff.
Đèn LED liên tục nhấp nháy màu xanh lam - nó báo hiệu rằng mọi thứ đều ổn với Arduino, bo mạch không bị đóng băng, nó được sử dụng riêng để gỡ lỗi, nó được bật/tắt bằng lệnh TestOn/TestOff SMS.
* Mã chứa hàm LedTest(), nó nhấp nháy với đèn LED màu xanh lam, nó được tạo ra chỉ để giám sát Arduino, nhấp nháy - nghĩa là nó đang hoạt động, không nhấp nháy - nó bị treo. Vẫn chưa cúp máy :)

Không liên quan!

Kết nối 2 cảm biến trở lên để mở firmware (chỉ áp dụng cho firmware sketch_02_12_2016.ino này)
Để kết nối các cảm biến sậy bổ sung, chúng tôi sử dụng các chân kỹ thuật số miễn phí D2, D3, D5 hoặc D7. Sơ đồ kết nối với cảm biến bổ sung trên D7.

Những thay đổi cần thiết trong phần sụn
... #define DoorPin 6 // Số đầu vào được kết nối với cảm biến chính int8_t DoorState = 0; // Biến lưu trữ trạng thái của cảm biến chính int8_t DoorFlag = 1; // Biến lưu trữ trạng thái của cảm biến chính #define BackDoorPin 7 // Số đầu vào được kết nối với cảm biến bổ sung int8_t BackDoorState = 0; // Biến lưu trữ trạng thái của cảm biến bổ sung int8_t BackDoorFlag = 1; // Biến để lưu trữ trạng thái của cảm biến bổ sung...
void setup() ( ... pinMode(DoorPin, INPUT); pinMode(BackDoorPin, INPUT); ...
... void Detect() ( // Đọc giá trị từ cảm biến DoorState = digitalRead(DoorPin); BackDoorState = digitalRead(BackDoorPin); // Xử lý cảm biến chính if (DoorState == LOW && DoorFlag == 0) ( DoorFlag = 1; độ trễ (100); if (LedOn == 1) digitalWrite(GLed, LOW); if (DoorState == HIGH && DoorFlag == 1)( DoorFlag = 0; delay(100); ) // Đang xử lý cảm biến bổ sung if (BackDoorState == LOW && BackDoorFlag == 0) ( BackDoorFlag = 1; delay(100); if (LedOn == 1) digitalWrite(GLed, LOW); Alarm(); ) if (BackDoorState == HIGH && BackDoorFlag = = 1)( BackDoorFlag = 0; độ trễ(100); ) ) ...

Và một điều nữa:
1. Tốt hơn là sử dụng điốt định mức cho dòng điện 2 A, vì mô-đun mang dòng điện 1 A và chúng ta vẫn cần cấp nguồn cho Arduino và modem bằng thứ gì đó. Ví dụ này sử dụng điốt 1N4007; nếu chúng bị hỏng, hãy thay thế chúng bằng điốt 2 A.
2. Tôi đã sử dụng tất cả các điện trở cho đèn LED ở mức 20 kOhm để không chiếu sáng toàn bộ hành lang vào ban đêm.
3. Tôi cũng đặt một điện trở 20 kOhm trên cảm biến sậy giữa chân GND và chân D6.

Đó là tất cả cho bây giờ. Cám ơn vì sự quan tâm của bạn! :)

Tôi đang định mua +204 Thêm vào mục yêu thích Tôi thích bài đánh giá +112 +243