25/10/62

อ่านค่าสี เล่นไฟล์เสียงจาก SD Card ออกลำโพง

มินิโปรเจค Arduino อ่านค่าสี เล่นไฟล์เสียงจาก SD Card ออกลำโพง




โปรเจค Arduino พูดโต้ตอบได้ โดยการเล่นไฟล์เสียงจาก SD Card บทความนี้จะสอนใช้งาน Arduino เล่นไฟล์เสียงจาก SD Card ออกลำโพง เราสามารถอัดเสียงพูดหรือบันทึกเสียงเพลงลง SD Card แล้ว สั่งงานให้ Arduino เล่นไฟล์เสียงตามเงื่อนไขต่างๆได้

อุปกรณ์ที่ใช้ในโปรเจค



2. เซ็นเซอร์สี TCS34725 RGB Color Sensor

3. Breadboard 8.5CM x 5.5CM 400 holes

4. Jumper (M2M) 30cm Male to Male


5. Micro SD Card Class 10 16GB + Card Adapter

6. Micro SD Card Mini TF Card Reader Module



8. Loud Speakers 8 Ohm 5 Watt

9. รางถ่าน AA 8 ก้อน 12 โวลต์



.

ขั้นตอนการทำโปรเจค


1. ทดสอบการทำงาน เซ็นเซอร์สี TCS34725






1.1 เชื่อมต่อสาย ระหว่าง Arduino UNO กับ เซ็นเซอร์สี TCS34725






1.2 ติดตั้ง ไลบรารี สำหรับ เซ็นเซอร์สี TCS34725


ดาวน์โหลด ไลบรารี




ไปที่ Clone or download -> Download ZIP



เปิดโปรแกรม Arduino IDE ไปที่ Skecth -> Include Library -> Add .ZIP Library...



ไปที่ ไลบรารี Adafruit_TCS34725-master.zip ที่เรา ดาวน์โหลด มา -> Open




ตรวจสอบที่ Skecth -> Include Library  จะพบ ไลบรารี Adafruit TCS34725 เพิ่มเข้ามาใน Arduino IDE ของเรา






1.3 อัพโหลดโค้ด




เชื่อมต่อสาย USB ระหว่าง คอมพิวเตอร์ กับ บอร์ด Arduino แล้ว เปิดโปรแกรม Arduino IDE เขียนโค้ดดังนี้




#include "Wire.h"
#include "Adafruit_TCS34725.h"


Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X);

void setup() {


  Serial.begin(9600);
  Serial.println("RobotSiam.com -  Color Sensor");


  if (tcs.begin()) {

    Serial.println("Found sensor");
  } else {

    Serial.println("No TCS34725 found ... check your connections");
    while (1);
  }

  delay(1000);

}


void loop() {

  uint16_t clearcol, red, green, blue;
  float average, r, g, b;
  delay(100);
  tcs.getRawData(&red, &green, &blue, &clearcol);

  average = (red + green + blue) / 3;

  r = red / average;
  g = green / average;
  b = blue / average;

  Serial.print("\tClear:"); Serial.print(clearcol);
  Serial.print("\tRed:"); Serial.print(r);
  Serial.print("\tGreen:"); Serial.print(g);
  Serial.print("\tBlue:"); Serial.print(b);

  if ((r > 1.4) && (g < 0.9) && (b < 0.9)) {
    Serial.print("\tRed");
  }
  else if ((r < 0.95) && (g > 1.4) && (b < 0.9)) {
    Serial.print("\tGreen");
  }
  else if ((r < 0.8) && (g < 1.2) && (b > 1.2)) {
    Serial.print("\tBlue");
  }

  else if ((r > 1.15) && (g > 1.15) && (b < 0.7)) {
    Serial.print("\tYellow");
  }
  else if ((r > 1.4) && (g < 1.0) && (b < 0.7)) {
    Serial.print("\tOrange");
  }
  else {
    Serial.print("\tNot Recognized");
  }

  Serial.println("");
  delay(500);

}




ไปที่ Tools > Board เลือกเป็น Arduino/Genuino UNO




ไปที่ Tools > Port: แล้วเลือกพอร์ตที่ปรากฏ (กรณีใช้เครื่องคอมพิวเตอร์ที่มี COM Port มากกว่าหนึ่ง  ให้เลือกตัวอื่นที่ไม่ใช่ COM1)

ในตัวอย่างเลือกเป็น "COM6"

(ถ้ายังว่าง หรือ เป็น COM1 ให้ตรวจสอบการติดตั้งไดร์เวอร์ การต่อสาย USB ของ Arduino UNO)





กดปุ่ม  เพื่ออัพโหลด





หากสามารถอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ จะแสดงคำว่า Done uploading. ที่แถบด้านล่าง




1.4 ทดสอบการทํางาน

เปิดหน้าต่าง Serial Monitor  โดยไปที่ Tools > Serial Monitor




มุมขวาล่าง ของ Serial Monitor เลือกเป็น 9600 baud  คือ ตั้งค่าความเร็วในการรับ-ส่งข้อมูล  คือ 9600 ตามที่เราเขียนโค้ดไว้

ในกรณีที่ไม่ปกติ เช่น เช่นต่อสายไม่ถูก , เซ็นเซอร์สี TCS34725 ไม่ทำงาน จะแสดงข้อความ No TCS34725 found ... check your connections




ในกรณีที่ปกติ - นําวัตถุที่มีสีต่างๆมาทดสอบ ที่หน้าเซ็นเซอร์สี TCS34725 จะแสดงสีของวัตถุนั้นๆ




ถึงขั้นตอนนี้แสดงว่า เซ็นเซอร์สี TCS34725 ของเรานั้นพร้อมทำงานแล้ว

credit : https://www.makerblog.at/2015/01/farben-erkennen-mit-dem-rgb-sensor-tcs34725-und-dem-arduino/




2. ก๊อบปี้ไฟล์เสียง ลงใน Micro SD Card


ติดตั้งโปรแกรม SD Card Formatter 5.0 ใช้สำหรับ Format Disk สามารถดาวน์โหลดได้จากลิงก์


https://www.sdcard.org/downloads/formatter_4/eula_windows/


จากนั้นให้คลิกปุ่ม Accept โปรแกรม SD Formatter โปรแกรมจึงจะดาวน์โหลดสู่ คอมพิวเตอร์ของเรา แล้วติดตั้งเหมือนกับโปรแกรมทั่วไป



Micro SD Card , Class 10 ความจุ 16GB + Card Adapter



ให้เสียบ Micro SD Card เข้าไปใน Card Adapter



Card Adapter ที่มี Micro SD Card อยู่ด้านใน





แล้วจึงเสียบ Card Adapter ที่บรรจุ Micro SD Card ใส่ในช่องซ็อกเก็ตของคอมพิวเตอร์ PC (ดันจนกระทั่งมีเสียงคลิก)






แล้วทำการ Format , Micro SD Card โดยใช้โปรแกรม  SD Card Formatter


ถ้าเสียบ Card Adapter ที่บรรจุ Micro SD Card ได้ถูกต้อง ที่ Select card จะมี ไดรฟ์ ให้เลือก ในตัวอย่างจะเป็น ไดรฟ์  F:/ เลือก Quick format  แล้ว คลิก Format



คลิก Yes





คลิก OK  ถึงขั้นตอนนี้การ Format SD Card ของเรานั้นเสร็จสมบูรณ์แล้ว ให้ปิดโปรแกรมลงไป



ดาวน์โหลดไฟล์เสียงตามลิงค์ด้านล่าง





คลายซิป แล้วก็อบปี้ ไปที่ SD Card 



ตรวจสอบ ที่ SD Card จะพบไฟล์เสียง ที่ก็อบปี้ มา



นำ SD Card ใส่ในช่องซ็อกเก็ตของ Card Reader Module






3. ทดสอบการเล่นไฟล์เสียงจาก SD Card ออกลำโพง



 3.1 เชื่อมต่อสาย ระหว่าง Arduino UNO กับ Card Reader Module


Arduino UNO
SD Card Module
5V
VCC
GND
GND
Pin 12
MISO (Master In Slave out)
Pin 11
MOSI (Master Out Slave In)
Pin 13
SCK (Synchronous Clock)
Pin 4
CS (Chip Select)




3.2 เชื่อมต่อสาย ระหว่าง Arduino UNO กับ Audio Amplifier Module









3.3 ติดตั้ง ไลบรารี TMRpcm


ดาวน์โหลด ไลบรารี




ไปที่ Clone or download -> Download ZIP



เปิดโปรแกรม Arduino IDE ไปที่ Skecth -> Include Library -> Add .ZIP Library...



ไปที่ ไลบรารี TMRpcm-master.zip ที่เรา ดาวน์โหลด มา -> Open




ตรวจสอบที่ Skecth -> Include Library  จะพบ ไลบรารี TMRpcm เพิ่มเข้ามาใน Arduino IDE ของเรา




3.4 อัพโหลดโค้ด


เขียนโค้ด และ อัพโหลดโค้ด ดังนี้



#include <SD.h>
#define SD_ChipSelectPin 4
#include <TMRpcm.h>
#include <SPI.h>

char x = '0';
TMRpcm music;

void setup() {

  music.speakerPin = 9;

  Serial.begin(9600);
  
  if (!SD.begin(SD_ChipSelectPin)) {
    Serial.println("SD fail");
    return;
  }

}

void loop() {

  if (Serial.available()) {

    x = Serial.read();

    Serial.println(x);

    if (x == '1') {
      music.play("Blue.wav");
    }
    if (x == '2') {
      music.play("Green.wav");
    }
    if (x == '3') {
      music.play("Orange.wav");
    }
    if (x == '4') {
      music.play("Red.wav");
    }
    if (x == '5') {
      music.play("Yellow.wav");
    }

  }
}





3.4 ทดสอบการทํางาน


เปิดหน้าต่าง Serial Monitor  โดยไปที่ Tools > Serial Monitor





พิมพ์คำสั่ง 1 แล้วกด Send , โปรเจค จะเล่นไฟล์เสียง ชื่อ Blue.wav





พิมพ์คำสั่ง 2 แล้วกด Send , โปรเจค  จะเล่นไฟล์เสียง ชื่อ Green.wav
พิมพ์คำสั่ง 3 แล้วกด Send , โปรเจค  จะเล่นไฟล์เสียง ชื่อ Orange.wav
พิมพ์คำสั่ง 4 แล้วกด Send , 
โปรเจค  จะเล่นไฟล์เสียง ชื่อ Red.wav
พิมพ์คำสั่ง 5 แล้วกด Send , 
โปรเจค  จะเล่นไฟล์เสียง ชื่อ Yellow.wav


credit :  https://circuitdigest.com/microcontroller-projects/arduino-audio-music-player



4. อัพโหลดโค้ดโปรเจค






#include "Wire.h"
#include "Adafruit_TCS34725.h"
#include <SD.h>
#define SD_ChipSelectPin 4
#include <TMRpcm.h>
#include <SPI.h>


Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X);

TMRpcm music;

void setup() {

  music.speakerPin = 9;

  Serial.begin(9600);

  Serial.println("RobotSiam.com -  Color Sensor");

  if (tcs.begin()) {

    Serial.println("Found sensor");
  } else {

    Serial.println("No TCS34725 found ... check your connections");
    while (1);
  }

  delay(1000);

  if (!SD.begin(SD_ChipSelectPin)) {
    Serial.println("SD fail");
    return;
  }

}

void loop() {

  uint16_t clearcol, red, green, blue;
  float average, r, g, b;
  delay(100);
  tcs.getRawData(&red, &green, &blue, &clearcol);

  average = (red + green + blue) / 3;

  r = red / average;
  g = green / average;
  b = blue / average;

  Serial.print("\tClear:"); Serial.print(clearcol);
  Serial.print("\tRed:"); Serial.print(r);
  Serial.print("\tGreen:"); Serial.print(g);
  Serial.print("\tBlue:"); Serial.print(b);

  if ((r > 1.4) && (g < 0.9) && (b < 0.9)) {
    Serial.print("\tRed");
    music.play("Red.wav");
  }
  else if ((r < 0.95) && (g > 1.4) && (b < 0.9)) {
    Serial.print("\tGreen");
    music.play("Green.wav");
  }
  else if ((r < 0.8) && (g < 1.2) && (b > 1.2)) {
    Serial.print("\tBlue");
    music.play("Blue.wav");
  }

  else if ((r > 1.15) && (g > 1.15) && (b < 0.7)) {
    Serial.print("\tYellow");
    music.play("Yellow.wav");
  }
  else if ((r > 1.4) && (g < 1.0) && (b < 0.7)) {
    Serial.print("\tOrange");
    music.play("Orange.wav");
  }
  else {
    Serial.print("\tNot Recognized");
  }

  Serial.println("");
  delay(500);

}




8/10/62

ตรวจจับควันด้วย MQ-2 แจ้งเตือนผ่านทาง SMS

มินิโปรเจค Arduino ตรวจจับควันด้วย MQ-2 แจ้งเตือนผ่านทาง SMS จาก SIM900





ประโยชน์และการนำโปรเจคไปพัฒนาต่อ

ระบบสัญญาณเตือนไฟไหม้ (Fire Alarm System) คือ ระบบสำหรับแจ้งเตือนเมื่อมีเปลวไฟ หรือเหตุเพลิงไหม้ภายในอาคาร โดยใช้เซนเซอร์หรืออุปกรณ์ตรวจจับชนิดต่างๆ ตามความเหมาะสม เช่น อุปกรณ์ตรวจจับควันไฟ (Smoke Detector) อุปกรณ์ตรวจจับความร้อน (Heat Detector) อุปกรณ์ตรวจจับเปลวไฟ (Fire Extinguisher) เป็นต้น

ซึ่งระบบสัญญาณเตือนไฟไหม้นี้จะทำให้ผู้ที่อยู่ในอาคารสามารถรับรู้และแก้ไขได้อย่างทันท่วงที ป้องกันไม่ให้ไฟไหม้นั้นลุกลามจนไม่สามารถควบคุมได้ ซึ่งในการใชงานจริง อาจจะต้องใช้ 
เซนเซอร์ ทั้ง 3 แบบ ร่วมกันในการตรวจสอบ แล้วไปสั่ง หัวสปริงเกอร์ฉีดน้ำให้ทำงาน แต่ในตัวอย่างโปรเจคจะเลือกใช้ เซ็นเซอร์ตรวจจับควัน 
MQ-2 (Smoke Detector) ในขั้นตอนที่มีควัน หรือ ตรวจจับควันบุหรี่ ในสถานที่ห้ามสูบบุหรี่ แล้วแจ้งเตือนผ่านทาง SMS จาก SIM900 ผ่านระบบเครือข่ายโทรศัพท์มือถือที่รองรับเครือข่าย 2G




เป้าหมายและหลักการทำงานของโปรเจค



เมื่อมีกลุ่มควัน มาที่บริเวณเซ็นเซอร์ตรวจจับควัน MQ-2 จะมีการส่งสัญญาณ Analog ไปยัง Arduino หากมีความหนาแน่นของ ควัน ยังไม่สูงพอ (ที่ตั้งไว้ 140) ยังไม่ต้องส่งการแจ้งเตือน แต่ถ้าเกินค่าที่ตั้งไว้ 140 ให้ส่งค่าที่วัดได้พร้อมการแจ้งเตือน ผ่านทาง SMS จาก SIM900 ผ่านระบบเครือข่ายโทรศัพท์มือถือ ไปยัง เบอร์โทรศัพท์ ที่กำหนดไว้



อุปกรณ์ที่ใช้ในโปรเจค



3. Jumper (F2F) cable wire 20cm Female to Female

4. SIM900 V4.0 Wireless Data Transmission Module 

5. Adapter DC 5V 2A Power Supply

6. Sensor Shield V 5.0

.



ขั้นตอนการทำโปรเจค



1. ทดสอบการทำงาน MQ-2



1.1 ยึดบอร์ด Arduino UNO



1.2 ประกอบ Sensor Shield V 5.0



1.3 เชื่อมต่อสาย ระหว่าง Sensor Shield กับ MQ-2






1.4 เชื่อมต่อสาย USB ระหว่าง คอมพิวเตอร์ กับ บอร์ด Arduino แล้ว เปิดโปรแกรม Arduino IDE เขียนโค้ดดังนี้




#define MQ2pin (0)
 
float sensorValue;  //variable to store sensor value
 
void setup()
{
  Serial.begin(9600); // sets the serial port to 9600
  Serial.println("Gas sensor warming up!");
  delay(20000); // allow the MQ-6 to warm up
}
 
void loop()
{
  sensorValue = analogRead(MQ2pin); // read analog input pin 0
  
  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);
  
  if(sensorValue > 140)
  {
    Serial.print(" | Smoke detected!");
  }
  
  Serial.println("");
  delay(2000); // wait 2s for next reading
}




1.5 ไปที่ Tools > Board เลือกเป็น Arduino/Genuino UNO





1.6 ไปที่ Tools > Port: แล้วเลือกพอร์ตที่ปรากฏ (กรณีใช้เครื่องคอมพิวเตอร์ที่มี COM Port มากกว่าหนึ่ง  ให้เลือกตัวอื่นที่ไม่ใช่ COM1)

ในตัวอย่างเลือกเป็น "COM8"

(ถ้ายังว่าง หรือ เป็น COM1 ให้ตรวจสอบการติดตั้งไดร์เวอร์ การต่อสาย USB ของ Arduino UNO)





1.7 กดปุ่ม  เพื่ออัพโหลด





1.8 หากสามารถอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ จะแสดงคำว่า Done uploading. ที่แถบด้านล่าง




1.9 เปิดหน้าต่าง Serial Monitor  โดยไปที่ Tools > Serial Monitor



1.10 มุมขวาล่าง ของ Serial Monitor เลือกเป็น 9600 baud  คือ ตั้งค่าความเร็วในการรับ-ส่งข้อมูล  คือ 9600 ตามที่เราเขียนโค้ดไว้

เมื่อมีกลุ่มควัน (ทดสอบโดยใช้ควันจากธูป) มาที่บริเวณเซ็นเซอร์ จะมีการส่งสัญญาณ Analog ไปยัง Arduino หากมีความหนาแน่นของ ควัน ยังไม่สูงพอ (ที่ตั้งไว้ 140) ให้ส่งค่าที่วัดได้แต่ไม่ต้องส่งการแจ้งเตือน แต่ถ้าเกินค่าที่ตั้งไว้ 140 ให้ส่งค่าที่วัดได้พร้อมการแจ้งเตือน Smoke detected!




ถึงขั้นตอนนี้แสดงว่า MQ-2 ของเรานั้นพร้อมทำงานแล้ว



2. ทดสอบการทำงาน SIM900


(ใช้ได้กับ ซิมที่รองรับเครือข่าย 2G )


2.1 เชื่อมต่อสาย ระหว่าง SIM900 +  Shield +  Adapter











2.2 เสียบซิม ที่ลงทะเบียน และเคยใช้งานได้แล้ว เข้าไปในแผ่นพลาสติก ตรวจสอบทิศทาง ตามรูป

(ตัวอย่างเป็น ซิม AIS)





2.3 พับพลาสติกลง แล้วเลื่อนพลาสติก ให้เข้าล๊อค





*** ทดสอบกับซิม TrueMove ตามรูปด้านล่าง สามารถใช้งานได้เช่นเดียวกัน ***






2.4 เปิดโปรแกรม Arduino (IDE) และ ก็อปปี้ โค้ดด้านล่างนี้ ไปวางไว้ในส่วนเขียนโปรแกรม





/*THIS TUTORIAL USED GSM SIM900A MINI V3.9.2
 
  Connect 5VT to D9 and 5VR to D10
  Feed GSM SIM900A with Arduino's 5V

  Code by IDAYU SABRI - MYBOTIC
*/

#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);
char msg;
char call;

void setup()
{
  mySerial.begin(9600); 
  Serial.begin(9600); 
  Serial.println("GSM SIM900A BEGIN");
  Serial.println("Enter character for control option:");
  Serial.println("h : to disconnect a call");
  Serial.println("i : to receive a call");
  Serial.println("s : to send message");
  Serial.println("c : to make a call");  
  Serial.println("e : to redial");
  Serial.println();
  delay(100);
}

void loop()
{  
  if (Serial.available()>0)
   switch(Serial.read())
  {
    case 's':
      SendMessage();
      break;
    case 'c':
      MakeCall();
      break;
    case 'h':
      HangupCall();
      break;
    case 'e':
      RedialCall();
      break;
    case 'i':
      ReceiveCall();
      break;
  }
 if (mySerial.available()>0)
 Serial.write(mySerial.read());
}

void SendMessage()
{
  mySerial.println("AT+CMGF=1");   
  delay(1000);  
  mySerial.println("AT+CMGS=\"+66xxxxxxxxxx\"\r"); 
  delay(1000);
  mySerial.println("sim900a sms");
  delay(100);
   mySerial.println((char)26);
  delay(1000);
}

void ReceiveMessage()
{
  mySerial.println("AT+CNMI=2,2,0,0,0");
  delay(1000);
  if (mySerial.available()>0)
  {
    msg=mySerial.read();
    Serial.print(msg);
  }
}

void MakeCall()
{
  mySerial.println("ATD++66xxxxxxxxxx;"); 
  Serial.println("Calling  ");  
  delay(1000);
}


void HangupCall()
{
  mySerial.println("ATH");
  Serial.println("Hangup Call");
  delay(1000);
}

void ReceiveCall()
{
  mySerial.println("ATA");
  delay(1000);
  {
    call=mySerial.read();
    Serial.print(call);
  }
}

void RedialCall()
{
  mySerial.println("ATDL");
  Serial.println("Redialing");
  delay(1000);
}





2.5 ก่อนการอัพโหลดต้องแก้ไขโค้ด เบอร์โทรศัพท์ที่ต้องการ ให้ รับ SMS และ เบอร์โทรศัพท์ที่ต้องการให้โทรออก


(ให้ใส่เบอร์หลัง+66 โดยไม่ต้องใส่ 0 เช่น เบอร์ ที่ขึ้นต้นด้วย 081 ให้ใส่เป็น +6681xxxxxxx)


เบอร์โทรศัพท์ที่ต้องการ ให้ รับ SMS


เบอร์โทรศัพท์ที่ต้องการให้โทรออก


2.6 อัพโหลดโค้ด


2.7 เปิดหน้าต่าง Serial Monitor  โดยไปที่ Tools > Serial Monitor




2.8 มุมขวาล่าง ของ Serial Monitor เลือกเป็น 9600 baud  คือ ตั้งค่าความเร็วในการรับ-ส่งข้อมูล  คือ 9600 ตามที่เราเขียนโค้ดไว้


2.9 พิมพ์ c กดปุ่ม Sent ( SIM900  จะโทรไปยัง  เบอร์โทรศัพท์ที่เราใส่ไว้ในโค้ด)




2.10 พิมพ์ h กดปุ่ม Sent (จะหยุดการโทร)





2.11 พิมพ์ s  กดปุ่ม Sent ( SIM900  จะส่ง SMS  ข้อความ sim900a sms ไปยัง  เบอร์โทรศัพท์ที่เราใส่ไว้ในโค้ด)



2.12 ข้อความที่ SIM900 ส่งไปยัง เบอร์โทรศัพท์ที่เราใส่ไว้ในโค้ด




ถึงขั้นตอนนี้แสดงว่า SIM900 ของเรานั้นพร้อมทำงานแล้ว


credit :  https://www.instructables.com/id/GSM-SIM900A-With-Arduino/


3. ตรวจจับควันด้วย MQ-2 แจ้งเตือนผ่านทาง SMS







3.1 เปิดโปรแกรม Arduino (IDE) และ ก็อปปี้ โค้ดด้านล่างนี้ ไปวางไว้ในส่วนเขียนโปรแกรม





#define MQ2pin (0)
float sensorValue;
#include <SoftwareSerial.h>
SoftwareSerial mySerial(9, 10);
char msg;
char call;

void setup()
{
  mySerial.begin(9600);
  Serial.begin(9600);
  Serial.println("Gas sensor warming up!");
  delay(20000);
}

void loop()
{
  sensorValue = analogRead(MQ2pin); 

  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);

  if (sensorValue > 140)
  {
    Serial.print(" | Smoke detected!");
    SendMessage();
  }

  Serial.println("");
  delay(2000); 
}

void SendMessage()
{
  mySerial.println("AT+CMGF=1");
  delay(1000);
  mySerial.println("AT+CMGS=\"+66xxxxxxxxx\"\r");
  delay(1000);
  mySerial.println(String(sensorValue) + " | Smoke detected!");
  delay(100);
  mySerial.println((char)26);
  delay(1000);
}




3.2 ก่อนการอัพโหลดต้องแก้ไขโค้ด เบอร์โทรศัพท์ที่ต้องการ ให้ รับ SMS


(ให้ใส่เบอร์หลัง+66 โดยไม่ต้องใส่ 0 เช่น เบอร์ ที่ขึ้นต้นด้วย 081 ให้ใส่เป็น +6681xxxxxxx)



3.3 อัพโหลดโค้ด


3.4 ทดสอบการทำงาน

เมื่อมีกลุ่มควัน มาที่บริเวณเซ็นเซอร์ตรวจจับควัน MQ-2 จะมีการส่งสัญญาณ Analog ไปยัง Arduino หากมีความหนาแน่นของ ควัน ยังไม่สูงพอ (ที่ตั้งไว้ 140) ยังไม่ต้องส่งการแจ้งเตือน แต่ถ้าเกินค่าที่ตั้งไว้ 140 ให้ส่งค่าที่วัดได้พร้อมการแจ้งเตือน เช่น 147.00 / Smoke detected! ผ่านทาง SMS จาก SIM900 ผ่านระบบเครือข่ายโทรศัพท์มือถือ ไปยัง เบอร์โทรศัพท์ ที่กำหนดไว้