ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS: 5 ขั้นตอน (พร้อมรูปภาพ)
ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS: 5 ขั้นตอน (พร้อมรูปภาพ)
Anonim
ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS
ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS
ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS
ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS

! ! ! สังเกต ! ! !

เนื่องจากมีการอัปเกรดเสาสัญญาณโทรศัพท์มือถือในพื้นที่ของฉัน ฉันจึงไม่สามารถใช้โมดูล GSM นี้ได้อีกต่อไป หอคอยที่ใหม่กว่าไม่รองรับอุปกรณ์ 2G อีกต่อไป ดังนั้นฉันจึงไม่สามารถให้การสนับสนุนโครงการนี้ได้อีกต่อไป

เมื่อเร็ว ๆ นี้ ฉันได้รับโมดูล Quad Band GSM/GPRS ที่มีราคาค่อนข้างถูกให้เล่นได้ เป็นโมดูล SIM800L และสื่อสารกับไมโครผ่านพอร์ตอนุกรม มาพร้อมเสาอากาศแบบติดตั้งบนแผง

ฉันตัดสินใจสร้างระบบควบคุม SMS แบบง่ายซึ่งใช้คำสั่งบริการข้อความสั้น (SMS) เพื่อควบคุมอุปกรณ์และระบุการเตือน

ขั้นตอนที่ 1: คำสั่ง SMS

คำสั่ง SMS
คำสั่ง 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

การสร้างตัวควบคุม SMS
การสร้างตัวควบคุม SMS
การสร้างตัวควบคุม SMS
การสร้างตัวควบคุม SMS
การสร้างตัวควบคุม SMS
การสร้างตัวควบคุม 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

การเขียนโปรแกรม ATMEGA328p
การเขียนโปรแกรม ATMEGA328p
การเขียนโปรแกรม ATMEGA328p
การเขียนโปรแกรม 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

การใช้ตัวควบคุม 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

แอปพลิเคชัน Android
แอปพลิเคชัน Android
แอปพลิเคชัน Android
แอปพลิเคชัน Android
แอปพลิเคชัน Android
แอปพลิเคชัน Android

ฉันใช้ MIT App Inventor 2 (https://ai2.appinventor.mit.edu/) เพื่อสร้างอินเทอร์เฟซผู้ใช้ที่เรียบง่ายสำหรับโทรศัพท์เคลื่อนที่ Android ของฉัน แอพนี้ให้คุณปรับแต่งคำอธิบายของแต่ละ I/O นอกจากนี้ยังอนุญาตให้ป้อนหมายเลขโทรศัพท์

ปุ่มสี่ปุ่มใช้เพื่อควบคุมเอาต์พุต ในขณะที่กล่องกาเครื่องหมายระบุสถานะอินพุต

หากต้องการแก้ไขแอป ให้สร้างบัญชี MIT App Inventor 2 และนำเข้าไฟล์ AIA

ในการติดตั้งแอปบนโทรศัพท์ของคุณ ให้คัดลอกไฟล์ APK ไปยังโทรศัพท์ของคุณ และติดตั้ง คุณจะต้องเปิดใช้งานการติดตั้งแอพจาก "Unknown Sources" ภายใต้การตั้งค่าความปลอดภัยของโทรศัพท์ของคุณ