สารบัญ:

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

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

วีดีโอ: ระบบอัตโนมัติภายในบ้านที่ใช้ Android และ Arduino SMS: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Android SMS App Based Device Switching using Arduino 2024, กรกฎาคม
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" ภายใต้การตั้งค่าความปลอดภัยของโทรศัพท์ของคุณ

แนะนำ: