1. Trang chủ
  2. » Công Nghệ Thông Tin

Điều khiển thiết bị qua sms với Arduino và sim900

19 2.1K 27

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Bài hướng dẫn chi tiết cách lập trình Arduino với sim900 để điều khiển thiết bị. Tài liệu bao gồm Đọc giá trị cảm biến độ ẩm đất và gửi giá trị độ ẩm đến số điện thoại đã được định nghĩa trước. Lập trình arduino, điều khiển thiết bị qua sms, arduino và sim900

Điều khiển thiết bị qua sms với Arduino sim900 Bài hướng dẫn chi tiết cách lập trình Arduino với sim900 để điều khiển thiết bị Tài liệu bao gồm Đọc giá trị cảm biến độ ẩm đất gửi giá trị độ ẩm đến số điện thoại định nghĩa trước Phần 1: Gửi tin nhắn Nguyên lý hoạt động: - Đọc giá trị cảm biến độ ẩm đất gửi giá trị độ ẩm đến số điện thoại định nghĩa trước Thiết bị cần có: - 01 bo mạch Arduino UNO (bạn sử dụng bo mạch Arduino Pro mini, giá 85k) - 01 bo GSM SIM900A version 3.8.2 Giá 400k - 01 rờ le - 01 adapter 5V, 01 ampe ( Arduino 5V Rx < > Tx 5V Tx < > Rx +5V < > 5V GND < > GND Nạp code: Mở trình biên dịch Arduino IDE, gõ vào lệnh sau download file đính kèm bên #include #include // pins definition int moistureSensorPin = 1; // Cảm biến độ ẩm, chân A1 int pumpPin = 7; // Role mở máy bơm, chân A7 int moistureSensorValue; // biến lưu giá trị độ ẩm String MobileNumber="0968660390"; // Số điện thoại cần gửi void setup() { Serial.begin(9600); // Arduino pins initalization pinMode(moistureSensorPin,OUTPUT); pinMode(pumpPin,OUTPUT); Config(); } void Config()// This function is configuring our SIM900 module i.e sending the initial AT commands { delay(1000); Serial.print("ATE0\r"); Response(); Serial.print("AT\r"); Response(); Serial.print("AT+CMGF=1\r"); // To check if your modem supports this text mode Response(); // Serial.print("AT+CSCS=\"HEX\"\r"); // check modem support unicode sms message? // Response(); // // Serial.print("AT+CSMP=1,167,0,8\r"); // Response(); } void Response() // Get the Response of each AT Command { int count = 0; Serial.println(); while(1) { if(Serial.available()) { char data =Serial.read(); if(data == 'K') { Serial.println("OK"); break; } if(data == 'R') { Serial.println("GSM Not Working or Not support"); break; } } count++; delay(10); if(count == 1000) { Serial.println("GSM not Found"); break; } } } void loop() { // Đọc giá trị cảm biến độ ẩm moistureSensorValue = analogRead(moistureSensorPin); Serial.println(moistureSensorValue); // Gửi tin nhắn đất khô if(moistureSensorValue >= 700) { sendSMS("DAT QUA KHO CAN TUOI NUOC."); } if((moistureSensorValue < 700) && (moistureSensorValue >= 300)) { sendSMS("DAT AM."); } } void sendSMS(String message) { while(1) { if(Serial.available()) { Serial.println(); Serial.print("AT+CMGS=\""); // send the SMS number Serial.print(MobileNumber); Serial.println("\""); delay(1000); Serial.print(message); // SMS body delay(1000); Serial.write(0x1A); Serial.write(0x0D); Serial.write(0x0A); delay(2000); } } } Kết quả: Mình giải thích lệnh AT để gửi tin nhắn phần Mời bạn đón xem Phần 2: Giải thích tập lệnh AT sử dụng để gửi tin nhắn Kiểm tra modem GSM có hỗ trợ text mode: Để kiểm tra modem GSM có hỗ trợ text mode, ta dùng lệnh: AT+CMGF=1 Nếu modem trả kết "OK" nghĩa modem có hỗ trợ Text mode nghĩa chế độ gửi tin nhắn ký tự đơn giản, ko hỗ trợ tiếng việt có dấu (unicode), data, hình ảnh Để gửi tin nhắn SMS, ta dùng lệnh: AT+CMGS="Số điện thoại bạn muốn gửi" Modem trả lời với ký tự > Và đợi bạn nhập chuỗi nội dung tin nhắn cần gửi, xong nhấn để gửi Để gửi tin nhắn Unicode (tiếng việt có dấu chẳng hạn): Đầu tiên ta kiểm tra xem modem GSM có hỗ trợ Unicode hay không cách dùng lệnh sau: AT+CSCS=? Nếu kết trả từ modem "HEX" "UCS2" nghĩa modem có hỗ trợ Và ta dùng lệnh bên để cài đặt modem gửi tin nhắn Unicode: AT+CSCS="HEX" Ta rõ bảng mã font Unicode (Data Coding Scheme) cho tin nhắn cách dùng lệnh: AT+CSMP=1,167,0,8 Sau lệnh trên, modem GSM bạn gửi tin nhắn chế độ Unicode Và để gửi tin nhắn ta dùng lệnh: AT+CMGS="Số điện thoại bạn muốn gửi" Sau gõ vào chuỗi nội dung tin nhắn, xong nhấn [...]... if(moistureSensorValue >= 700) { sendSMS("DAT QUA KHO CAN TUOI NUOC."); } if((moistureSensorValue < 700) && (moistureSensorValue >= 300)) { sendSMS("DAT AM."); } } void sendSMS(String message) { while(1) { if(Serial.available()) { Serial.println(); Serial.print("AT+CMGS=\""); // send the SMS number Serial.print(MobileNumber); Serial.println("\""); delay(1000); Serial.print(message); // SMS body delay(1000); Serial.write(0x1A);... biên dịch Arduino IDE, và gõ vào lệnh sau hoặc download file đính kèm bên dưới #include #include // pins definition int moistureSensorPin = 1; // Cảm biến độ ẩm, chân A1 int pumpPin = 7; // Role mở máy bơm, chân A7 int moistureSensorValue; // biến lưu giá trị độ ẩm String MobileNumber="0968660390"; // Số điện thoại cần gửi void setup() { Serial.begin(9600); // Arduino pins... nhắn SMS, ta dùng lệnh: AT+CMGS="Số điện thoại bạn muốn gửi" Modem sẽ trả lời với ký tự > Và đợi bạn nhập chuỗi nội dung tin nhắn cần gửi, xong nhấn để gửi Để gửi tin nhắn Unicode (tiếng việt có dấu chẳng hạn): Đầu tiên ta kiểm tra xem modem GSM có hỗ trợ Unicode hay không bằng cách dùng lệnh sau: AT+CSCS=? Nếu kết quả trả về từ modem là "HEX" hoặc "UCS2" nghĩa là modem đó có hỗ trợ Và. .. Config(); } void Config()// This function is configuring our SIM900 module i.e sending the initial AT commands { delay(1000); Serial.print("ATE0\r"); Response(); Serial.print("AT\r"); Response(); Serial.print("AT+CMGF=1\r"); // To check if your modem supports this text mode Response(); // Serial.print("AT+CSCS=\"HEX\"\r"); // check modem support unicode sms message? // Response(); // // Serial.print("AT+CSMP=1,167,0,8\r");... Unicode (Data Coding Scheme) cho tin nhắn bằng cách dùng lệnh: AT+CSMP=1,167,0,8 Sau lệnh trên, modem GSM của bạn giờ có thể gửi tin nhắn chế độ Unicode Và để gửi tin nhắn ta dùng lệnh: AT+CMGS="Số điện thoại bạn muốn gửi" Sau đó gõ vào chuỗi nội dung tin nhắn, xong nhấn ... Cái ampe quan trọng nha - 01 cảm biến độ ẩm đất - 01 SIM điện thoại nhận/nhắn tin Sau gắn SIM vào khe SIM bo mạch GSM SIM900 Gắn điện nguồn 5V vào bo mạch SIM900 Cách đấu nối: GSM < -> Arduino. .. if(moistureSensorValue >= 700) { sendSMS("DAT QUA KHO CAN TUOI NUOC."); } if((moistureSensorValue < 700) && (moistureSensorValue >= 300)) { sendSMS("DAT AM."); } } void sendSMS(String message) { while(1)... có dấu (unicode), data, hình ảnh Để gửi tin nhắn SMS, ta dùng lệnh: AT+CMGS="Số điện thoại bạn muốn gửi" Modem trả lời với ký tự > Và đợi bạn nhập chuỗi nội dung tin nhắn cần gửi, xong

Ngày đăng: 24/12/2015, 17:04

TỪ KHÓA LIÊN QUAN

w