สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
! ! ! สังเกต ! ! !
เนื่องจากมีการอัปเกรดเสาสัญญาณโทรศัพท์มือถือในพื้นที่ของฉัน ฉันจึงไม่สามารถใช้โมดูล GSM นี้ได้อีกต่อไป หอคอยที่ใหม่กว่าไม่รองรับอุปกรณ์ 2G อีกต่อไป ดังนั้นฉันจึงไม่สามารถให้การสนับสนุนโครงการนี้ได้อีกต่อไป
เมื่อเร็ว ๆ นี้ ฉันได้รับโมดูล Quad Band GSM/GPRS ที่มีราคาค่อนข้างถูกให้เล่นได้ เป็นโมดูล SIM800L และสื่อสารกับไมโครผ่านพอร์ตอนุกรม มาพร้อมเสาอากาศแบบติดตั้งบนแผง
ฉันตัดสินใจสร้างระบบควบคุม SMS แบบง่ายซึ่งใช้คำสั่งบริการข้อความสั้น (SMS) เพื่อควบคุมอุปกรณ์และระบุการเตือน
ขั้นตอนที่ 1: คำสั่ง SMS
เช่นเดียวกับระบบการสื่อสารใดๆ คำสั่งเฉพาะจะต้องถูกส่งไปยังอุปกรณ์ระยะไกลเพื่อบอกว่าต้องทำอย่างไร ในทำนองเดียวกัน อุปกรณ์ระยะไกลจำเป็นต้องตอบกลับหรือตอบสนองต่อคำสั่งเหล่านี้ โปรเจ็กต์นี้ประกอบด้วยสองส่วนคือ SMS Controller และโทรศัพท์มือถือมาตรฐาน
แนวคิดคือการสร้าง SMS Controller อย่างง่ายพร้อมเอาต์พุตดิจิทัลสี่ช่อง ขึ้นอยู่กับ SMS ที่ได้รับ เครื่องจะต้องสามารถควบคุมเอาต์พุตแต่ละรายการได้
ฉันยังตัดสินใจที่จะรวมอินพุตดิจิตอลสี่ตัว สามารถใช้เพื่อระบุสัญญาณเตือนหรือข้อมูลอื่นๆ
ก่อนเริ่มบิลด์ ฉันตัดสินใจสร้างคำสั่งเฉพาะสำหรับฟังก์ชันเฉพาะ 'คำสั่ง' นี้จะถูกส่งโดยใช้ SMS จากโทรศัพท์มือถือ
SMS Controller รับคำสั่ง:
o1:1 - เปิดเอาต์พุต 1 เปิด
o1:0 - เปิดเอาต์พุต 1 ปิด
o1:p - เอาต์พุตพัลส์ 1 เปิด แล้วปิด
o2:1 - เปิดเอาต์พุต 2 เปิด
o2:0 - เปิดเอาต์พุต 2 ปิด
o2:p - เอาต์พุตพัลส์ 2 เปิด แล้วปิด
o3:1 - เปิดเอาต์พุต 3 เปิด
o3:0 - เปิดเอาต์พุต 3 ปิด
o3:p - เอาต์พุตพัลส์ 3 เปิด แล้วปิด
o4:1 - เปิดเอาต์พุต 4 เปิด
o4:0 - เปิดเอาต์พุต 4 ปิด
o4:p - เอาต์พุตพัลส์ 4 เปิด แล้วปิด
???? - ขอสถานะอินพุตและเอาต์พุต
#### - รีเซ็ตระบบ
สำหรับความคิดเห็น ตัวควบคุม SMS ควรตอบสนองต่อคำสั่งที่ได้รับ และตอบกลับด้วย SMS ฉันตัดสินใจว่า SMS ตอบกลับนี้ควรมีสถานะของพิน I/O ทั้งหมด
คำสั่งตอบกลับตัวควบคุม SMS:
i1:x i2:x i3:x i4:x o1:x o2:x o3:x o4:x
โดยที่ x คือสถานะ I/O, 1 สำหรับเปิด, 0 สำหรับปิด
ขั้นตอนที่ 2: สร้างตัวควบคุม SMS
อุปกรณ์ที่จำเป็น:
Arduino ใดๆ หรือ ATMEGA328p แบบสแตนด์อโลนบนเขียงหั่นขนม
โมดูล SIM800L GSM/GPRS พร้อมซิมการ์ดที่สามารถส่งและรับ SMS ได้
ลดขั้นตอนลงตัวแปลง DC/DC
บันทึก !!
ต้องใช้ตัวแปลง DC/DC เพื่อจ่ายไฟให้กับโมดูล SIM800L โมดูลนี้ทำงานระหว่าง 3.7V ถึง 5V ขึ้นอยู่กับเวอร์ชันที่คุณมี โมดูลนี้ยังต้องการแหล่งจ่ายไฟที่สามารถส่งได้ถึง 2A เมื่อโมดูลส่งข้อมูล ไม่สามารถขับเคลื่อนโดยตรงจาก Arduino Uno !!
วงจรค่อนข้างง่าย ฉันได้ประกอบและทดสอบบนเขียงหั่นขนม
จ่ายไฟให้กับวงจรโดยใช้ตัวแปลง DC/DC โดยตั้งค่าแรงดันเอาต์พุตไว้ที่ 4.5V มีไฟ LED สี่ดวงเพื่อจำลองเอาท์พุตดิจิตอล และสี่ปุ่มสำหรับอินพุทดิจิตอล SIM800L เชื่อมต่อกับพิน Rx/Tx ของ ATMEGA328p
ไฟ LED ดวงที่ 5 ใช้เพื่อระบุเวลาที่ระบบกำลังส่ง SMS ไม่ว่าง
ขั้นตอนที่ 3: การเขียนโปรแกรม ATMEGA328p
ก่อนตั้งโปรแกรม ให้เปิดไฟล์ INO และแก้ไขหมายเลขโทรศัพท์ แทนที่ xxxxxxxxxx ด้วยหมายเลขโทรศัพท์มือถือของคุณในบรรทัดที่ 46 คอมไพล์ใหม่และอัปโหลดไฟล์
นอกจากนี้ อ่านคำแนะนำเกี่ยวกับวิธีกำหนดค่าพอร์ตอนุกรมของซอฟต์แวร์ในไฟล์ INO
//=============================================================================//
// ! ! ! บันทึก ! ! !
// ================
//
// บัฟเฟอร์ในไลบรารีซอฟต์แวร์ซีเรียลจะถูกเปลี่ยนเป็น 200
//
// ในการใช้ Software Serial ผู้ใช้ควรเปลี่ยน Software Serial BUFFER เป็น 200
// สิ่งนี้จะต้องแก้ไขในไฟล์ต่อไปนี้:
//
// C:/Program Files/Arduino x.x.x/Hardware/Arduino/AVR/Libraries/SoftwareSerial/src/SoftWareSerial.h
//
// เปลี่ยนบัฟเฟอร์ดังนี้:
//
// #ifndef _SS_MAX_RX_BUFF
// #define _SS_MAX_RX_BUFF 200
// ขนาดบัฟเฟอร์ RX
// #endif
//
//=============================================================================
อ้างถึงคำแนะนำนี้ในการเขียนโปรแกรม ATMEGA328p บนเขียงหั่นขนมโดยใช้ Arduino UNO
www.instructables.com/id/Arduino-UNO-as-AtM…
ขั้นตอนที่ 4: การใช้ตัวควบคุม SMS
การใช้ตัวควบคุม SMS
SMS Controller จะส่ง SMS ไปยังโทรศัพท์ของคุณโดยอัตโนมัติหากมีการเรียกใช้อินพุตใด ๆ จากสี่ตัว รายละเอียดของทริกเกอร์จะอยู่ในข้อความ SMS
ข้อความ SMS และคำสั่งสามารถแก้ไขได้ตามความต้องการของคุณในไฟล์ INO
การทดสอบเอาต์พุตตัวควบคุม SMS
จากโทรศัพท์มือถือของคุณ ให้ส่งคำสั่งต่อไปนี้ไปยังหมายเลขซิมการ์ด SIM800L ของคุณ:
o1:1 สิ่งนี้จะเปิดเอาต์พุต 1
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้:
i1:0 i2:0 i3:0 i4:0 o1:1 o2:0 03:0 o4:0
01:0 สิ่งนี้จะปิดเอาต์พุต 1
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
01:p สิ่งนี้จะเปิดเอาต์พุต 1 เป็นเวลา 1 วินาที จากนั้นปิดเอาต์พุต 1 อีกครั้ง (กะพริบ)
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
การทดสอบอินพุตตัวควบคุม SMS
บนตัวควบคุม SMS ให้กดปุ่ม 1 สั้นๆ
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้โดยอัตโนมัติ:
i1:1 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
บนตัวควบคุม SMS ให้กดปุ่ม 2 สั้นๆ
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้โดยอัตโนมัติ:
i1:1 i2:1 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
บนตัวควบคุม SMS ให้กดปุ่ม 3 สั้นๆ
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้โดยอัตโนมัติ:
i1:1 i2:1i3:1 i4:0 o1:0 o2:0 03:0 o4:0
ดังที่เห็นได้ใน SMS ที่ได้รับ ผลลัพธ์จะเปลี่ยนไปตามคำสั่งที่ได้รับ อย่างไรก็ตาม อินพุตจะไม่เปลี่ยนกลับจาก 1 เป็น 0 หลังจากกดปุ่ม เนื่องจากฉันต้องการเห็นการเปลี่ยนแปลงของอินพุต ฉันจึงตัดสินใจปิดผนึกสถานะอินพุตจนกว่าจะส่งคำสั่งรีเซ็ตไปยัง SMS Controller
รีเซ็ตนาฬิกาปลุก
หากต้องการรีเซ็ตสถานะอินพุต ให้ส่งคำสั่งต่อไปนี้:
#### จะรีเซ็ตสถานะอินพุต
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้:
i1:0 i2:0 i3:0 i4:0 o1:0 o2:0 03:0 o4:0
อัพเดตสถานะ
คุณยังสามารถขอสถานะได้ตลอดเวลาโดยส่งคำสั่งต่อไปนี้:
???? การดำเนินการนี้จะขออัปเดตสถานะของ I/O
บนโทรศัพท์ของคุณ คุณจะได้รับ SMS ต่อไปนี้:
i1:x i2:x i3:x i4:x o1:x o2:x 03:x o4:x
โดยที่ x หมายถึงสถานะ 1 สำหรับเปิด 0 สำหรับปิด
ขั้นตอนที่ 5: แอปพลิเคชัน Android
ฉันใช้ MIT App Inventor 2 (https://ai2.appinventor.mit.edu/) เพื่อสร้างอินเทอร์เฟซผู้ใช้ที่เรียบง่ายสำหรับโทรศัพท์เคลื่อนที่ Android ของฉัน แอพนี้ให้คุณปรับแต่งคำอธิบายของแต่ละ I/O นอกจากนี้ยังอนุญาตให้ป้อนหมายเลขโทรศัพท์
ปุ่มสี่ปุ่มใช้เพื่อควบคุมเอาต์พุต ในขณะที่กล่องกาเครื่องหมายระบุสถานะอินพุต
หากต้องการแก้ไขแอป ให้สร้างบัญชี MIT App Inventor 2 และนำเข้าไฟล์ AIA
ในการติดตั้งแอปบนโทรศัพท์ของคุณ ให้คัดลอกไฟล์ APK ไปยังโทรศัพท์ของคุณ และติดตั้ง คุณจะต้องเปิดใช้งานการติดตั้งแอพจาก "Unknown Sources" ภายใต้การตั้งค่าความปลอดภัยของโทรศัพท์ของคุณ