![Python -да BME280 көмегімен Raspberry Pi қолданатын метеостанция: 6 қадам Python -да BME280 көмегімен Raspberry Pi қолданатын метеостанция: 6 қадам](https://i.howwhatproduce.com/images/011/image-30585-j.webp)
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51
![Image Image](https://i.howwhatproduce.com/images/011/image-30585-2-j.webp)
![](https://i.ytimg.com/vi/6khFJZ0M5es/hqdefault.jpg)
![Императивті жабдықтар туралы заң Императивті жабдықтар туралы заң](https://i.howwhatproduce.com/images/011/image-30585-3-j.webp)
бұл жақсы тақырып және ауа райы (Ауа райы жақсы әңгімеші)
Жаһандық жылыну мен климаттың өзгеру мәселелеріне байланысты біздің әлемде ауа райының тұрақсыздығы өзгеріп, ауа райына байланысты көптеген табиғи апаттарға (қуаңшылық, экстремалды температура, су тасқыны, дауыл мен дала өрттері) алып келеді, метеостанция қажет болып көрінеді. үйдегі зұлымдық. Сіз арзан бөлшектер мен сенсорлардың көмегімен метеостанция жобасынан негізгі электроника туралы көп білесіз. Орнату өте оңай, және сіз оны бірден ала алмайсыз.
1 -қадам: Императивті жабдықтар туралы есеп
![Императивті жабдықтар туралы заң Императивті жабдықтар туралы заң](https://i.howwhatproduce.com/images/011/image-30585-4-j.webp)
![Императивті жабдықтар туралы заң Императивті жабдықтар туралы заң](https://i.howwhatproduce.com/images/011/image-30585-5-j.webp)
![Императивті жабдықтар туралы заң Императивті жабдықтар туралы заң](https://i.howwhatproduce.com/images/011/image-30585-6-j.webp)
1. Таңқурай Pi
Қолдарыңызды Raspberry Pi тақтасына қойыңыз. Raspberry Pi - бұл Linux -пен жұмыс істейтін бір тақталы компьютер. Raspberry Pi - бұл оқушыларға бағдарламалау мен бағдарламалық қамтамасыз етуді құру негіздерін үйрену үшін қол жетімді және функционалды компьютерден жасалған шынымен де арзан, кішкентай және әмбебап.
2. Raspberry Pi үшін I2C қалқаны
INPI2 (I2C адаптері) Raspberry Pi 2/3 пен I²C портын бірнеше I2C құрылғыларымен пайдалануға мүмкіндік береді. Ол DCUBE дүкенінде қол жетімді.
3. Сандық ылғалдылық, қысым мен температура сенсоры, BME280
BME280 - ылғалдылық, қысым мен температура сенсоры, ол жылдам жауап беру уақыты мен жоғары дәлдікке ие. Біз бұл сенсорды DCUBE дүкенінен сатып алдық.
4. I2C қосылатын кабель
Біз DCUBE дүкенінде қол жетімді I²C кабелін қолдандық.
5. Микро USB кабелі
Микро USB кабелі Қуат көзі - Raspberry Pi -ге қуат беру үшін тамаша таңдау.
6. EthernetCable/WiFi адаптері арқылы Интернетке қосылуды түсіндіріңіз
Интернетке кіруді жергілікті желіге және интернетке қосылған Ethernet кабелі арқылы қосуға болады. Сонымен қатар, конфигурация қажет болатын USB сымсыз кілтін пайдаланып сымсыз желіге қосылуға болады.
7. HDMI кабелі (Дисплей және байланыс кабелі)
Кез келген HDMI/DVI мониторы мен кез келген теледидар Pi үшін дисплей ретінде жұмыс істеуі керек. Сонымен қатар, сіз мониторға қажеттілікті жоққа шығаратын SSH арқылы Pi -ге қашықтан қол жеткізе аласыз (тек озық пайдаланушылар үшін).
2 -қадам: Схемаға арналған аппараттық қосылымдар
![Схемаға арналған аппараттық қосылулар Схемаға арналған аппараттық қосылулар](https://i.howwhatproduce.com/images/011/image-30585-7-j.webp)
![Схемаға арналған аппараттық қосылулар Схемаға арналған аппараттық қосылулар](https://i.howwhatproduce.com/images/011/image-30585-8-j.webp)
Схеманы көрсетілген схемаға сәйкес жасаңыз. Жалпы, қосылулар өте қарапайым. Тыныштық сақтаңыз және жоғарыдағы нұсқаулар мен суреттерді орындаңыз, сонда сізде проблемалар болмауы керек. Оқу барысында біз аппараттық және бағдарламалық қамтамасыз ету туралы электрониканың негізін толық меңгердік. Біз осы жобаның электроникасының қарапайым схемасын құрғымыз келді. Электрондық схемалар сызбаға ұқсайды. Жобаны жасаңыз және дизайнды мұқият орындаңыз. Электрониканың бірнеше негізгі түсініктері мұнда пайдалы болуы мүмкін!
Raspberry Pi мен I2C Shield қосылымы
Алдымен, Raspberry Pi алыңыз және оған I²C қалқанын қойыңыз. Қалқанды ақырын басыңыз, сонда біз бұл қадамды бәліш сияқты оңай аяқтаймыз (суретті қараңыз).
Сенсор мен Raspberry Pi қосылуы
Сенсорды алыңыз және онымен I²C кабелін қосыңыз. I²C шығысы әрқашан I²C кірісіне қосылатынына көз жеткізіңіз. I²C қалқаны GPIO түйреуіштері орнатылған Raspberry Pi үшін де солай істеу керек, біз I²C кабельдерін қолдануды ұсынамыз, себебі ол кішкене сырғып кетуден туындаған түйреуіштерді, дәнекерлеуді және нашарлауды қажет етпейді.. Бұл қарапайым қосылатын және қосылатын кабельдің көмегімен сіз тақталарды оңай орнатуға, ауыстыруға немесе қосымша тақталарды қосуға болады.
Ескертпе: қоңыр сым әрқашан бір құрылғының шығысы мен басқа құрылғының кірісі арасындағы Ground (GND) байланысын ұстануы керек
Интернетке қосылу кілт болып табылады
Мұнда сізде екі таңдау бар. Сіз Raspberry Pi -ді желіге Ethernet кабелі арқылы қосуға немесе WIFI -ге қосылу үшін USB -ден WiFi адаптеріне қосуға болады. Қалай болғанда да, егер ол Интернетке қосылған болса, сіз оны жабасыз.
Электр тізбегін қосу
Micro USB кабелін Raspberry Pi қуат ұясына қосыңыз. Соққы және воила! Біздің топ - бұл ақпарат.
Экранға қосылу
Біз HDMI кабелін мониторға немесе теледидарға қосамыз. Бұған қоса, біз Raspberry Pi -ге қашықтан қатынауды пайдаланып мониторға қоспай -ақ қол жеткізе аламыз. SSH - бұл қашықтан кіруге қауіпсіз құрал. Ол үшін PUTTY бағдарламалық жасақтамасын қолдануға болады. Бұл опция озық пайдаланушыларға арналған, сондықтан біз оны егжей -тегжейлі қарастырмаймыз.
Егер сіз көп ақша жұмсағыңыз келмесе, бұл үнемді әдіс
3 -қадам: Python -да Raspberry Pi бағдарламалау
![Python тілінде Raspberry Pi бағдарламалау Python тілінде Raspberry Pi бағдарламалау](https://i.howwhatproduce.com/images/011/image-30585-9-j.webp)
Raspberry Pi және BME280 сенсоры үшін Python коды. Ол біздің Github репозиторийінде қол жетімді.
Кодқа өтпес бұрын, Readme файлында берілген нұсқауларды оқығаныңызға және оған сәйкес Raspberry Pi орнатыңыз. Метеостанция - бұл құрлықта да, теңізде де ауа райы жағдайын өлшеуге арналған аспаптар мен қондырғылармен ауа райы болжамы туралы ақпарат беру үшін, ауа райы мен климатты зерттеу үшін қондырғы.
Код сіздің алдыңызда және сіз ойлағандай қарапайым түрде және сізде ешқандай проблемалар болмауы керек. Бар ма деп сұраңыз (Егер сіз мың нәрсені білсеңіз де, білетін адамнан сұраңыз).
Сіз бұл сенсордың жұмыс істейтін Python кодын осы жерден көшіре аласыз.
# Ерік-жігер лицензиясымен таратылады.# Егер ол онымен байланысты жұмыстардың лицензиясына сәйкес келсе, оны қалаған жолмен пайдаланыңыз немесе тегін пайдаланыңыз. # BME280 # Бұл код ControlEverything.com сайтында қол жетімді BME280_I2CS I2C шағын модулімен жұмыс жасауға арналған. #
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 bus.write_byte_data (0x76, 0xF2, 0x01) # BME280 мекен -жайы, 0x76 (118) # Бақылау өлшеу регистрін таңдау, 0xF4 (244) # 0x27 (39) Қысым мен температураның шамадан тыс іріктеу жылдамдығы = 1 # Қалыпты режим bus.write_byte_data (0x76, 0xF4, 0x27) # BME280 мекенжайы, 0x76 (118) # Configuration регистрін таңдаңыз, 0xF5 (245) # 0xA0 (00) Stand_by time = 1000 ms шина.write_byte_data (0x76, 0xF5, 0xA0)
уақыт.ұйқы (0.5)
# BME280 мекенжайы, 0x76 (118)
# Деректерді 0xF7 (247), 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 элиф ылғалдылығы <0.0: ылғалдылық = 0.0
# Деректерді экранға шығару
басып шығару «Цельсий бойынша температура: %.2f C» %cTemp басып шығару «Фаренгейт температурасы: %.2f F» %fTemp басып шығару «Қысым: %.2f hPa» %қысымды басып шығару «Салыстырмалы ылғалдылық: %.2f %%» %ылғалдылық
4 -қадам: Іске қосылған код
![Жүгіру коды Жүгіру коды](https://i.howwhatproduce.com/images/011/image-30585-10-j.webp)
Енді кодты жүктеңіз (немесе git pull) және оны Raspberry Pi -де ашыңыз.
Терминалда кодты құрастыру және жүктеу пәрмендерін орындаңыз және дисплейде шығуды көріңіз. Бірнеше секундтан кейін ол барлық параметрлерді көрсетеді. Барлығы жақсы жұмыс істейтініне көз жеткізгеннен кейін, сіз одан да қызықтысын жасай аласыз.
5 -қадам: практикалық әлемде қолдану
BME280 ылғалдылық пен қысымды өлшеуді қажет ететін барлық қосымшаларда жоғары өнімділікке қол жеткізеді. Бұл пайда болған қосымшалар - бұл контекст туралы ақпарат, мысалы. Теріні анықтау, бөлменің өзгеруін анықтау, фитнес мониторингі / әл-ауқаты, құрғақтық немесе жоғары температураға қатысты ескерту, дыбыс пен ауа ағынының өлшенуі, үйді автоматтандыруды бақылау, жылытуды басқару, желдету, кондиционерлеу (HVAC), заттар интернеті (IoT), GPS-ті жақсарту (мысалы, уақытты бірінші рет түзету, өлікті есепке алу, көлбеуді анықтау), үй ішінде навигация (еденді анықтауды өзгерту, лифтті анықтау), ашық навигация, демалыс және спорттық қосымшалар, ауа райы болжамы және тік жылдамдық көрсеткіші (көтерілу/батып кету) Жылдамдық).
6 -қадам: Қорытынды
Бұл жоба қосымша эксперименттерге шабыт береді деп үміттенемін. Неғұрлым күрделі метеорологиялық станция жасау үшін жаңбыр өлшегіш, жарық сенсоры, анемометр (желдің жылдамдығы) сияқты басқа да датчиктерді қосуға болады. Сіз оларды қосып кодты өзгерте аласыз. Бізде YouTube -те Rasp Pi көмегімен I²C сенсорының негізгі жұмысы бар бейне оқу құралы бар. I²C байланысының нәтижесі мен жұмысын көру өте керемет. Мұны тексеріңіз. Құрылыс пен оқу қызықты болсын! Бұл нұсқаулық туралы не ойлайтыныңызды бізге айтыңыз. Қажет болса, біз кейбір жақсартуларды енгізгіміз келеді.
Ұсынылған:
ESP8266 және ESP32 DIY қолданатын кәсіби метеостанция: 9 қадам (суреттермен)
![ESP8266 және ESP32 DIY қолданатын кәсіби метеостанция: 9 қадам (суреттермен) ESP8266 және ESP32 DIY қолданатын кәсіби метеостанция: 9 қадам (суреттермен)](https://i.howwhatproduce.com/images/001/image-46-j.webp)
ESP8266 мен ESP32 DIY қолданатын кәсіби метеостанция: LineaMeteoStazione - бұл Sensirion кәсіби сенсорларымен, сондай -ақ Дэвис аспаптарының кейбір компоненттерімен (жаңбыр өлшегіш, анемометр) байланысуға болатын толық ауа райы станциясы
Java -де BME280 көмегімен Raspberry Pi қолданатын жеке метеостанция: 6 қадам
![Java -де BME280 көмегімен Raspberry Pi қолданатын жеке метеостанция: 6 қадам Java -де BME280 көмегімен Raspberry Pi қолданатын жеке метеостанция: 6 қадам](https://i.howwhatproduce.com/images/004/image-10443-j.webp)
Java -де BME280 көмегімен Raspberry Pi қолданатын жеке метеорологиялық станция: Ауа -райының нашарлығы әрқашан терезеден нашар көрінеді. Біз әрқашан жергілікті ауа райы мен терезеден көргенімізді бақылап отыруға мүдделіміз. Біз сондай -ақ жылыту мен кондиционерлік жүйені бақылауды жақсартқымыз келді. Жеке метеорологиялық станция құру - бұл маңызды мәселе
Python -да SHT25 көмегімен Raspberry Pi қолданатын ылғалдылық пен температураны бақылаушы: 6 қадам
![Python -да SHT25 көмегімен Raspberry Pi қолданатын ылғалдылық пен температураны бақылаушы: 6 қадам Python -да SHT25 көмегімен Raspberry Pi қолданатын ылғалдылық пен температураны бақылаушы: 6 қадам](https://i.howwhatproduce.com/images/004/image-10452-j.webp)
Python -да SHT25 көмегімен Raspberry Pi қолданатын ылғалдылық пен температураны бақылаушы: Raspberry Pi -дің энтузиастары бола отырып, біз онымен бірнеше керемет эксперименттер ойластырдық. және SHT25, Хумиди
Arduino көмегімен 2.4Ghz NRF24L01 модулін қолданатын сымсыз қашықтан басқару пульті - Nrf24l01 4 каналы / 6 каналды Quadcopter үшін қабылдағыш - Rc тікұшағы - Arduino көмегімен Rc
![Arduino көмегімен 2.4Ghz NRF24L01 модулін қолданатын сымсыз қашықтан басқару пульті - Nrf24l01 4 каналы / 6 каналды Quadcopter үшін қабылдағыш - Rc тікұшағы - Arduino көмегімен Rc Arduino көмегімен 2.4Ghz NRF24L01 модулін қолданатын сымсыз қашықтан басқару пульті - Nrf24l01 4 каналы / 6 каналды Quadcopter үшін қабылдағыш - Rc тікұшағы - Arduino көмегімен Rc](https://i.howwhatproduce.com/images/003/image-7044-j.webp)
Arduino көмегімен 2.4Ghz NRF24L01 модулін қолданатын сымсыз қашықтан басқару пульті | Nrf24l01 4 арналы / квадрокоптер үшін 6 арналы таратқыш қабылдағыш | Rc тікұшағы | Arduino көмегімен Rc Plane: Rc машинасын басқару | Квадрокоптер | Дрон | RC жазықтығы | RC қайығы, бізге әрқашан қабылдағыш пен таратқыш қажет, RC QUADCOPTER үшін бізге 6 каналды таратқыш пен қабылдағыш қажет, және TX пен RX -тің бұл түрі тым қымбат, сондықтан біз оны өзімізде жасаймыз
RaspberryPI мен BME280 көмегімен Apple HomeKit температура сенсорын (BME280) жасаңыз: 5 қадам
![RaspberryPI мен BME280 көмегімен Apple HomeKit температура сенсорын (BME280) жасаңыз: 5 қадам RaspberryPI мен BME280 көмегімен Apple HomeKit температура сенсорын (BME280) жасаңыз: 5 қадам](https://i.howwhatproduce.com/images/002/image-4763-30-j.webp)
RaspberryPI мен BME280 көмегімен Apple HomeKit температура сенсорын (BME280) жасаңыз: Мен соңғы бірнеше айда IOT құрылғыларымен ойнадым және үй мен коттедждің жағдайын бақылау үшін 10 -ға жуық сенсорды орналастырдым. Мен бастапқыда AOSONG DHT22 қалыпты ылғалдылық сенсорын қолдана бастадым