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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 3,66 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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

Trang 1

Điều khiển thiết bị qua sms với Arduino và 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 và gửi giá trị độ ẩm đến số điện thoại đã được đị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 và gửi giá trị độ ẩm đến số điện thoại đã được định nghĩa trước

Thiết bị cần có:

- 01 bo mạch Arduino UNO (bạn có thể sử dụng bo mạch Arduino Pro mini, giá 85k)

- 01 bo GSM SIM900A version 3.8.2 Giá 400k

Trang 2

- 01 cái rờ le.

Trang 3

- 01 adapter 5V, 01 ampe ( <=2 ampe) Cái ampe này quan trọng nha.

Trang 4

- 01 cảm biến độ ẩm đất.

- 01 SIM điện thoại có thể nhận/nhắn tin Sau đó gắn SIM vào khe SIM trên bo mạch GSM SIM900

Trang 5

Gắn điện nguồn 5V vào bo mạch SIM900.

Trang 6

Cách đấu nối:

GSM < -> Arduino -5V Rx < > Tx

5V Tx < > Rx

+5V < > 5V

GND < > GND

Trang 12

Nạp code:

Mở trình 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 <SoftwareSerial.h>

#include <stdlib.h>

// 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

Trang 13

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");

Trang 14

}

}

count++;

delay(10);

if(count == 1000)

{

Serial.println("GSM not Found");

break;

}

}

}

void loop()

{

// Đọc giá trị của cảm biến độ ẩm

moistureSensorValue = analogRead(moistureSensorPin);

Serial.println(moistureSensorValue);

// Gửi tin nhắn nếu đất quá 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())

{

Trang 15

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ả:

Trang 16

Mình sẽ giải thích các lệnh AT để gửi một tin nhắn trong phần tiếp theo Mời các bạn đón xem nhé.

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 <ENTER>

Nếu modem trả về kết quả là "OK" nghĩa là modem có hỗ trợ Text mode nghĩa là 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

Trang 17

Để gửi tin nhắn SMS, ta dùng lệnh:

AT+CMGS="Số điện thoại bạn muốn gửi" <ENTER>

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 <Ctrl-Z> để gửi

Trang 18

Để 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à ta dùng lệnh bên dưới để cài đặt modem gửi tin nhắn Unicode:

AT+CSCS="HEX" <ENTER>

Ta có thể chỉ rõ bảng mã font Unicode (Data Coding Scheme) cho tin nhắn bằng cách dùng lệnh:

AT+CSMP=1,167,0,8 <ENTER>

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" <ENTER>

Trang 19

Sau đó gõ vào chuỗi nội dung tin nhắn, xong nhấn <Ctrl-Z>

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

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w