Სარჩევი:

სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2: 6 ნაბიჯი
სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2: 6 ნაბიჯი

ვიდეო: სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2: 6 ნაბიჯი

ვიდეო: სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2: 6 ნაბიჯი
ვიდეო: როგორ მოვიქცეთ, თუ გვტკივა თავი, გვაქვს სურდო, ყელის ტკივილი და ტემპერატურა? 2024, ივლისი
Anonim
სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2
სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2
სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2
სიმაღლე, წნევა და ტემპერატურა ჟოლოს პი გამოყენებით MPL3115A2

Საინტერესოდ ჟღერს. სავსებით შესაძლებელია ამ დროს, როდესაც ჩვენ ყველანი IoT თაობაში შევდივართ. როგორც ელექტრონიკის მომაბეზრებელი, ჩვენ ვთამაშობდით Raspberry Pi– სთან და გადავწყვიტეთ, რომ შემექმნა საინტერესო პროექტები ამ ცოდნის გამოყენებით. ამ პროექტში ჩვენ გავზომოთ სიმაღლე, ჰაერის წნევა, ტემპერატურა ჟოლოს პიის გამოყენებით. ასე რომ, აქ მიდის დოკუმენტაცია (ყოველთვის იცვლება და ფართოვდება). ჩვენ გირჩევთ დაიწყოთ ინსტრუქციის დაცვით და დააკოპირეთ კოდი. მოგვიანებით შეგიძლიათ ექსპერიმენტი ჩაატაროთ. მოდით დავიწყოთ.

ნაბიჯი 1: ჩვენ გვჭირდება აღჭურვილობა

აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება
აუცილებელი აღჭურვილობა ჩვენ გვჭირდება

1. ჟოლო პი

პირველი ნაბიჯი იყო ჟოლოს დაფის მოპოვება. ჩვენ შევიძინეთ ჩვენი და თქვენც შეგიძლიათ. გაკვეთილებიდან დავიწყეთ სწავლა, ჩვენ გავიგეთ სკრიპტირებისა და კავშირის კონცეფციები და ვისწავლეთ შემდეგ. ეს პატარა გენიოსი საერთოა მოყვარულთათვის, მასწავლებლებისთვის და ინოვაციური გარემოს შესაქმნელად.

2. I²C ფარი ჟოლოს პიისთვის

INPI2 (I2C ადაპტერი) უზრუნველყოფს Raspberry Pi 2/3 და I²C პორტს მრავალჯერადი I2C მოწყობილობებისთვის გამოსაყენებლად. ის ხელმისაწვდომია Dcube Store– ში

3. ალტიმეტრი, წნევისა და ტემპერატურის სენსორი, MPL3115A2

MPL3115A2 არის MEMS წნევის სენსორი I²C ინტერფეისით, რომელიც იძლევა წნევის/სიმაღლისა და ტემპერატურის მონაცემებს. ეს სენსორი იყენებს I²C პროტოკოლს კომუნიკაციისთვის. ჩვენ შევიძინეთ ეს სენსორი Dcube Store– დან

4. დამაკავშირებელი კაბელი

ჩვენ გვქონდა I2C დამაკავშირებელი კაბელი Dcube Store– ში

5. მიკრო USB კაბელი

მიკრო USB კაბელი ელექტრომომარაგება იდეალური არჩევანია Raspberry Pi- ს კვებისათვის.

6 ინტერნეტის ხელმისაწვდომობის გაზრდა - Ethernet კაბელი/WiFi ადაპტერი

ამ ეპოქაში, ყველაფერზე წვდომის მისაღწევად საჭიროა ინტერნეტ კავშირი (თითქმის ისე, როგორც არსებობს ხაზგარეშე ცხოვრებაც). ჩვენ ვიღებთ რჩევას LAN კაბელის ან უსადენო ნანო USB ადაპტერის (WiFi) ინტერნეტის შესაქმნელად, რათა ჩვენ შეგვიძლია გამოვიყენოთ ჩვენი Rasp Pi მარტივად და უპრობლემოდ.

7. HDMI კაბელი (სურვილისამებრ, თქვენი არჩევანი)

ცოტა სახიფათოა. თქვენ გექნებათ ძალაუფლება მიამაგროთ სხვა მონიტორი იმ შემთხვევაში, თუკი თქვენ გინდათ, ან ეს ძალიან ეფექტურია თქვენთვის, უსათაურო Pi კავშირის დამყარებით თქვენს კომპიუტერთან/ლეპტოპთან.

ნაბიჯი 2: აპარატურის კავშირები, რათა დააკავშიროთ წრე

აპარატურის კავშირები, რათა შეაერთოს წრე
აპარატურის კავშირები, რათა შეაერთოს წრე
აპარატურის კავშირები, რათა შეაერთოს წრე
აპარატურის კავშირები, რათა შეაერთოს წრე

გააკეთეთ წრე სქემატურად ნაჩვენები. ზოგადად, კავშირები ძალიან მარტივია. მიჰყევით ინსტრუქციას და სურათებს და არანაირი პრობლემა არ შეგექმნებათ.

დაგეგმვისას ჩვენ განვიხილეთ ტექნიკა და კოდირება, ასევე ელექტრონიკის საფუძვლები. ჩვენ გვინდოდა შევადგინოთ მარტივი ელექტრონიკის სქემა ამ პროექტისათვის. დიაგრამაზე შეგიძლიათ შეამჩნიოთ სხვადასხვა ნაწილები, სიმძლავრის კომპონენტები და I²C სენსორი I followingC საკომუნიკაციო პროტოკოლების შემდეგ. ვიმედოვნებთ, ეს ასახავს რამდენად მარტივი ელექტრონიკაა ამ პროექტისთვის.

Raspberry Pi და I2C Shield კავშირი

პირველ რიგში აიღეთ Raspberry Pi და განათავსეთ I²C Shield მასზე. ნაზად დააჭირეთ ფარს (იხილეთ სურათი).

სენსორისა და ჟოლოს Pi კავშირი

აიღეთ სენსორი და შეაერთეთ I²C კაბელი მასთან. დარწმუნდით, რომ I²C გამომავალი ყოველთვის უკავშირდება I²C შესასვლელს. იგივე უნდა მოჰყვეს Raspberry Pi- ს, რომელზეც დამონტაჟებულია I²C ფარი. ჩვენ გვაქვს I²C Shield და I²C დამაკავშირებელი კაბელები ჩვენს მხარეს, როგორც ძალიან დიდი უპირატესობა, რადგან ჩვენ მხოლოდ დანამატისა და თამაშის ვარიანტს ვტოვებთ. აღარ არის ქინძისთავები და გაყვანილობის პრობლემა და, შესაბამისად, დაბნეულობა გაქრა. რა შვებაა, უბრალოდ წარმოიდგინე თავი მავთულხლართების ქსელში და მასში მოხვედრა. უბრალოდ მარტივი პროცესი, რომელიც ჩვენ აღვნიშნეთ.

შენიშვნა: ყავისფერი მავთული ყოველთვის უნდა დაიცვას Ground (GND) კავშირი ერთი მოწყობილობის გამომავალსა და სხვა მოწყობილობის შეყვანას შორის

ინტერნეტთან დაკავშირება სასიცოცხლოდ მნიშვნელოვანია

თქვენ ნამდვილად გაქვთ არჩევანი აქ. შეგიძლიათ დაუკავშიროთ ჟოლოს Pi LAN კაბელით ან უკაბელო Nano USB ადაპტერი WiFi დაკავშირებადობისთვის. ყოველ შემთხვევაში, მან შეასრულა მთავარი მიზანი, ეს არის ინტერნეტთან დაკავშირება.

ჩართვა ჩართვა

შეაერთეთ მიკრო USB კაბელი Raspberry Pi- ს კვების ბლოკში. აანთეთ და კარგია წასვლა.

ეკრანთან კავშირი

ჩვენ შეგვიძლია HDMI კაბელი დავუკავშიროთ ახალ მონიტორს, ან შეგვიძლია გავაკეთოთ ჩვენი უსათაურო Pi, რომელიც არის შემოქმედებითი და ეკონომიური დისტანციური წვდომის გამოყენებით, როგორიცაა SSH/PuTTY. (მე ვიცი, რომ ჩვენ არ ვართ დაფინანსებული, როგორც საიდუმლო ორგანიზაცია)

ნაბიჯი 3: Raspberry Pi პროგრამირება პითონში

Raspberry Pi პროგრამირება პითონში
Raspberry Pi პროგრამირება პითონში

პითონის კოდი Raspberry Pi და MPL3115A2 სენსორისთვის. ის ხელმისაწვდომია ჩვენს Github საცავში.

სანამ კოდზე გადახვალთ, დარწმუნდით, რომ წაიკითხეთ Readme ფაილში მოცემული ინსტრუქციები და ამის მიხედვით დააყენეთ თქვენი Raspberry Pi. ამას მხოლოდ ერთი წუთი დასჭირდება.

სიმაღლე გამოითვლება წნევისგან ქვემოთ მოცემული განტოლების გამოყენებით:

h = 44330.77 {1 - (p / p0) ^ 0.1902632} + OFF_H (Register value)

სადაც p0 = ზღვის დონის წნევა (101326 Pa) და h არის მეტრში. MPL3115A2 იყენებს ამ მნიშვნელობას, ვინაიდან ოფსეტური რეგისტრი განისაზღვრება, როგორც 2 პასკალი თითო LSB- ზე.

კოდი აშკარად თქვენს წინაშეა და ის უმარტივესი ფორმაა, რომლის წარმოდგენაც შეგიძლიათ და არ უნდა გქონდეთ პრობლემები.

თქვენ ასევე შეგიძლიათ დააკოპიროთ პითონის კოდი ამ სენსორისთვის აქედან.

# განაწილებულია თავისუფალი ნების ლიცენზიით.# გამოიყენეთ იგი როგორც გინდათ, მოგებით თუ უფასოდ, იმ პირობით, რომ იგი ჯდება ლიცენზიებთან დაკავშირებული სამუშაოების. # MPL3115A2 # ეს კოდი შექმნილია MPL3115A2_I2CS I2C მინი მოდულთან მუშაობისთვის, რომელიც ხელმისაწვდომია ControlEverything.com– დან. #

smbus- ის იმპორტი

იმპორტის დრო

# მიიღეთ I2C ავტობუსი

ავტობუსი = smbus. SMBus (1)

# MPL3115A2 მისამართი, 0x60 (96)

# აირჩიეთ საკონტროლო რეესტრი, 0x26 (38) # 0xB9 (185) აქტიური რეჟიმი, OSR = 128, Altimeter რეჟიმში bus.write_byte_data (0x60, 0x26, 0xB9) # MPL3115A2 მისამართი, 0x60 (96) # მონაცემების კონფიგურაციის რეგისტრაციის არჩევა, 0x13 (19) # 0x07 (07) მონაცემთა მზადყოფნის ღონისძიება ჩართულია სიმაღლეზე, წნევაზე, ტემპერატურაზე ავტობუსზე. ჩაწერეთ_ბიტა_დანაშაულები (0x60, 0x13, 0x07) # MPL3115A2 მისამართი, 0x60 (96) # აირჩიეთ საკონტროლო რეგისტრი, 0x26 (38) # 0xB9 (185) აქტიური რეჟიმი, OSR = 128, Altimeter mode bus.write_byte_data (0x60, 0x26, 0xB9)

დრო. ძილი (1)

# MPL3115A2 მისამართი, 0x60 (96)

# მონაცემების წაკითხვა უკან 0x00 (00), 6 ბაიტი # სტატუსი, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB data = bus.read_i2c_block_data (0x60, 0x00, 6)

# გადააკეთეთ მონაცემები 20 ბიტად

tHeight = ((მონაცემები [1] * 65536) + (მონაცემები [2] * 256) + (მონაცემები [3] & 0xF0)) / 16 temp = ((მონაცემები [4] * 256) + (მონაცემები [5] & 0xF0)) / 16 სიმაღლე = tHeight / 16.0 cTemp = temp / 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 ბაიტი # სტატუსი, pres MSB1, pres MSB, pres LSB მონაცემები = bus.read_i2c_block_data (0x60, 0x00, 4)

# გადააკეთეთ მონაცემები 20 ბიტად

pres = ((მონაცემები [1] * 65536) + (მონაცემები [2] * 256) + (მონაცემები [3] & 0xF0)) / 16 წნევა = (pres / 4.0) / 1000.0

# მონაცემების გამოტანა ეკრანზე

ბეჭდვა "წნევა: %.2f kPa" %წნევის ბეჭდვა "სიმაღლე: %.2f მ" %სიმაღლეზე დაბეჭდვა "ტემპერატურა ცელსიუსში: %.2f C" %cTemp ბეჭდვა "ტემპერატურა ფარენჰეიტში: %.2f F" %fTemp

ნაბიჯი 4: კოდის პრაქტიკულობა (ტესტირება)

კოდექსის პრაქტიკულობა (ტესტირება)
კოდექსის პრაქტიკულობა (ტესტირება)

ახლა გადმოწერეთ (ან git pull) კოდი და გახსენით იგი Raspberry Pi– ში.

გაუშვით ბრძანებები კოდის შედგენისა და ატვირთვისთვის ტერმინალში და ნახეთ გამომავალი მონიტორზე. რამდენიმე წამის შემდეგ, ის აჩვენებს ყველა პარამეტრს. მას შემდეგ რაც დარწმუნდებით, რომ ყველაფერი შეუფერხებლად მუშაობს, შეგიძლიათ ეს პროექტი უფრო დიდ პროექტად აქციოთ.

ნაბიჯი 5: პროგრამები და მახასიათებლები

MPL3115A2 Precision Altimeter I²C სენსორის საერთო გამოყენება არის ისეთ პროგრამებში, როგორიცაა რუქა (რუქის დახმარება, ნავიგაცია), მაგნიტური კომპასი, ან GPS (GPS მკვდარი გამოთვლა, GPS გაძლიერება საგანგებო სიტუაციებში), მაღალი სიზუსტის ალტიმეტრია, სმარტფონები/ტაბლეტები, პერსონალური ელექტრონიკა ალტიმეტრია და თანამგზავრები (ამინდის სადგურის აღჭურვილობა/პროგნოზირება).

მაგ. პროექტი Personal Electronics Altimeter– ის შესაქმნელად, რომელიც ზომავს სიმაღლეს, ჰაერის წნევას, ტემპერატურას Raspberry Pi– ს გამოყენებით. პერსონალური ელექტრონიკის ალტიმეტრი არის საკმაოდ სწრაფი მშენებლობის პროექტი. მხოლოდ რამდენიმე წამი დასჭირდება, თუ ყველა ნაწილი გაქვთ და არ იმპროვიზირებთ (რა თქმა უნდა შეგიძლიათ!). წნევის სიმაღლის მრიცხველი არის სიმაღლე, რომელიც გვხვდება უმეტეს თვითმფრინავებში და მოთხილამურეები მსგავსი მიზნებისთვის იყენებენ მაჯაზე დამონტაჟებულ ვერსიებს. მთამსვლელები და მთამსვლელები იყენებენ მაჯაზე დამონტაჟებულ ან ხელის სიმაღლეებს.

ნაბიჯი 6: დასკვნა

ვიმედოვნებთ, რომ ეს პროექტი შთააგონებს შემდგომ ექსპერიმენტებს. ეს I²C სენსორი წარმოუდგენლად მრავალმხრივი, იაფი და ხელმისაწვდომია. ვინაიდან ეს არის უკიდურესად ცვალებადი პროგრამა, არსებობს საინტერესო გზები, რომლითაც შეგიძლიათ გააფართოვოთ ეს პროექტი და გახადოთ ის კიდევ უკეთესი. მაგალითად, ალტიმეტრი არის არასავალდებულო ინსტრუმენტი გამავლობის მანქანებში ნავიგაციის დასახმარებლად. ზოგიერთი მაღალი ხარისხის ფუფუნების მანქანა, რომელიც არასოდეს იყო გამიზნული დაგებული გზების დატოვება, იყენებს ამ ტექნოლოგიას. თქვენი მოხერხებულობისთვის, ჩვენ გვაქვს საინტერესო ვიდეო გაკვეთილი YouTube– ზე, რომელმაც შესაძლოა ხელი შეუწყოს თქვენს ძიებას. ვიმედოვნებთ, რომ ეს პროექტი შთააგონებს შემდგომ ექსპერიმენტებს.

გირჩევთ: