Điều khiển thiết bị bằng tin nhắn với Sim900 và Arduino

Lời ngõ

Mình viết tiếp bài hướng dẫn cơ bản về modul sim900 và arduino. Bài viết hơi muộn do tuần rồi công việc nhiều mình không có thời gian viết bài cũng như trả lời bình luận. Có 1 số inbox đến và mình cũng không có thời nghiên cứu để trả lời và giải đáp. Mục đích của mình ở những bài viết trên đây là muốn chia sẻ cho các bạn quan tâm tới chủ đề này để các bạn dựa vào đó để tìm hiểu và phát triển ứng dụng vào từng project riêng của các bạn. Mình không thể chỉ chi tiết cho các bạn các bước từ việc nối dây đến code hay sơ đồ mạch lẫn mạch in ... vì thế mong các bạn nên tự tìm hiểu trước khi hỏi để 2 bên không mất thời gian. Bài viết mình có thể chưa hoàn thiện có gì sai sót các bạn để lại comment góp ý để mình hoàn thiện thêm nhé angel.

Vào đề

Trong bài viết này mình chia sẻ nốt cách điều khiển thiết bị qua SMS (phần này tương đối dễ) Và nói sơ qua về nền tảng Processcing để các bạn tìm hiểu trước khỏi bõ ngỡ trong bài viết sau, 1 số bạn biết rồi thì có thể bỏ qua.

Phần nối dây và sử dụng thư viện mình nói trong 2 bài trước các bạn xem lại nếu không nhớ

Bài 1: Thư viện sim900 cho arduino

Bài 2: Hướng dẫn sử dụng thư viện để gửi sms.

Code phần điều khiển led bằng sms

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"

SMSGSM sms;

int numdata;
boolean started = false; //trạng thái modul sim
char smstext[160]; // nội dung tin nhắn
char number[20]; // số điện thoại format theo định dạng quốc tế

void setup(){
  Serial.begin(9600);
  Serial.println("Gui va nhan tin nhan");
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;  
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
    sms.SendSMS("+84982488032", "Online");
  }
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
}

void loop() {
  if(started){
    char pos; //địa chỉ bộ nhớ sim (sim luu tối đa 40 sms nên max pos = 40)
    pos = sms.IsSMSPresent(SMS_UNREAD); // kiểm tra tin nhắn chưa đọc trong bộ nhớ
    //hàm này sẽ trả về giá trị trong khoảng từ 0-40
    if((int)pos){//nêu có tin nhắn chưa đọc
      if(sms.GetSMS(pos, number, smstext, 160)){
        Serial.print("So dien thoại: ");
        Serial.println(number);
        Serial.print("Noi dung tin nhan: ");
        Serial.println(smstext);
        if(strcmp(smstext,"LEDON")==0){//so sánh 2 chuỗi
          digitalWrite(13, HIGH);
          Serial.println("Bat led");
        } else {
          Serial.println("Co tin nhan den nhung sai cu phap");
        }
      }
      sms.DeleteSMS(byte(pos));//xóa sms vừa nhận
    }
    
    delay(1000);
  }
}

Ngôn ngữ Processing

Processing là một ngôn ngữ lập trình mã mở, thiết kế với mục đích lập trình đồ họa trên nhiều môi trường khác nhau: Linux, Window, Mac, Android, và cả Web. Ngôn ngữ được Casey Reas và Benjamin Fry của phòng thí nghiệm đa phương tiện đại học MIT sáng tạo, nên nó cũng thích hợp cho học tập, nghiên cứu những khái niệm cơ sở của đồ họa máy tính. Dự án processing bắt đầu năm 2001, xây dựng trên ngôn ngữ Java, nhưng sử dụng cú pháp đơn giản hơn.

Mình sử dụng ngôn ngữ processing để code phần mềm điều khiển. Nó tương đối dễ sử dụng và nhiều thư viện mở rộng. Yêu cầu các bạn cần có kiến thức java cơ bản.

Trang chủ Processing: http://www.processing.org/

Các bạn tìm hiểu trước tại trang web processing.

Bài sau mình sẽ hướng chia sẻ cách viết giao diện điều khiển, giao tiếp giữa arduino và giao diện processing trên máy tính qua USB, gửi nhận hiển thị dữa liệu ...

Các bạn thấy hữu ích thì vote và like cho mình để có động lực viết tiếp. Cảm ơn các bạn đã đọc bài!

Chúc các bạn thành công!

lên
23 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Tự làm bộ led nháy theo nhạc không cần IC chuyên dùng

Xin chào các bạn, từ thí nghiệm này mình đã nghiên cứu và tạo ra một bộ led nháy theo nhạc khá thú vị, mặc dù không được chuẩn như mấy con IC chuyên làm led nghe nhạc cheeky, nhưng mong rằng các bạn sẽ thấy thích nó :). Ta cùng bắt tay vào làm thôi.
lên
14 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Sử dụng module SIM900a mini với Arduino - Module nhắn tin với Arduino

Những dự án xây dựng các hệ thống điều khiển từ xa, gửi nhận dữ liệu thu thập từ các cảm biến... ở những nơi không có internet thì sử dụng sóng điện thoại là giải pháp duy nhất vì chi phí rẻ, bất chấp khoảng cách và độ ổn định cao. Với Modul sim 900a kết hợp với mạch xử lý arduino uno hoặc mega các bạn có thể làm được nhiều hệ thống tương đối tốt có thể ứng dụng vào thực tế như bộ định vị, các hệ thống điều khiển thiết bị từ xa qua điện thoại, sms makerting,..

lên
40 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Sim900A & Arduino | Gửi và nhận SMS

Bài viết trước mình có giới thiệu về thư viện SIM900 cho Arduino, hôm nay mình sẽ viết bài hướng dẫn các bạn sử dụng nó trong môi trường Arduino để thực hiện công việc gửi, nhận SMS, đọc nội dung SMS, xóa SMS và nhận trả lời mọi comment về những vấn đề phát sinh trong quá trình các bạn làm theo hướng dẫn của mình. " Và cũng nhân tiện cho mình gửi lời xin lỗi đến các bạn trong diễn đàn. Ở bài viết trước mình có nói sẽ hướng dẫn cho các bạn làm hệ thống chống trộm và định vị cho xe nhưng cái modul GPS của mình đổ keo để chống nước khi gắn vào xe và bây giờ không tiện gỡ ra vì vậy qua loạt bài này mình không có sử dụng modul GPS nếu bạn nào muốn làm những dự án liên quan GPS có thể inbox hoặc comment mình có thể hướng dẫn và gửi code tham khảo của mình cho". Mình viết bài chỉ ở mức cơ bản để các bạn có thể hiểu và sử dụng modul SIM900 trong môi trường Arduino và từ đó tư duy phát triển theo định hướng riêng cho các project khác nhau. 

lên
23 thành viên đã đánh giá bài viết này hữu ích.