Nằm trong chuỗi bài hướng dẫn sử dụng Module Sim800A, bài viết này sẽ hướng tới một ứng dụng cụ thể hơn, giúp các bạn dễ hình dung ra cách thức sử dụng module sim800A trong thực tế.
Bài toán đặt ra: Đo nhiệt độ phòng, giám sát cảnh báo về điện thoại khi nhiệt độ vượt ngưỡng
Bài toán này được ứng dụng khá nhiều trong thực tế như: Giám sát nhiệt độ phòng lạnh dùng trong bảo quản thực phẩm nông nghiệp, Giám sát nhiệt độ phòng đặt máy chủ …
Chuẩn bị phần cứng
1 Kit Arduino Uno R3 hoặc 1 Kit Arduino Uno VN01
http://mlab.vn/1697809-uno-vn01-arduino-uno-phien-ban-viet-nam.html
http://mlab.vn/407044-arduino-uno-r3-su-dung-atmega-328p-pu.html
1 Module Sim800A dùng cho Arduino
http://mlab.vn/1990921-sim800a-gsm-shield-dung-cho-arduino.html
1 Cảm biến nhiệt độ, độ ẩm DHT11
http://mlab.vn/1737124-module-cam-bien-nhiet-do-do-am-dht11.html
Kết nối phần cứng
Tham khảo hướng dẫn sử dụng Module Sim800A
Để cho các bạn dễ hình dung, mình làm lưu đồ thuật toán
Code demo, các bạn tạo project mới trên Arduino IDE, copy chương trình bên dưới vào, nạp chương trình và chạy
#include "DHT.h" #define DHTTYPE DHT11 // DHT 11 #define DHTPIN A0 // Chan ket noi #define TEMPERATURE_WARNING 28 // Ngương canh bao nhiet do 28*C const String myphone = "01689951815"; // Thay so cua ban vao day const int PWR_KEY = 9; // Chan so 9 arduino uno dung lam chan dieu khien bat tat module sim900A float Temperature = 0; void Gsm_Power_On(); // Bat module Sim 900A void Gsm_Init(); // Cau hinh Module Sim 900A void Gsm_MakeCall(); // Ham goi dien void Gsm_MakeSMS(); // Ham nhan tin canh bao DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); // Cau hinh UART de giao tiep module Sim 900A digitalWrite(PWR_KEY, LOW); // Khai bao chan PWR_KEY de dieu khien bat bat module Sim 900A pinMode(PWR_KEY, OUTPUT); dht.begin(); // Bat dau dung DHT delay(1000); Gsm_Power_On(); // Bat Module Sim 900A Gsm_Init(); // Cau hinh module Sim 900A Gsm_MakeCall(); // Test cuoc goi } void loop() { Temperature = dht.readTemperature(); Serial.print("Nhiet do : "); // Gui noi dung Serial.print(Temperature); Serial.println(" *C"); if(Temperature > TEMPERATURE_WARNING) { Gsm_MakeSMS(); delay(20000); } delay(2000); } void Gsm_Power_On() { digitalWrite(PWR_KEY, HIGH); // Du chan PWR_KEY len cao it nhat 1s delay(1500); // o day ta de 1,5s digitalWrite(PWR_KEY, LOW); // Du chan PWR_KEY xuong thap delay(10000); // cac ban xem trong Hardware designed sim900A de hieu ro hon } void Gsm_Init() { Serial.println("ATE0"); // Tat che do phan hoi (Echo mode) delay(2000); Serial.println("AT+IPR=9600"); // Dat toc do truyen nhan du lieu 9600 bps delay(2000); Serial.println("AT+CMGF=1"); // Chon che do TEXT Mode delay(2000); Serial.println("AT+CLIP=1"); // Hien thi thong tin nguoi goi den delay(2000); Serial.println("AT+CNMI=2,2"); // Hien thi truc tiep noi dung tin nhan delay(2000); } void Gsm_MakeCall() { Serial.println("ATD" + myphone + ";"); // Goi dien delay(15000); // Sau 15s Serial.println("ATH"); // Ngat cuoc goi delay(2000); } void Gsm_MakeSMS() { Serial.println("AT+CMGS=\"" + myphone + "\""); // Lenh gui tin nhan delay(5000); // Cho ky tu '>' phan hoi ve Serial.print("Nhiet do vuot nguong: "); // Gui noi dung Serial.print(Temperature); Serial.print(" *C"); Serial.print((char)26); // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di delay(5000); // delay 5s }
Còn tiếp video hướng dẫn
....
Bài viết liên quan
Hướng dẫn sử dụng module Sim800A Phần 1 |
Hướng dẫn sử dụng module Sim800A – Phần 2 Giao tiếp với Server |
Hướng dẫn sử dụng module Sim800A Phần 3 Bluetooth |