Სარჩევი:

ამინდის სადგური ჟოლოს Pi გამოყენებით BME280 პითონში: 6 ნაბიჯი
ამინდის სადგური ჟოლოს Pi გამოყენებით BME280 პითონში: 6 ნაბიჯი

ვიდეო: ამინდის სადგური ჟოლოს Pi გამოყენებით BME280 პითონში: 6 ნაბიჯი

ვიდეო: ამინდის სადგური ჟოლოს Pi გამოყენებით BME280 პითონში: 6 ნაბიჯი
ვიდეო: Learn English through Stories Level 2: Scotland by Steve Flinders | History of Scotland 2024, ნოემბერი
Anonim
Image
Image
იმპერატიული აღჭურვილობის კანონპროექტი
იმპერატიული აღჭურვილობის კანონპროექტი

არის maith scéalaí an armancir (ამინდი კარგი მთხრობელია)

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

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

იმპერატიული აღჭურვილობის კანონპროექტი
იმპერატიული აღჭურვილობის კანონპროექტი
იმპერატიული აღჭურვილობის კანონპროექტი
იმპერატიული აღჭურვილობის კანონპროექტი
იმპერატიული აღჭურვილობის კანონპროექტი
იმპერატიული აღჭურვილობის კანონპროექტი

1. ჟოლო პი

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

2. I2C ფარი ჟოლოს პიისთვის

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

3. ციფრული ტენიანობის, წნევისა და ტემპერატურის სენსორი, BME280

BME280 არის ტენიანობის, წნევის და ტემპერატურის სენსორი, რომელსაც აქვს სწრაფი რეაგირების დრო და მაღალი საერთო სიზუსტე. ჩვენ შევიძინეთ ეს სენსორი DCUBE Store– დან.

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

ჩვენ გამოვიყენეთ I²C კაბელი, რომელიც ხელმისაწვდომია აქ DCUBE მაღაზიაში.

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

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

6 ინტერნეტის წვდომის ინტერპრეტაცია EthernetCable/WiFi ადაპტერის საშუალებით

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

7. HDMI კაბელი (ჩვენება და დაკავშირების კაბელი)

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

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

აპარატურის კავშირი წრედისთვის
აპარატურის კავშირი წრედისთვის
აპარატურის კავშირი წრედისთვის
აპარატურის კავშირი წრედისთვის

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

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

პირველი, აიღეთ Raspberry Pi და განათავსეთ I²C Shield მასზე. ნაზად დააჭირეთ ფარს და ჩვენ დავასრულებთ ამ ნაბიჯს ისევე მარტივად, როგორც ტორტი (იხ. სურათი).

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

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

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

მთავარია ინტერნეტთან დაკავშირება

აქ თქვენ გაქვთ ორი არჩევანი. ან შეგიძლიათ დააკავშიროთ Raspberry Pi ქსელს Ethernet კაბელის გამოყენებით ან გამოიყენოთ USB to WiFi ადაპტერი WIFI დაკავშირებადობისთვის. ნებისმიერ შემთხვევაში, სანამ ის ინტერნეტთან არის დაკავშირებული, თქვენ დაფარული ხართ.

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

შეაერთეთ მიკრო USB კაბელი Raspberry Pi- ს კვების ბლოკში. დარტყმა და voila! ჩვენი გუნდი არის ინფორმაცია.

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

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

ეს არის ეკონომიური მეთოდი, თუ არ გინდა ბევრი დახარჯო

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

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

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

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

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

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

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

smbus- ის იმპორტი

იმპორტის დრო

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

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

# BME280 მისამართი, 0x76 (118)

# წაიკითხეთ მონაცემები უკან 0x88 (136), 24 ბაიტი b1 = bus.read_i2c_block_data (0x76, 0x88, 24)

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

# ტემპერატურის კოეფიციენტები dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] თუ dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] თუ dig_T3> 32767: dig_T3 -= 65536

# წნევის კოეფიციენტები

dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] თუ dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] თუ dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] თუ dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14] თუ dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] თუ dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] თუ dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] თუ dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] თუ dig_P9> 32767: dig_P9 -= 65536

# BME280 მისამართი, 0x76 (118)

# მონაცემების წაკითხვა 0xA1 (161), 1 ბაიტი dig_H1 = bus.read_byte_data (0x76, 0xA1)

# BME280 მისამართი, 0x76 (118)

# მონაცემების დაბრუნება 0xE1– დან (225), 7 ბაიტი b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)

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

# ტენიანობის კოეფიციენტები dig_H2 = b1 [1] * 256 + b1 [0] თუ dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) თუ dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) თუ dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] თუ dig_H6> 127: dig_H6 -= 256

# BME280 მისამართი, 0x76 (118)

# აირჩიეთ საკონტროლო ტენიანობის რეგისტრი, 0xF2 (242) # 0x01 (01) ტენიანობის გადაჭარბება = 1 ავტობუსი. დაწერეთ_ბიტე_დანაშაულები (0x76, 0xF2, 0x01) # BME280 მისამართი, 0x76 (118) # აირჩიეთ საკონტროლო გაზომვის რეგისტრატორი, 0xF4 (244) # 0x27 (39) წნევისა და ტემპერატურის გადაჭარბების მაჩვენებელი = 1 # ნორმალური რეჟიმი.write_byte_data (0x76, 0xF5, 0xA0)

დრო. ძილი (0.5)

# BME280 მისამართი, 0x76 (118)

# მონაცემების უკან წაკითხვა 0xF7 (247), 8 ბაიტი # წნევა MSB, წნევა LSB, წნევა xLSB, ტემპერატურა MSB, ტემპერატურა LSB # ტემპერატურა xLSB, ტენიანობა MSB, ტენიანობა LSB მონაცემები = ავტობუსი. Read_i2c_block_data (0x76, 0xF7, 8)

# გადააკეთეთ წნევისა და ტემპერატურის მონაცემები 19 ბიტზე

adc_p = ((მონაცემები [0] * 65536) + (მონაცემები [1] * 256) + (მონაცემები [2] & 0xF0)) / 16 adc_t = ((მონაცემები [3] * 65536) + (მონაცემები [4] * 256) + (მონაცემები [5] & 0xF0)) / 16

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

adc_h = მონაცემი [6] * 256 + მონაცემი [7]

# ტემპერატურის კომპენსირებული გათვლები

var1 = ((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = (((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) /8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120.0 fTemp = cTemp * 1.8 + 32

# წნევის ოფსეტური გათვლები

var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = ((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 წნევა = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100

# ტენიანობის კომპენსირებული გამოთვლები

var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 *))) ტენიანობა = var_H * (1.0 - dig_H1 * var_H / 524288.0) თუ ტენიანობა> 100.0: ტენიანობა = 100.0 elif ტენიანობა <0.0: ტენიანობა = 0.0

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

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

ნაბიჯი 4: გაშვებული კოდი

გაშვებული კოდი
გაშვებული კოდი

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

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

ნაბიჯი 5: გამოყენება პრაქტიკულ სამყაროში

BME280 აღწევს მაღალ შესრულებას ყველა პროგრამაში, რომელიც მოითხოვს ტენიანობას და წნევის გაზომვას. ეს განვითარებადი პროგრამები არის კონტექსტის ცნობიერება, მაგ. კანის გამოვლენა, ოთახის შეცვლის გამოვლენა, ფიტნეს მონიტორინგი / კეთილდღეობა, სიმშრალის ან მაღალი ტემპერატურის გაფრთხილება, მოცულობისა და ჰაერის ნაკადის გაზომვა, სახლის ავტომატიზაციის კონტროლი, გათბობის კონტროლი, ვენტილაცია, კონდიცირება (HVAC), ნივთების ინტერნეტი (IoT), GPS- ის გაძლიერება (მაგ. დროთა განმავლობაში პირველადი გაუმჯობესება, მკვდარი გაანგარიშება, ფერდობის გამოვლენა), შიდა ნავიგაცია (იატაკის გამოვლენის შეცვლა, ლიფტის გამოვლენა), გარე ნავიგაცია, დასვენებისა და სპორტის პროგრამები, ამინდის პროგნოზი და ვერტიკალური სიჩქარის ჩვენება (აწევა/ჩაძირვა) სიჩქარე).

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

ვიმედოვნებთ, რომ ეს პროექტი შთააგონებს შემდგომ ექსპერიმენტებს. უფრო დახვეწილი ამინდის სადგურის დამზადება შეიძლება მოიცავდეს კიდევ რამდენიმე სენსორს, როგორიცაა წვიმის საზომი, სინათლის სენსორი, ანემომეტრი (ქარის სიჩქარე) და ა.შ. თქვენ შეგიძლიათ დაამატოთ ისინი და შეცვალოთ კოდი. ჩვენ გვაქვს ვიდეო გაკვეთილი YouTube– ზე, რომელსაც აქვს I functioningC სენსორის ძირითადი ფუნქციონირება Rasp Pi– ით. მართლაც გასაოცარია I²C კომუნიკაციების შედეგებისა და მუშაობის ნახვა. შეამოწმეთ ისიც. გაერთეთ შენობით და სწავლით! გთხოვთ შეგვატყობინოთ რას ფიქრობთ ამ სასწავლოზე. ჩვენ სიამოვნებით გავაკეთებთ რაიმე სახის გაუმჯობესებას საჭიროების შემთხვევაში.

გირჩევთ: