ทำด้วยตัวคุณเอง
เคล็ดลับชีวิต คลาสมาสเตอร์ เคล็ดลับที่เป็นประโยชน์ สูตรอาหาร
ตัวควบคุม SMS ที่ใช้ SIM800L

SIM800L V2.0 GSM/GPRS เป็นโมดูล GSM/GPRS แบบควอดแบนด์ที่เข้ากันได้กับ Arduino โมดูลนี้ใช้เพื่อใช้ฟังก์ชัน GSM (การโทรและ SMS) และ GPRS ข้อดีของโมดูลนี้คืออินเทอร์เฟซ TTL ซึ่งมีแรงดันไฟฟ้า 5V ซึ่งช่วยให้คุณสามารถเชื่อมต่อโดยตรงกับ Arduino หรือระบบอื่น ๆ ที่มีแรงดันไฟฟ้า 5V โมดูล GSM/GPRS ส่วนใหญ่ในตลาดจำเป็นต้องมีการเชื่อมต่อตัวควบคุมหรือการแปลงระดับ ในขณะที่ SIM800L V.2 GSM/GPRS ไม่ต้องการวงจรการแปลงระดับอินเทอร์เฟซเพิ่มเติม

มาดูตัวอย่างโครงการที่ใช้ SIM800L V.2 GSM/GPRS กัน จุดประสงค์ของโครงการคือการควบคุมสวิตช์โดยใช้ตัวควบคุม SMS คุณสามารถเปิดและปิดเครื่องใช้ในครัวเรือนส่วนใหญ่ในบ้าน เช่น ลามะ พัดลม และอื่นๆ ได้อย่างง่ายดาย

ลักษณะของโมดูล SIM800L V.2 GSM/GPRS


ด้านล่างนี้เป็นคุณลักษณะทางเทคนิคทั้งหมดของโมดูล GSM/GPRS SIM800L V.2:
  • อินเทอร์เฟซแบบอนุกรม TTL เข้ากันได้กับไมโครคอนโทรลเลอร์ Arduino 3.3V และ 5V
  • โมดูล SIM800L มีอินเทอร์เฟซแบบอนุกรม TTL
  • ปลั๊กเชื่อมต่อเสาอากาศ
  • รองรับเครือข่าย: สี่แบนด์ 850/900/1800/1900 MHz สามารถโทรออก SMS และถ่ายโอนข้อมูลโดยสิ้นเปลืองแบตเตอรี่ลดลงอย่างมาก
  • อินเทอร์เฟซ VDD TTL UART เพื่อให้คุณสามารถเชื่อมต่อ MCU เช่น 51MCU, ARM หรือ MSP430 ได้โดยตรงปลั๊ก VDD ใช้เพื่อจับคู่แรงดันไฟฟ้า TTL
  • รุ่น: SIMCOM SIM800L
  • แรงดันไฟฟ้า: จาก 3.7V ถึง 5V;
  • ขนาด: 40มม.x 28มม.x 3มม
  • GPRS multislot คลาส 12/10
  • บริการแพ็คเก็ต GPRS คลาส B
  • สอดคล้องกับ GSM เฟส 2/2+
  • คลาส 4 (2 วัตต์ @ 850/900 MHz)
  • คลาส 1 (1 วัตต์ @ 1800/1900MHz)


วัสดุที่จำเป็น


ตัวควบคุม SMS ที่ใช้ SIM800L


คุณจะต้องการ:


1. SIM800L V.2 โมดูล GSM/GPRS.
2. อาร์ดูโน่ อูโน่.
3. โมดูลรีเลย์ 4 ช่อง 5V.
4. สายไฟ - จัมเปอร์.
5. แหล่งจ่ายไฟ 5V.
(ลิงก์ที่ใช้งานไปยังร้านค้าสำหรับการซื้อ)

การประกอบและการกำหนดค่า


ตัวควบคุม SMS ที่ใช้ SIM800L


เมื่อคุณเชื่อมต่อส่วนประกอบทั้งหมดแล้ว ให้สร้างโปรแกรมแล้วอัปโหลดไปยัง Arduino ของคุณ แต่ก่อนอื่น คุณต้องติดตั้งไลบรารี GPRS ซึ่งคุณสามารถดาวน์โหลดได้:

gprs.zip [28.02 Kb] (ดาวน์โหลด: 887)


รหัสโปรแกรมสำหรับ Arduino


ตัวควบคุม SMS ที่ใช้ SIM800L


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


#รวม 
#รวม
#กำหนดหมดเวลา 5,000
#กำหนดแอคทีฟต่ำ
#กำหนดปิดสูง

ไบต์รีเลย์ [] = {A0, A1, A2, A3};
ไบต์ StatRelay [4];
ถ่านบัฟหมายเลข [20];
ถ่าน currentLine[500] = "";
int currentLineIndex = 0;
บูล nextLineIsMessage = false;
สตริง ReplyNumber = "089510863958";
GPRS GPRS;

การตั้งค่าเป็นโมฆะ () {
สำหรับ (int i = 0; i <4; i ++) {
pinMode(รีเลย์[i] , เอาต์พุต);
digitalWrite (รีเลย์ [i], MATI);
StatRelay[i] = MATI;
-

อนุกรมเริ่มต้น(9600);
ในขณะที่(!อนุกรม);
Serial.println("เปิดใช้งาน SIM800L V2 >>> อ่าน SMS อัตโนมัติ");
gprs.preInit();
ล่าช้า (1,000);
ในขณะที่ (0 != gprs.init()) {
ล่าช้า (1,000);
Serial.print("ข้อผิดพลาดเริ่มต้น");
-

// จัดการข้อความไปยังโหมด ASCII
ถ้า (0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1rn", "ตกลง", หมดเวลา)) {
ข้อผิดพลาด("ข้อผิดพลาด:CNMI");
กลับ;
-
// อ่าน SMS ที่เข้ามา
ถ้า (0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0rn", "ตกลง", หมดเวลา)) {
ข้อผิดพลาด("ข้อผิดพลาด:CNMI");
กลับ;
-
int pjg = ReplyNumber.ความยาว() + 1;
บัฟนัมเบอร์ [pjg];
ReplyNumber.toCharArray(บัฟนัมเบอร์,pjg);
Serial.print("ส่งคำตอบไปที่หมายเลข => ");
Serial.println(บัฟนัมเบอร์);
Serial.println("การเริ่มต้นเสร็จสิ้น");
Serial.println("============================================= =============== ================");
-

เป็นโมฆะวน() {
// เปลี่ยนสถานะ เปิด/ปิด รีเลย์
สำหรับ (int i = 0; i <4; i ++) {
digitalWrite (รีเลย์ [i], StatRelay [i]);
-

// หากมีข้อมูลเข้าจาก SIM800
ถ้า (gprs.serialSIM800.available()) {
ถ่าน LastCharRead = gprs.serialSIM800.read();

// บันทึกข้อมูลทั้งหมดใน LastCharRead หากมี r หรือ n เพื่อเป็นสัญญาณสุดท้ายของข้อความขาเข้า
ถ้า (lastCharRead == 'r' || LastCharRead == 'n') {
สตริง LastLine = สตริง (currentLine);

// หากข้อความสุดท้าย +CMT ระบุว่ามีข้อความใหม่มาถึง
ถ้า (lastLine.startsWith("+CMT:")) {
Serial.println(บรรทัดสุดท้าย);
nextLineIsMessage = จริง;
} อื่นถ้า (lastLine.length() > 0) {
ถ้า (nextLineIsMessage) {
Serial.println(บรรทัดสุดท้าย);

// ================================================ ==== ================>> ฟังก์ชั่นของ Relay Controller

// รีเลย์ 1 คอนโทรลเลอร์

ถ้า (lastLine.indexOf ("รีเลย์ 1 เปิด") >= 0) {
สเตตรีเลย์[0] = AKTIF;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 1 ทำงานอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 1 ทำงานอยู่");
-

อื่นถ้า (lastLine.indexOf("รีเลย์ 1 ปิด") >= 0) {
StatRelay[0] = มาติ;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 1 ปิดอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 1 ปิดอยู่");
-

// รีเลย์ 2 คอนโทรลเลอร์

ถ้า (lastLine.indexOf ("รีเลย์ 2 เปิด") >= 0) {
StatRelay[1] = AKTIF;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 2 ทำงานอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 2 ทำงานอยู่");
-
อื่นถ้า (lastLine.indexOf("รีเลย์ 2 ปิด") >= 0) {
StatRelay[1] = มาติ;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 2 ปิดอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 2 ปิดอยู่");
-

// รีเลย์ 3 คอนโทรลเลอร์
ถ้า (lastLine.indexOf ("รีเลย์ 3 เปิด") >= 0) {
StatRelay[2] = AKTIF;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 3 ทำงานอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 3 ทำงานอยู่");
-
อื่นถ้า (lastLine.indexOf("รีเลย์ 3 ปิด") >= 0) {
StatRelay[2] = มาติ;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 3 ปิดอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 3 ปิดอยู่");
-

// รีเลย์ 4 คอนโทรลเลอร์
ถ้า (lastLine.indexOf ("รีเลย์ 4 เปิด") >= 0) {
StatRelay[3] = AKTIF;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 4 ทำงานอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 1 ทำงานอยู่");
-
อื่นถ้า (lastLine.indexOf("รีเลย์ 4 ปิด") >= 0) {
StatRelay[3] = มาติ;
Serial.print("ตอบกลับ====>>>> ");
Serial.println("สถานะรีเลย์ 4 ปิดอยู่");
gprs.sendSMS (buffNumber, "สถานะรีเลย์ 4 ปิดอยู่");
-
nextLineIsMessage = เท็จ;
-

// ================================================ ==== ===================>>

-
//ล้างอาร์เรย์ถ่านเพื่ออ่านบรรทัดถัดไป
สำหรับ (int i = 0; i < sizeof (currentLine); ++ i ) {
currentLine[i] = (ถ่าน)0;
-
currentLineIndex = 0;
-
อื่น {
currentLine[currentLineIndex++] = LastCharRead;
-
-
-


ตรวจสอบอุปกรณ์


ตัวควบคุม SMS ที่ใช้ SIM800L


เครื่องมือนี้ทำงานโดยส่ง SMS ไปที่ SIM800L พร้อมลำดับอักขระเฉพาะ ตัวอย่างเช่น หากต้องการเปิดรีเลย์ 1 ให้ใช้คำสั่ง “เปิดรีเลย์ 1” และหากต้องการปิด ให้ใช้คำสั่ง “ปิดรีเลย์ 1” สำหรับรีเลย์ที่เหลือ คำสั่งจะเกือบจะเหมือนกัน ยกเว้นหมายเลขลำดับของรีเลย์แต่ละตัวที่คุณต้องการควบคุม หลังจากส่งข้อความอัตโนมัติแล้ว SIM800 จะส่งการตอบกลับในรูปแบบข้อความเกี่ยวกับสถานะของซิมการ์ดแต่ละอัน

วิดีโอการประกอบ การกำหนดค่า และการทดสอบอุปกรณ์



บทความต้นฉบับเป็นภาษาอังกฤษ
ความคิดเห็น
  • หูกระต่ายรอยยิ้มหัวเราะบลัชออนยิ้มผ่อนคลายผ่อนคลายยิ้มแย้มแจ่มใส
    heart_eyesจูบ_หัวใจจูบ_ปิด_ตาแดงโล่งใจพอใจยิ้ม
    ขยิบตาStuck_out_tongue_winking_eyeStuck_out_tongue_closed_eyesยิ้มจูบStuck_out_tongueนอนหลับ
    กังวลหน้าบึ้งปวดร้าวอ้าปากทำหน้าบูดบึ้งสับสนเงียบ
    ไร้การแสดงออกไม่ขบขันเหงื่อ_ยิ้มเหงื่อผิดหวัง_โล่งใจเบื่อหน่ายเฉยๆ
    ที่ผิดหวังสับสนน่ากลัวหนาว_เหงื่ออดทนร้องไห้ร้องไห้
    ความสุขประหลาดใจกรีดร้องเหนื่อย_หน้าโกรธความโกรธชัยชนะ
    ง่วงนอนยำหน้ากากแว่นกันแดดเวียนหัว_หน้าภูตผีปีศาจsmile_imp
    neutral_faceno_mouthผู้บริสุทธิ์
3+สาม=
ความคิดเห็น (4)
  1. คิๆ
    #1 คิๆ แขก 26 สิงหาคม 2560 23:50 น
    0
    ว้าว! อย่างที่พวกเขาพูดกันว่าทุกสิ่งที่ชาญฉลาดนั้นเรียบง่าย ฉันไม่ต้องซื้ออะไรเลยบางทีทุกคนอาจมีขยะแบบนี้อยู่ที่บ้าน
  2. อเล็กซี่
    #2 อเล็กซี่ แขก 16 ธันวาคม 2560 16:53 น
    0
    ไม่ทำงาน, ไม่เป็นผล. เมื่อทำการคอมไพล์ จะมีข้อความว่า "Arduino: 1.8.5 Hourly Build 2017/08/28 06:33 (Windows 7), Board:"Arduino/Genuino Uno"
    1. เดนิส
      #3 เดนิส แขก 17 ธันวาคม 2560 08:11 น
      0
      คุณต้องใช้เส้นทางที่ไม่มีตัวอักษรภาษารัสเซียไปยังโปรเจ็กต์
  3. อันเดรย์
    #4 อันเดรย์ แขก 10 กุมภาพันธ์ 2562 11:54 น
    2
    มีข้อผิดพลาดมากมายในแบบร่าง มันจะไม่ทำงาน

ประแจกระบอก DIY

เกลือน้ำมันหมูหอมที่บ้าน

เค้กอีสเตอร์ | ทำด้วยตัวคุณเอง

วิธีการเรียนรู้การเชื่อมโดยไม่ต้องใช้อิเล็กโทรดด้วยมือของคุณเอง

«ทำมันเอง - ด้วยมือของคุณเอง» - แหล่งรวมผลิตภัณฑ์โฮมเมดที่น่าสนใจจากเศษวัสดุและของใช้ในบ้าน คลาสมาสเตอร์ทีละขั้นตอนพร้อมรูปถ่ายและคำอธิบาย เทคโนโลยี เคล็ดลับชีวิต - ทุกสิ่งที่ผู้เชี่ยวชาญที่แท้จริงหรือช่างฝีมือต้องการสำหรับงานเย็บปักถักร้อย งานฝีมือที่ซับซ้อนใด ๆ มีทิศทางและแนวคิดให้เลือกมากมายสำหรับความคิดสร้างสรรค์

เราแนะนำให้อ่าน

รหัสข้อผิดพลาดของเครื่องซักผ้า