สารบัญ:

การทำพล็อตข้อมูลระยะไกลอย่างง่ายโดยใช้ Android / Arduino / PfodApp: 6 ขั้นตอน
การทำพล็อตข้อมูลระยะไกลอย่างง่ายโดยใช้ Android / Arduino / PfodApp: 6 ขั้นตอน

วีดีโอ: การทำพล็อตข้อมูลระยะไกลอย่างง่ายโดยใช้ Android / Arduino / PfodApp: 6 ขั้นตอน

วีดีโอ: การทำพล็อตข้อมูลระยะไกลอย่างง่ายโดยใช้ Android / Arduino / PfodApp: 6 ขั้นตอน
วีดีโอ: อยากเป็นนักคิด นักประดิษฐ์ นักDIY EP4 (RS485 Serial Communication) 2024, พฤศจิกายน
Anonim
การทำพล็อตข้อมูลระยะไกลอย่างง่ายโดยใช้ Android / Arduino / PfodApp
การทำพล็อตข้อมูลระยะไกลอย่างง่ายโดยใช้ Android / Arduino / PfodApp

สำหรับการพล็อตข้อมูลเทียบกับวันที่/เวลาโดยใช้มิลลิวินาทีของ Arduino เท่านั้น โปรดดูที่ InstructableArduino การพล็อตวันที่/เวลา/การบันทึกโดยใช้มิลลิวินาที () และ PfodApp

คำแนะนำนี้แสดงวิธีการพล็อตข้อมูลเซ็นเซอร์ Arduino บนมือถือ Android ของคุณและจับภาพเพื่อดาวน์โหลดไปยังคอมพิวเตอร์ของคุณในภายหลัง คำแนะนำเหล่านี้สามารถดูได้ที่ www.pfod.com.au ไม่จำเป็นต้องมีการเขียนโปรแกรม Android และจำเป็นต้องมีการเขียนโปรแกรม Arduino เพียงเล็กน้อย เป็นส่วนขยายของ Simple Mobile Data Logging โดยใช้ pfodApp

ขั้นตอนที่ 1: เริ่มพล็อตอย่างรวดเร็ว

เริ่มพล็อตอย่างรวดเร็ว
เริ่มพล็อตอย่างรวดเร็ว

a) รับบอร์ด Arduino และโมดูล Bluetooth (เช่น Uno และ Bluetooth Shield หรือ FioV3 + Bluetooth) b) ติดตั้ง Arduino IDE c) เชื่อมต่อบอร์ด Arduino (ไม่ได้ต่อโมดูล Bluetooth) ด้วยสาย USB d) คัดลอกภาพสเก็ตช์นี้ไปยัง Arduino IDE และคอมไพล์และโหลดลงในบอร์ด Arduino) e) แนบโมดูล Bluetooth Shield กับ Uno (Bluetooth Shield ได้รับการกำหนดค่าล่วงหน้าสำหรับ 9600 baud แต่ตั้งค่าสวิตช์ 3V/5V เป็น 5V และตั้งค่า To Board/To FT232 สลับไปที่ตำแหน่ง To Board f) โหลด Android Mobile ของคุณด้วย pfodApp g) ตั้งค่าการเชื่อมต่อระหว่างมือถือของคุณและโมดูล Bluetooth ตามที่อธิบายไว้ใน pfodAppForAndroidGettingStarted.pdf h) เริ่ม pfodApp และเชื่อมต่อกับบอร์ด Arduino ของคุณผ่านโมดูล Bluetooth ฉันเสร็จแล้ว. มือถือของคุณจะบันทึกและวางแผนตัวแปลง Arduino AtoD นับสำหรับอินพุต A0

ขั้นตอนที่ 2: ร่างพล็อต

ร่างพล็อต
ร่างพล็อต

การพล็อตโดยใช้ pfodApp ต้องการสองสิ่ง:- a) สตรีมข้อมูล (ในรูปแบบ CSV) และ b) คำสั่ง plot จาก pfodDevice (Arduino) SimpleDataPlotting.ino แบบร่าง ทำสองสิ่งเท่านั้น ขั้นแรก มันจะอ่านอินพุตแบบอะนาล็อก A0 ต่อวินาที และส่งวินาทีปัจจุบันและการนับในรูปแบบ CSV ครั้งที่สอง เมื่อ pfodApp เชื่อมต่อและขอเมนูหลัก ภาพร่างจะตอบสนองด้วยคำสั่งการพล็อตเพื่อเริ่มการวางแผนการวัด นี่คือรหัสที่ดำเนินการวินาทีละครั้งเพื่ออ่านอินพุตแบบอะนาล็อก A0 และเขียนวินาทีปัจจุบัน นับเป็นการเชื่อมต่อบลูทูธ // อ่าน A0 หนึ่งครั้งต่อวินาที int val = analogRead(0); // A0 // ส่งออกเวลาปัจจุบันและการอ่านในรูปแบบ csv parser.print(thisMillis/1000); // ฟิลด์แรกเป็นเวลาในหน่วยวินาที parser.print(", "); // จุลภาคคั่นฟิลด์ parser.println(val); // ขึ้นบรรทัดใหม่ยกเลิกการบันทึกข้อมูล

นี่คือรหัสที่ตอบสนองต่อคำขอ pfodApp สำหรับเมนูหลักของ pfodDevice (ของ Arduino Uno)

ไบต์ cmd = parser.parse(); if (cmd != 0) { // have parsed a complete msg { to } if ('.' == cmd) { // pfodApp ได้ขอเมนูหลัก // ส่ง "open plotting screen" parser.print(F) กลับมา ("{=แอนะล็อก A0 พล็อต|เวลา(วินาที)|จำนวน}")); // นี่คือเมนูหลัก } else if ('!' == cmd) { // คำสั่ง CloseConnection closeConnection(parser.getPfodAppStream()); } else { // คำสั่งที่ไม่รู้จัก parser.print(F("{}")); // ส่งข้อความ pfod กลับไปเสมอ มิฉะนั้น pfodApp จะตัดการเชื่อมต่อ } }

เมื่อ pfodApp บนมือถือของคุณเชื่อมต่อ มันจะถามหาเมนูหลักโดยอัตโนมัติ (โดยการส่งข้อความ {.}) parser ในแบบสเก็ตช์ (ดูรหัสที่ด้านล่างของแบบร่าง) จะแยกวิเคราะห์ {.} และส่งคืน '.' สั่งการ. จากนั้นร่างจะส่งคำสั่ง plot กลับมา{=Analog A0 Plot|Time(sec)|A0 Counts} คำสั่งนั้นสั่งให้ pfodApp เปิดหน้าจอที่เรียกว่า "Analog A0 Plot" และพล็อตเวลาเทียบกับการนับ จากนั้น pfodApp จะสแกนข้อมูลดิบที่เข้ามาและค้นหาบรรทัดที่มีสองฟิลด์ และใช้ฟิลด์แรกเป็นค่า x และฟิลด์ที่สองเป็นค่า y และเพิ่มจุดนั้นไปยังพล็อต เมื่อใดก็ตามที่หน้าจอการวางแผน (หรือหน้าจอข้อมูลดิบ) เปิดขึ้น pfodApp จะเริ่มบันทึกข้อมูลดิบทั้งหมดลงในไฟล์ในเครื่องบนมือถือของคุณ pfodApp จะบันทึกข้อมูลต่อไปจนกว่าคุณจะออกจาก pfodApp คุณสามารถดาวน์โหลดไฟล์นี้ไปยังคอมพิวเตอร์ของคุณเพื่อดำเนินการต่อไป (ดูขั้นตอนใดขั้นตอนหนึ่งในภายหลัง) มีตัวเลือกอื่น ๆ มากมายสำหรับคำสั่งการลงจุดซึ่งช่วยให้คุณละเว้นบางฟิลด์ ตั้งค่ามาตราส่วนการลงจุด พล็อตหลายแปลงในแผนภูมิเดียว ฯลฯ ดู pfodSpecification สำหรับรายละเอียดและตัวอย่าง pfodApp สามารถทำได้มากกว่าแค่การวางแผน ดูตัวอย่างเหล่านี้ โครงเรื่องข้างต้นเป็นตัวอย่างของแผนภูมิสองแผนภูมิ ซึ่งหนึ่งในนั้นมีสองแปลงอยู่ พล็อตนี้มาจาก ArduMower หุ่นยนต์ตัดหญ้าทำเอง! ซึ่งใช้ pfodApp เดียวกันเพื่อควบคุมเครื่องตัดหญ้าแบบหุ่นยนต์ pfodApp เดียวกันใช้เพื่อควบคุม pfodDevices ทั้งหมด เป็น pfodDevices ที่กำหนดหน้าจอที่จะแสดงต่อผู้ใช้อย่างสมบูรณ์

ขั้นตอนที่ 3: รายละเอียดเพิ่มเติม

รายละเอียดเพิ่มเติม
รายละเอียดเพิ่มเติม
รายละเอียดเพิ่มเติม
รายละเอียดเพิ่มเติม

pfodApp เวอร์ชันล่าสุดจาก Android Market ช่วยให้ข้อมูลดิบที่ส่งโดย pfodDevice (เช่น Arduino) สามารถลงจุดและบันทึกลงในไฟล์เพื่อใช้ในภายหลัง ดู pfodAppForAndroidGettingStarted.pdf สำหรับวิธีดาวน์โหลดไฟล์จากมือถือ Android ไปยังคอมพิวเตอร์ของคุณ การทำพล็อตต้องใช้สองสิ่ง:- a) สตรีมข้อมูล (ในรูปแบบ CSV) และ b) คำสั่ง plot จาก pfodDevice pfodDevice ของคุณ (Arduino) สามารถส่งข้อมูลประเภทใดก็ได้นอกข้อความ pfod ข้อความ pfod ซึ่งล้อมรอบด้วย { } ซึ่งแตกต่างจากข้อมูลอื่น หากคุณต้องการพล็อตข้อมูล คุณต้องส่งข้อมูลในรูปแบบ CSV นั่นคือค่าข้อมูลที่คั่นด้วยเครื่องหมายจุลภาค และสิ้นสุดด้วยการขึ้นบรรทัดใหม่ (CR หรือ LF หรือ CR LF) ตัวอย่างเช่น 105, 680 เมื่อ pfodDevice ต้องการแสดงพล็อตต่อผู้ใช้ pfodDevice จะส่งคำสั่งการลงจุด ภาพสเก็ตช์ Arduino ของคุณควบคุมได้อย่างสมบูรณ์ว่าแปลง pfodApp ใด คำสั่ง plot กำหนดหัวเรื่องให้กับหน้าจอการลงจุด และระบุว่าสตรีมข้อมูลดิบใดที่จะลงจุด และฟิลด์ใดจากสตรีมนั้น สตรีมข้อมูลดิบที่แตกต่างกันมีจำนวนฟิลด์ที่คั่นด้วยจุลภาคต่างกัน จำนวนบาร์ | ในคำสั่ง plot ต้องตรงกับจำนวนฟิลด์ในสตรีมข้อมูลที่คุณต้องการลงจุด บรรทัดข้อมูลที่มีจำนวนฟิลด์ต่างกันจะถูกละเว้นสำหรับพล็อตนี้ มีตัวเลือกมากมายสำหรับคำสั่งการลงจุดเพื่อเลือกฟิลด์ที่จะลงจุดและเพื่อตั้งค่ามาตราส่วนและหน่วย และการวางหลายแปลงในแผนภูมิเดียว วิธีที่ง่ายที่สุดคือส่งค่า x เป็นฟิลด์แรก และค่า y เป็นฟิลด์ต่อไปนี้ จากนั้นในคำสั่งการพล็อตให้ตั้งชื่อแกน x และ y-axis เช่น {=แอนะล็อก A0 พล็อต | เวลา(วินาที) | A0 Counts } ชื่อเรื่อง | x ค่าฟิลด์ | ฟิลด์ค่า y คุณยังสามารถดูข้อมูลดิบที่ถูกส่งไปยังมือถือของคุณ หน้าจอ "ข้อมูลดิบ" สามารถเข้าถึงได้จาก pfodApp โดยใช้เมนูบนมือถือของคุณ หรือสามารถเปิดได้โดย pfodDevice ที่ส่งข้อความ streamRawData {=Title Of the Screen Goes Here} เช่นคำสั่งการลงจุดในเวอร์ชันที่ถูกตัดทอน ไม่ว่าจะเปิดหน้าจอข้อมูลดิบ pfodApp ด้วยวิธีใด และจะแสดงข้อมูลที่ส่งจาก pfodDevice เมื่อหน้าจอเปิดขึ้น pfodApp จะเริ่มบันทึกข้อมูลลงในไฟล์ ชื่อของไฟล์จะแสดงขึ้นทุกครั้งที่เปิดหน้าจอ (หรือหน้าจอการพล็อต) เพื่อป้องกันไม่ให้มือถือของคุณกรอกข้อมูลที่คุณไม่ต้องการ pfodApp จะไม่เริ่มเขียนข้อมูลไปยังการ์ด SD ของมือถือจนกว่าจะเปิดหน้าจอ Raw Data หรือหน้าจอการพล็อตเป็นครั้งแรกหลังจากการเชื่อมต่อใหม่แต่ละครั้ง ครั้งแรกที่เปิดหน้าจอข้อมูลดิบหลังจากการเชื่อมต่อใหม่ ข้อมูลที่ได้รับก่อนหน้านี้สูงสุด 4K ไบต์ (ตั้งแต่ทำการเชื่อมต่อ) จะถูกเขียนไปยังไฟล์เมื่อเปิดขึ้น ข้อมูลนี้ยังมีให้สำหรับพล็อต ในกรณีส่วนใหญ่ นี่หมายความว่าข้อมูลดิบทั้งหมดที่ส่งตั้งแต่ทำการเชื่อมต่อจะถูกบันทึก เมื่อปิดการเชื่อมต่อ ข้อมูลสุดท้ายจะถูกเขียนและไฟล์จะถูกปิด หากไฟล์มีอยู่แล้ว จากการเชื่อมต่อก่อนหน้านี้ ไฟล์จะถูกต่อท้ายด้วยการเชื่อมต่อที่ตามมาแต่ละครั้ง คุณสามารถดาวน์โหลดและลบไฟล์ออกจากคอมพิวเตอร์ของคุณได้ ดู pfodAppForAndroidGettingStarted.pdf สำหรับวิธีเข้าถึงไฟล์จากคอมพิวเตอร์ของคุณ

ขั้นตอนที่ 4: การทดสอบด้วย SerialMonitor

การทดสอบด้วย SerialMonitor
การทดสอบด้วย SerialMonitor
การทดสอบด้วย SerialMonitor
การทดสอบด้วย SerialMonitor

ก่อนเชื่อมต่อผ่านบลูทูธ คุณสามารถทดสอบภาพสเก็ตช์โดยใช้ Arduino IDE SerialMonitor ขั้นแรกให้ถอดบอร์ดบลูทูธออก เนื่องจากใช้การเชื่อมต่อ TX/RX เดียวกันกับการเขียนโปรแกรม USB และการเชื่อมต่อจอภาพแบบอนุกรม จากนั้นคัดลอกและวางแบบร่าง (SimpleDataPlotting.ino) ลงใน Arduino IDE และตั้งโปรแกรมบอร์ด Arduino จากนั้นเปิด Arduino IDE SerialMonitor คุณจะเห็นข้อมูลที่ส่งโดยบอร์ด Uno จากนั้นพิมพ์ {.} แล้วคลิก "ส่ง" เพื่อส่งคำสั่ง getMainMenu {.} นี่คือสิ่งที่ pfodApp จะส่งก่อนเมื่อมีการเชื่อมต่อ ร่างตอบสนองด้วยคำสั่ง Plotting {=Analog A0 Plot|Time(sec)|A0 Counts} ซึ่งจะขอให้ pfodApp เปิดหน้าจอการวางแผนและเริ่มวางแผนข้อมูล นอกจากนี้ยังเริ่มบันทึกข้อมูลลงในไฟล์ ดู pfodSpecification สำหรับรายละเอียดเกี่ยวกับข้อความและหน้าจอทั้งหมดที่ pfod (Protocol for Operation Discovery) รองรับ

ขั้นตอนที่ 5: การเชื่อมต่อกับมือถือ Android

การเชื่อมต่อกับมือถือ Android
การเชื่อมต่อกับมือถือ Android
การเชื่อมต่อกับมือถือ Android
การเชื่อมต่อกับมือถือ Android

ทั้งหมดนี้เป็นสิ่งที่ดี ดังนั้นคุณสามารถปิด Arduino IDE และ SerialMonitor และติดแผงป้องกัน Bluetooth ดังที่แสดงไว้ก่อนหน้านี้ ในการเชื่อมต่อกับมือถือ Android ของคุณ ก่อนอื่นให้ติดตั้ง pfodApp จาก Android Market จากนั้นทำตามคำแนะนำ pfodAppForAndroidGettingStarted.pdf เพื่อจับคู่ Bluetooth Shield ของคุณกับมือถือของคุณและตั้งค่าการเชื่อมต่อ Bluetooth pfodApp ฉันเรียกการเชื่อมต่อของฉันว่า "การบันทึกข้อมูลอย่างง่าย" จากนั้นเลือกการเชื่อมต่อ "การบันทึกข้อมูลอย่างง่าย" เพื่อเชื่อมต่อกับเครื่องบันทึกข้อมูลอย่างง่าย ทันทีที่ pfodApp เชื่อมต่อ มันจะส่งข้อความ {.} ที่ร่างตอบสนองด้วยข้อความ {=Analog A0 Plot|Time(sec)|A0 Counts} ซึ่งบอก pfodApp วางแผนข้อมูลและเริ่มบันทึกข้อมูล ในพล็อตนี้ ฉันได้เชื่อมต่อ A0 กับ Gnd และ 5.5V และ 3.3V และปล่อยให้มันลอยอยู่เพียงแค่เก็บเสียง

ขั้นตอนที่ 6: การถ่ายโอนข้อมูลไปยังคอมพิวเตอร์ของคุณ

การถ่ายโอนข้อมูลไปยังคอมพิวเตอร์ของคุณ
การถ่ายโอนข้อมูลไปยังคอมพิวเตอร์ของคุณ

pfodAppForAndroidGettingStarted.pdf ให้รายละเอียดวิธีเชื่อมต่อมือถือของคุณกับคอมพิวเตอร์ผ่าน USB และวิธีเปิดที่เก็บข้อมูลขนาดใหญ่ USB เพื่อให้คุณสามารถเรียกดูจากคอมพิวเตอร์ของคุณ คุณจะพบไฟล์ข้อมูลดิบทั้งหมดในโฟลเดอร์ pfodAppRawData ดังที่แสดงไว้ข้างต้น Simple Data Logger บันทึกข้อมูลไปที่ /pfodAppRawData/Simple Data Logging.txt pfodApp ใช้ชื่อการเชื่อมต่อเป็นชื่อไฟล์สำหรับการบันทึกข้อมูล ส่วนต่อขยายไปยัง Simple Data Logger ตอนนี้คุณมีเครื่องบันทึกข้อมูลอย่างง่ายแล้ว ที่ทั้งแปลงและบันทึกข้อมูลของคุณ คุณสามารถแก้ไขภาพร่างเพื่อส่งข้อมูลของคุณเองกลับ เพียงเขียนข้อมูลของคุณในรูปแบบ CSV ไปยังการเชื่อมต่อแบบอนุกรมเดียวกันกับที่เชื่อมต่อกับโมดูล Bluetooth ของคุณ หากคุณมีฟิลด์ข้อมูลมากกว่าสองฟิลด์ คุณจะต้องแก้ไขคำสั่งการลงจุด ดู pfodSpecification สำหรับรายละเอียดและตัวอย่าง

แนะนำ: