Need a unique gift idea?
A Pastebin account makes a great Christmas gift
SHARE
TWEET

Untitled

a guest Nov 17th, 2018 60 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
 
  1. // SIM800A-MQ2-Buzzer.ino
  2.  
  3. /*
  4. Sơ đồ nối chân
  5. SIM800A     Arduino UNO
  6.  
  7. TX          2
  8. RX          3
  9. Power       4
  10. VCC         VCC
  11. GND         GND
  12. -----------------------
  13. MQ2         Arduino UNO
  14.  
  15. AO          A0
  16. VCC         VCC
  17. GND         GND
  18. -----------------------
  19. Mạch còi Arduino UNO
  20.  
  21. I/O         D11
  22. VCC         VCC
  23. GND         GND
  24.  
  25. LED       Arduino UNO
  26. cực dương        10
  27. âm               GND
  28.  */
  29. // #include "PCM.h"
  30. // #include "alarm-code.h"
  31. // LED Cảnh báo
  32. #define LED_pin 10
  33. // Còi Cảnh báo
  34. #define BUZZER 11
  35. // Chân analog của cảm biến MQ2
  36. #define MQ2_Apin A0
  37.  
  38. // Chân điều khiển bật tắt Module SIM800A
  39. #define PWR_KEY 4
  40.  
  41. // Giá trị ngưỡng để cảnh báo
  42. #define WARNING 5000
  43.  
  44. // Số điện thoại cần cảnh báo
  45. // thay đổi số điện thoại nhận tin nhắn tại đây
  46. const String phone_number = "0123456789";
  47.  
  48. // Biến chứa giá trị nồng độ đọc từ cảm biến MQ2
  49. int MQ2_val = 0;
  50.  
  51. void Gsm_Power_On();  // Bat module SIM800A
  52. void Gsm_Init();      // Cau hinh Module SIM800A
  53. void Gsm_Call();      // Ham goi dien
  54. void Gsm_sendSMS();   // Ham nhan tin canh bao
  55.  
  56. void setup() {
  57.   pinMode(MQ2_Apin, INPUT);
  58.   pinMode(LED_pin, OUTPUT);
  59.   // Cau hinh UART de giao tiep module SIM800A
  60.   Serial.begin(9600);
  61.  
  62.   // Khai bao chan PWR_KEY de dieu khien bat bat module SIM800A
  63.   digitalWrite(PWR_KEY, LOW);
  64.   pinMode(PWR_KEY, OUTPUT);
  65.  
  66.   delay(1000);
  67.   Gsm_Power_On();  // Bat Module SIM800A
  68.   Gsm_Init();      // Cau hinh module SIM800A
  69.   Gsm_Call();      // Test cuoc goi
  70. }
  71.  
  72. void loop() {
  73.   // ĐỌC giá trị Analog của cảm biến MQ2
  74.   MQ2_val = map(analogRead(MQ2_Apin), 0, 1023, 300, 10000);
  75.   if (MQ2_val >= WARNING) {
  76.     // nếu vượt ngưỡng báo động
  77.     // báo động bằng buzzer, LED
  78.     Alert();
  79.     // gửi tin nhắn SMS báo động
  80.     Gsm_sendSMS();
  81.   }
  82. }
  83. void Alert() {
  84.   // báo động bằng còi buzzer, LED
  85.   for (uint8_t i = 0; i < 255; i = i + 2) {
  86.     analogWrite(LED_pin, i);
  87.     analogWrite(BUZZER, i);
  88.     delay(10);
  89.   }
  90.   for (uint8_t i = 255; i > 1; i = i - 2) {
  91.     analogWrite(LED_pin, i);
  92.     analogWrite(BUZZER, i);
  93.     delay(5);
  94.   }
  95.   for (uint8_t i = 1; i <= 10; i++) {
  96.     analogWrite(LED_pin, 255);
  97.     analogWrite(BUZZER, 200);
  98.     delay(100);
  99.     analogWrite(LED_pin, 0);
  100.     analogWrite(BUZZER, 25);
  101.     delay(100);
  102.   }
  103. }
  104. void Gsm_Power_On() {
  105.   digitalWrite(PWR_KEY, HIGH);  // Du chan PWR_KEY len cao it nhat 1s
  106.   delay(1500);                  // o day ta de 1,5s
  107.   digitalWrite(PWR_KEY, LOW);   // Du chan PWR_KEY xuong thap
  108.   delay(10000);  // xem trong Hardware designed SIM800A de hieu ro hon
  109. }
  110.  
  111. void Gsm_Init() {
  112.   Serial.println("ATE0");  // Tat che do phan hoi (Echo mode)
  113.   delay(2000);
  114.   Serial.println("AT+IPR=9600");  // Dat toc do truyen nhan du lieu 9600 bps
  115.   delay(2000);
  116.   Serial.println("AT+CMGF=1");  // Chon che do TEXT Mode
  117.   delay(2000);
  118.   Serial.println("AT+CLIP=1");  // Hien thi thong tin nguoi goi den
  119.   delay(2000);
  120.   Serial.println("AT+CNMI=2,2");  // Hien thi truc tiep noi dung tin nhan
  121.   delay(2000);
  122. }
  123.  
  124. void Gsm_Call() {
  125.   Serial.println("ATD" + phone_number + ";");  // Goi dien
  126.   delay(15000);                                // Sau 15s
  127.   Serial.println("ATH");                       // Ngat cuoc goi
  128.   delay(2000);
  129. }
  130.  
  131. void Gsm_sendSMS() {
  132.   Serial.println("AT+CMGS=\"" + phone_number + "\"");  // Lenh gui tin nhan
  133.   delay(5000);                                      // Cho ky tu '>' phan hoi ve
  134.   Serial.print("Phat hien co khi gas: ");           // Gui noi dung
  135.   Serial.print(map(MQ2_val, 0, 1024, 300, 10000));  // gửi nồng độ gas
  136.   Serial.println(" ppm");                           // đơn vị nồng độ
  137.   // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di
  138.   Serial.print((char)26);
  139.   delay(5000); // delay 5s
  140. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top