สารบัญ:

ระดับความสูง ความดัน และอุณหภูมิโดยใช้ 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
ระดับความสูง ความดัน และอุณหภูมิโดยใช้ Raspberry Pi พร้อม MPL3115A2
ระดับความสูง ความดัน และอุณหภูมิโดยใช้ Raspberry Pi พร้อม MPL3115A2
ระดับความสูง ความดัน และอุณหภูมิโดยใช้ Raspberry Pi พร้อม MPL3115A2
ระดับความสูง ความดัน และอุณหภูมิโดยใช้ Raspberry Pi พร้อม MPL3115A2

ฟังดูน่าสนใจ. เป็นไปได้ค่อนข้างมากในยุคนี้ที่เราทุกคนกำลังเข้าสู่ยุค IoT ในฐานะที่เป็นผู้คลั่งไคล้อุปกรณ์อิเล็กทรอนิกส์ เราได้เล่นกับ Raspberry Pi และตัดสินใจสร้างโปรเจ็กต์ที่น่าสนใจโดยใช้ความรู้นี้ ในโครงการนี้ เราจะทำการวัดความสูง ความกดอากาศ อุณหภูมิโดยใช้ Raspberry Pi ดังนั้นนี่คือเอกสาร (มีการแก้ไขและขยายเสมอ) เราขอแนะนำให้เริ่มต้นด้วยการทำตามคำแนะนำและคัดลอกโค้ด คุณสามารถทดลองได้ในภายหลัง มาเริ่มกันเลยดีกว่า

ขั้นตอนที่ 1: อุปกรณ์ที่จำเป็นที่เราต้องการ

อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ
อุปกรณ์จำเป็นที่เราต้องการ

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

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

2. I²C Shield สำหรับ Raspberry Pi

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

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

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

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

เรามีสายเชื่อมต่อ I2C ที่ Dcube Store

5. สายไมโคร USB

แหล่งจ่ายไฟสาย micro USB เป็นตัวเลือกที่เหมาะสำหรับการจ่ายไฟให้กับ Raspberry Pi

6. การเพิ่มประสิทธิภาพการเข้าถึงอินเทอร์เน็ต - สายเคเบิลอีเทอร์เน็ต/อแด็ปเตอร์ WiFi

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

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

มันค่อนข้างยุ่งยาก คุณสามารถมีพลังในการต่อจอภาพอื่นได้หากต้องการหรือคุ้มกับตัวคุณเองด้วยการเชื่อมต่อ Pi แบบไม่มีหัวกับพีซี/แล็ปท็อปของคุณ

ขั้นตอนที่ 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 หรืออะแดปเตอร์ Nano USB ไร้สายสำหรับการเชื่อมต่อ WiFi อย่างไรก็ตาม เป้าหมายหลักก็คือการเชื่อมต่ออินเทอร์เน็ต

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

เสียบสาย Micro USB เข้ากับแจ็คไฟของ Raspberry Pi สว่างขึ้นและเราดีไป

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

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

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

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

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

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

ความสูงคำนวณจากความดันโดยใช้สมการด้านล่าง:

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

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

รหัสอยู่ตรงหน้าคุณอย่างชัดเจนและอยู่ในรูปแบบที่ง่ายที่สุดที่คุณสามารถจินตนาการได้และคุณไม่น่าจะมีปัญหา

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

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

นำเข้า smbus

เวลานำเข้า

# รับรถบัส I2C

รถบัส = smbus. SMBus(1)

# MPL3115A2 ที่อยู่ 0x60(96)

# เลือกรีจิสเตอร์ควบคุม 0x26(38) # 0xB9(185) โหมดแอคทีฟ OSR = 128 โหมดเครื่องวัดระยะสูง bus.write_byte_data(0x60, 0x26, 0xB9) # ที่อยู่ MPL3115A2, 0x60(96) # เลือกการลงทะเบียนการกำหนดค่าข้อมูล, 0x13(19)) # 0x07(07) เหตุการณ์พร้อมข้อมูลเปิดใช้งานสำหรับความสูง ความดัน อุณหภูมิ bus.write_byte_data(0x60, 0x13, 0x07) # ที่อยู่ MPL3115A2, 0x60(96) # เลือกควบคุมการลงทะเบียน, 0x26(38) # 0xB9(185) โหมดใช้งาน, OSR = 128, โหมดเครื่องวัดระยะสูง bus.write_byte_data(0x60, 0x26, 0xB9)

เวลานอน(1)

# MPL3115A2 ที่อยู่ 0x60(96)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x00(00) 6 ไบต์ # status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data(0x60, 0x00, 6)

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

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

# MPL3115A2 ที่อยู่ 0x60(96)

# เลือกรีจิสเตอร์ควบคุม 0x26(38) # 0x39(57) โหมดแอคทีฟ OSR = 128 โหมดบารอมิเตอร์ bus.write_byte_data(0x60, 0x26, 0x39)

เวลานอน(1)

# MPL3115A2 ที่อยู่ 0x60(96)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x00(00) 4 ไบต์ # สถานะ กด MSB1 ก่อน MSB กด LSB data = bus.read_i2c_block_data(0x60, 0x00, 4)

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

pres = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16 pressure = (pres / 4.0) / 1000.0

# ส่งออกข้อมูลไปยังหน้าจอ

พิมพ์ "ความดัน: %.2f kPa" % ความดันพิมพ์ "ระดับความสูง: %.2f m" % ความสูง พิมพ์ "อุณหภูมิในเซลเซียส: %.2f C" %cTemp พิมพ์ "อุณหภูมิเป็นฟาเรนไฮต์: %.2f F" %fTemp

ขั้นตอนที่ 4: การใช้งานจริงของรหัส (การทดสอบ)

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

ตอนนี้ดาวน์โหลด (หรือ git pull) รหัสแล้วเปิดใน Raspberry Pi

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

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

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

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

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

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

แนะนำ: