Мазмұны:
- 1 -қадам: Қолданылатын материалдар
- 2 -қадам: құрастыру
- 3 -қадам: құрылғыны пайдалану
- 4 -қадам: BME280 сценарийі
- 5 -қадам: BMP280 сценарийі
Бейне: Inky_pHAT метеостанциясы: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Мен мұнда қарапайым және ықшам Raspberry Pi Zero негізіндегі метеостанцияны сипаттағым келеді, ол BME280 температура/қысым/ылғалдылық сенсорымен өлшенетін мәндерді Pimoroni Inky pHAT электронды қағазында/электронды сия дисплейінде көрсетеді. Сенсорлар мен pHAT -ты Pi GPIO -ға қосуға рұқсат беру үшін мен GPIO мен дисплей арасында екі әйел тақырыптары бар Pimorini Pico HAT хакерін орналастырдым. Құрылғы бірнеше сенсорларды бекіту үшін қолданылған, сондықтан мұнда сипатталған BME280 нұсқасы - мысал.
СКД дисплейлерінен айырмашылығы, электронды сиялы дисплейлер қуат өшірілген болса да суретті сақтайды. Егер сіз мезгіл -мезгіл жаңартылып отыратын ақпаратты көрсетуді қаласаңыз, әсіресе өте қуатты құрылғыларды жасау үшін олар өте жақсы шешім. Сияқты pHAT монохромды/қара нұсқасының басты артықшылығы-дисплейді жаңартуға үш түсті нұсқа талап ететін он-он бес секундтың орнына шамамен бір секунд кетеді. Фильмді қарау.
Adafruit's Blinka кітапханасы Raspberry Pi -де Circuit Python кодын іске қосуға мүмкіндік береді, ал сенсорлардың алуан түріне арналған Circuit Python үлгілері Adafruit -те қол жетімді. Blinka мен Circuit Python кодтарын орнату туралы толық сипаттаманы Adafruit веб -сайтынан табуға болады. Мен сынап көрген кітапханалар (BMP280, BME280, TSL2591, TCS34785, VEML7065,…) өте жақсы жұмыс істеді, ал кейбір мысал кодтарда аздаған проблемалар болды.
BME280 - температураны, ылғалдылықты және атмосфералық қысымды өлшейтін сенсор. BMP280 бұзылуы көптеген жеткізушілерде, соның ішінде Adafruit -те бар, бірақ мен мұнда қытайдың арзан нұсқасын қолдандым. Бұл әртүрлі i2c адрестерін қолданатынын біліңіз (Adafruit: 0x77, басқалары: 0x76).
Үзіліс Pi -ге i2c арқылы қосылған, сенсорды оқу кітапхана мен мысал кодын қолдану арқылы өте қарапайым.
1 -қадам: Қолданылатын материалдар
Raspberry Pi Zero, еркек тақырыбы бекітілген. Бірақ Raspberry Pi кез келген нұсқасы осылай жасайды.
Pimoroni Inky pHAT, қара/монохромды нұсқа, 25 € | 22 £ | 20 АҚШ доллары, Pimoroni -де.
Pimoroni Pico HAT хакері, 2,50 € | 2 £, екі әйел тақырыптары бекітілген, олардың біреуі түйреуіштері ұзартылған. Менде екі түрлі нұсқа бар, төмендегі сипаттаманы қараңыз.
BME280 үзілісі, AZ. Amazon.de арқылы жеткізу 7.50 €, тақырып бекітілген.
Ұзартқыш секіргіш кабельдері
Қосымша:
Мобильді қосымшаларға арналған USB қуат жинағы
Pi немесе құрылғыға арналған корпус (мұнда көрсетілмеген)
2 -қадам: құрастыру
- Әйел тақырыптарын Pico HAT хакеріне дәнекерлеңіз. Дәнекерлеу алдында дұрыс бағытты тексеріңіз. Мен әр түрлі мақсаттар үшін оның екі нұсқасын жасадым. Алдыңғы қатарға төмен қарайтын күшейткіш үстіңгі деректеме, ал артқы қатарда қалыпты, жоғары/қарама-қарсы тақырып, ал артқы қатарда төмен қарайтын күшейткіш үстіңгі тақтасы бар нұсқа және алдыңғы қатарда тік бұрышты әйел тақырыбы бар. Суреттерді қараңыз. Бірінші нұсқа сенсорлар мен кабельдерді оңай қосуға және алмастыруға мүмкіндік береді, ал ішке қарайтын үстіңгі тақтасы бар нұсқада корпусқа Pi, сенсор және Inky pHAT кіреді. Немесе GPIO мен сенсорды қосатын кабельдерді тікелей Pico HAT хакеріне және/немесе Pico HAT хакерін GPIO түйреуіштеріне дәнекерлеуге болады. Кез келген жағдайда дәнекерлеудің қажетті мөлшерін қолданыңыз.
- Қажет болса, тақырыпты сенсорға дәнекерлеңіз.
- Өзгертілген Pico HAT хакерлік қондырғысын Pi -ге салыңыз, содан кейін Inky pHAT қосыңыз. Қажет болса, қолдауды енгізіңіз, мысалы. Сияқты pHAT үшін көбік блогы немесе стендтер.
- 3V, GND, SDA және SCL порттарын қолданып, кабельдер мен сенсорды бекітіңіз. Барлық сенсорлар 5В -қа шыдамайды, сондықтан оларды 5В порттарына қоспас бұрын тексеріңіз.
- Blinka кітапханасын орнатыңыз, содан кейін Adafruit -тен Circuit Python BME280 кітапханасын орнатыңыз.
- Pimoroni -ден Inky pHAT кітапханасын орнатыңыз.
- Келесі қадамда сипатталған және осы нұсқаулыққа бекітілген мысал Python кодын орнатыңыз.
- Кодты іске қосыңыз.
3 -қадам: құрылғыны пайдалану
Құрылғыны пайдаланудың екі нұсқасы бар.
Мұнда көрсетілгендей код бекітілген экран арқылы іске қосылады, бірақ онсыз жұмыс істей алады.
Кодқа кішігірім өзгертулер енгізілген кезде crontab көмегімен белгіленген уақыт нүктелерінде өлшеу жүргізуге болады. Бұл қуат тұтынуды одан да азайтуға мүмкіндік береді. Кронтабты қалай қолдануға болатынын басқа жерден табуға болады.
Қуат жинағымен бірге сіз мобильді құрылғы жасай аласыз және оны ішкі немесе сыртқы жағдайларды өлшеу үшін қолдана аласыз, тоңазытқышта, саунада, ылғалдандырғышта, шарап жертөлесінде, ұшақта….
Zero W көмегімен сіз мәндерді дисплейде көрсетіп қана қоймай, басқа жерде сипатталғандай оларды WLAN арқылы серверге немесе веб -сайтқа жібере аласыз.
4 -қадам: BME280 сценарийі
Жоғарыда айтылғандай, сізге Adafruit Blinka және Circuit Python BME280 кітапханаларын, сондай -ақ Pimoroni Inky pHAT кітапханасын орнату қажет.
Код алдымен сенсор мен Inky pHAT инициализациялайды, содан кейін сенсордан температура, қысым мен ылғалдылық мәндерін оқиды және оларды экранда және электронды сия дисплейінде көрсетеді. Time.sleep () пәрменін қолданып, өлшеу әр минут сайын алынады. Қажет болғанша реттеңіз. Тіл параметрін орнату арқылы нәтижелерді көрсету үшін қолданылатын тілді өзгертуге болады.
Inky pHAT электрондық сия дисплейінің көмегімен сіз алдымен inkyphat.show () пәрменін пайдаланып экранға жібермес бұрын жадта көрсетілетін суретті құрастырасыз. Inky pHAT кітапханасы процесті жеңілдетеді, мәтінді, сызықтарды, тіктөртбұрыштарды, шеңберлерді сызу мен пішімдеуге немесе фондық суреттерді қолдануға пәрмендер ұсынады.
Өлшенген мәндерден басқа, өлшеу уақыты да көрсетіледі.
Есіңізде болсын, сценарий мен кітапханалар Python 3 -те жазылған, сондықтан Py3 IDLE немесе оған балама көмегімен ашыңыз және іске қосыңыз.
# Bme280 температура/қысым/ылғалдылық датчигінің сценарийі (Adafruit емес нұсқасы) # және сиялы pHAT - қара нұсқа # # нұсқа Dec 01 2018, Dr H # # Adafruit Blinka және Circuit Python BME280 кітапханаларын қажет етеді # және Pimoroni Inky pHAT кітапханасының импорттық уақыты импорттау datetime импорттық тақтасын adafruit_bme280 -ден импорттау busio -ны импорттау adafruit_bme280 -тен Adafruit_BME280 -ды импорттау 180 ° font1 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 27) # Стандартты қаріпті таңдау2 = ImageFont.truetype (inkyphat.fonts. FredokaOne, 19) # Стандартты қаріп деректерін таңдау # lang = «DE» # тіл параметрін орнату, default («») -> english lang = «EN» i2c = busio. I2C (board. SCL, board. SDA) bmp = Adafruit_BME280_I2C (i2c, address = 0x76) # әдепкі i2c мекен -жайы (Adafruit BMP280 үшін) 0x77 (әдепкі), 0x76 қытайлық үзіліс үшін) # сілтеме қысымын орнатыңыз # al үшін қажет титулды есептеу, реттеңіз. Стандартты мән 1013,25 hPa # қолмен енгізу: #reference_hPa = кіріс («hPa -да сілтеме қысымын енгізіңіз:») # немесе # қысымды сілтеме ретінде бастапқы уақытта орнатыңыз, мысалы. салыстырмалы биіктікті өлшеу үшін уақыт.ұйқы (1) # 1 -ші өлшеуден бұрын секунд күтіңіз j = 0 pres_norm_sum = 0, ал j (5) диапазонында: # сілтеме мәнін анықтау үшін бес өлшеуді алыңыз pres_norm_sum = pres_norm_sum + bmp. қысым j = j + 1 time.sleep (1) reference_hPa = (pres_norm_sum/j) # биіктік өлшемдерін қосу үшін бастапқы нүкте ретінде бастапқы өлшеуді орнатыңыз bmp.sea_level_pressure = float (reference_hPa) print () True: # мәңгі жұмыс істейді, crontab-нұсқа # үшін өлшенеді t = bmp.temperature p = bmp. қысым h = bmp. ылғалдылық a = bmp.alitude # adafruit кітапханасы қысымнан есептеледі # timestamp ts = datetime.datetime.now () # уақыт белгісі ts0_EN = '{:%Y-% m-%d} '. формат (ts) # уақыт белгісі - күн, EN форматы ts0_DE =' {:%d.%m.%Y} '. формат (ts) # уақыт белгісі - күн, неміс форматы ts1 =' {: %H:%M:%S} '. Формат (ts) # уақыт белгісі - уақыт tmp = «{0: 0.1f}». Формат (t) pre = «{0: 0.1f}». Формат (p) hyg = «{0: 0.1f}». Формат (h) alt=«{0: 0.1f}». Формат (a) tText = «Temp.:» pText_EN = «Қысым:» pText_DE = «Luftdruck:» h Text_KK «Ылғалдылық:» hText_DE = «rel. LF: «aText_EN =» Биіктік: «aText_DE =» Түсініктеме: « # exakt: ü. NHN, бірақ қалыпты Höhen Null if (lang ==» DE «): ts0 = ts0_DE aText = aText_DE pText = pText_DE hText = hText_: # әдепкі ағылшынша ts0 = ts0_EN aText = aText_EN pText = pText_EN hText = hText_EN # print (ts) print (tText, tmp, «° C») print (pText, pre, «hPa») print (hText, hyg, « %») print (aText, alt, «m») print () # басып шығару мәндері Inky pHAT t1 = 5 # tab 1, frist бағанына, t2 = 110 # tab 2 орналасуын оңтайландыруды жеңілдетеді, екінші баған сияпаты. clear () inkyphat.text ((t1, 0), ts0, inkyphat. BLACK, font2) # уақыт белгісін жазу күні inkyphat.text ((t2, 0), ts1, inkyphat. BLACK, font2) # уақыт белгісін жазу inkyphat.line ((t1, 25, 207, 25), 1, 3) # сызық сызыңыз. «° C»), inkyphat. BLACK, font2) inkyphat.text ((t1, 55), pText, inkyphat. BLACK, font2) inkyphat.text ((t2, 55), (pre + «hPa»), сияпат. ҚАРА, қаріп2) inkyphat.text ((t1, 80), hText, inkyphat. BLACK, font2) inkyphat.text ((t2, 80), (hyg + « %»), inkyphat. BLACK, font2) # балама түрде есептелген биіктікті көрсету # inkyphat.text ((t1, 80), aText, inkyphat. BLACK, font2) # inkyphat.text ((t2, 80), (alt + «m»), inkyphat. BLACK, font2) inkyphat.show () time.sleep (51) # келесі өлшеулерге дейін бірнеше секунд күтіңіз, цикл үшін +19 секунд inkyphat.clear () # бос сия сия pHAT көрсету процедурасы, inkyphat.show () # crontab нұсқасы үшін # үнсіздік
5 -қадам: BMP280 сценарийі
BMP280 BME280 сенсорына өте ұқсас, бірақ температура мен қысымды өлшейді. Сценарийлер өте ұқсас, бірақ сізге әр түрлі Circuit Python кітапханалары қажет. Мұнда ылғалдылықтың орнына тірек қысымына негізделген есептелген биіктік көрсетіледі.
Сіз сценарийді қоса аласыз.
Ұсынылған:
Magicbit бар WIFI метеостанциясы (Arduino): 6 қадам
Magicbit бар WIFI метеостанциясы (Arduino): Бұл нұсқаулықта смартфоннан мәліметтерді алуға болатын Arduino көмегімен Magicbit -тен ауа райы станциясын қалай құру керектігі көрсетілген
VOC бақылауымен IoT метеостанциясы: 6 қадам
IoT метеорологиялық станциясы VOC бақылауымен: Бұл нұсқаулықта мен ұшатын органикалық қосылыстарды (VOCs) бақылай отырып, Интернет-заттар (IoT) метеостанциясын қалай құру керектігін көрсетемін. Бұл жоба үшін мен өз қолыммен (DIY) жинағын жасадым. Аппараттық құралдар мен бағдарламалық қамтамасыз ету ашық көзі болып табылады
Модульдік күн метеостанциясы: 5 қадам (суреттермен)
Модульдік күн метеорологиялық станциясы: Мен біраз уақыт бойы салғым келген жобалардың бірі модульдік метеостанция болды. Бағдарламалық жасақтаманы өзгерту арқылы қалаған сенсорларды қосуға болатын модульдік модульдік метеостанция үш бөлікке бөлінген. Негізгі тақтада W бар
Твитинг метеостанциясы: 8 қадам (суреттермен)
Твитингтік метеостанция: Сіз өз қалаңыздың қазіргі ауа райы жағдайын, көміртегі ізін, шу мен ластану деңгейін бақылағыңыз келді ме? Сіз климаттық өзгерістерге қарсы крест жорығы болғыңыз келе ме, әлде өзіңіздің твит-метеостанцияңызды құрғыңыз келе ме, жергілікті ауа-райының шарттарымен бөліскіңіз келеді ме?
NaTaLia метеостанциясы: күн энергиясымен жұмыс істейтін Arduino метеостанциясы дұрыс жасады: 8 қадам (суреттермен)
NaTaLia метеостанциясы: күн энергиясымен жұмыс істейтін Arduino метеостанциясы дұрыс жолмен жүрді: 1 түрлі екі жерде сәтті жұмыс істегеннен кейін мен күн сәулесінен жұмыс істейтін метеостанция жобаларының жоспарларымен бөлісемін және оның қалай ұзақ уақыт бойы өмір сүре алатын жүйеге айналғанын түсіндіремін. күн энергиясынан пайда болған кезеңдер. Егер сіз қадағаласаңыз