สารบัญ:
- ขั้นตอนที่ 1: อุปกรณ์ที่ขาดไม่ได้ที่เราต้องการ
- ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์เพื่อประกอบวงจร
- ขั้นตอนที่ 3: การเขียนโปรแกรม Raspberry Pi ใน Java
- ขั้นตอนที่ 4: การปฏิบัติจริงของรหัส (การทำงาน)
- ขั้นตอนที่ 5: แอปพลิเคชันและคุณสมบัติ
- ขั้นตอนที่ 6: บทสรุป
วีดีโอ: ใช้ Raspberry Pi วัดระดับความสูง ความดัน และอุณหภูมิด้วย MPL3115A2: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
รู้ว่าคุณเป็นเจ้าของอะไรและรู้ว่าทำไมคุณถึงเป็นเจ้าของ
มันน่าสนใจ เรากำลังอยู่ในยุคของ 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
รหัส 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 ที่สามารถช่วยให้คุณเข้าใจโครงการนี้มากขึ้น
แนะนำ:
การคำนวณความชื้น ความดัน และอุณหภูมิโดยใช้การเชื่อมต่อ BME280 และโฟตอน: 6 ขั้นตอน
การคำนวณความชื้น ความดัน และอุณหภูมิโดยใช้ BME280 และการเชื่อมต่อโฟตอน: เราพบโครงการต่างๆ ที่ต้องการการตรวจสอบอุณหภูมิ ความดัน และความชื้น ดังนั้นเราจึงตระหนักดีว่าพารามิเตอร์เหล่านี้มีบทบาทสำคัญในการประมาณประสิทธิภาพการทำงานของระบบที่สภาวะบรรยากาศที่แตกต่างกัน
ระดับความสูง ความดัน และอุณหภูมิโดยใช้ Raspberry Pi กับ MPL3115A2: 6 ขั้นตอน
ระดับความสูง ความดัน และอุณหภูมิโดยใช้ Raspberry Pi กับ MPL3115A2: ฟังดูน่าสนใจ เป็นไปได้ค่อนข้างมากในยุคนี้ที่เราทุกคนกำลังเข้าสู่ยุค IoT ในฐานะที่เป็นผู้คลั่งไคล้อุปกรณ์อิเล็กทรอนิกส์ เราได้เล่นกับ Raspberry Pi และตัดสินใจสร้างโปรเจ็กต์ที่น่าสนใจโดยใช้ความรู้นี้ ในโครงการนี้ เราจะ
Mars Rover ใช้ Raspberry Pi: 5 ขั้นตอน
Mars Rover ใช้ Raspberry Pi: เรียน Great Learner ทุกคน ฉันอยากรู้อยู่เสมอเกี่ยวกับ Mars Rover มีล้อ 6 ล้อที่สามารถไปบนพื้นผิวดาวอังคารและสำรวจสิ่งต่างๆ จากโลกได้ ฉันยังต้องการที่จะสำรวจสิ่งต่าง ๆ ด้วยการนั่งบนแล็ปท็อปของฉัน ดังนั้นตอนนี้ฉันคิดว่าถึงเวลาที่จะทำมันและ
ใช้ Arduino MKR Shields กับ Raspberry Pi: 8 ขั้นตอน
ใช้ Arduino MKR Shields กับ Raspberry Pi: PiMKRHAT ของเราคืออะแดปเตอร์ HAT เพื่อใช้บอร์ด Arduino MKR และชิลด์ร่วมกับ Raspberry Pi สามารถใช้ Arduino MKR Shields ที่แตกต่างกันผ่าน HAT ของเราเป็นส่วนขยายสำหรับ Raspberry Pi ฉันต้องการแสดงในโครงการเล็ก ๆ นี้ถึงวิธีการใช้ Ardu
ใช้ Raspberry Pi ประเมินความชื้นและอุณหภูมิด้วย SI7006: 6 ขั้นตอน
การใช้ Raspberry Pi ประเมินความชื้นและอุณหภูมิ ด้วย SI7006: ในฐานะที่เป็นผู้ชื่นชอบ Raspberry Pi เราจึงคิดถึงการทดลองที่น่าตื่นเต้นกว่านี้ ในแคมเปญนี้ เราจะทำการวัดอุณหภูมิและความชื้นที่จำเป็นต้องควบคุม โดยใช้ Raspberry Pi และ SI7006 เซ็นเซอร์ความชื้นและอุณหภูมิ