วิธีใช้โมดูล GSM SIM800L กับ Arduino

How to Use the SIM800L GSM Module with Arduino

SIM800L เป็นโมดูล GSM/GPRS ยอดนิยมที่ใช้สำหรับการสื่อสารบนมือถือความสามารถในการส่ง SMS โทรออกและเข้าถึงอินเทอร์เน็ต ขนาดขนาดกะทัดรัดและความต้องการพลังงานต่ำทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับโครงการ IoT และการสื่อสาร ในบทช่วยสอนนี้เราจะแสดงวิธีการเชื่อมต่อ SIM800L กับ Arduino

สิ่งที่คุณต้องการ

  1. โมดูล GSM SIM800L
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. กระดาน
  4. สายจัมเปอร์
  5. ซิมการ์ด (ปลดล็อคและด้วยแผนเครดิต/ข้อมูล)
  6. แหล่งจ่ายไฟ (สามารถให้ 3.7V-4.2V สำหรับ SIM800L)
  7. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: เข้าใจพิน SIM800L

โมดูล SIM800L มีหลายพิน แต่สำหรับการทำงานขั้นพื้นฐานคุณต้องใช้สิ่งต่อไปนี้เท่านั้น:

pin sim800l การทำงาน
VCC แหล่งจ่ายไฟ (3.7V ถึง 4.2V)
gnd พื้น
TXD ส่งข้อมูล (ไปยัง Arduino RX)
RXD รับข้อมูล (ถึง Arduino TX)
ครั้งแรก รีเซ็ต (ไม่บังคับ)

สำคัญ: SIM800L ต้องการแหล่งพลังงานที่เสถียรระหว่าง 3.7V และ 4.2V อย่าเชื่อมต่อโดยตรงกับเอาต์พุต 5V ของ Arduino เนื่องจากอาจทำให้โมดูลเสียหาย

ขั้นตอนที่ 2: เดินสาย SIM800L ไปยัง Arduino

นี่คือวิธีการเชื่อมต่อโมดูล SIM800L กับ Arduino UNO:

pin sim800l พิน Arduino
VCC พลังงานภายนอก (3.7V-4.2V)
gnd gnd
TXD PIN 10 (ซอฟต์แวร์อนุกรม RX)
RXD PIN 11 (ซอฟต์แวร์อนุกรม TX)

ใช้ตัวเก็บประจุ (เช่น 1,000µF) ข้ามพิน VCC และ GND ของ SIM800L เพื่อให้แน่ใจว่าแหล่งจ่ายไฟที่เสถียรและป้องกันการรีเซ็ตที่ไม่คาดคิด

ขั้นตอนที่ 3: ติดตั้งไลบรารีซอฟต์แวร์

SIM800L สื่อสารผ่าน UART เราจะใช้ไฟล์ SoftwareSerial ห้องสมุดเพื่อกำหนดหมุด TX และ RX ที่กำหนดเองสำหรับการสื่อสาร

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "softwareserial" (รวมอยู่ใน IDE โดยค่าเริ่มต้น)

ขั้นตอนที่ 4: อัปโหลดรหัส

ด้านล่างเป็นตัวอย่างตัวอย่างเพื่อส่ง SMS โดยใช้โมดูล SIM800L:

#include <SoftwareSerial.h>

SoftwareSerial sim800l(10, 11); // RX, TX

void setup() {
  Serial.begin(9600);          // Monitor baud rate
  sim800l.begin(9600);         // SIM800L baud rate

  Serial.println("Initializing SIM800L...");

  delay(1000);
  sim800l.println("AT");       // Test communication
  delay(1000);

  sim800l.println("AT+CMGF=1"); // Set SMS mode to text
  delay(1000);

  sim800l.println("AT+CMGS=\"+1234567890\""); // Replace with recipient number
  delay(1000);

  sim800l.print("Hello from Arduino!");
  delay(1000);

  sim800l.write(26); // End SMS with CTRL+Z
  delay(5000);

  Serial.println("SMS sent!");
}

void loop() {
  // Nothing to do here
}

ขั้นตอนที่ 5: ทดสอบการตั้งค่า

  1. ใส่ซิมการ์ดที่ถูกต้องลงในโมดูล SIM800L
  2. ให้พลังงานกับ SIM800L ด้วยแหล่ง 3.7V-4.2.2V
  3. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  4. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ จาก เครื่องมือ เมนู.
  5. อัปโหลดรหัสไปยัง Arduino
  6. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  7. ตรวจสอบการตรวจสอบอนุกรมสำหรับข้อความเริ่มต้นและการยืนยัน SMS

การแก้ไขปัญหา

  • โมดูลไม่ตอบสนอง: ตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟมีเสถียรภาพและอยู่ในช่วงแรงดันไฟฟ้าที่ต้องการ
  • ไม่มีการเชื่อมต่อเครือข่าย: ตรวจสอบว่าซิมการ์ดทำงานอยู่หรือไม่และมีเครดิตหรือข้อมูลที่เพียงพอ
  • ข้อมูลขยะ: ตรวจสอบว่าอัตราการรับส่งข้อมูลในรหัสตรงกับอัตราการรับส่งข้อมูลเริ่มต้นของ SIM800L (9600)

แอปพลิเคชันของ SIM800L

  1. การตรวจสอบและควบคุมระยะไกล
  2. อุปกรณ์ IoT พร้อมการสื่อสาร GSM
  3. ระบบติดตาม GPS (พร้อมโมดูล GPS ภายนอก)
  4. การแจ้งเตือน SMS อัตโนมัติ

บทสรุป

คุณสามารถเชื่อมต่อโมดูล GSM SIM800L ได้สำเร็จกับ Arduino เพื่อส่งข้อความ SMS ด้วยความสามารถในการโทรส่งข้อความและเข้าถึงอินเทอร์เน็ต SIM800L จึงเปิดโอกาสให้โครงการที่อิงกับการสื่อสาร สำรวจคุณสมบัติขั้นสูงเพื่อสร้างแอปพลิเคชัน IoT ที่ซับซ้อนมากขึ้น!

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.