สร้างแอพ Android เพื่อควบคุมผ่านบลูทู ธ และ Arduino ควบคุมบ้านของคุณผ่าน RF ด้วย AppInventor: 6 ขั้นตอน

สร้างแอพ Android เพื่อควบคุมผ่านบลูทู ธ และ Arduino ควบคุมบ้านของคุณผ่าน RF ด้วย AppInventor: 6 ขั้นตอน

สารบัญ:

Anonim

ฉันรู้ว่าชื่อค่อนข้างคำหนึ่ง แต่มันเป็นสิ่งที่แน่นอน

ก่อนหน้านี้ฉันได้ทำการสอนอธิบายวงจรรอบ ๆ atmega328 (หรือ 'Arduino') ที่จะขัดขวางนักย่องเบาโดยเลียนแบบฉันอยู่ที่บ้าน

ระบบค่อยๆขยายเข้าสู่ระบบ 'บ้านอัตโนมัติ' เนื่องจากมันรวมการดูแลสวนของฉันด้วย

แม้ว่ามันจะสามารถทำงานได้ด้วยตัวเอง แต่ฉันได้เพิ่มส่วนต่อประสานบลูทู ธ เพื่อรับข้อเสนอแนะจากระบบหรือตั้งค่าพารามิเตอร์บางอย่างหรือแทรกแซงโดยการเปิดหรือปิดหลอดไฟด้วยตัวเอง

'อินเทอร์เฟซ' ที่ฉันใช้สำหรับการสื่อสารบลูทู ธ กับโทรศัพท์ของฉันคือ 'บลูทู ธ เทอร์มินัล' ไม่ค่อยเป็นมิตรกับผู้ใช้และมันจะสูญเสียการเชื่อมต่อเมื่อใดก็ตามที่ฉันเอียงโทรศัพท์มากพอที่โปรแกรมจะเข้าสู่โหมดแนวนอน

ดังนั้นฉันจึงต้องการแอพพลิเคชั่นจริง ๆ แล้วไม่มีระบบควบคุมที่เหมาะสมในปัจจุบันสามารถทำได้โดยไม่ต้อง เราไม่ได้อยู่ในยุคหินอีกต่อไป:-)

แม้ว่าฉันจะไม่ใช่มือใหม่บน HTML และ Java แต่ฉันก็ไม่มีประสบการณ์ในการทำแอพ โดยทั่วไปฉันไม่รู้ว่าจะเริ่มจากตรงไหน ดาวน์โหลดระบบที่พัฒนาแอพพลิเคชั่นเช่นสตูดิโอ Android แต่ฉันคิดว่ามันต้องมีพื้นที่ว่างมากกว่าหนึ่งล้านรูเบิลและอย่างสุจริตฉันพบว่ามันไม่เป็นมิตรเลย

ดังนั้นหลังจากการค้นหาบางอย่างฉันก็มาถึง 'App inventor' สิ่งที่ดีเกี่ยวกับ App Inventor ก็คือมันทำงานได้ตามปกติ เพียงคุณมีบัญชี Google นักประดิษฐ์แอปไม่จำเป็นต้องมีประสบการณ์การใช้โปรแกรมมาก่อน แต่ทำได้ทุกอย่างด้วยการแนบกราฟิก 'บล็อก' เข้าด้วยกัน

ในตอนแรกนักประดิษฐ์แอปอาจดูค่อนข้างน่ากลัวพูดถึง "อีมูเลเตอร์" และต้องดาวน์โหลดแอพ 'compagnon' ไปยังโทรศัพท์ของคุณ แต่นั่นไม่จำเป็นเลย

สิ่งที่คุณทำคือคุณไปที่นี่เพื่อประดิษฐ์แอปและถ้าคุณมีบัญชี Google คุณสามารถเริ่มต้นได้ทันที

ถ้าอย่างนั้นฉันขอแนะนำให้ใช้บทช่วยสอนพื้นฐานของพวกเขา Hello Purr ดังนั้นคุณจะได้รู้สึกว่ามันทำงานอย่างไร

เมื่อคุณทำตัวอย่าง 'Hello Purr' แล้วคุณอาจรู้ว่ามันทำงานอย่างไร แต่คุณอาจยังมีคำถามเช่น: 'ใช่ แต่ฉันจะเชื่อมต่อผ่านบลูทู ธ ได้อย่างไร'

นั่นคือสิ่งที่ฉันจะอธิบายในขั้นตอนต่อไป

วัสดุ:

ขั้นตอนที่ 1: แอพ: กดปุ่มอ่านอินพุตและเอาต์พุต

วงจร Arduino ของฉันดังที่กล่าวมามีโมดูลบลูทู ธ ปกติต่ออยู่กับพอร์ตอนุกรม มันทำงานได้โดยอัตโนมัติ แต่สามารถรับคำสั่งจากพอร์ตอนุกรมจากนั้นใช้คำสั่งเพื่อทำสิ่งต่าง ๆ สวิตช์ไฟเปิดสวิตช์ปั๊ม คำสั่งเหล่านี้เป็นตัวอักษร ASCII ที่พิมพ์ได้ทั้งหมดเนื่องจากฉันต้องสามารถเลือกได้จากแป้นพิมพ์ของฉันเมื่อฉันยังคงใช้บลูทู ธ เทอร์มินัล ในแอปมันไม่สำคัญว่าจะพิมพ์ ASCII หรือไม่ แต่ในสองภาพด้านบนคุณสามารถดูค่าอินพุตต่างๆที่ arduino กำลังสแกนหาผ่าน 'Serial.read ()'

ดังนั้นสิ่งที่เราต้องทำในแอพคือการกำหนดปุ่มที่ส่งค่าเหล่านั้นไปยังบลูทู ธ ของโทรศัพท์ที่จะส่งผ่านไปยังโมดูลบลูทู ธ ของ Arduino และพอร์ตอนุกรม

ฉันจะไม่อธิบายแอพในทุกรายละเอียดเพราะมันน่าเบื่อและฉันเชื่อว่าวิธีที่ดีที่สุดในการเรียนรู้คือการเล่นด้วยตัวเองดังนั้นฉันจะให้แหล่งที่มาของแอพเพื่อให้คุณโหลดและเล่น ฉันจะหารือเกี่ยวกับหลักการพื้นฐานบางอย่างเพื่อให้คุณเข้าใจว่าแอปกำลังทำอะไร

หากคุณผ่านตัวอย่าง 'Hello Purr' ของ App Inventor คุณจะรู้ว่ามีสองหน้าจอ: หน้าจอการออกแบบและหน้าจอบล็อก

ในหน้าจอการออกแบบเรา จำกัด รูปแบบของแอพของเราโดยทั่วไปแล้วมันเป็นองค์ประกอบ 'ลากและวาง' ลงบนหน้าจอโทรศัพท์ 'จำลอง' คุณสมบัติทั้งหมดเช่นสี, ตำแหน่ง, ฟอนต์และอื่น ๆ ทั้งหมดเสร็จสิ้นในหน้าจอการออกแบบและคุณจะได้สัมผัสกับมันในไม่ช้า

จากนั้นในหน้าจอบล็อกเรากำหนดฟังก์ชั่นของรายการต่าง ๆ: เมื่อคลิกที่รายการในคอลัมน์ด้านซ้ายเราจะได้รับการเลือกสำหรับการกระทำที่เป็นไปได้สำหรับรายการนั้น

ในภาพที่สามคุณจะเห็นวิธีการใช้งานสำหรับสองปุ่ม:

หากคลิกปุ่มใดปุ่มหนึ่งจะเป็นการเรียกบลูทู ธ ไคลเอนต์เพื่อส่งไบต์และในกรณีนี้คือหมายเลข 72 (หรือ 'H') ในโครงสร้าง Serial.read () ในโปรแกรม Arduino คุณจะเห็นว่านี่หมายถึงการเปิดไฟในสิ่งมีชีวิต

คล้ายกับปุ่ม 2: ที่เรียกบลูทู ธ ไคลเอนต์เพื่อส่งหมายเลข 104 ('h') นั่นใน Arduinoprogram หมายถึง "สวิตช์ของแสงในห้องนั่งเล่น"

โปรแกรม Arduino ยังส่งข้อมูล (เวลาอุณหภูมิ) ไปยังพอร์ตอนุกรมและเราจำเป็นต้องจับข้อมูลนั้นและพิมพ์ออกมาทางโทรศัพท์ ภาพที่สี่แสดงวิธีการทำ เราไม่เพียงกำหนดปุ่ม แต่ยังมีกล่องข้อความเพื่อพิมพ์ผลลัพธ์ อีกครั้งที่ปุ่มเรียกบลูทู ธ ไคลเอนต์เพื่อส่ง byte, 116, (a 't) ซึ่งดังที่เราเห็นจากผลลัพธ์ Arduinoprogram ของเราในเวลาที่พิมพ์ไปยังพอร์ตอนุกรม

เราจึงกำหนดการกระทำอื่นภายใต้ปุ่มนั้นและเพื่อให้กล่องข้อความเรียกบลูทู ธ ไคลเอนต์เพื่ออ่านไบต์รายได้ ตอนนี้ค่อนข้างหยาบเพราะหากมีสิ่งใดที่ถูกพิมพ์ไปยังซีเรียลพอร์ตแล้ว (บอกสถานะข้อความอัตโนมัติ) จากนั้นก็จะถูกพิมพ์เช่นกันดังนั้นการปรับแต่งบางอย่างยังคงอยู่ในลำดับ

ขั้นตอนที่ 2: แอพ: สลับปุ่ม

ก่อนหน้านี้ฉันแสดงวิธีที่คุณสามารถส่งคำสั่งด้วยปุ่ม: ปุ่มเดียวสำหรับ 'เปิด' และปุ่มเดียวสำหรับ 'ปิด'

น่าเบื่อ !!! มันจะใช้พื้นที่น้อยกว่าถ้าเรามีเพียงปุ่มเดียวที่เราสามารถสลับได้

นั่นไม่ใช่เรื่องยาก หากคุณมองที่หน้าจอการออกแบบคุณจะเห็น 'gobbledydock นอกรีต' (ขอโทษสำหรับสิ่งนั้น) แต่ในระดับล่างคุณจะเห็นปุ่มที่มีบัวรดน้ำสีเขียว เห็นได้ชัดว่าสิ่งนี้เกี่ยวข้องกับการชลประทานในสวน

ในภาพสองภาพถัดไปจะแสดงลักษณะที่ปรากฏบนแอปที่ใช้งานได้จริง: กดปุ่มสีเขียวและส่งคำสั่งไปยังไคลเอนต์บลูทู ธ แล้วเปลี่ยนเป็นสีแดง กดปุ่มสีแดงและมันจะส่งคำสั่งอื่นและกลายเป็นสีเขียวอีกครั้ง

เริ่มแรกฉันพบวิธีตามที่แสดงในภาพที่ 4 ภายใต้ปุ่มเรากำหนดโครงสร้าง 'If If Else' ซึ่งเงื่อนไขที่เราตรวจสอบคือชื่อของภาพที่เราแนบกับปุ่ม ขึ้นอยู่กับชื่อนั้นเราไปที่หนึ่งในสองขั้นตอนที่เราออกคำสั่งที่ต้องการ (ในกรณีนี้ส่ง 'I' หรือ 'i') และสลับภาพที่ปุ่ม

อย่างไรก็ตามดูเหมือนว่าจะไม่มีความซับซ้อนและภาพที่ 5 แสดงวิธีที่ง่ายขึ้นโดยไม่ต้องเรียกขั้นตอน

ขั้นตอนที่ 3: แอพ: การเชื่อมต่อบลูทู ธ

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

ตอนนี้แน่นอนถ้าคุณมีแอพที่มีความหมายสำหรับอุปกรณ์หนึ่งเท่านั้นคุณสามารถทำได้ด้วยตัวเลือกรายการและเพียงแค่เชื่อมต่อกับ UUID ของอุปกรณ์ที่ต้องการ

ภาพที่สองแสดงวิธีเชื่อมต่อบลูทู ธ พื้นฐานสองวิธี:

ผ่านตัวเลือกรายการและผ่าน UUID ของอุปกรณ์ที่ต้องการ UUID คือชื่อที่อุปกรณ์ของคุณปรากฏเมื่อคุณเพิ่มจับคู่หรือเชื่อมต่อกับมัน มันมักจะเป็นชุดของตัวเลขที่มีชื่อเหมือน

XX: XX: XX: XX: XX: XX HC-05

มีวิธีอื่น ๆ ในการเชื่อมต่อกับบลูทู ธ และคุณอาจพบว่าการอ่านน่าสนใจบางอย่างที่นี่

ขั้นตอนที่ 4: แอพ: คำสั่งเสียง

ฉันได้เพิ่มคำสั่งเสียงพื้นฐานลงในแอพแล้ว ฉันพบว่าคำที่ยาวกว่าทำงานได้ดีกว่าคำที่สั้นกว่า 'เปิด' ไม่ทำงานสำหรับฉัน 'ปิด' ทำงานได้ดีขึ้น แต่ 'ห้องนอน' มักจะปรากฏขึ้น อาจเป็นเพราะภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน นอกจากนี้ฉันไม่แน่ใจว่าการรู้จำเสียงพูดในภาษาอื่นเข้าใจได้ดีเพียงใด

ขั้นตอนที่ 5: แอป: การทดสอบและอัปโหลด

นักประดิษฐ์แอปมีหลายวิธีในการทดสอบแอปของคุณ ฉันทำได้โดยดาวน์โหลดสหายนักประดิษฐ์ของแอปในโทรศัพท์ของฉัน ตราบใดที่คอมพิวเตอร์และโทรศัพท์ของคุณใช้เครือข่ายเดียวกันก็ใช้งานได้

แม้ว่าหลังจากนั้นสองสามครั้งฉันก็ยอมแพ้ในการใช้งานคู่หูประดิษฐ์ App แต่ฉันเพิ่งอัปโหลดรหัส apk ไปยังโทรศัพท์ของฉัน

ดังนั้นวิธีการอัปโหลดไฟล์ apk?

ก่อนอื่นคุณต้องรับ คุณทำได้โดยคลิกที่ปุ่ม 'สร้าง' ในแถบเครื่องมือด้านบน: ที่มีสองตัวเลือก: สแกนรหัส QR หรือดาวน์โหลดไฟล์ apk ไปยังคอมพิวเตอร์ของคุณ

ฉันมักจะไปหลัง วิธีที่ง่ายที่สุดในการติดตั้งรหัสนั้นบนโทรศัพท์ Android ของคุณคือการส่งเป็นไฟล์แนบไปยังบัญชี gmail ของคุณเองที่คุณมีบนโทรศัพท์ yr การเปิดสิ่งที่แนบมานั้นทำให้คุณมีทางเลือกในการติดตั้ง

ขั้นตอนที่ 6: แอป: เพียงเล็กน้อยเกร็ดเล็กเกร็ดน้อยและรหัส

มีอีกไม่กี่อย่างแล้วฉันจะให้คุณมีรหัสเพื่อเล่นกับ

การออกแบบที่ฉันให้นั้นไม่ฉูดฉาดมากฉันแน่ใจว่าคุณสามารถปรับแต่งให้เข้ากับความต้องการของตัวเองได้ด้วยไอคอนจำนวนมาก แต่มันมีไว้เพื่อเป็นตัวอย่างสำหรับคนจรจัดเท่านั้น

ไฟล์ apk จะถูกติดตั้งด้วยไอคอนหมองคล้ำมาตรฐาน คุณสามารถระบุไอคอนแอพที่ฉูดฉาดของคุณเองได้ในคุณสมบัติ 'Screen1' นี่เป็นที่ที่คุณสามารถระบุชื่อแอพของคุณ

โปรดจำไว้ว่าในขณะที่ฉันเขียนสิ่งนี้ฉันอาจจะอยู่ข้างหน้าคุณเพียงหนึ่งวันในการทำงานกับ App Inventor มันเป็นเรื่องจริงง่ายไปใช้มัน

นี่คือไฟล์เพียงไปที่ 'นำเข้า' ใน App Inventor และเริ่มใช้และแก้ไขตามความต้องการของคุณ