Học Arduino_Dự án 65: Thiết lập một SMS điều khiển từ xa

No Comments

Trong dự án này bạn sẽ điều khiển các chân tín hiệu của Arduino bằng tin nhắn được gửi từ điện thoại. Ở đây chúng tôi sẽ điều khiển bốn chân tín hiệu bạn có thể cài đặt để điều khiển nhiều hơn hoặc ít hơn nếu thích.

Để on hoặc off bốn chân tín hiệu ( chúng tôi sử dụng chân 10 đến 13 trong ví dụ này) chúng tôi sẽ gửi tin nhắn đến Arduino với định dạng: axbxcxdx hãy thay thế x bằng 1 tương ứng với on và 0 tương ứng với off. Ví dụ để on tất cả các chân ta gửi tin nhắn với nội dung: #a1b1c1d1

Phần cứng

Ở dự án này chúng tôi sẽ sử dụng lại các phần cứng ở đầu chương. Và để biểu thị trạng thái on hay off của các chân trên Arduino chúng tôi sẽ lắp thêm 4 con led cho bốn trạng thái của bốn chân trên Arduno. Một số phần cứng khác được sử dụng:

  • 4 con LED
  • 4 con điện trở 560Ʊ
  • Dây kết nối
  • Một breadboard

Sơ đồ kết nối

Kết nối phần cứng theo sơ đồ như hình 20-11

Hình 20-11: Sơ đồ kết nối dự án 65

Code điều khiển

Nhập mã vào Arduino IDE và upload lên Arduino

// Project 65 – Setting Up an SMS Remote Control

#include <SoftwareSerial.h>

SoftwareSerial cell(2,3);

char inchar;

void setup()

{

// set up digital output pins to control

pinMode(10, OUTPUT);

pinMode(11, OUTPUT);

pinMode(12, OUTPUT);

pinMode(13, OUTPUT);

digitalWrite(10, LOW); // default state for I/O pins at power-  up or reset,

digitalWrite(11, LOW); // change as you wish.

digitalWrite(12, LOW);

digitalWrite(13, LOW);

//Initialize the GSM module serial port for communication.

cell.begin(9600);

delay(30000);

(1) cell.println(“AT+CMGF=1”);

delay(200);

(2)  cell.println(“AT+CNMI=3,3,0,0”);

delay(200);

}

void loop()

{

// If a character comes in from the cellular module…

(3)  if(cell.available() > 0)

{

inchar = cell.read();

(4)   if (inchar == ‘#’) // the start of our command

{

delay(10);

inchar = cell.read();

(5)     if (inchar == ‘a’)

{

delay(10);

inchar = cell.read();

if (inchar == ‘0’)

{

digitalWrite(10, LOW);

}

else if (inchar == ‘1’)

{

digitalWrite(10, HIGH);

}

delay(10);

inchar = cell.read();

if (inchar == ‘b’)

{

inchar = cell.read();

if (inchar == ‘0’)

{

digitalWrite(11, LOW);

}

else if (inchar == ‘1’)

{

digitalWrite(11, HIGH);

}

delay(10);

inchar = cell.read();

if (inchar == ‘c’)

{

inchar = cell.read();

if (inchar == ‘0’)

{

digitalWrite(12, LOW);

}

else if (inchar == ‘1’)

{

digitalWrite(12, HIGH);

}

delay(10);

inchar = cell.read();

if (inchar == ‘d’)

{

delay(10);

inchar = cell.read();

if (inchar == ‘0’)

{

digitalWrite(13, LOW);

}

else if (inchar == ‘1’)

{

digitalWrite(13, HIGH);

}

delay(10);

}

}

cell.println(“AT+CMGD=1,4”); // delete all SMS

}

}

}

}

}

Đoạn code làm việc như thế nào??

Trong dự án này Arduino sẽ sử dụng những ký tự được GSM shield gửi đến. Do đó tại dòng code (1) chúng ta đã ra lệnh cho GSM shield chuyển đổi tin nhắn đến và gửi nội dung đến cổng serial ảo tại dòng lệnh (2). Arduino sẽ chờ đến khi có tin nhắn từ GSM shield gửi đến tại (3).

Vì lệnh được gửi từ điện thoại và thông qua GSM module để điều khiển chân trên Arduino được bắt đầu với # do dó dòng lệnh sẽ chờ cho đến khi kí tự # xuất hiện trong tin nhắn tại (4). Tại vị trí (5)dòng lệnh sẽ bắt đầu kiểm tra nếu kí tự là ‘a’ sẽ tiếp tục kiểm tra giá trị đi kèm là 0 hay 1 tương ứng với trạng thái chân tín hiệu. Quá trình này sẽ tiếp tục lặp lại cho b,c và d.

Bạn hãy thử tưởng tượng xem bạn có thể làm gì với dự án này? Theo chúng tôi thì chúng có thể điều khiển cho mọi vật hoạt động như bóng đèn, máy bơm , thiết bị cảnh báo và nhiều hơn thế nửa.

Tầm nhìn

Với ba dự án trong chương này bạn đã có những tiền đề tuyệt vời để có thể xây dựng những dự án truyền thông trên mạng di động. Giới hạn của bạn chỉ là trí tưởng tượng – Bạn sẽ nhận được tin nhắn nếu có kẻ trộm đột nhập hay bật điều hòa trước khi bạn về nhà. Một lần nữa hãy chú ý các chi phí phát sinh khi sử dụng truyền thông tin trên mạng di động.

Đến đây sau khi bạn đã xem qua 65 dự án của quyển sách này bạn đã có những kiến thức nhất định và có sự tự tin để xây dựng các dự án dựa trên Arduino. Bạn đã biết những cái cơ bản để xây dựng thêm nhiều dự án khác  và tôi chắc chắn bạn có thể ứng dụng các công nghệ này đề giải quyết các vấn đề và có những phút giây vui vẻ.

Đây mới chỉ là sự khởi đầu, bạn có thể tìm thấy nhiều loại phần cứng có thể làm việc cho các kế hoạch của bạn và bạn có thể làm việc với tất cả phần cứng đó. Bạn có thể tìm thấy một cộng đồng lớn những người sử dụng Arduino trên Internet (Và đây là một nơi như vậy http://arduino.cc/forum/) hoặc ở các hội, nhóm.

Vì vậy đừng dừng lại ở đây – hãy làm điều gì đó!

Sản phẩm được quan tâm

Nhận bài viết mới

Các bài viết chia sẻ đến cộng đồng rất chât lượng, mang lại rất nhiều kiến thức mới. Đừng bỏ lỡ bất kỳ bài viết nào của chung tối, hãy đăng ký để nhận bài viết mới qua Mail của bạn

Đăng ký để không bỏ lỡ bài viết nào!

Fields marked with an * are required

Danh mục




More from our blog

See all posts
No Comments
 

Leave a Comment