Përmbajtje:
- Hapi 1: Fatura e Pajisjeve Imperative
- Hapi 2: Lidhjet e harduerit për qarkun
- Hapi 3: Programimi i Raspberry Pi në Python
- Hapi 4: Kodi i Drejtimit
- Hapi 5: Shfrytëzimi në botën praktike
- Hapi 6: Përfundimi
Video: Stacioni i motit duke përdorur Raspberry Pi Me BME280 në Python: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
është maith a scéalaí an armancir (Moti është një tregimtar i mirë)
Me çështjet e ngrohjes globale dhe ndryshimet klimatike, modeli global i motit po bëhet i çrregullt në të gjithë botën tonë duke çuar në një numër fatkeqësish natyrore të lidhura me motin (thatësira, temperatura ekstreme, përmbytje, stuhi dhe zjarre të egra), një stacion moti duket të jetë i nevojshëm e keqja ne shtepi. Ju mësoni shumë për elektronikën bazë nga një projekt i stacionit të motit duke përdorur një mori pjesësh dhe sensorë të lirë. Prettyshtë shumë e lehtë për tu vendosur dhe në një kohë nuk mund ta kesh atë.
Hapi 1: Fatura e Pajisjeve Imperative
1. Një mjedër Pi
Merrni duart në një tabelë Raspberry Pi. Raspberry Pi është një kompjuter me një bord me Linux. Raspberry Pi është vërtet i lirë, i vogël dhe i gjithanshëm i ndërtuar nga një kompjuter i arritshëm dhe funksional për nxënësit që të ushtrojnë bazat e programimit dhe zhvillimit të softuerit.
2. Mburoja I2C për Raspberry Pi
INPI2 (përshtatësi I2C) siguron Raspberry Pi 2/3 një port I²C për përdorim me pajisje të shumta I2C. Availableshtë në dispozicion në Dyqanin DCUBE.
3. Sensori i Lagështisë Dixhitale, Presionit dhe Temperaturës, BME280
BME280 është një sensor lagështie, presioni dhe temperature që ka kohë të shpejtë reagimi dhe saktësi të lartë të përgjithshme. Ne e blemë këtë sensor nga Dyqani DCUBE.
4. Kabllo Lidhëse I2C
Ne përdorëm kabllon I²C të disponueshëm këtu Dyqani DCUBE.
5. Kabllo mikro USB
Kablloja mikro USB Furnizimi me energji elektrike është një zgjedhje ideale për fuqizimin e Raspberry Pi.
6 Interpretoni hyrjen në internet përmes përshtatësit EthernetCable/WiFi
Qasja në internet mund të aktivizohet përmes një kabllo Ethernet të lidhur me një rrjet lokal dhe internet. Përndryshe, mund të lidheni me një rrjet pa tel duke përdorur një dongle pa tel USB, e cila do të kërkojë konfigurim.
7. Kabllo HDMI (Ekrani i kabllit të lidhjes)
Çdo monitor HDMI/DVI dhe çdo TV duhet të funksionojë si ekran për Pi. Përndryshe, mund të qaseni në distancë në Pi përmes SSH duke mohuar nevojën për një monitor (vetëm përdoruesit e përparuar).
Hapi 2: Lidhjet e harduerit për qarkun
Bëni qarkun sipas skemës së treguar. Në përgjithësi, lidhjet janë shumë të thjeshta. Mbani qetësinë dhe ndiqni udhëzimet dhe imazhet e mësipërme, dhe nuk duhet të keni probleme. Ndërsa mësonim, ne mësuam plotësisht me bazat e elektronikës në lidhje me njohuritë e harduerit dhe softuerit. Ne donim të hartonim një skemë të thjeshtë elektronike për këtë projekt. Skemat elektronike janë si skema. Hartoni një plan dhe ndiqni me kujdes modelin. Disa koncepte themelore të elektronikës mund të jenë të dobishme këtu!
Lidhja e Raspberry Pi dhe I2C Shield
Së pari, merrni Raspberry Pi dhe vendosni Mburojën I²C mbi të. Shtypni Shield me butësi dhe ne jemi bërë me këtë hap aq të lehtë sa byrek (shiko foton).
Lidhja e Sensorit dhe Raspberry Pi
Merrni sensorin dhe lidhni kabllon I²C me të. Sigurohuni që dalja I²C të lidhet GJITHMON me hyrjen e I²C. E njëjta gjë duhet të ndiqet për Raspberry Pi me mburojën I²C të montuar mbi të me kunjat GPIO. Ne rekomandojmë përdorimin e kabllove I²C pasi mohon nevojën për të lexuar pinouts, bashkim dhe keqtrajtim të shkaktuar edhe nga rrëshqitja më e vogël Me Me këtë kabllo të thjeshtë plug and play, mund të instaloni, ndërroni bordet ose të shtoni më shumë borde në një aplikacion me lehtësi.
Shënim: Teli kafe duhet të ndjekë lidhjen Ground (GND) midis daljes së një pajisjeje dhe hyrjes së një pajisjeje tjetër
Lidhshmëria me internetin është çelësi
Këtu keni dy zgjedhje. Ose Mund ta lidhni Raspberry Pi me rrjetin duke përdorur një kabllo ethernet ose të përdorni një përshtatës USB në WiFi për lidhjen WIFI. Sido që të jetë, për sa kohë që është e lidhur me internetin ju jeni të mbuluar.
Fuqizimi i qarkut
Futeni kabllon Micro USB në prizën e energjisë të Raspberry Pi. Punch up dhe voila! Skuadra jonë është informacion.
Lidhja me ekranin
Ne ose mund ta lidhim kabllon HDMI me një monitor ose me një televizor. Për më tepër, ne mund të hyjmë në një Raspberry Pi pa e lidhur atë me një monitor duke përdorur qasje në distancë. SSH është një mjet i dobishëm për qasje të sigurt në distancë. Ju gjithashtu mund të përdorni softuerin PUTTY për këtë. Ky opsion është për përdoruesit e përparuar, kështu që ne nuk do ta mbulojmë atë në detaje këtu.
Anshtë një metodë ekonomike nëse nuk doni të shpenzoni shumë
Hapi 3: Programimi i Raspberry Pi në Python
Kodi Python për Sensorin Raspberry Pi dhe BME280. Availableshtë në dispozicion në depon tonë Github.
Para se të kaloni në kod, sigurohuni që të lexoni udhëzimet e dhëna në skedarin Readme dhe Konfiguroni Raspberry Pi tuaj sipas tij. Vetëm pak kohë do t'ju bëjë gati për konfigurim. Një stacion moti është një strukturë, në tokë ose në det, me instrumente dhe pajisje për matjen e kushteve atmosferike për të siguruar informacion për parashikimet e motit dhe për të studiuar motin dhe klimën.
Kodi është qartë para jush dhe është në formën më të thjeshtë që mund të imagjinoni dhe nuk duhet të keni probleme. Pyetni akoma nëse ka (edhe nëse dini një mijë gjëra, prapë pyesni dikë që e di).
Ju gjithashtu mund të kopjoni kodin Python të punës për këtë sensor nga këtu.
# Shpërndarë me një licencë të vullnetit të lirë.# Përdoreni atë në çdo mënyrë që dëshironi, fitimprurëse ose falas, me kusht që të përshtatet me licencat e veprave të tij shoqëruese. # BME280 # Ky kod është krijuar për të punuar me Mini Modulin BME280_I2CS I2C i disponueshëm nga ControlEverything.com. #
import smbus
koha e importit
# Merrni autobusin I2C
autobus = smbus. SMBus (1)
Adresa # BME280, 0x76 (118)
# Lexoni të dhënat mbrapa nga 0x88 (136), 24 bajt b1 = bus.read_i2c_block_data (0x76, 0x88, 24)
# Konvertoni të dhënat
# Koeficientët e temperaturës dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] nëse dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] nëse dig_T3> 32767: dig_T3 -= 65536
# Koeficientët e presionit
dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] nëse dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] nëse dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] nëse dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14] nëse dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] nëse dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] nëse dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] nëse dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] nëse dig_P9> 32767: dig_P9 -= 65536
Adresa # BME280, 0x76 (118)
# Lexoni të dhënat mbrapa nga 0xA1 (161), 1 byte dig_H1 = bus.read_byte_data (0x76, 0xA1)
Adresa # BME280, 0x76 (118)
# Lexoni të dhënat mbrapa nga 0xE1 (225), 7 bajt b1 = bus.read_i2c_block_data (0x76, 0xE1, 7)
# Konvertoni të dhënat
# Koeficientët e lagështisë dig_H2 = b1 [1] * 256 + b1 [0] nëse dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) nëse dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) nëse dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] nëse dig_H6> 127: dig_H6 -= 256
Adresa # BME280, 0x76 (118)
# Zgjidhni regjistrin e lagështisë së kontrollit, 0xF2 (242) # 0x01 (01) Mbidampimi i lagështirës = 1 autobus. Shkruani_bajat_data (0x76, 0xF2, 0x01) # adresa BME280, 0x76 (118) # Zgjidhni regjistrin e matjes së kontrollit, 0xF4 (244) # 0x27 (39) Shkalla e mbivendosjes së presionit dhe temperaturës = 1 # autobus i modalitetit normal. Shkruaj_bajt_data (0x76, 0xF4, 0x27) # Adresa BME280, 0x76 (118) # Zgjidh regjistrin e konfigurimit, 0xF5 (245) # 0xA0 (00) Koha e gatishmërisë = 1000 ms autobus.write_byte_data (0x76, 0xF5, 0xA0)
koha. gjumi (0.5)
Adresa # BME280, 0x76 (118)
# Lexoni të dhëna mbrapa nga 0xF7 (247), 8 bajt # Presioni MSB, Presioni LSB, Presioni xLSB, Temperatura MSB, Temperatura LSB # Temperatura xLSB, Lagështia MSB, Lagështia LSB të dhënat = bus.read_i2c_block_data (0x76, 0xF7, 8)
# Shndërroni të dhënat e presionit dhe temperaturës në 19-bit
adc_p = ((të dhëna [0] * 65536) + (të dhëna [1] * 256) + (të dhëna [2] & 0xF0)) / 16 adc_t = ((të dhëna [3] * 65536) + (të dhëna [4] * 256) + (të dhëna [5] & 0xF0)) / 16
# Konvertoni të dhënat e lagështisë
adc_h = të dhëna [6] * 256 + të dhëna [7]
# Llogaritjet e kompensimit të temperaturës
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
# Llogaritjet e kompensimit të presionit
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 presion = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100
# Llogaritjet e kompensuara të lagështisë
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))) lagështia = var_H * (1.0 - dig_H1 * var_H / 524288.0) nëse lagështia> 100.0: lagështia = 100.0 lagështia elif <0.0: lagështia = 0.0
# Dalja e të dhënave në ekran
print "Temperatura në Celsius: %.2f C" %cTemp print "Temperatura në Fahrenheit: %.2f F" %fTemp print "Presioni: %.2f hPa" %shtypje me presion "Lagështia relative: %.2f %%" %lagështia
Hapi 4: Kodi i Drejtimit
Tani, shkarkoni (ose git pull) kodin dhe hapeni atë në Raspberry Pi.
Drejtoni komandat për të përpiluar dhe ngarkuar kodin në terminal dhe shihni daljen në ekran. Pas disa sekondash, do të shfaqë të gjithë parametrat. Pasi të siguroheni që gjithçka funksionon shkëlqyeshëm, mund të zhvilloni disa më interesante.
Hapi 5: Shfrytëzimi në botën praktike
BME280 arrin performancë të lartë në të gjitha aplikimet që kërkojnë matje të lagështisë dhe presionit. Këto aplikacione në zhvillim janë ndërgjegjësimi i kontekstit, p.sh. Zbulimi i lëkurës, Zbulimi i ndryshimit të dhomës, Monitorimi / Mirëqenia e Fitnesit, Paralajmërim në lidhje me Thatësinë ose Temperaturat e Larta, Matja e Vëllimit dhe Rrjedhës së Ajrit, Kontrolli i Automatizimit të Shtëpisë, Ngrohja e Kontrollit, Ventilimi, Kondicionimi (HVAC), Interneti i Gjërave (IoT), Përmirësimi i GPS (p.sh. Përmirësimi i rregullimit të kohës së parë, llogaritja e vdekur, zbulimi i shpatit), navigimi i brendshëm (ndryshimi i zbulimit të dyshemesë, zbulimi i ashensorit), navigimi në natyrë, aplikacionet e kohës së lirë dhe sporteve, parashikimi i motit dhe treguesi i shpejtësisë vertikale (ngritje/lavaman) Shpejtësia).
Hapi 6: Përfundimi
Shpresoj se ky projekt frymëzon eksperimente të mëtejshme. Krijimi i një stacioni të motit më të sofistikuar mund të përfshijë edhe disa sensorë më shumë si Rain Gauge, Sensor drite, anemometër (shpejtësia e erës) etj. Ju mund t'i shtoni ato dhe të ndryshoni kodin. Ne kemi një video tutorial në YouTube që ka funksionimin bazë të sensorit I²C me Rasp Pi. Reallyshtë vërtet e mahnitshme të shohësh rezultatet dhe punën e komunikimeve të I²C. Kontrolloni gjithashtu. Keni argëtim duke ndërtuar dhe mësuar! Ju lutemi na tregoni se çfarë mendoni për këtë udhëzues. Ne do të donim të bënim disa përmirësime nëse ishte e nevojshme.
Recommended:
Stacioni i motit personal duke përdorur Raspberry Pi Me BME280 në Java: 6 hapa
Stacioni i motit personal duke përdorur Raspberry Pi Me BME280 në Java: Moti i keq gjithmonë duket më keq përmes një dritareje. Ne kemi qenë gjithmonë të interesuar të monitorojmë motin tonë lokal dhe atë që shohim nga dritarja. Ne gjithashtu donim kontroll më të mirë mbi sistemin tonë të ngrohjes dhe ajrit të kondicionuar. Ndërtimi i një Stacioni Personal të Motit është një gjë
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit në dhomë duke përdorur Arduino & BME280: 4 hapa
Stacioni i motit në dhomë duke përdorur Arduino & BME280: Më parë kam ndarë një stacion të thjeshtë moti i cili shfaq temperaturën dhe lagështinë e zonës lokale. Problemi me të ishte se do të duhej kohë për tu përditësuar dhe të dhënat nuk ishin të sakta. Në këtë tutorial do të bëjmë një monitor të motit të brendshëm
Stacioni i motit duke përdorur Wemos D1 Mini, BME280 dhe Sensate .: 6 hapa
Stacioni i motit duke përdorur Wemos D1 Mini, BME280 dhe Sensate .: Në postimet e mëparshme kam ndarë metoda të ndryshme për të ndërtuar një stacion moti. Nëse nuk e keni kontrolluar, këtu është një lidhje. Në këtë udhëzues unë do të demonstroj se si të ndërtoj një stacion të thjeshtë Moti duke përdorur Wemos dhe një platformë IoT të quajtur Sensate.
Stacioni i motit Acurite 5 në 1 duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): 5 hapa (me fotografi)
Stacioni i motit Acurite 5 në 1 Duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): Kur kisha blerë stacionin e motit Acurite 5 në 1 doja të isha në gjendje të kontrolloja motin në shtëpinë time ndërsa isha larg. Kur mbërrita në shtëpi dhe e vendosa, kuptova se ose duhej ta kisha ekranin të lidhur me një kompjuter ose të blija shpërndarësin e tyre të zgjuar,