สารบัญ:

ใช้ Raspberry Pi วัดระดับความสูง ความดัน และอุณหภูมิด้วย MPL3115A2: 6 ขั้นตอน
ใช้ Raspberry Pi วัดระดับความสูง ความดัน และอุณหภูมิด้วย MPL3115A2: 6 ขั้นตอน

วีดีโอ: ใช้ Raspberry Pi วัดระดับความสูง ความดัน และอุณหภูมิด้วย MPL3115A2: 6 ขั้นตอน

วีดีโอ: ใช้ Raspberry Pi วัดระดับความสูง ความดัน และอุณหภูมิด้วย MPL3115A2: 6 ขั้นตอน
วีดีโอ: Flying our Homemade Altimeter on a Rocket for the First Time (Apogee Zephyr Jr.) 2024, กรกฎาคม
Anonim
Image
Image
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ

รู้ว่าคุณเป็นเจ้าของอะไรและรู้ว่าทำไมคุณถึงเป็นเจ้าของ

มันน่าสนใจ เรากำลังอยู่ในยุคของ Internet Automation ในขณะที่กำลังเข้าสู่แอปพลิเคชั่นใหม่ๆ มากมาย ในฐานะผู้ชื่นชอบคอมพิวเตอร์และอุปกรณ์อิเล็กทรอนิกส์ เราได้เรียนรู้มากมายกับ Raspberry Pi และตัดสินใจที่จะผสมผสานความสนใจของเรา โปรเจ็กต์นี้ใช้เวลาประมาณหนึ่งชั่วโมง หากคุณเพิ่งเริ่มใช้การเชื่อมต่อ I²C และการตั้งค่าซอฟต์แวร์ และเป็นวิธีที่ยอดเยี่ยมในการขยายขีดความสามารถของ MPL3115A2 ด้วย Raspberry Pi ใน Java

ขั้นตอนที่ 1: อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ

อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ

1. ราสเบอร์รี่ปี่

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

2. I2C Shield สำหรับ Raspberry Pi

INPI2 (อะแดปเตอร์ I2C) มีพอร์ต I²C ของ Raspberry Pi 2/3 สำหรับใช้กับอุปกรณ์ I2C หลายเครื่อง มีจำหน่ายแล้วที่ Dcube Store

3. เครื่องวัดระยะสูง เซ็นเซอร์ความดันและอุณหภูมิ MPL3115A2

MPL3115A2 เป็นเซ็นเซอร์ความดัน MEMS พร้อมอินเทอร์เฟซ I²C เพื่อให้ข้อมูลความดัน ระดับความสูง และอุณหภูมิ เซ็นเซอร์นี้ใช้โปรโตคอลI²2สำหรับการสื่อสาร เราซื้อเซ็นเซอร์นี้จาก Dcube Store

4. สายเคเบิลเชื่อมต่อ

เราใช้สายเชื่อมต่อ I²C ที่ Dcube Store

5. สายไมโคร USB

Raspberry Pi ใช้พลังงานจากแหล่งจ่ายไมโคร USB

6. การปรับปรุงการเข้าถึงอินเทอร์เน็ต - สายเคเบิลอีเธอร์เน็ต/โมดูล WiFi

สิ่งแรกที่คุณจะต้องทำคือเชื่อมต่อ Raspberry Pi กับอินเทอร์เน็ต คุณสามารถเชื่อมต่อโดยใช้สายอีเทอร์เน็ตหรืออแด็ปเตอร์ไร้สาย USB Nano WiFi

7. สาย HDMI (ตัวเลือกที่คุณเลือก)

คุณสามารถเชื่อมต่อ Raspberry Pi กับจอภาพโดยใช้สาย HDMI นอกจากนี้ คุณสามารถเข้าถึง Raspberry Pi จากระยะไกลได้โดยใช้ SSH/PuTTY

ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์เพื่อประกอบวงจร

การเชื่อมต่อฮาร์ดแวร์เพื่อประกอบวงจร
การเชื่อมต่อฮาร์ดแวร์เพื่อประกอบวงจร
การเชื่อมต่อฮาร์ดแวร์เพื่อประกอบวงจร
การเชื่อมต่อฮาร์ดแวร์เพื่อประกอบวงจร

ทำวงจรตามแผนผังที่แสดง โดยทั่วไปแล้วการเชื่อมต่อจะค่อนข้างง่าย ทำตามคำแนะนำและรูปภาพด้านบน แล้วคุณจะไม่มีปัญหา ขณะวางแผน เราได้พิจารณาฮาร์ดแวร์และการเข้ารหัส ตลอดจนพื้นฐานด้านอิเล็กทรอนิกส์ เราต้องการออกแบบแผนผังอิเล็กทรอนิกส์อย่างง่ายสำหรับโครงการนี้ ในแผนภาพ คุณจะสังเกตเห็นชิ้นส่วนต่างๆ ส่วนประกอบกำลัง และเซ็นเซอร์I²Cตามโปรโตคอลการสื่อสาร I²C หวังว่านี่จะแสดงให้เห็นว่าอุปกรณ์อิเล็กทรอนิกส์สำหรับโครงการนี้ง่ายเพียงใด

การเชื่อมต่อ Raspberry Pi และ I2C Shield

สำหรับสิ่งนี้ Raspberry Pi และวาง I²C Shield ไว้ กดโล่เบา ๆ (ดูรูป)

การเชื่อมต่อของเซนเซอร์และ Raspberry Pi

นำเซ็นเซอร์และต่อสาย I²C เข้ากับเซ็นเซอร์ ตรวจสอบให้แน่ใจว่าเอาต์พุตI²Cเชื่อมต่อกับอินพุตI²Cเสมอ ตามด้วย Raspberry Pi ที่ติดตั้งแผง I²C ไว้ด้านบน เรามี I²C Shield และสายเชื่อมต่อI²C ที่ด้านข้างของเรา ซึ่งเป็นข้อได้เปรียบที่ใหญ่มาก เนื่องจากเราเหลือตัวเลือกแบบพลักแอนด์เพลย์เท่านั้น ไม่มีปัญหาพินและสายไฟอีกต่อไป ความสับสนจึงหายไป รู้สึกโล่งใจเพียงใดเมื่อลองนึกภาพตัวเองในเว็บของสายไฟและเข้าสู่สิ่งนั้น ง่ายๆ แบบนี้!

หมายเหตุ: สายสีน้ำตาลควรเป็นไปตามการเชื่อมต่อกราวด์ (GND) ระหว่างเอาต์พุตของอุปกรณ์หนึ่งกับอินพุตของอุปกรณ์อื่นเสมอ

การเชื่อมต่ออินเทอร์เน็ตเป็นสิ่งสำคัญ

เพื่อให้โครงการของเราประสบความสำเร็จ เราจำเป็นต้องมีการเข้าถึงอินเทอร์เน็ตสำหรับ Raspberry Pi ของเรา ในนี้ คุณมีตัวเลือกต่างๆ เช่น การเชื่อมต่อสายเคเบิลอีเทอร์เน็ต (LAN) นอกจากนี้ยังเป็นอีกทางเลือกหนึ่ง แต่น่าประทับใจในการใช้อแด็ปเตอร์ WiFi

กำลังของวงจร

เสียบสาย Micro USB เข้ากับแจ็คไฟของ Raspberry Pi เปิดเครื่องแล้ว voila เราพร้อมแล้ว!

การเชื่อมต่อกับหน้าจอ

เราสามารถเชื่อมต่อสาย HDMI กับจอภาพหรือสร้างนวัตกรรมใหม่เล็กน้อยเพื่อสร้าง Pi แบบไม่มีหัว (โดยใช้ -SSH/PuTTY) ซึ่งช่วยลดค่าใช้จ่ายเพิ่มเติมเนื่องจากเราเป็นมือสมัครเล่น

เมื่อนิสัยเริ่มใช้เงิน เรียกว่างานอดิเรก

ขั้นตอนที่ 3: การเขียนโปรแกรม Raspberry Pi ใน Java

การเขียนโปรแกรม Raspberry Pi ใน Java
การเขียนโปรแกรม Raspberry Pi ใน Java

รหัส Java สำหรับเซ็นเซอร์ Raspberry Pi และ MPL3115A2 มีอยู่ในที่เก็บ Github ของเรา

ก่อนดำเนินการโค้ด โปรดอ่านคำแนะนำที่ให้ไว้ในไฟล์ Readme และตั้งค่า Raspberry Pi ตามนั้น จะใช้เวลาสักครู่ในการดำเนินการ ความสูงคำนวณจากความดันโดยใช้สมการด้านล่าง:

ชั่วโมง = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (ค่าลงทะเบียน)

โดยที่ p0 = ความดันระดับน้ำทะเล (101326 Pa) และ h เป็นเมตร MPL3115A2 ใช้ค่านี้เนื่องจาก offset register ถูกกำหนดเป็น 2 Pascals ต่อ LSB รหัสอยู่ตรงหน้าคุณอย่างชัดเจนและอยู่ในรูปแบบที่ง่ายที่สุดที่คุณสามารถจินตนาการได้และคุณไม่น่าจะมีปัญหา

คุณสามารถคัดลอกโค้ด Java ที่ใช้งานได้สำหรับเซ็นเซอร์นี้จากที่นี่ด้วย

// เผยแพร่โดยให้สิทธิ์ใช้งานตามเจตจำนงเสรี// ใช้แบบใดก็ได้ที่คุณต้องการ ไม่ว่าจะมีกำไรหรือให้เปล่า โดยให้เหมาะสมกับใบอนุญาตของงานที่เกี่ยวข้อง // MPL3115A2 // รหัสนี้ออกแบบมาเพื่อทำงานกับ MPL3115A2_I2CS I2C Mini Module ที่มีจำหน่ายจาก ControlEverything.com //

นำเข้า com.pi4j.io.i2c. I2CBus;

นำเข้า com.pi4j.io.i2c. I2CDevice; นำเข้า com.pi4j.io.i2c. I2CFactory; นำเข้า java.io. IOException;

คลาสสาธารณะ MPL3115A2

{ โมฆะคงที่สาธารณะหลัก (สตริง args ) พ่นข้อยกเว้น { // สร้างบัส I2C I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1); // รับอุปกรณ์ I2C ที่อยู่ MPL3115A2 I2C คือ 0x60 (96) อุปกรณ์ I2CDevice = Bus.getDevice(0x60); // เลือกการลงทะเบียนการควบคุม // โหมดแอ็คทีฟ, OSR = 128, อุปกรณ์โหมดเครื่องวัดระยะสูง.write(0x26, (ไบต์)0xB9); // เลือกการลงทะเบียนการกำหนดค่าข้อมูล // เปิดใช้งานเหตุการณ์พร้อมข้อมูลสำหรับระดับความสูง ความดัน อุณหภูมิ device.write(0x13, (ไบต์)0x07); // เลือกการลงทะเบียนการควบคุม // โหมดแอ็คทีฟ, OSR = 128, อุปกรณ์โหมดเครื่องวัดระยะสูง.write(0x26, (ไบต์)0xB9); เธรด. สลีป (1000);

// อ่านข้อมูล 6 ไบต์จากที่อยู่ 0x00(00)

// status, tHeight msb1, tHeight msb, tHeight lsb, msb ชั่วคราว, temp lsb byte data = ไบต์ใหม่[6]; อุปกรณ์อ่าน (0x00, ข้อมูล, 0, 6);

// แปลงข้อมูลเป็น 20 บิต

int tHeight = ((((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16); int temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16; ความสูงสองเท่า = ความสูง / 16.0; cTemp สองเท่า = (อุณหภูมิ / 16.0); fTemp สองเท่า = cTemp * 1.8 + 32;

// เลือกตัวควบคุมการลงทะเบียน

// โหมดแอคทีฟ, OSR = 128, อุปกรณ์โหมดบารอมิเตอร์.write(0x26, (ไบต์)0x39); เธรด. สลีป (1000); // อ่านข้อมูล 4 ไบต์จากที่อยู่ 0x00(00) // status, pres msb1, pres msb, pres lsb device.read(0x00, data, 0, 4);

// แปลงข้อมูลเป็น 20 บิต

int pres = (((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16; แรงดันสองเท่า = (กด / 4.0) / 1000.0; // ส่งออกข้อมูลไปยังหน้าจอ System.out.printf("Pressure: %.2f kPa %n", pressure); System.out.printf("Altitude: %.2f m %n", ระดับความสูง); System.out.printf("อุณหภูมิในเซลเซียส: %.2f C %n", cTemp); System.out.printf("อุณหภูมิเป็นฟาเรนไฮต์: %.2f F %n", fTemp); } }

ขั้นตอนที่ 4: การปฏิบัติจริงของรหัส (การทำงาน)

การปฏิบัติจริงของรหัส(การทำงาน)
การปฏิบัติจริงของรหัส(การทำงาน)

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

ขั้นตอนที่ 5: แอปพลิเคชันและคุณสมบัติ

การใช้งานทั่วไปของเซ็นเซอร์วัดความสูงที่แม่นยำของ MPL3115A2 นั้นอยู่ในแอปพลิเคชันต่างๆ เช่น แผนที่ (Map Assist, การนำทาง), เข็มทิศแม่เหล็ก หรือ GPS (GPS Dead Reckoning, GPS Enhancement For Emergency Services), เครื่องวัดระยะสูงความแม่นยำสูง, สมาร์ทโฟน/แท็บเล็ต, อุปกรณ์อิเล็กทรอนิกส์ Altimetry และ ดาวเทียม(อุปกรณ์สถานีอากาศ/พยากรณ์).

สำหรับเช่น เมื่อใช้เซ็นเซอร์นี้และ Rasp Pi คุณสามารถสร้าง Digital Visual Altimeter ซึ่งเป็นอุปกรณ์ที่สำคัญที่สุดในการดิ่งพสุธา ซึ่งสามารถวัดระดับความสูง ความกดอากาศ และอุณหภูมิได้ คุณสามารถเพิ่มผ้าก๊อซลมและเซ็นเซอร์อื่นๆ เพื่อให้น่าสนใจยิ่งขึ้น

ขั้นตอนที่ 6: บทสรุป

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

แนะนำ: