Talaan ng mga Nilalaman:
- Hakbang 1: Bill ng Imperative Equipment
- Hakbang 2: Mga Koneksyon sa Hardware para sa Circuit
- Hakbang 3: Pagprogram ng Raspberry Pi sa Python
- Hakbang 4: Ang Running Code
- Hakbang 5: Paggamit sa Praktikal na Daigdig
- Hakbang 6: Konklusyon
Video: Weather Station Paggamit ng Raspberry Pi Sa BME280 sa Python: 6 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
ay maith an scéalaí isang aimir (Ang Panahon ay isang Magaling na Tagapagsalita)
Sa mga isyu sa pag-init ng mundo at pagbabago ng klima, ang pandaigdigan na pattern ng panahon ay nagiging hindi nagagalaw sa buong mundo na humahantong sa isang bilang ng mga natural na sakuna na nauugnay sa panahon (tagtuyot, matinding temperatura, baha, bagyo, at mga sunog), isang istasyon ng panahon ang tila kinakailangan kasamaan sa bahay. Marami kang natututunan tungkol sa pangunahing electronics mula sa isang proyekto ng istasyon ng panahon gamit ang isang bungkos ng murang mga bahagi at sensor. Madali itong i-set up at sa walang oras maaari mo itong makuha.
Hakbang 1: Bill ng Imperative Equipment
1. Isang Raspberry Pi
Kunin ang iyong mga kamay sa isang board na Raspberry Pi. Ang Raspberry Pi ay isang pinalakas na solong board computer ng Linux. Ang Raspberry Pi ay talagang mura, maliit at maraming nalalaman na binuo ng isang naa-access at nagagamit na computer para sa mga nag-aaral na mag-ehersisyo ang mga pangunahing kaalaman sa pag-unlad ng programa at software.
2. I2C Shield para sa Raspberry Pi
Ang INPI2 (I2C adapter) ay nagbibigay ng Raspberry Pi 2/3 isang I²C port para magamit sa maraming mga I2C device. Magagamit ito sa DCUBE Store.
3. Digital Humidity, Pressure at Temperatura Sensor, BME280
Ang BME280 ay isang halumigmig, presyon at sensor ng temperatura na may mabilis na oras ng pagtugon at mataas na pangkalahatang kawastuhan. Binili namin ang sensor na ito mula sa DCUBE Store.
4. I2C Pagkonekta Cable
Ginamit namin ang I²C cable na magagamit dito sa DCUBE Store.
5. Micro USB cable
Ang micro USB cable Power supply ay isang mainam na pagpipilian para sa pagpapatakbo ng Raspberry Pi.
6. Bigyang kahulugan ang Pag-access sa Internet sa pamamagitan ng EthernetCable / WiFi Adapter
Maaaring paganahin ang pag-access sa Internet sa pamamagitan ng isang Ethernet cable na konektado sa isang lokal na network at internet. Bilang kahalili, maaari kang kumonekta sa isang wireless network gamit ang isang USB wireless dongle, na mangangailangan ng pagsasaayos.
7. HDMI Cable (Display & connectivity cable)
Anumang HDMI / DVI monitor at anumang TV ay dapat gumana bilang isang display para sa Pi. Bilang kahalili, maaari mong i-access ang remote sa Pi sa pamamagitan ng SSH na tinatanggihan ang pangangailangan para sa isang monitor (mga advanced na gumagamit lamang).
Hakbang 2: Mga Koneksyon sa Hardware para sa Circuit
Gawin ang circuit ayon sa ipinakita na iskematiko. Sa pangkalahatan, ang mga koneksyon ay napaka-simple. Panatilihing kalmado at Sundin ang mga tagubilin at imahe sa itaas, at dapat wala kang mga problema. Habang natututo, nakuha namin nang lubusan ang mga pangunahing kaalaman sa electronics tungkol sa hardware at kaalaman sa software. Nais naming gumuhit ng isang simpleng iskemang electronics para sa proyektong ito. Ang mga elektronikong eskematiko ay tulad ng mga blueprint. Gumuhit ng isang blueprint at sundin nang mabuti ang disenyo. Ang ilang mga pangunahing konsepto ng electronics ay maaaring maging kapaki-pakinabang dito!
Koneksyon ng Raspberry Pi at I2C Shield
Una, kunin ang Raspberry Pi at ilagay dito ang I²C Shield. Dahan-dahang pindutin ang Shield at tapos na kami sa hakbang na ito na kasing dali ng pie (tingnan ang larawan).
Koneksyon ng Sensor at Raspberry Pi
Kunin ang sensor at ikonekta ang I²C cable dito. Siguraduhin na ang I²C Output ALWAYS kumokonekta sa I²C Input. Ang pareho ay dapat sundin para sa Raspberry Pi na may kalasag na I²C na naka-mount sa ibabaw nito ang mga GPIO pin. Inirerekumenda namin ang paggamit ng mga cable ng I CC dahil pinapawalang-saysay nito ang pangangailangan para sa pagbasa ng mga pinout, paghihinang, at karamdaman na sanhi ng kahit na kaunting slip-up. Sa simpleng plug at play cable na ito, maaari kang mag-install, magpalit ng mga board, o magdagdag ng higit pang mga board sa isang application nang madali.
Tandaan: Dapat laging sundin ng brown wire ang koneksyon ng Ground (GND) sa pagitan ng output ng isang aparato at ng pag-input ng ibang aparato
Ang pagkakakonekta sa Internet ay susi
Mayroon kang dalawang pagpipilian dito. Alinman Maaari mong ikonekta ang Raspberry Pi sa network gamit ang isang ethernet cable o gumamit ng USB sa WiFi Adapter para sa Koneksyon sa WIFI. Alinmang paraan, basta ito ay konektado sa internet ay sakop ka.
Pagpapatakbo ng Circuit
I-plug ang Micro USB cable sa power jack ng Raspberry Pi. Punch up at voila! Ang aming pulutong ay impormasyon.
Koneksyon sa Screen
Maaari nating maiugnay ang HDMI cable sa isang monitor o sa isang TV. Bilang karagdagan, maaari naming ma-access ang isang Raspberry Pi nang hindi ikonekta ito sa isang monitor gamit ang remote access. Ang SSH ay isang madaling gamiting tool para sa ligtas na remote access. Maaari mo ring gamitin ang PUTTY software para doon. Ang pagpipiliang ito ay para sa mga advanced na gumagamit kaya hindi namin ito sasakupin nang detalyado dito.
Ito ay isang matipid na pamamaraan kung ayaw mong gumastos ng malaki
Hakbang 3: Pagprogram ng Raspberry Pi sa Python
Ang Python Code para sa Raspberry Pi at BME280 Sensor. Magagamit ito sa aming repository ng Github.
Bago magpatuloy sa code, tiyaking nabasa mo ang mga tagubiling ibinigay sa Readme file at I-setup ang iyong Raspberry Pi alinsunod dito. Kaunting oras lamang ang maghahanda sa iyo para sa pag-set up. Ang isang istasyon ng panahon ay isang pasilidad, alinman sa lupa o dagat, na may mga instrumento at kagamitan para sa pagsukat ng mga kondisyon sa himpapawid upang magbigay ng impormasyon para sa mga pagtataya ng panahon at pag-aralan ang panahon at klima.
Ang code ay malinaw sa harap mo at ito ay nasa pinakasimpleng form na maaari mong isipin at dapat kang walang mga problema. Itanong pa rin kung mayroon (Kahit na alam mo ang isang libong bagay, magtanong pa rin sa isang taong may alam).
Maaari mong kopyahin ang gumaganang code ng Python para sa sensor na ito mula rito.
# Ipinamamahagi ng isang lisensya na may malayang kalooban. # Gamitin ito sa anumang paraan na nais mo, tubo o libre, sa kondisyon na naaangkop ito sa mga lisensya ng mga nauugnay na gawa nito. # BME280 # Ang code na ito ay dinisenyo upang gumana sa BME280_I2CS I2C Mini Module na magagamit mula sa ControlEverything.com. #
import smbus
oras ng pag-import
# Kumuha ng I2C bus
bus = smbus. SMBus (1)
# BME280 address, 0x76 (118)
# Basahin ang data pabalik mula sa 0x88 (136), 24 bytes b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# I-convert ang data
# Temp coefficients dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] kung dig_T2> 32767: dig_T2 - = 65536 dig_T3 = b1 [5] * 256 + b1 [4] kung dig_T3> 32767: dig_T3 - = 65536
# Mga coefficient ng presyon
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] kung dig_P2> 32767: dig_P2 - = 65536 dig_P3 = b1 [11] * 256 + b1 [10] kung dig_P3 > 32767: dig_P3 - = 65536 dig_P4 = b1 [13] * 256 + b1 [12] kung dig_P4> 32767: dig_P4 - = 65536 dig_P5 = b1 [15] * 256 + b1 [14] kung dig_P5> 32767: dig_P5 - = 65536 dig_P6 = b1 [17] * 256 + b1 [16] kung dig_P6> 32767: dig_P6 - = 65536 dig_P7 = b1 [19] * 256 + b1 [18] kung dig_P7> 32767: dig_P7 - = 65536 dig_P8 = b1 [21] * 256 + b1 [20] kung dig_P8> 32767: dig_P8 - = 65536 dig_P9 = b1 [23] * 256 + b1 [22] kung dig_P9> 32767: dig_P9 - = 65536
# BME280 address, 0x76 (118)
# Basahin ang data pabalik mula sa 0xA1 (161), 1 byte dig_H1 = bus.read_byte_data (0x76, 0xA1)
# BME280 address, 0x76 (118)
# Basahin ang data pabalik mula sa 0xE1 (225), 7 bytes b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# I-convert ang data
# Mga coefficient ng Humidity dig_H2 = b1 [1] * 256 + b1 [0] kung dig_H2> 32767: dig_H2 - = 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) kung dig_H4> 32767: dig_H4 - = 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) kung dig_H5> 32767: dig_H5 - = 65536 dig_H6 = b1 [6] kung dig_H6> 127: dig_H6 - = 256
# BME280 address, 0x76 (118)
# Piliin ang rehistro ng kahalumigmigan ng kontrol, 0xF2 (242) # 0x01 (01) Humidity Oversampling = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # BME280 address, 0x76 (118) # Piliin ang Rehistro sa pagsukat ng kontrol, 0xF4 (244) # 0x27 (39) Pressure at Temperatura Oversampling rate = 1 # Karaniwang mode bus.write_byte_data (0x76, 0xF4, 0x27) # BME280 address, 0x76 (118) # Piliin ang Rehistro ng pagsasaayos, 0xF5 (245) # 0xA0 (00) Stand_by time = 1000 ms bus.write_byte_data (0x76, 0xF5, 0xA0)
oras. pagtulog (0.5)
# BME280 address, 0x76 (118)
# Basahin ang data mula sa 0xF7 (247), 8 bytes # Pressure MSB, Pressure LSB, Pressure xLSB, Temperatura MSB, Temperatura LSB # Temperatura xLSB, Humidity MSB, Humidity LSB data = bus.read_i2c_block_data (0x76, 0xF7, 8)
# I-convert ang data ng presyon at temperatura sa 19-bit
adc_p = ((data [0] * 65536) + (data [1] * 256) + (data [2] & 0xF0)) / 16 adc_t = ((data [3] * 65536) + (data [4] * 256) + (data [5] & 0xF0)) / 16
# I-convert ang data ng halumigmig
adc_h = data [6] * 256 + data [7]
# Kalkulasyon ng offset ng temperatura
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
# Mga kalkulasyon ng offset ng presyon
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 pressure = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# Mga kalkulasyon ng offset na kahalumigmigan
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))) halumigmig = var_H * (1.0 - dig_H1 * var_H / 524288.0) kung halumigmig> 100.0: halumigmig = 100.0 halumigmig na elif <0.0: halumigmig = 0.0
# Data ng output sa screen
i-print ang "Temperatura sa Celsius:%.2f C"% cTemp print "Temperatura sa Fahrenheit:%.2f F"% fTemp print "Pressure:%.2f hPa"% pressure print "Relative Humidity:%.2f %%"% halumigmig
Hakbang 4: Ang Running Code
Ngayon, i-download (o hilahin ang git) ang code at buksan ito sa Raspberry Pi.
Patakbuhin ang mga utos upang Magtipon at Mag-upload ng code sa terminal at makita ang output sa Display. Pagkatapos ng ilang segundo, ipapakita nito ang lahat ng mga parameter. Matapos matiyak na ang lahat ay gumagana nang mahusay, maaari kang bumuo ng ilang mas kawili-wili.
Hakbang 5: Paggamit sa Praktikal na Daigdig
Ang BME280 ay nakakamit ng mataas na pagganap sa lahat ng mga aplikasyon na nangangailangan ng halumigmig at pagsukat ng presyon. Ang mga umuusbong na application na ito ay may kamalayan sa Context, hal. Pagtuklas ng Balat, Pagtuklas sa Pagbabago ng Silid, Pagsubaybay sa Kalusugan / Kaayusan, Babala Tungkol sa Pagkatuyo o Mataas na Temperatura, Pagsukat ng Dami at Daloy ng Air, Pagkontrol sa Awtomatiko sa Bahay, Pagkainit ng Pagkontrol, Bentilasyon, Air Conditioning (HVAC), Internet of Things (IoT), Pagpapahusay ng GPS (hal. Pag-aayos ng Oras sa Unang Pag-ayos, Patay na Pagkuha, Pagtuklas ng Slope), Pag-navigate sa Looban (Pagbabago ng Pagtuklas sa Palapag, Pagtuklas ng Elevator), Pag-navigate sa Labas, Mga Application sa Libangan at Palakasan, Pagtataya ng Panahon At Pahiwatig ng Vertical Velocity (Rise / Sink Bilis)
Hakbang 6: Konklusyon
Inaasahan kong ang proyektong ito ay nagbibigay inspirasyon sa karagdagang pag-eksperimento. Ang paggawa ng isang mas sopistikadong istasyon ng panahon ay maaaring kasangkot sa ilang higit pang mga sensor tulad ng Rain Gauge, Light sensor, anemometer (bilis ng hangin) atbp Maaari mong idagdag ang mga ito at baguhin ang code. Mayroon kaming isang tutorial sa video sa YouTube na mayroong pangunahing paggana ng I CC sensor kasama ang Rasp Pi. Tunay na kamangha-manghang makita ang mga resulta at gumagana ng mga komunikasyon sa I²C. Suriin din ito. Magsaya sa pagbuo at pag-aaral! Mangyaring ipaalam sa amin kung ano ang palagay mo sa itinuturo na ito. Gusto naming gumawa ng ilang mga pagpapabuti kung kinakailangan.
Inirerekumendang:
Personal na Station ng Panahon ng Paggamit ng Raspberry Pi Sa BME280 sa Java: 6 Mga Hakbang
Personal na Station ng Panahon ng Paggamit ng Raspberry Pi Sa BME280 sa Java: Ang masamang panahon ay laging mas malala sa isang window. Palagi kaming interesado na subaybayan ang aming lokal na panahon at kung ano ang nakikita namin sa bintana. Nais din namin ng mas mahusay na kontrol sa aming sistema ng pag-init at A / C. Ang pagbuo ng isang Personal na Weather Station ay isang grea
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na sa Tamang Daan: 8 Hakbang (na may Mga Larawan)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na ang Tamang Daan: Matapos ang 1 taon ng matagumpay na operasyon sa 2 magkakaibang mga lokasyon binabahagi ko ang aking mga plano sa proyekto ng istasyon ng solar Powered na solar at ipinapaliwanag kung paano ito nabago sa isang system na maaaring mabuhay nang matagal panahon mula sa solar power. Kung susundin mo
Room Weather Station Gamit ang Arduino & BME280: 4 Hakbang
Room Weather Station Gamit ang Arduino & BME280: Dati ay nagbahagi ako ng isang simpleng istasyon ng panahon na ipinakita ang Temperatura at Humidity ng lokal na lugar. Ang problema dito ay magtatagal upang mag-update at ang data ay hindi tumpak. Sa tutorial na ito gagawa kami ng isang Panloob na monitor ng panahon
Pagsubaybay sa Bilis ng Paggamit ng Raspberry Pi at AIS328DQTR Paggamit ng Python: 6 Hakbang
Pagsubaybay sa Bilis ng Paggamit ng Raspberry Pi at AIS328DQTR Paggamit ng Python: Ang pagpapabilis ay may hangganan, sa palagay ko ayon sa ilang mga batas ng Physics.- Terry Riley Ang isang cheetah ay gumagamit ng kamangha-manghang pagpabilis at mabilis na mga pagbabago sa bilis kapag humabol. Ang pinaka dalubhasang nilalang sa pampang nang minsan ay gumagamit ng pinakamataas na bilis upang mahuli ang biktima. Ang
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Panahon ng Panahon ay Tugma): 5 Mga Hakbang (na may Mga Larawan)
Acurite 5 in 1 Weather Station Paggamit ng isang Raspberry Pi at Weewx (iba pang Mga Weather Stations ay Tugma): Nang binili ko ang Acurite 5 sa 1 istasyon ng panahon nais kong masuri ang lagay ng panahon sa aking bahay habang wala ako. Nang makauwi ako at naayos ko ito napagtanto ko na dapat kong magkaroon ng display na konektado sa isang computer o bumili ng kanilang smart hub,