สารบัญ:

การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp: 10 ขั้นตอน (พร้อมรูปภาพ)
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Очередной рейс (1958) фильм 2024, ธันวาคม
Anonim
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp
การบันทึกข้อมูลระยะไกลที่มีความแม่นยำสูงโดยใช้มัลติมิเตอร์/Arduino/pfodApp

อัปเดต 26 เมษายน 2560 แก้ไขวงจรและบอร์ดสำหรับใช้กับเครื่องวัด USB 4000ZC

ไม่จำเป็นต้องเข้ารหัส Android

คำแนะนำนี้แสดงให้คุณเห็นถึงวิธีการเข้าถึงการวัดที่มีความแม่นยำสูงหลากหลายจาก Arduino ของคุณ และส่งพวกเขาจากระยะไกลเพื่อบันทึกและวางแผน สำหรับการบันทึกข้อมูลความเร็วสูง (2,000 ตัวอย่าง/วินาที) โปรดดูคำแนะนำนี้ การบันทึกข้อมูลความเร็วสูงระยะไกลโดยใช้ Arduino/GL AR150/Android/pfodApp

ตัวแปลง AtoD ที่สร้างขึ้นใน Arduino มีความแม่นยำต่ำ โดยทั่วไป +/-10% และช่วงที่จำกัดมาก โดยทั่วไปจะใช้โวลต์ DC 0 ถึง 5V เท่านั้น ด้วยการใช้วงจรและคลังอย่างง่าย คุณสามารถป้อน Arduino ของคุณด้วยการวัดช่วงอัตโนมัติที่มีความแม่นยำสูงจากมัลติมิเตอร์ด้วยการเชื่อมต่อ RS232 แบบแยกทางแสง การมีการวัดที่พร้อมใช้งานสำหรับสเก็ตช์ของคุณช่วยให้คุณควบคุมเอาต์พุตตามค่าต่างๆ บทช่วยสอนนี้ยังครอบคลุมถึงการส่งการวัดจากระยะไกลผ่าน WiFi, Bluetooth, Bluetooth Low Energy หรือ SMS ไปยังมือถือ Android สำหรับการแสดงผล บันทึก และการวางแผนโดยใช้ pfodApp

คำแนะนำนี้ใช้บอร์ด Arduino Mega2560 5V ซึ่งคุณสามารถจับคู่กับแผงป้องกันการสื่อสารที่หลากหลาย Ethernet, WiFi, Bluetooth V2 (คลาสสิก), Bluetooth LE หรือ SMS ฮาร์ดแวร์อินเทอร์เฟซและไลบรารีที่นำเสนอในที่นี้สามารถใช้กับบอร์ดที่เข้ากันได้กับ Arduino 3.3V เช่นเดียวกับ Mega2560 คุณสามารถใช้บอร์ดอื่นๆ ได้หลากหลาย เช่น UNO with และ Ehternet shield, บอร์ดฐาน ESP8266 (แบบสแตนด์อโลน), บอร์ดที่มี Bluetooth Low Energy ในตัว เช่น Arduino 101 หรือบอร์ดที่เชื่อมต่อกับการสื่อสาร ระบบย่อยที่ใช้ SPI เช่น RedBear BLE shield และบอร์ด Bluefruit SPI ของ Adafrut pfodDesignerV2 รองรับการรวมบอร์ดเหล่านี้ทั้งหมดและจะสร้างรหัสสำหรับพวกเขา เงื่อนไขจำกัดคือ คุณต้องมี Hardware Serial ฟรีเพื่อเชื่อมต่อกับ Multimeter RS232 shield นี้

วงจรและรหัสที่นำเสนอนี้ใช้งานได้กับมัลติมิเตอร์หลายตัว รุ่นที่หาได้ง่ายและราคาไม่แพงคือ Tekpower TP4000ZC หรือที่เรียกว่า Digitek TD-4000ZC มัลติมิเตอร์ที่ทำงานร่วมกับวงจรและไลบรารีนี้ ได้แก่ Digitek DT-4000ZC, Digitech QM1538, Digitech QM1537, Digitek DT-9062, Digitek INO2513, Digitech QM1462, PeakTech 3330, Tenma 72-7745, Uni-Trend UT30A, Uni-Trend UT30E, Uni -Trend UT60E, โวลต์คราฟต์ VC 820, โวลต์คราฟท์ VC 840

ขั้นตอนที่ 1:

บทช่วยสอนนี้มีสองส่วน:

ส่วนแรกครอบคลุมอินเทอร์เฟซฮาร์ดแวร์ไปยังมัลติมิเตอร์และไลบรารีโค้ดโดยใช้ Arduino Mega หากคุณต้องการวัดค่าใน Arduino ของคุณเท่านั้น นี่คือทั้งหมดที่คุณต้องการ

ส่วนที่สองครอบคลุมการส่งการวัดไปยังมือถือ Android ระยะไกลสำหรับการแสดงผล การบันทึก และการลงจุด ในตัวอย่างนี้ เราจะใช้ตัวป้องกัน Bluetooth และสร้างภาพร่างพื้นฐานโดยใช้ pfodDesignerV2 แต่คุณยังสามารถสร้างรหัสสำหรับการเชื่อมต่อ WiFi, Ethernet, Bluetooth Low Energy และ SMS โดยใช้ pfodDesignerV2 จากนั้นเพิ่มไลบรารีมัลติมิเตอร์ลงในภาพร่างพื้นฐานเพื่อให้โค้ดสมบูรณ์ ไม่จำเป็นต้องใช้รหัส Android ในการแสดง บันทึก และพล็อตการอ่าน ทุกอย่างถูกควบคุมจากรหัส Arduino ของคุณ

โปรเจกต์นี้สามารถดูออนไลน์ได้ที่ www.pfod.com.au

สำหรับการแสดงผลมัลติมิเตอร์จากระยะไกลให้ดูคำแนะนำนี้ Arduino Data Glasses For My Multimeter โดย Alain

ขั้นตอนที่ 2: มัลติมิเตอร์

มัลติมิเตอร์
มัลติมิเตอร์

มัลติมิเตอร์ที่ใช้ในบทช่วยสอนนี้คือ Tekpower TP4000ZC ราคาไม่แพง (~US40) (หรือที่รู้จักในชื่อ Digitek DT-4000ZC) และ Digitech QM1538 รุ่นเก่าซึ่งไม่มีขายแล้ว เครื่องวัดทั้งสองนี้มีความเหมือนกันทางสายตาและใช้การเข้ารหัส RS232 เดียวกันของการวัด

ข้อมูลจำเพาะของ Tekpower TP4000ZC:-DC Voltage: 400mV/4/40/400V ±0.5%+5, 600V ±0.8%AC Voltage: 4/40/400V ±0.8%+5, 400mV/600V ±1.2%+ 5DC กระแสไฟฟ้า: 400/4000μA ±2.0%+5, 40/400mA ±1.5%+5, 4/10A ±2%+5AC กระแสไฟฟ้า: 400/4000μA ±2.5%+3, 40/400mA ±2%+5, 4 /10A ±2.5%+5 ความต้านทาน: 400Ω/4/40/400kΩ/4MΩ ±1%+5, 40MΩ ±2%+5 ความจุ: 40nF ±3.5%+10, 400nF/4/40μF ±3%+5, 100μF ± 3.5%+5ความถี่: 10Hz-10MHz ±0.1%+5รอบการทำงาน: 0.1%-99.9% ±2.5%+5อุณหภูมิ: 0oC - +40oC ±3oC, -50oC - +200oC±0.75% ±3oC, +200oC - +750oC ± 1.5% ±3oC, ความละเอียด 0.1oC ผ่านโพรบเทอร์โมคัปเปิลที่ให้มา

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

ขั้นตอนที่ 3: ฮาร์ดแวร์อินเทอร์เฟซ RS232

ฮาร์ดแวร์อินเทอร์เฟซ RS232
ฮาร์ดแวร์อินเทอร์เฟซ RS232
ฮาร์ดแวร์อินเทอร์เฟซ RS232
ฮาร์ดแวร์อินเทอร์เฟซ RS232
ฮาร์ดแวร์อินเทอร์เฟซ RS232
ฮาร์ดแวร์อินเทอร์เฟซ RS232

มีสองอินเทอร์เฟซ มิเตอร์ Digitek DT-4000ZC และ Tekpower TP40000ZC ที่ใหม่กว่ามาพร้อมกับสาย USB ในขณะที่ Digitek QM1538 รุ่นเก่ามีสายเชื่อมต่อ RS232 9pin D วงจรด้านบน (เวอร์ชัน pdf) แสดงวิธีเชื่อมต่อ opto coupler แบบมัลติมิเตอร์เพื่อขับเคลื่อนพินอนุกรม Arduino RX หมายเหตุ: วงจรนี้ได้รับการอัปเดตเพื่อเพิ่มตัวต้านทานป้องกันอีกตัว R2 สำหรับมิเตอร์ Digitek DT-4000ZC และ Tekpower TP40000ZC ตัวต้านทานนี้ไม่รวมอยู่ในบอร์ดตัวเชื่อมต่อ 9pin D ที่แสดงด้านบน

Digitek DT-4000ZC และ Tekpower TP40000ZC

สำหรับ Digitek DT-4000ZC และ Tekpower TP40000ZC คุณต้องมีสายสัญญาณเสียงขนาด 3.5 มม. ตัวผู้ต่อตัวผู้ สเตอริโอหรือโมโนจะทำ และซ็อกเก็ต 3.5 มม.

ดิจิเทค QM1538

สำหรับ Digitek QM1538 รุ่นเก่า คุณต้องมีซ็อกเก็ต 9 พิน D คอนเน็กเตอร์ 9 พิน D มีพินออฟเซ็ตที่จะไม่เสียบเข้ากับชิลด์ต้นแบบ เพียงตัดแถวที่มี 4 พินออก คุณก็จะสามารถบัดกรีขั้วต่อเข้ากับบอร์ดได้ เนื่องจากวงจรจะใช้พินในแถวที่สองที่มี 5 พินเท่านั้น ขายึดที่งอเพื่อให้คอนเนคเตอร์วางราบและยึดคอนเนคเตอร์เข้ากับชิลด์ต้นแบบโดยใช้กาวอีพ็อกซี่ 2 ส่วน (“อาราลไดท์”) เลย์เอาต์พินคอนเน็กเตอร์ที่แสดงด้านบนมาจากไซต์นี้ ตัวต้านทาน 10K ที่ติดตั้งอยู่ภายในขั้วต่อของสาย RS232 ที่ให้มา (เชื่อมต่อระหว่างพิน 2 และ 3) ไม่จำเป็นสำหรับโครงการนี้

การเชื่อมต่อสัญญาณเข้ากับขา Arduino RX

วงจรนี้จะใช้ได้กับบอร์ด Arduino ทั้ง 5V และ 3.3V ที่นี่เราใช้ Arduino Mega2560 (5V) และติดตั้งวงจรบนตัวป้องกันต้นแบบดังที่แสดงด้านบน

ใช้สายจูงบินเพื่อเชื่อมต่อ TP1 บนชิลด์กับ Serial1 RX, พิน D19 บน Mega2560

หมายเหตุเกี่ยวกับ Software Serial: เริ่มแรก Shield นี้ถูกจับคู่กับ UNO โดยใช้ Software Serial บนพิน 10, 11 อย่างไรก็ตาม เมื่อจับคู่กับ Bluetooth Shield บน Serial ที่ 9600 baud บางไบต์ที่ได้รับก็หายไป การย้าย RS232 ไปยังการเชื่อมต่อ Hardware Serial ช่วยแก้ปัญหานี้ได้ ดังนั้น สำหรับการแสดงและบันทึกจากระยะไกลที่เชื่อถือได้ หากคุณใช้แผงป้องกันการสื่อสารที่เชื่อมต่อผ่านซีเรียล คุณต้องมีบอร์ดที่มี Hardware Serials ตั้งแต่สองตัวขึ้นไป เช่น Mega2560 ทางเลือกอื่น ได้แก่ UNO ที่มีและ Ehternet shield, บอร์ดฐาน ESP8266 (แบบสแตนด์อโลน), บอร์ดที่มี Bluetooth Low Energy ในตัว เช่น Anduino 101 หรือบอร์ดที่เชื่อมต่อกับระบบย่อยการสื่อสารโดยใช้ SPI เช่น RedBear BLE shield และ Adafrut's Bluefruit SPI กระดาน pfodDesignerV2 รองรับบอร์ดเหล่านี้ทั้งหมดและจะสร้างโค้ดสำหรับบอร์ดเหล่านี้

ขั้นตอนที่ 4: ไลบรารี PfodVC820MultimeterParser

Tekpower TP4000ZC และ mulimeter อื่น ๆ อีกจำนวนหนึ่งไม่ส่งการวัดผ่าน RS232 เป็นข้อความ ASCII แทนที่จะส่ง 14 ไบต์พร้อมชุดบิตขึ้นอยู่กับว่าส่วนใดของจอ LCD ที่ส่องสว่าง การเข้ารหัส 14 ไบต์อธิบายไว้ใน pdf นี้ ไลบรารี pfodVC820MeterParser.zip ถอดรหัสไบต์เหล่านี้เป็นสตริงข้อความและลอย (VC820 หมายถึงหนึ่งในเมตรที่ใช้การเข้ารหัสนี้) ดู QtDMM สำหรับซอฟต์แวร์คอมพิวเตอร์ Windows, Mac และ Linux ที่จัดการมัลติมิเตอร์ที่หลากหลาย

มีตัวอย่างน้อยที่สุดคือ MeterParserExample.ino ของการใช้ไลบรารี pfodVC820MeterParser เชื่อมต่อมิเตอร์กับการเชื่อมต่อแบบอนุกรม 2,400 บอด จากนั้นเรียกใช้ haveReading() แต่ละลูปเพื่อประมวลผลไบต์ haveReading() จะคืนค่าเป็นจริงเมื่อมีการแยกวิเคราะห์การอ่านที่สมบูรณ์ใหม่ จากนั้นคุณสามารถเรียก getAsFloat() เพื่อรับค่า (สเกล) เป็น float หรือ getAtStr() เพื่อรับค่าที่อ่านได้ด้วยการปรับขนาดสำหรับการพิมพ์และการบันทึก มีวิธีอื่นในการเข้าถึงประเภทของการวัด, getTypeAsStr() และ getTypeAsUnicode() รวมถึงวิธียูทิลิตี้อื่นๆ

#include "pfodVC820MeterParser.h" pfodVC820MeterParser เมตร; // เป็นโมฆะการตั้งค่า () { Serial.begin (74880); Serial1.begin(2400); meter.connect(&Serial1); }การอ่านแบบลอยตัว; วงเป็นโมฆะ () { ถ้า (meter.haveReading ()) { การอ่าน = meter.getAsFloat (); // ใช้สำหรับการคำนวณ Arduino Serial.print("การอ่านด้วยหน่วย: "); Serial.print(meter.getDigits()); Serial.print(meter.getScalingAsStr()); Serial.print(meter.getTypeAsStr()); Serial.print(F(" = เป็น float พิมพ์ (6 หลัก):")); Serial.println (การอ่าน, 6); Serial.println("เวลา (วินาที) และการอ่านเป็นสตริงสำหรับการบันทึก"); Serial.print(((ลอย)มิลลิวินาที())/1000.0); Serial.print(", วินาที, "); Serial.print(meter.getAsStr()); Serial.print(','); Serial.println(meter.getTypeAsStr()); } }

เมื่อตั้งค่ามิเตอร์ไว้ที่ Deg C และใช้โพรบเทอร์โมคัปเปิล ภาพร่างตัวอย่างจะให้เอาต์พุตนี้บนจอภาพอนุกรม Arduino IDE

การอ่านด้วยหน่วย: 25.7C = ตามที่พิมพ์แบบลอยตัว (6 หลัก): 25.70000 เวลา (วินาที) และการอ่านเป็นสตริงสำหรับการบันทึก 2.40, วินาที, 25.7, C

ขั้นตอนที่ 5: ส่วนที่ 2 – การแสดงผลระยะไกล การบันทึก และการลงจุด

บทช่วยสอนนี้ครอบคลุมวิธีการแสดง บันทึก และพล็อตการอ่านมิเตอร์จากระยะไกลบนมือถือ Android ของคุณ pfodApp ใช้เพื่อจัดการการแสดงผล การบันทึก และการวางแผนบนมือถือ Android ของคุณ ไม่จำเป็นต้องมีการเขียนโปรแกรม Android การแสดงผล บันทึก และการวางแผนทั้งหมดจะถูกควบคุมโดย Arduino Sketch ของคุณ แอพ pfodDesignerV2 ฟรีให้คุณออกแบบเมนูและแผนภูมิ Android แล้วสร้างร่าง Arduino สำหรับคุณ

pfodApp รองรับการเชื่อมต่อหลายประเภท ได้แก่ Ethernet, WiFi, Bluetooth V2 (คลาสสิค), Bluetooth LE หรือ SMS บทช่วยสอนนี้ใช้ Arduino 101 (บลูทูธพลังงานต่ำ) สำหรับการบันทึกข้อมูลและการวางแผน รองรับบอร์ด Bluetooth Low Energy อื่นๆ ด้วย บทช่วยสอนนี้ใช้ SMS เพื่อเชื่อมต่อกับ pfodApp คุณสามารถใช้ pfodDesignerV2 เพื่อเพิ่มการบันทึกข้อมูลและการสร้างแผนภูมิให้กับตัวอย่าง SMS นั้น pfodDesignerV2 ยังมีตัวเลือกในการสร้างโค้ด Arduino ให้กับโล่ Bluetooth V2 (คลาสสิก) เพื่อเชื่อมต่อกับ pfodApp

สำหรับตัวอย่างนี้ เราจะใช้ Iteadstudio Bluetooth Shield V2.2 ที่เชื่อมต่อกับ Arduino Mega2560 ผ่านการเชื่อมต่อแบบอนุกรม 9600baud การใช้แอป pfodDesignerV2 ฟรี เราตั้งค่าเมนูง่ายๆ ที่มีป้ายกำกับแสดงการอ่านมิเตอร์และปุ่มเดียวสำหรับเปิดแผนภูมิ หน้านี้มีบทช่วยสอน pfodDesignerV2 จำนวนหนึ่ง เมื่อเรามีแบบร่างพื้นฐานแล้ว เราจะแก้ไขมันเพื่อเพิ่มตัวแยกวิเคราะห์มิเตอร์ และส่งการอ่านมิเตอร์และข้อมูลสำหรับการบันทึกและการสร้างแผนภูมิ

ออกแบบเมนู

ในส่วนนี้ เราจะออกแบบเมนู Android/pfodApp ที่จะแสดงการอ่านมิเตอร์และปุ่มสำหรับเปิดแผนภูมิค่าที่อ่านได้ การอ่านจะถูกบันทึกลงในไฟล์บนมือถือ Android

ขั้นตอนที่ 6: การเพิ่มป้ายกำกับ

การเพิ่มฉลาก
การเพิ่มฉลาก
การเพิ่มฉลาก
การเพิ่มฉลาก
การเพิ่มฉลาก
การเพิ่มฉลาก

ติดตั้ง pfodDesignerV2 ฟรีแล้วเริ่มเมนูใหม่

เป้าหมายเริ่มต้นคือ Serial ที่ 9600baud ซึ่งเป็นสิ่งจำเป็นสำหรับ Iteadstudio Bluetooth Shield V2.2 หากคุณกำลังเชื่อมต่อโดยใช้อุปกรณ์ Bluetooth Low Energy หรือ Wifi หรือ SMS ให้คลิกที่ Target เพื่อเปลี่ยนการเลือก

หากต้องการเพิ่มป้ายกำกับเพื่อแสดงการอ่านมิเตอร์ ให้คลิกที่เพิ่มรายการเมนู แล้วเลือกเลื่อนลงเพื่อเลือกป้ายกำกับ

เลือกขนาดตัวอักษรและสีที่เหมาะสม ปล่อยให้ข้อความเป็นป้ายกำกับเพราะเราจะแก้ไขโค้ดที่สร้างขึ้นเพื่อแทนที่สิ่งนี้ด้วยการวัดมิเตอร์ในภายหลัง ที่นี่เราได้กำหนดขนาดตัวอักษรเป็น +7 สีตัวอักษรเป็นสีแดง และพื้นหลังเป็นสีเงิน

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

ขั้นตอนที่ 7: การเพิ่มปุ่มแผนภูมิ

การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ
การเพิ่มปุ่มแผนภูมิ

คลิกที่เพิ่มรายการเมนูอีกครั้งเพื่อเพิ่มปุ่มแผนภูมิ

แก้ไขข้อความของปุ่มแผนภูมิให้เหมาะสม เช่น เพียง "แผนภูมิ" แล้วเลือกขนาดและสีแบบอักษร

จากนั้นคลิกที่ปุ่ม "แผนภูมิ" เพื่อเปิดหน้าจอแก้ไขพล็อต จะมีเพียงพล็อตเดียวเท่านั้น ให้คลิกปุ่มแก้ไขแปลง 2 และแก้ไขแปลง 3 แล้วเลื่อนลงและคลิกที่ซ่อนพล็อตสำหรับแต่ละส่วน

แก้ไขป้ายชื่อแผนภูมิให้เหมาะสม เช่น “มัลติมิเตอร์” ไม่จำเป็นต้องเปลี่ยนการตั้งค่าพล็อตอื่นๆ เนื่องจากเราจะแก้ไขภาพร่างเพื่อส่งป้ายกำกับแกน y ที่แตกต่างกันไปขึ้นอยู่กับการตั้งค่ามัลติมิเตอร์

สุดท้าย ให้กลับไปที่ Editing Menu_1 และ Edit Prompt ซึ่งจะกำหนดข้อความที่ด้านล่างของเมนูและสีพื้นหลังของเมนูโดยรวม ที่นี่เราได้ตั้งค่าพรอมต์เป็น "Remote Multimeter" ด้วยขนาดตัวอักษร +3 และสีพื้นหลัง Silver

ตอนนี้คุณสามารถกลับไปที่ Editing Menu_1 แล้วคลิก Preview Menu เพื่อดูตัวอย่างการออกแบบเมนู

หากคุณไม่ชอบการออกแบบ คุณสามารถเปลี่ยนได้ก่อนที่จะสร้างโค้ด หากคุณต้องการเว้นวรรคออกจากปุ่ม ป้ายกำกับ คุณสามารถเพิ่มป้ายเปล่าตามที่อธิบายไว้ที่นี่ การเพิ่มแผนภูมิและข้อมูลการบันทึกเกี่ยวกับวิธีการแสดง/พล็อตข้อมูล Arduino บน Android เป็นอีกบทช่วยสอนเกี่ยวกับ pfodDesignerV2/pfodApp การบันทึกข้อมูลและการสร้างแผนภูมิ

ขั้นตอนที่ 8: การสร้าง Arduino Sketch

การสร้าง Arduino Sketch
การสร้าง Arduino Sketch
การสร้าง Arduino Sketch
การสร้าง Arduino Sketch

ในการสร้างโค้ด Arduino ที่จะแสดงเมนูนี้ใน pfodApp ให้กลับไปที่หน้าจอ Editing Menu_1 แล้วเลื่อนลงมาและคลิกปุ่ม Generate Code

คลิกปุ่ม "เขียนโค้ดไปยังไฟล์" เพื่อส่งออกภาพร่าง Arduino ไปยังไฟล์ /pfodAppRawData/pfodDesignerV2.txt บนมือถือของคุณ จากนั้นออกจาก pfodDesignerV2 ถ่ายโอนไฟล์ pfodDesignerV2.txt ไปยังพีซีของคุณโดยใช้การเชื่อมต่อ USB หรือแอปถ่ายโอนไฟล์ เช่น wifi file transfer pro สำเนาของร่างที่สร้างขึ้นอยู่ที่นี่ pfodDesignerV2_meter.txt

โหลดภาพสเก็ตช์ลงใน Arduino IDE ของคุณและตั้งโปรแกรมบอร์ด Uno (หรือ Mega) ของคุณ จากนั้นเพิ่ม Iteadstudio Bluetooth Shield V2.2 ติดตั้ง pfodApp บนมือถือ Android ของคุณและสร้างการเชื่อมต่อ Bluetooth ใหม่ที่มีชื่อ เช่น Multimeter ดู pfodAppForAndroidGettingStarted.pdf สำหรับวิธีสร้างการเชื่อมต่อใหม่ จากนั้นเมื่อคุณใช้ pfodApp เพื่อเปิดการเชื่อมต่อมัลติมิเตอร์ คุณจะเห็นเมนูที่คุณออกแบบไว้

การเปิดแผนภูมิไม่แสดงสิ่งที่น่าสนใจเนื่องจากเราไม่ได้เพิ่มฮาร์ดแวร์/ซอฟต์แวร์ของมัลติมิเตอร์

ขั้นตอนที่ 9: การเพิ่มมัลติมิเตอร์

การเพิ่มมัลติมิเตอร์
การเพิ่มมัลติมิเตอร์
การเพิ่มมัลติมิเตอร์
การเพิ่มมัลติมิเตอร์
การเพิ่มมัลติมิเตอร์
การเพิ่มมัลติมิเตอร์

เราจะแก้ไขภาพร่างที่สร้างขึ้นเพื่อเพิ่มตัวแยกวิเคราะห์มัลติมิเตอร์และส่งข้อมูลไปยังมือถือ Android ของคุณ ร่างที่แก้ไขแล้วทั้งหมดอยู่ที่นี่ pfod_meter.ino

การปรับเปลี่ยนเหล่านี้เพิ่มตัวแยกวิเคราะห์มัลติมิเตอร์และตัวจับเวลา 5 วินาที หากไม่มีการอ่านที่ถูกต้องในขณะนั้น แบบร่างจะหยุดส่งข้อมูลและอัปเดตการแสดงผล Android/pfodApp เป็น “- - - “เนื่องจากการเลือกมิเตอร์แบบแมนนวลเปลี่ยนไป ป้ายชื่อแผนภูมิจะได้รับการอัปเดต แต่คุณต้องออกจากแผนภูมิและเลือกใหม่เพื่อดูป้ายกำกับใหม่ ในทางกลับกัน การอ่านมิเตอร์จะอัปเดตโดยอัตโนมัติทุกวินาที ในที่สุด pfodApp จะจัดการ Unicode ตามค่าเริ่มต้น ดังนั้นเมื่อแสดงการอ่านมิเตอร์ จะใช้เมธอด getTypeAsUnicode() เพื่อส่งคืน Unicode สำหรับโอห์ม Ω และ degsC, ℃ สำหรับการแสดงมิเตอร์

ปุ่มแผนภูมิแสดงแผนภูมิที่อัปเดตของการอ่าน: -

ข้อมูลแผนภูมิในรูปแบบ CSV จะถูกบันทึกลงในไฟล์ไปยังอุปกรณ์เคลื่อนที่ Android ของคุณภายใต้ /pfodAppRawData/Mulitmeter.txt เพื่อโอนไปยังคอมพิวเตอร์ของคุณในภายหลัง และนำเข้าไปยังสเปรดชีตสำหรับการคำนวณและการสร้างแผนภูมิเพิ่มเติม

ขั้นตอนที่ 10: การปรับเปลี่ยนร่างในรายละเอียด

  1. ดาวน์โหลดไลบรารี pfodVC820MeterParser.zip จากนั้นเปิด Arduino IDE แล้วคลิกใน Sketch → รวมไลบรารี → เพิ่ม.zip เพื่อเพิ่มไลบรารีนี้ใน IDE ของคุณ
  2. เพิ่มไลบรารี pfodVC820MeterParser ลงในแบบร่าง คลิกที่ Sketch → รวมไลบรารี → pfodVC820MeterParser สิ่งนี้จะเพิ่มคำสั่งรวมที่ด้านบนของร่าง
  3. แก้ไข pfodParser_codeGenerated parser("V1"); ถึง pfodParser_codeGenerated parser(""); สิ่งนี้จะปิดใช้งานการแคชเมนูใน pfodApp ดังนั้นการเปลี่ยนแปลงเมนูของคุณจะปรากฏขึ้น คุณสามารถเปลี่ยนกลับเป็น "V3" เมื่อคุณทำการเปลี่ยนแปลงทั้งหมดเพื่อเปิดใช้งานการแคชเมนูอีกครั้ง
  4. เพิ่มบรรทัดเหล่านี้เพื่อสร้างวัตถุสำหรับซอฟต์แวร์ซีเรียลและมัลติมิเตอร์ pfodVC820MeterParser เมตร;
  5. ในตอนท้ายของ setup() ให้เพิ่ม Serial1.begin(2400); meter.connect(&Serial1);
  6. ลูปด้านบน () เพิ่ม validReadingTimer แบบยาวที่ไม่ได้ลงชื่อ = 0; const ยาวที่ไม่ได้ลงนาม VALID_READINGS_TIMEOUT = 5000; // 5secs bool haveValidReadings = true; // ตั้งค่าเป็นจริงเมื่อมีการอ่านที่ถูกต้อง int MeasuringType = meter. NO_READING; และที่ด้านบนของลูป () ให้เพิ่ม if (meter.haveReading()) { if (meter.isValid()) { validReadingTimer = millis(); haveValidReadings = จริง; } int newType = meter.getType(); if (measurementType != newType) { // ส่งออกชื่อ datalogging ใหม่ parser.print (F ("sec, ")); parser.println(meter.getTypeAsStr()); } MeasuringType = newType; } if ((มิลลิวินาที () - validReadingTimer) > VALID_READINGS_TIMEOUT) { haveValidReadings = false; // ไม่มีการอ่านใหม่ที่ถูกต้องใน 5 วินาทีที่แล้ว }
  7. ต่อไปในวงแทนที่ parser.print(F("{=Multimeter|time (secs)|Plot_1~~~||}")); ด้วย parser.print(F("{=Multimeter|time (secs)|Meter Reading~~~")); parser.print(meter.getTypeAsStr()); parser.print(F("||}"));
  8. ที่ด้านล่างของลูป () แทนที่ sendData(); ด้วย if (haveValidReadings) { sendData(); }
  9. ใน sendData() แทนที่ parser.print(', '); parser.print(((float)(plot_1_var-plot_1_varMin))) * plot_1_scaling + plot_1_varDisplayMin); ด้วย parser.print(', '); parser.print(meter.getAsStr);
  10. ใน sendMainMenu() แทนที่ parser.print(F("~Label")); ด้วย parser.print('~'); ถ้า (haveValidReadings) { parser.print (meter.getDigits ()); parser.print(meter.getScalingAsStr()); parser.print(meter.getTypeAsUnicode ()); } อื่น ๆ { parser.print(F("- - -")); }
  11. ใน sendMainMenuUpdate() เพิ่ม parser.print(F("|!A"));parser.print('~'); ถ้า (haveValidReadings) { parser.print (meter.getDigits ()); parser.print(meter.getScalingAsStr()); parser.print(meter.getTypeAsUnicode ()); } อื่น ๆ { parser.print(F("- - -")); } เพื่ออัปเดตการอ่านเมื่อใช้การแคชเมนู

บทสรุป

บทช่วยสอนนี้แสดงวิธีเชื่อมต่อมัลติมิเตอร์ราคาไม่แพงกับ Arduino Mega2560 ผ่าน RS232 รองรับบอร์ดอื่นๆ อีกมากมาย pfodVC820MeterParserlibrary แยกวิเคราะห์ข้อมูลมัลติมิเตอร์เป็นโฟลตสำหรับการคำนวณ Arduino และสตริงสำหรับการแสดงผลและการบันทึก pfodDesignerV2 ใช้เพื่อสร้างภาพร่างพื้นฐานเพื่อแสดงการอ่านมัลติมิเตอร์และแสดงพล็อตของค่าในมือถือ Android โดยใช้ pfodApp ไม่จำเป็นต้องมีการเขียนโปรแกรม Androidในการสเก็ตช์พื้นฐานนี้ การจัดการมัลติมิเตอร์ถูกเพิ่มเข้าไป และสเก็ตช์ขั้นสุดท้ายจะแสดงการอ่านมัลติมิเตอร์ปัจจุบันบนมือถือ Android ของคุณ ตลอดจนการพล็อตการอ่านและการบันทึกไฟล์บนมือถือของคุณเพื่อใช้ในภายหลัง

แนะนำ: