Điều khiển thiết bị bằng tin nhắn dùng SIM900A với tập lệnh AT

I. Giới thiệu

Module SIM900a là một giải pháp toàn diện cho việc điều khiển và giám sát thiết bị từ xa. Đại khái là module SIM900A được coi như 1 em nokia 1280 với chức năng nghe gọi, nhắn tin, GPRS,...Sau một thời gian dài gác phím, hôm nay, mình sẽ chia sẻ cách dùng module SIM900a đọc cú pháp tin nhắn gửi đến và điều khiển thiết bị sử dụng tập lệnh AT nhé laugh

Các bạn có thể tham khảo bài viết điều khiển thiết bị bằng tin nhắn dùng thư viện sim900 của anh PhuPOP tại đây

II. Chuẩn bị

III. Kết nối

SIM900A  Arduino
TX 2
RX 3
GND GND

Các bạn sử dụng nguồn riêng 5v-2A và chung GND với Arduino cho module SIM900A V3 nhé :) Nguồn dưới 2A sẽ không đủ điện áp cho module SIM900A chạy, làm cho nó bị reset á :)

IV. Code thoai

String tin_nhan;
#include <SoftwareSerial.h>

SoftwareSerial SIM900(2, 3); // RX, TX

void setup()
{
    pinMode(13, OUTPUT);
    Serial.begin(9600);
    SIM900.begin(2400);
    delay(1000);
    //khởi tạo sim
    SIM900.println("AT+CMGF=1r"); //Lệnh này đưa tin nhắn về dạng text, phải có lệnh này mới đọc, gửi tin nhắn dạng text đc nhé :)
    delay(1000);
    SIM900.println("AT+CNMI=2,2,0,0,0r"); //Hiển thị ngay nếu tin nhắn gửi đến
    delay(1000);

    Serial.println("San sang!!!");
}

void loop()
{
    while (SIM900.available() > 0) {
        char c = SIM900.read(); //Đọc từng ký tự gửi về
        if (c == '#') {
            break;
        } //Nếu phát hiện ký tự "#" thì thoát vòng lặp;
        tin_nhan += c; //Ghép các ký tự thành 1 xâu tin_nhan
    }
    if (tin_nhan.length() > 0) {
        Serial.println(tin_nhan);
        if (tin_nhan == "bat_den") {
            digitalWrite(13, HIGH);
        }
        else if (tin_nhan == "tat_den") {
            digitalWrite(13, LOW);
        }
        tin_nhan = "";
    }
}

V. Kết luận

Bây giờ rút điện thoại ra các bạn soạn tin theo cú pháp đến Số điện thoại của module SIM: " bat_den# ", "tat_den# " để chiêm ngưỡng thành quả nhé :)

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

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

Shortcut02 - Điều khiển Servo từ xa thông qua biến trở

Đây là loạt bài vắn tắt chia sẻ kinh nghiệm giúp các bạn có thể sử dụng các mudule cũng như tiếp cận code một cách ngắn gọn và dễ hiểu hơn smiley

Mục đích bài viết: Hướng dẫn điều khiển một Servo trong các dự án robot từ xa thông qua module NRF24 bằng biến trở cool

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ả

Tập lệnh AT với ESP8266

Như các bạn đã biết về tập lệnh AT của module bluetooth HC05 dùng để config các chế độ hoạt động trên module. Vậy với ESP8266 cũng thế, nó cũng có tập lệnh AT của riêng mình để thiết lập các chế độ, và tập lệnh AT đối với ESP8266 khá quan trọng để tương tác với các thiết bị khác thông qua UART. Vậy, chúng ta cùng đi tìm hiểu về tập lệnh AT của ESP8266 nào!!!

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

Chạy đa nhiệm trên Arduino với FreeRTOS

Khi chúng ta làm 1 project lớn, bạn sẽ phải viết chương trình thực hiện nhiều chức năng. Và khi đó, bạn sẽ gặp nhiều vấn đề phức tạp : làm như thế nào để chương trình hoạt động ổn định khi kết hợp nhổi nhét nhiều đoạn code đơn giản thành 1 khối thống nhất?. Ở bài viết này, chúng ta cùng đi giải quyết vấn đề trên. Trên Arduino.vn cũng đã có nhiều bài viết về xử lý bất đồng bộ rất hay. Các bạn có thể xem tại đây. Vậy mục đích viết bài của mình hôm nay là gì? Hôm nay mình sẽ giới thiệu một thư viện đa nhiệm mới khác, đó chính là FreeRTOS

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