Სარჩევი:
- ნაბიჯი 1: აუცილებელი აღჭურვილობის გადასახადი
- ნაბიჯი 2: აპარატურის კავშირი წრედისთვის
- ნაბიჯი 3: Raspberry Pi პროგრამირება პითონში
- ნაბიჯი 4: გაშვებული კოდი
- ნაბიჯი 5: გამოყენება პრაქტიკულ სამყაროში
- ნაბიჯი 6: დასკვნა
ვიდეო: ამინდის სადგური ჟოლოს Pi გამოყენებით BME280 პითონში: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
არის 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 და 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 კომუნიკაციების შედეგებისა და მუშაობის ნახვა. შეამოწმეთ ისიც. გაერთეთ შენობით და სწავლით! გთხოვთ შეგვატყობინოთ რას ფიქრობთ ამ სასწავლოზე. ჩვენ სიამოვნებით გავაკეთებთ რაიმე სახის გაუმჯობესებას საჭიროების შემთხვევაში.
გირჩევთ:
მინი ამინდის ამინდის სადგური Arduino– ს და ThingSpeak– ის გამოყენებით: 4 ნაბიჯი
მინი ამინდის ამინდის სადგური Arduino– ს და ThingSpeak– ის გამოყენებით: გამარჯობა ყველას. ამ ინსტრუქციაში, მე გაგიწევთ ნაბიჯებს პერსონალური მინი ამინდის სადგურის შესაქმნელად. ასევე, ჩვენ ვიყენებთ ThingSpeak API– ს, რომ ატვირთავს ჩვენი ამინდის მონაცემებს მათ სერვერებზე, წინააღმდეგ შემთხვევაში რა არის ამინდის სტატისტიკის მიზანი
პირადი ამინდის სადგური ჟოლოს Pi გამოყენებით BME280 ჯავაში: 6 ნაბიჯი
პერსონალური მეტეოროლოგიური სადგური ჟოლოს BME280– ით Java– ში: ცუდი ამინდი ყოველთვის უარესად გამოიყურება ფანჯრიდან. ჩვენ ყოველთვის დაინტერესებული ვიყავით ჩვენი ადგილობრივი ამინდის მონიტორინგით და რას ვხედავთ ფანჯრიდან. ჩვენ ასევე გვინდოდა უკეთესი კონტროლი ჩვენს გათბობასა და კონდიცირების სისტემაზე. პერსონალური ამინდის სადგურის მშენებლობა მნიშვნელოვანია
ოთახის ამინდის სადგური Arduino & BME280– ის გამოყენებით: 4 ნაბიჯი
ოთახის ამინდის სადგური Arduino & BME280– ის გამოყენებით: ადრე მე გავაზიარე მარტივი ამინდის სადგური, რომელიც აჩვენებდა ადგილობრივი ტერიტორიის ტემპერატურასა და ტენიანობას. პრობლემა ის იყო, რომ განახლებას დრო დასჭირდებოდა და მონაცემები არ იყო ზუსტი. ამ გაკვეთილში ჩვენ გავაკეთებთ შიდა ამინდის მონიტორს
ამინდის სადგური Wemos D1 Mini, BME280 და Sensate გამოყენებით: 6 ნაბიჯი
ამინდის სადგური Wemos D1 Mini, BME280 და Sensate .: წინა პოსტებში მე გავაზიარე სხვადასხვა მეთოდი ამინდის სადგურის ასაშენებლად. თუ თქვენ არ შეამოწმეთ, აქ არის ბმული. ამ ინსტრუქციურად მე ვაჩვენებ, თუ როგორ უნდა ავაშენოთ მარტივი ამინდის სადგური Wemos- ისა და IoT პლატფორმის გამოყენებით Sensate
Acurite 5 in 1 ამინდის სადგური Raspberry Pi და Weewx გამოყენებით (სხვა ამინდის სადგურები თავსებადია): 5 ნაბიჯი (სურათებით)
Acurite 5 in 1 ამინდის სადგური Raspberry Pi და Weewx– ის გამოყენებით (სხვა ამინდის სადგურები თავსებადია): როდესაც მე ვიყიდე Acurite 5 in 1 ამინდის სადგური, მინდოდა შემეძლოს ამინდის შემოწმება ჩემს სახლში ყოფნისას. როდესაც სახლში მივედი და დავაყენე მივხვდი, რომ ან ეკრანი კომპიუტერთან უნდა მქონოდა ჩართული, ან მათი ჭკვიანი კერა შემეძინა