- วัสดุที่ต้องการ:
- วิธีการทำงาน:
- ข้อกำหนดเบื้องต้น:
- การทำงานของรีโมท AC:
- แผนภาพวงจรและคำอธิบาย:
- การถอดรหัสสัญญาณรีโมท AC ของคุณ:
- โปรแกรม Arduino หลัก:
- การติดตั้งแอปพลิเคชัน Android:
- การทำงานของโทรศัพท์มือถือควบคุม AC:
ในโลกสมัยใหม่ปัจจุบันไม่ว่าเราจะไปที่ไหนเรามีอุปกรณ์อิเล็กทรอนิกส์มากมายอยู่รอบตัวเรา แต่ที่สำคัญคือมีอุปกรณ์เพียงชิ้นเดียวที่เรามีอยู่ในกระเป๋าตลอดเวลา ใช่มันเป็นของเราโทรศัพท์มือถือตอนนี้โทรศัพท์มือถือกลายเป็นมากกว่าอุปกรณ์ที่ใช้ในการสื่อสารพวกมันคือกล้องถ่ายรูปของเราพวกมันคือแผนที่ของพวกเราพวกมันคือรถคาร์ทสำหรับช็อปปิ้งของพวกเราและอะไรล่ะ
ด้วยความสามารถนี้ในมือของเราจึงเป็นความคิดที่น่าเบื่อที่จะใช้การควบคุมระยะไกลเพื่อควบคุมแอปพลิเคชันอิเล็กทรอนิกส์ในบ้านของเราเช่นทีวี AC โฮมเธียเตอร์เป็นต้นการเข้าถึงรีโมทของ AC จากความสะดวกสบายของเตียงเป็นเรื่องที่น่าหงุดหงิดเสมอ หรือโซฟา ดังนั้นในโครงการนี้เราจะไปสร้างการตั้งค่าขนาดเล็กที่ใช้ซึ่งคุณสามารถควบคุมเครื่องปรับอากาศผ่านทางโทรศัพท์สมาร์ทของคุณโดยใช้บลูทู ธ และ Arduino ฟังดูน่าสนใจ! มาสร้างกันเถอะ
วัสดุที่ต้องการ:
- Arduino เมกะ 2560
- TSOP (HS0038)
- IR นำ
- LED สีใดก็ได้และตัวต้านทาน 1K (อุปกรณ์เสริม)
- HC-06
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
วิธีการทำงาน:
รีโมทคอนโทรลทั้งหมดในบ้านของเราที่เราใช้ควบคุมทีวีโฮมเธียเตอร์ AC และอื่น ๆ ทำงานได้ด้วยความช่วยเหลือของ IR Blasters IR Blaster คืออะไร แต่ไฟ LED IR ซึ่งอาจประลัยสัญญาณโดยการเต้นซ้ำ; สัญญาณนี้จะถูกอ่านโดยเครื่องรับในอุปกรณ์อิเล็กทรอนิกส์ สำหรับแต่ละปุ่มที่แตกต่างกันบนรีโมทสัญญาณที่ไม่ซ้ำกันจะถูกทำลายซึ่งหลังจากอ่านโดยผู้รับจะใช้เพื่อทำงานที่กำหนดไว้ล่วงหน้าโดยเฉพาะ หากเราสามารถอ่านสัญญาณนี้ที่ออกมาจากรีโมทได้เราก็สามารถเลียนแบบสัญญาณเดียวกันโดยใช้ IR LED เมื่อจำเป็นต้องใช้ในการทำงานนั้น ๆ ก่อนหน้านี้เราได้สร้างวงจร IR Blaster สำหรับ Universal IR Remote และสำหรับการควบคุมอุณหภูมิ AC อัตโนมัติ
TSOPเป็นตัวรับสัญญาณ IR ที่สามารถนำมาใช้ในการถอดรหัสสัญญาณที่มาจากรีโมท เราจะใช้ TSOP นี้เพื่อถอดรหัสข้อมูลทั้งหมดจากรีโมทของเราและเก็บไว้ใน Arduino จากนั้นใช้ข้อมูลนั้นและ IR Led เราสามารถสร้างสัญญาณ IR ใหม่จาก Arduino ของเราได้ทุกเมื่อที่ต้องการ
ข้อกำหนดเบื้องต้น:
สำหรับโครงการ AC Arduino Bluetooth ที่ควบคุมด้วยบลูทู ธนี้ตรวจสอบให้แน่ใจว่าคุณมี Arduino Mega และไม่ใช่ Arduino เวอร์ชันอื่นเนื่องจากขนาดโค้ดมีน้ำหนักมาก ติดตั้ง IR Remote Library โดยใช้ลิงค์นี้เพื่อทำงานกับ TSOP และ IR Blaster
การทำงานของรีโมท AC:
ก่อนที่เราจะดำเนินการในโครงการโปรดใช้เวลาสักครู่และสังเกตว่ารีโมท AC ของคุณทำงานอย่างไร รีโมท AC ทำงานในลักษณะที่แตกต่างกันเล็กน้อยเมื่อเทียบกับรีโมททีวี DVD IR. อาจมีเพียง 10-12 ปุ่มบนรีโมทของคุณ แต่สามารถส่งสัญญาณประเภทต่างๆได้มากมาย หมายความว่ารีโมทไม่ส่งรหัสเดียวกันทุกครั้งสำหรับปุ่มเดียวกัน ตัวอย่างเช่นเมื่อคุณลดอุณหภูมิโดยใช้ปุ่มลงเพื่อให้เป็น 24 ° C (องศาเซลเซียส) คุณจะได้รับสัญญาณพร้อมชุดข้อมูล แต่เมื่อคุณกดอีกครั้งเพื่อตั้งค่า 25 ° C คุณจะไม่เหมือนเดิม ข้อมูลเนื่องจากตอนนี้อุณหภูมิอยู่ที่ 25 และไม่ใช่ 24 ในทำนองเดียวกันรหัสสำหรับ 25 จะแตกต่างกันไปตามความเร็วพัดลมการตั้งค่าการนอนหลับ ฯลฯ ดังนั้นอย่าไปยุ่งกับตัวเลือกทั้งหมดและเน้นเฉพาะค่าอุณหภูมิด้วยค่าคงที่สำหรับการตั้งค่าอื่น ๆ.
ปัญหาอีกประการหนึ่งคือจำนวนข้อมูลที่ถูกส่งสำหรับการกดแต่ละปุ่มรีโมทปกติที่ส่ง 24 บิตหรือ 48 บิต แต่ รีโมท AC อาจส่งได้มากถึง 228 บิต เนื่องจากแต่ละสัญญาณมีข้อมูลจำนวนมากเช่นอุณหภูมิความเร็วพัดลม จังหวะการนอนสไตล์สวิงเป็นต้นนี่คือเหตุผลว่าทำไมเราถึงต้องการ Arduino Mega เพื่อตัวเลือกการจัดเก็บที่ดีกว่า
แผนภาพวงจรและคำอธิบาย:
โชคดีที่การตั้งค่าฮาร์ดแวร์ของเครื่องปรับอากาศที่ควบคุมด้วยโทรศัพท์มือถือนี้ทำได้ง่ายมาก คุณสามารถใช้เขียงหั่นขนมและทำการเชื่อมต่อดังที่แสดงด้านล่าง
คุณสามารถใช้ตารางต่อไปนี้เพื่อยืนยันการเชื่อมต่อของคุณได้
ส. ไม่: |
พินส่วนประกอบ |
Arduino Pin |
1 |
TSOP - Vcc |
5V |
2 |
TSOP - Gnd |
Gnd |
3 |
TSOP - สัญญาณ |
8 |
4 |
IR Led - แคโทด |
Gnd |
5 |
IR Led - แอโนด |
9 |
6 |
HC-05 - Vcc |
5V |
7 |
HC05 - Gnd |
พื้น |
8 |
HC05 - Tx |
10 |
9 |
HC05 - Rx |
11 |
เมื่อคุณเชื่อมต่อเสร็จแล้วควรมีลักษณะดังนี้ที่แสดงด้านล่าง ฉันใช้ Breadboard เพื่อจัดระเบียบสิ่งต่างๆแล้ว แต่คุณยังสามารถใช้สาย Male to Female โดยตรงเพื่อเชื่อมต่อส่วนประกอบทั้งหมดได้
การถอดรหัสสัญญาณรีโมท AC ของคุณ:
ขั้นตอนแรกในการควบคุม AC คุณคือการใช้ TSOP1738 เพื่อถอดรหัส AC ระยะไกลรหัสควบคุม ทำการเชื่อมต่อทั้งหมดตามที่แสดงในแผนภาพวงจรและตรวจสอบว่าคุณได้ติดตั้งไลบรารีที่กล่าวถึงทั้งหมดแล้ว ตอนนี้เปิดโปรแกรมตัวอย่าง“ IRrecvDumpV2 ” ซึ่งสามารถพบได้ที่ File -> ตัวอย่าง -> IRremote -> IRrecvDumpV2
int recvPin = 8; IRrecv irrecv (recvPin);
เนื่องจาก TSOP ของเราเชื่อมต่อกับพิน 8 ให้เปลี่ยนหมายเลขบรรทัด 9 เป็น int recPin = 8 ดังที่แสดงด้านบน จากนั้นอัปโหลดโปรแกรมไปยัง Arduino Mega ของคุณและเปิด Serial Monitor
ชี้รีโมทของคุณไปที่ TSOP แล้วกดปุ่มใด ๆสำหรับแต่ละปุ่มที่คุณกดสัญญาณตามลำดับจะถูกอ่านโดย TSOP1738 ซึ่งถอดรหัสโดย Arduino และแสดงใน Serial Monitor สำหรับทุกการเปลี่ยนแปลงของอุณหภูมิบนรีโมทของคุณคุณจะได้รับข้อมูลที่แตกต่างกัน บันทึกข้อมูลนี้เพื่อที่เราจะใช้ในโปรแกรมหลักของเรา มอนิเตอร์แบบอนุกรมของคุณจะมีลักษณะเช่นนี้ฉันยังได้แสดงไฟล์ Word ที่ฉันบันทึกข้อมูลที่คัดลอกไว้
ภาพหน้าจอแสดงรหัสสำหรับการตั้งอุณหภูมิที่ 26 ° C สำหรับรีโมท AC ของฉัน ขึ้นอยู่กับรีโมทของคุณคุณจะได้รับชุดรหัสที่แตกต่างกัน ในทำนองเดียวกันคัดลอกรหัสสำหรับระดับอุณหภูมิที่แตกต่างกันทั้งหมด คุณสามารถตรวจสอบรหัส IR ของรีโมทคอนโทรลเครื่องปรับอากาศทั้งหมดในรหัส Arduino ที่ระบุไว้ในตอนท้ายของบทช่วยสอนนี้
โปรแกรม Arduino หลัก:
สมบูรณ์โปรแกรม Arduino หลักสามารถที่ด้านล่างของหน้านี้ แต่คุณไม่สามารถใช้โปรแกรมเดียวกัน คุณต้องเปลี่ยนค่ารหัสสัญญาณที่เราเพิ่งได้รับจากร่างตัวอย่าง เปิดโปรแกรมหลักบน Arduino IDE ของคุณและเลื่อนลงไปที่พื้นที่นี้ที่แสดงด้านล่างซึ่งคุณต้องแทนที่ค่าอาร์เรย์ด้วยค่าที่คุณได้รับจากรีโมทของคุณ
โปรดทราบว่าฉันใช้ 10 Arraysซึ่งเราสองคนใช้ในการเปิดและปิด AC ในขณะที่ส่วนที่เหลือ 8 ใช้เพื่อตั้งอุณหภูมิที่ต่างกัน ตัวอย่างเช่น Temp23 ใช้เพื่อตั้งค่า 23 * C บน AC ของคุณดังนั้นให้ใช้รหัสตามลำดับใน Array นั้น เมื่อเสร็จแล้วคุณก็ต้องอัปโหลดรหัสไปยัง Arduino ของคุณ
เราจำเป็นต้องนำเข้าสองไลบรารีสำหรับโครงการนี้ หนึ่งคือไลบรารี IRremote ที่เราเพิ่งเพิ่มลงใน Arduino และอีกอันคือ Software Serial Library ในตัวที่ช่วยเราในการใช้โมดูลบลูทู ธ
# รวม
ต่อไปเราเริ่มต้นโมดูลบลูทู ธ ที่พิน 10 และ 11จากนั้นใช้วัตถุที่เรียกว่า irsend เพื่อเข้าถึงคุณสมบัติ IR ทั้งหมดของไลบรารี
SoftwareSerial BT_module (10, 11); // RX, TX IRsend irsend;
ถัดไปเป็นบรรทัดที่สำคัญมากของโค้ด นี่คือที่ที่มีข้อมูลในการควบคุม AC ของคุณ ที่แสดงด้านล่างนี้ใช้สำหรับรีโมท AC ของฉันคุณควรได้รับของคุณในขั้นตอนก่อนหน้านี้
ถัดไปภายใน ติดตั้งเป็นโมฆะ ฟังก์ชั่นที่เราเริ่มต้นสองการสื่อสารแบบอนุกรมหนึ่งคือบลูทู ธ ที่ 9600 Baud rate และอีกตัวคือ Serial monitor ที่ 57600 baud rate
การตั้งค่าเป็นโมฆะ () {BT_module.begin (9600); // BT ทำงานบน 9600 Serial.begin (57600); // ลูกชายทำงานของ Serial Monitor 57600}
ภายใน void loop ของเรา(infinite loop) เราจะตรวจสอบว่ามีสิ่งใดที่โมดูล Bluetooth ได้รับหรือไม่ หากมีสิ่งใดที่เราจะได้รับการเก็บข้อมูลว่าในตัวแปรBluetoothData
ในขณะที่ (BT_module.available ()) // หากข้อมูลกำลังมา {BluetoothData = BT_module.read (); // อ่านและบันทึก Serial.println (BluetoothData); // พิมพ์บนซีเรียลเพื่อการทดสอบ}
ข้อมูลที่บลูทู ธ ได้รับจะเป็นไปตามปุ่มที่กดบนแอพ Androidของเราที่เราจะติดตั้งในขั้นตอนต่อไป เมื่อได้รับข้อมูลแล้วเราก็ต้องทริกเกอร์รหัส IR ตามลำดับดังต่อไปนี้
ถ้า (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); ล่าช้า (2000); // ส่งสัญญาณเพื่อตั้งค่า Temperatue 23C}
ที่นี่หากได้รับรหัส '2' เราต้องตั้งอุณหภูมิของ AC เป็น 23 ° C ในทำนองเดียวกันเรามีรหัสตั้งแต่ 0 ถึง 9 เพื่อทำหน้าที่ควบคุมพื้นฐานทั้งหมดของ AC คุณสามารถอ้างถึงรหัส arduino ที่สมบูรณ์ได้ที่ท้ายหน้านี้
การติดตั้งแอปพลิเคชัน Android:
ขั้นตอนสุดท้ายของเครื่องปรับอากาศที่ควบคุมด้วยสมาร์ทโฟนคือการติดตั้งแอปพลิเคชัน Android การประยุกต์ใช้ Android สำหรับโครงการนี้ถูกสร้างโดยใช้โหมดการประมวลผลของ Androidการประมวลผลเป็นเครื่องมือที่ยอดเยี่ยมในการสร้างไฟล์. EXE หรือไฟล์ APK สำหรับโครงการฝังตัวของคุณ เป็นแพลตฟอร์มโอเพ่นซอร์สเช่นเดียวกับ Arduino และดาวน์โหลดได้ฟรีเพื่อใช้งาน
หากคุณไม่ต้องการลงลึกมากเกินไปคุณสามารถดาวน์โหลดไฟล์ APK จากที่นี่ในไฟล์ zipและติดตั้งโดยตรงบนโทรศัพท์มือถือของคุณ เปิดแอปพลิเคชันและคุณจะได้รับหน้าจอดังที่แสดงด้านล่างหลังจากนั้นคุณสามารถดำเนินการต่อในขั้นตอนต่อไปและสนุกกับการทำงานกับโครงการ แต่ถ้าคุณต้องการปรับแต่งโปรแกรมของแอปพลิเคชันให้เหมาะสมกับความต้องการของคุณคุณสามารถอ่านเพิ่มเติมได้
แฟ้มโปรแกรมที่สมบูรณ์แบบสำหรับการประมวลผลรหัสสามารถดาวน์โหลดได้จากที่นี่Zip นี้จะมีรหัสและแหล่งที่มาของภาพที่ใช้ในการทำงานของแอปพลิเคชัน หลังจากเปิดรหัสแล้วคุณสามารถปรับแต่งบรรทัดต่อไปนี้เพื่อปรับให้เข้ากับความต้องการของคุณ
ดังที่กล่าวไว้ก่อนหน้านี้การประมวลผลจะคล้ายกับ Arduino ดังนั้นจึงมีการ ตั้งค่า โมฆะ และฟังก์ชัน void loop (ที่นี่วาด) ภายใน ติดตั้งเป็นโมฆะ ฟังก์ชั่นนี้เราจะสั่งให้บลูทู ธ ของโทรศัพท์เพื่อเชื่อมต่อกับบลูทู ธ ของ Arduino ชื่ออุปกรณ์ของฉันที่นี่คือ“ HC-05” ดังนั้นบรรทัดรหัสของฉันจะเป็น
bt.start (); // เริ่มฟังการเชื่อมต่อ BT bt.getPairedDeviceNames (); bt.connectToDeviceByName ("HC-05"); // เชื่อมต่อกับโมดูลบลูทู ธ HC-06 ของเรา
ถัดไปภายใน ฟังก์ชัน load_buttons () คุณสามารถวาดปุ่มได้มากเท่าที่คุณต้องการ ฉันวาด 10 ปุ่มตามที่แสดงบนแอปพลิเคชัน ตามด้วยเรามีฟังก์ชั่น read_buttons () ซึ่งใช้ตรวจจับว่าคุณกำลังแตะปุ่มใดอยู่ แต่ละปุ่มจะมีสีเฉพาะดังนั้นเมื่อผู้ใช้แตะหน้าจอเราจะตรวจสอบว่าเขาแตะสีใดและกำหนดว่าเขาแตะปุ่มใด โค้ดตัวอย่างการสร้างปุ่มและเลือกขึ้นอยู่กับสีที่แสดงด้านล่าง
เติม (255,145,3); rect (กว้าง / 2-width / 4, สูง / 2, กว้าง / 4, สูง / 12); เติม (255); ข้อความ ("25C", กว้าง / 2-width / 4, สูง / 2); // ปุ่ม 5 if (color_val == - 13589993) {byte data = {'0'}; bt.broadcast (ข้อมูล);}
บรรทัด“ byte data = {'0'};” เป็นบรรทัดที่สำคัญมาก นี่คือจุดที่เราตัดสินใจว่าจะต้องส่งรหัสใดไปยัง Arduino ผ่านบลูทู ธ ที่นี่หากกดปุ่มนี้ถ่าน“ 0” จะถูกส่งจากบลูทู ธ ไปยัง Arduino ในทำนองเดียวกันเราสามารถส่งอักขระที่แตกต่างกันสำหรับปุ่มต่างๆ จากนั้นสามารถเปรียบเทียบอักขระเหล่านี้ในฝั่ง Arduino และสามารถดำเนินการตามลำดับได้
ดำเนินการต่อและไขรหัสหากคุณมีข้อสงสัยใด ๆ ติดต่อฉันผ่านส่วนความคิดเห็นและจะพยายามอย่างเต็มที่ในการช่วยเหลือคุณ
การทำงานของโทรศัพท์มือถือควบคุม AC:
เมื่อคุณพร้อมกับแอพพลิเคชั่น Hardware, Arduino Code และ android แล้วก็ถึงเวลาเพลิดเพลินไปกับผลลัพธ์ อัปโหลดรหัส Arduino ไปยังฮาร์ดแวร์ของคุณและวางให้หันเข้าหา AC ของคุณ ตอนนี้เปิดแอปพลิเคชัน Android บนโทรศัพท์มือถือของคุณหากทุกอย่างทำงานตามที่คาดไว้คุณจะเห็น“ เชื่อมต่อกับ: device_name (รหัสบางส่วน) ” ดังที่แสดงด้านล่าง
ตอนนี้เพียงแค่กดปุ่มใดก็ได้บนแอปพลิเคชัน Android ของคุณและมันควรจะเริ่มการทำงานตามลำดับบน AC ราวกับว่าคุณกำลังใช้รีโมท คุณสามารถเพิ่มปุ่มได้มากเท่าที่คุณต้องการโดยการแก้ไขรหัสและยังทำให้ AC ของคุณอัตโนมัติตามอุณหภูมิห้องหรือการมีอยู่ของคุณ ตรวจสอบที่สมบูรณ์Arduino รหัสและวิดีโอด้านล่าง
หวังว่าคุณจะสนุกกับโครงการและเข้าใจแนวคิดเบื้องหลัง เช่นเคยหากคุณมีปัญหาใด ๆ ในการทำงานนี้คุณสามารถใช้ฟอรัมเพื่อโพสต์คำถามของคุณและแก้ไขได้
ไฟล์ APK สำหรับติดตั้ง Android Application สามารถดาวน์โหลดได้จากที่นี่