Мазмуну:

Raspberry Pi температура мониторун кантип куруу керек: 9 кадам
Raspberry Pi температура мониторун кантип куруу керек: 9 кадам

Video: Raspberry Pi температура мониторун кантип куруу керек: 9 кадам

Video: Raspberry Pi температура мониторун кантип куруу керек: 9 кадам
Video: Octopus Max EZ v1.0 - Hotend and Automatic Cooling Fans 2024, Ноябрь
Anonim
Raspberry Pi температура мониторун кантип куруу керек
Raspberry Pi температура мониторун кантип куруу керек

Температура жана нымдуулук азыркы индустриалдык дүйнөдө маанилүү маалымат пункттары болуп саналат. Сервердик бөлмөлөр, коммерциялык тоңдургучтар жана өндүрүш линиялары үчүн айлана -чөйрөнүн маалыматын көзөмөлдөө, иштин үзгүлтүксүз иштеши үчүн зарыл. Ал жерде негизгиден татаалга чейин көптөгөн чечимдер бар жана бул сиздин бизнесиңизге эмне керек жана эмнеден баштоо керектиги боюнча басымдуу көрүнүшү мүмкүн.

Биз Raspberry Pi жана сиз колдоно турган ар кандай температура сенсорлору менен температураны кантип көзөмөлдөө керек экенин карап чыгабыз. Бул баштоо үчүн эң жакшы жер, анткени бул чечимдер арзан, жасоо оңой жана башка экологиялык мониторинг үчүн пайдубал түзүп берет.

Жабдуулар

  • Raspberry Pi (3, 4 же Zero WH)
  • Температура сенсору (DHT2, DSB18B20, BME280, же Sense HAT)
  • 6 "40-Pin IDE Эркектен Аялга Узартуу Кабели (Sense HAT Solution)
  • 10K резистору, нан тактасы, 40-пин Breakout Board + тасма кабели, зымдар (DSB18B20 Solution үчүн)

1 -кадам: Raspberry Pi

Raspberry Pi - бул температура сенсоруна туташууга жана маалыматтарды визуалдаштыруу программасына агытууга мүмкүндүк бере турган арзан такта компьютери. Raspberry Pi окуу куралы катары башталган жана өнөр жай жумуш ордуна айланды. Эң ылдам өнүгүп жаткан программалоо тили Python менен колдонуунун оңойлугу жана коддоо жөндөмү аларды чечүү жолуна түшүрдү.

Сизге 3, 4 жана нөл W/WH үлгүсүндөгү WiFi орнотулган Raspberry Pi керек болот. Алардын арасында сиз баага жана өзгөчөлүктөргө карап тандай аласыз. Zero W/WH эң арзан, бирок сизге көбүрөөк функционализм керек болсо, сиз 3 жана 4 тандай аласыз. Сиз Raspberry Pi Фондунун чектөөлөрүнө байланыштуу бир убакта бир гана Zero W/WH сатып ала аласыз. Кандай гана Pi тандабаңыз, заряддагычты сатып алууну унутпаңыз, андыктан операциялык тутумду мүмкүн болушунча оңой орнотуу үчүн Pi менен SD картасын Raspbian менен кубаттайсыз.

Ошондой эле иштей ала турган башка бирдиктүү компьютер бар, бирок бул башка убакыт жана башка макала.

2 -кадам: сенсорлор

Биз колдонууну сунуштаган үч сенсор бар, анткени алар арзан, туташтыруу оңой жана так көрсөткүчтөрдү берет; DSB18B20, DHT22 жана Raspberry Pi Sense HAT.

DHT22 - Бул температура жана нымдуулук сенсорунун температурасы +/- 0,5 С жана нымдуулук диапазону 0дөн 100 пайызга чейин. Raspberry Piге туташтыруу оңой жана эч кандай каршылыкты талап кылбайт.

DSB18B20 - Бул температура сенсорунун Raspberry Pi менен жакшы иштеген санариптик чыгышы бар. Ал үч зымдан турат жана туташуу үчүн нанды жана резисторду талап кылат.

BME280 - Бул сенсор температураны, нымдуулукту жана барометрдик басымды өлчөйт. Аны SPIде жана I2Cде колдонсо болот.

Sense HAT - Бул Raspberry Pi үчүн LED, сенсорлор жана кичинекей джойстик бар. Бул Raspberry Piдеги GPIO менен түз байланышат, бирок лента кабелин колдонуу температуранын так көрсөткүчтөрүн берет.

3 -кадам: Raspberry Pi орнотуусу

Эгерде сиз Raspberry Pi түзүүнү биринчи жолу орнотуп жатсаңыз, анда Raspbian Операционалдык Системасын орнотуп, Piңизди WiFi менен туташтырышыңыз керек болот. Бул Pi менен туташуу үчүн монитор менен клавиатураны талап кылат. Сиз аны ишке киргизип, WiFIге туташкандан кийин, Piңиз кетүүгө даяр.

4 -кадам: Баштапкы мамлекеттик эсеп

Баштапкы мамлекеттик эсеп
Баштапкы мамлекеттик эсеп
Баштапкы мамлекеттик эсеп
Баштапкы мамлекеттик эсеп

Тарыхый журналды кармоо жана реалдуу убакытта маалымат агымын көрүү үчүн маалыматыңызды жөнөтүү үчүн бир жерге керек болот, андыктан биз баштапкы абалды колдонобуз. Https://iot.app.initialstate.com дарегине өтүңүз жана жаңы каттоо эсебин түзүңүз же учурдагы эсебиңизге кириңиз.

Андан кийин, биз Pi'ге Initial State Python модулун орнотушубуз керек. Командалык кеңеште (адегенде Пиңизге SSH киргизүүнү унутпаңыз), төмөнкү буйрукту аткарыңыз:

$ cd/home/pi/

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash

Сиз буйрук көрсөтмөсүнө curl буйругун киргизгенден кийин, экранда төмөнкү чыгарылышка окшош нерсени көрөсүз:

pi@raspberrypi ~

$ / curl -sSL https://get.initialstate.com/python -o -| sudo bash Сырсөз: ISStreamer Python оңой башталуусу! Бул орнотуу үчүн бир нече мүнөт талап кылынышы мүмкүн, кофе алыңыз:) Бирок кайра келүүнү унутпаңыз, кийинчерээк суроолорум болот! Табылган easy_install: setuptools 1.1.6 Табылган пип: pip 1.5.6 /Library/Python/2.7/site-packages/pip-1.5.6- py2.7.egg (python 2.7) pip негизги версиясы: 1 pip minor version: 5 ISStreamer табылды, жаңыртылууда … Талап мурунтан эле жаңыртылган: ISStreamer /Library/Python/2.7/site-packages Тазалоо… Сиз автоматтык түрдө мисал скриптин алууну каалайсызбы? [y/N] Мисалды кайда сактагыңыз келет? [демейки:./is_example.py] Кайсы Баштапкы Колдонмону колдонуп жатканыңызды тандаңыз: 1. app.initialstate.com 2. [NEW!] iot.app.initialstate.com 1 же 2 -тандоону киргизиңиз: iot.appка кириңиз.initialstate.com колдонуучунун аты: iot.app.initialstate.com сырсөзүн киргизиңиз:

Автоматтык түрдө скрипт үлгүсүн алуу суралганда, y деп териңиз. Бул биз баштапкы абалга маалымат агымын камсыз кылуу үчүн иштете турган тесттик сценарийди түзөт. Кийинки көрсөтмө мисал файлын кайда сактагыңыз келерин сурайт. Сиз ыңгайлаштырылган жергиликтүү жолду тере аласыз же демейки жайгашууну кабыл алуу үчүн enter бассаңыз болот. Акыр -аягы, сизден кайсы баштапкы абалды колдонуп жатканыңыз суралат. Эгерде сиз жакында эле эсеп жазууну түзсөңүз, 2 -жолду тандап, колдонуучу атыңызды жана сырсөзүңүздү киргизиңиз. Андан кийин орнотуу аяктайт.

Келгиле, түзүлгөн скрипт үлгүсүн карап көрөлү.

$ nano is_example.py

15 -сапта стример = Streamer (bucket_… менен башталган сапты көрөсүз. Бул саптар "Python Stream Example" деп аталган жаңы маалымат чакасын түзөт жана сиздин каттоо эсебиңиз менен байланышкан. Бул ассоциация access_key = "…" байланыштуу болот.) Ошол эле саптагы параметр. Тамгалар менен сандардын узун сериясы - бул сиздин баштапкы абалга кирүү ачкычы. Эгерде сиз веб -браузериңиздеги баштапкы абалга эсебиңизге кирсеңиз, анда оң жактагы колдонуучу атыңызды чыкылдатып, "менин жөндөөлөрүмө" өтүңүз., сиз ошол эле кирүү ачкычын бул жерден "Агым кирүү ачкычтары" астында таба аласыз.

Маалымат агымын түзгөн сайын, бул кирүү ачкычы ошол маалымат агымын сиздин эсебиңизге багыттайт (андыктан ачкычыңызды эч ким менен бөлүшпөңүз).

Статистикалык сценарийди баштапкы абалдагы эсебиңизге маалымат агымын түзө аларыбызга ынануу үчүн иштетиңиз. Төмөнкүлөрдү иштетүү:

$ python is_example.py

Веб -браузериңиздеги баштапкы абалга кайтыңыз. "Python Stream Example" деп аталган жаңы маалымат чакасы журналдын текчесинде сол тарапта көрүнүшү керек болчу (баракты жаңыртууңуз керек болушу мүмкүн). Бул чаканы чыкылдатып, андан кийин Waves сөлөкөтүн чыкылдатып, тесттин маалыматтарын көрүңүз

Эгерде сиз Python 3 колдонуп жатсаңыз, анда Initial State Streamer модулун орното аласыз, сиз төмөнкү буйрукту колдонуп орното аласыз:

pip3 ISStreamer орнотуу

Эми биз температура сенсорун Pi менен температураны көзөмөлдөө тактасына орнотууга даярбыз.

5 -кадам: DHT22 Solution

DHT22 Solution
DHT22 Solution

DHT22 үч казыкка ээ болот - 5V, Gnd жана маалыматтар. DHT22де (мисалы, "+" же "5V") кубат үчүн пин этикеткасы болушу керек. Муну Pi'дин 2 -пинине (жогорку оң жактагы пин, 5V) туташтырыңыз. Gnd пин '-' же 'Gnd' же эквиваленттүү деп жазылат. Муну Pi'деги 6 Gnd (5V пиндин астындагы эки казыкка) туташтырыңыз. DHT22деги калган пин - бул маалымат пини жана "out" же "s" же "data" деп жазылат. Муну GPIO4 (PIN 7) сыяктуу Piдеги GPIO казыктарынын бирине туташтырыңыз. Бул зымдуу болгондон кийин, Пиңизди күйгүзүңүз.

Adafruit DHT Python модулун DHT22 сенсорунун маалыматтарын окууну оңой кылуу үчүн буйрук сапына орнотуңуз:

$ sudo pip орнотуу Adafruit_DHT

Сенсордук маалыматтарды окуу жана Баштапкы абалга маалыматтарды жөнөтүү үчүн эки Python модулубуз менен бирге иштетүү тутумубуз орнотулганда, биз Python скриптибизди жазууга даярбыз. Төмөнкү скрипт баштапкы абалдагы маалымат чакасын түзөт/тиркейт, DHT22 сенсорунун маалыматын окуйт жана бул маалыматты реалдуу убакытта тактасына жөнөтөт. Болгону 6-11 -саптарды өзгөртүү керек.

Adafruit_DHT импорттоо

ISStreamer. Streamer импорттоо Streamer импорттоо убактысы# --------- Колдонуучунун Орнотуулары --------- SENSOR_LOCATION_NAME = "Office" BUCKET_NAME = ": partly_sunny: Бөлмө Температурасы" BUCKET_KEY = "rt0129" ACCESS_KEY = "БАШТАГЫ МАМЛЕКЕТТИК КИРҮҮ АЧКЫНЫН БУЛ ЖЕРДЕ" МИНУТТАРДЫН_ОРУНДА = 10METRIC_UNITS = Жалган # --------------------------------- стример = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) True болсо: нымдуулук, temp_c = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) эгер METRIC_UNITS болсо: streamer.log (SENSOR_LOCATION): temp_f = формат (temp_c * 9.0 / 5.0 + 32.0, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Температура (F)", temp_f) нымдуулук = формат (нымдуулук, ".2f") streamer.log (SENSOR_LOCATION_NAME + "Нымдуулук (%)", нымдуулук) streamer.flush () убакыт.уйку (60*MINUTES_BETWEEN_READS)

  • 6 -сап - Бул маани ар бир түйүн/температура сенсору үчүн уникалдуу болушу керек. Бул сенсор түйүнүнүн бөлмөсүнүн аты, физикалык жайгашкан жери, уникалдуу идентификатору же башка болушу мүмкүн. Жөн гана бул түйүндөгү маалыматтардын өз панелиндеги өз маалымат агымына өтүшүн камсыз кылуу үчүн ар бир түйүн үчүн уникалдуу экенине ынангыла.
  • 7 -сап - Бул маалымат чакасынын аталышы. Бул баштапкы абал UI каалаган убакта өзгөртүлүшү мүмкүн.
  • 8 -сап - Бул сиздин чака ачкычыңыз. Бул ошол эле панелде көрсөтүлгүсү келген ар бир түйүн үчүн бирдей чака ачкычы болушу керек.
  • 9 -сап - Бул сиздин баштапкы абалга кирүү ачкычы. Бул ачкычты баштапкы абалдагы эсебиңизден көчүрүп, чаптаңыз.
  • 10 -сап - Бул сенсордун ортосундагы убакыт. Ошого жараша өзгөртүңүз.
  • 11 -сап - Сиз 11 -сапта метрикалык же империялык бирдиктерди көрсөтө аласыз.

Питиңизге Python скриптиңизде 6–11 -саптарды койгондон кийин, текст редакторунан сактап, чыгыңыз. Төмөнкү буйрук менен скриптти иштетиңиз:

$ python tempsensor.py

Эми сизде маалыматтар Баштапкы Мамлекет тактасына жөнөтүлөт. Куралдар тактаңызды кантип ыңгайлаштыруу жөнүндө маалымат алуу үчүн бул макаланын акыркы бөлүмүнө өтүңүз.

6 -кадам: DSB18B20 Solution

DSB18B20 Чечими
DSB18B20 Чечими
DSB18B20 Чечими
DSB18B20 Чечими

Тасма кабели Piдеги GPIO казыктарына туташат. DS18B20 үч зымдан турат. Кызыл зым 3.3Vга туташат. Көк/кара зым жерге туташат. Сары жип тартма каршылыкка/пинге 4. туташат. Бул зым тартылганда, Пиңизди күйгүзүңүз.

Raspbianдин акыркы версиясы (ядро 3.18) DS18B20 менен байланышуу үчүн Pi үчүн /boot/config.txt файлына кошумча талап кылат. Бул файлды түзөтүү үчүн төмөнкүлөрдү аткарыңыз:

$ sudo nano /boot/config.txt

Эгерде төмөнкү сап бул файлда жок болсо (эгер бар болсо, ал файлдын түбүндө болсо керек), аны кошуп, файлды сактаңыз.

dtoverlay = w1-gpio, gpiopin = 4

Өзгөртүүлөр күчүнө кириши үчүн Пиңизди өчүрүп күйгүзүңүз.

$ sudo кайра жүктөө

Температура сенсорун окуу интерфейсин баштоо үчүн биз эки буйрукту иштетишибиз керек. Пиңизге же SSH'иңизге буйрук киргизиңиз. Төмөнкү буйруктарды териңиз:

$ sudo modprobe w1-gpio $ sudo modprobe w1-therm

Температура сенсорунун чыгышы азыр Piдеги файлга жазылып жатат. Бул файлды табуу үчүн:

$ cd/sys/bus/w1/түзмөктөр

Бул каталогдо "28-" менен башталган суб-каталог болот. "28-" санынан кийинки нерсе-бул сенсордун сериялык номери. cd ошол каталогго. Бул каталогдун ичинде w1_slave аттуу файл сенсордун чыгарылышын камтыйт. Файлдын мазмунун көрүү үчүн нанону колдонуңуз. Файлга киргенден кийин, ал мындай болот:

a2 01 4b 46 7f ff 0e 10 d8: crc = d8 YESa2 01 4b 46 7f ff 0e 10 d8 t = 26125

"T =" дан кийинки сан биз каалаган сан. Бул 1/1000 градус Цельсий температурасы (жогорудагы мисалда температура 26,125 С). Бизге бул файлды окуган жана ошол санды талдаган жөнөкөй программа керек. Биз муну бир секунданын ичинде алабыз.

Биз азыр маалыматтарды агылып башташыбыз үчүн баары даяр. Текст редакторун ачуу үчүн, буйрук сабында төмөнкүлөрдү териңиз:

$ нано температурасы.py

Төмөндөгү кодду көчүрүп, текст редакторуна чаптаңыз.

импорт os

ISStreamerден глобалдык импорттоо убактысын импорттоо Streamerstreamer = Streamer (bucket_name = "Температура агымы", bucket_key = "piot_temp_stream031815", access_key = "PUT_YOUR_ACCESS_KEY_HERE") os.system ('modprobe w1-gpio) -therm ') base_dir ='/sys/bus/w1/devices/'device_folder = glob.glob (base_dir + '28*') [0] device_file = device_folder + '/w1_slave' def read_temp_raw (): f = open (device_file, 'r') сызыктар = f.readlines () f.close () return линиялары def read_temp (): сызыктар = read_temp_raw () саптар [0]. strip () [-3:]! = 'Ооба': time.sleep (0.2) саптар = read_temp_raw () equals_pos = саптар [1]. find ('t =') if equals_pos! = -1: temp_string = сызыктар [1] [equals_pos+2:] temp_c = float (temp_string) / 1000.0 кайтып келгенде temp_c True: temp_c = read_temp () temp_f = temp_c * 9.0 / 5.0 + 32.0 streamer.log ("температура (C)", temp_c) streamer.log ("температура (F)", temp_f) time.sleep (.5)

Сиз баштапкы абалга кирүү ачкычыңызды PUT_YOUR_ACCESS_KEY_HERE ордуна 6 -сапка коюшуңуз керек ("Менин каттоо эсебимден" алмашуу буферине агымдык ачкычты көчүрүп, терминалга нанодогу кодго чаптаңыз).

6 -сап сиздин баштапкы абоненттик эсебиңизде "Температура агымы" аттуу чаканы түзөт (ушул эле сапта access_key'иңизди туура көрсөттүңүз деп ойлосоңуз). Бул сценарийдин 8ден 30га чейинки саптары DS18B20 сенсору менен интерфейстин температурасын биз мурда талкуулаган w1_slave файлынан окуу үчүн. 15 -саптагы read_temp_raw () функциясы w1_slave чийки файлын окуйт. 21 -саптагы read_temp () функциясы ал файлдын температурасын талдайт. 34 -линия учурдагы температураны алуу үчүн бул функцияларды чакырат. 35 -сап температураны Цельсийден Фаренгейтке айландырат. 35 жана 36 -саптар температураны сиздин баштапкы абоненттик эсепке которот. 37 -сап сценарийди 0,5 секундга тындырат, температура сенсорунун канчалык көп окулуп жана агылып турганын аныктайт.

Биз агылтууну баштоого даярбыз. Төмөнкү буйрукту аткарыңыз:

$ sudo python температурасы.py

Веб -браузериңиздеги баштапкы абалга кайтып келип, Температура агымы деп аталган жаңы маалымат чакасын издеңиз. Түз ободо температура маалыматын көрүшүңүз керек. Сенсордун температурасын колуңузга кармап же музга салып коюңуз.

Эми сизде маалыматтар Баштапкы Мамлекет тактасына жөнөтүлөт. Куралдар тактаңызды кантип ыңгайлаштыруу боюнча бул макаланын акыркы бөлүмүнө өтүңүз.

7 -кадам: BME280 Solution

Бул чечимди түзүү үчүн сизге төмөнкүлөр керек болот:

-BME280 басым, температура жана нымдуулук сенсору

Бул сенсор сенсорго ширетүү үчүн керектүү казыктар менен коштолот. Мен ширетүүнү оңой кылуу үчүн казандын үстүнө төшөлгөн панелди колдонууну сунуштайм. Сиз муну бүтүргөндөн кийин, сенсорду Пи -ге туташтырышыбыз керек.

Сенсордогу VIN пинди 3.3V pin 1ге Pi'ге туташтырыңыз. Сенсордогу GND пинди Пидеги 6 жерге туташтыргычка туташтырыңыз. Сенсордогу SCK пинин Пидеги SCL pin 5ке туташтырыңыз. Сенсордогу SDI пинин Pi'деги SDA pin 3кө туташтырыңыз. Бул чечим үчүн Python 3 колдонуп, pip3 орнотуу ыкмасын колдонуу менен Initial State Streamer модулун орнотушуңуз керек болот.

Сиз ошондой эле бир нече Adafruit Python китепканаларын орнотушуңуз керек.

pip3 орнотуу adafruit-blinkapip3 cleanio pip3 орнотуу spidev pip3 орнотуу adafruit-GPIO pip3 орнотуу adafruit-circuitpython-bme280

Сенсорду колдонуу үчүн биз Pi'деги I2Cти иштетишибиз керек.

sudo raspi-config

Бул Raspberry Pi программалык камсыздоону конфигурациялоо куралын ачат. 5 -интерфейстин тандоолоруна өтүңүз. Бул жерден I2Cге өтүңүз. Ал сизден I2C иштетүүнү кааласаңыз сурайт, Ооба жана Аяктоону тандаңыз. Эми сенсор менен байланышуу үчүн I2C иштетилген.

Биз муну төмөнкүлөрдү иштетүү менен текшере алабыз:

sudo i2cdetect -y 1

Бул сиздин Pi сенсорду көрүп жатканын текшерет. Бул туташуу жолунда ал сенсорду 77 дареги боюнча көрсөтүшү керек. Эгерде сенсорду таппасаңыз, Piңизди өчүрүп күйгүзүңүз, Пиңиздеги I2C интерфейс параметрин кайра күйгүзүңүз жана кайра аракет кылыңыз. баштапкы мамлекетке маалыматтарды жөнөтө турган биздин негизги кодду иштетүү үчүн. Нано буйругу менен bme280sensor.py аттуу файл түзүлдү. Кодду түпнускадагы текст редакторуна көчүрүү жана чаптоо. Сиз 12-19 -саптарга өзгөртүүлөрдү киргизишиңиз керек.

импорттоо убактысы

импорт башкармалыгы импорттоо busio импорт adafruit_bme280 ISStreamer. Streamer импорттоо Streamer # Биздин Bus I2C porti2c = busio. I2C (board. SCL, board. SDA) аркылуу китепкана объектисин түзүү bme280 = adafruit_bme280. Adafruit_BME280_I2C (i2c) # ------- -Колдонуучунун Орнотуулары --------- SENSOR_LOCATION_NAME = "Офис" BUCKET_NAME = ": partly_sunny: Бөлмө Температурасы" BUCKET_KEY = "temp1" ACCESS_KEY = "СИЗДИН КИРГИЗҮҮ АЧкычЫҢЫЗ БУЛ ЖЕРДЕ" # муну жайгашкан жердин басымына дал келтирүү үчүн өзгөртүү (hPa) деңиз деңгээлинде bme280.sea_level_pressure = 1013.25 MINUTES_BETWEEN_READS = 10 METRIC_UNITS = False # --------------------------------- # ЖЕ биздин Bus SPI портун колдонуп китепкана объектисин түзүңүз #spi = busio. SPI (board. SCK, board. MOSI, board. MISO) #bme_cs = digitalio. DigitalInOut (board. D10) #bme280 = adafruit_bme280. Adafruit_BME280_SPI (spi, bme_cs) стример = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) True болсо: нымдуулук = формат (bme280. humidity, ".1f") кысым = формат (bme280. басым, ".1f") temp_c = bme280.temperatu re if METRIC_UNITS: streamer.log (SENSOR_LOCATION_NAME + "Температура (C)", temp_c) башка: temp_f = формат (temp_c * 9.0 / 5.0 + 32.0, ".1f") streamer.log (SENSOR_LOCATION_NAME + "Температура (F)", temp_f) streamer.log (SENSOR_LOCATION_NAME + "Нымдуулук (%)", нымдуулук) streamer.log (SENSOR_LOCATION_NAME + "Басым (hPA)", басым) streamer.flush () time.sleep (60*MINUTES_BETWEEN_READS)

  • Line 12- Бул маани ар бир түйүн/температура сенсору үчүн уникалдуу болушу керек. Бул сенсор түйүнүнүн бөлмөсүнүн аты, физикалык жайгашкан жери, уникалдуу идентификатору же башка болушу мүмкүн. Жөн гана бул түйүндүн маалыматтары сиздин панелдеги өз маалымат агымына өтүшүн камсыз кылуу үчүн ар бир түйүн үчүн уникалдуу экенине ынаныңыз.
  • 13-сап- Бул маалымат чакасынын аты. Бул баштапкы абал UI каалаган убакта өзгөртүлүшү мүмкүн.
  • 14-сап- Бул сиздин чака ачкычыңыз. Бул ошол эле панелде көрсөтүлгүсү келген ар бир түйүн үчүн бирдей чака ачкычы болушу керек.
  • 15-сап- Бул сиздин баштапкы абалга кирүү ачкычы. Бул ачкычты баштапкы абалдагы эсебиңизден көчүрүп, чаптаңыз.
  • Line 17- Бул сиздин жайгашкан жериңиздин деңиз деңгээлиндеги басымы (hPa). Бул маалыматты көпчүлүк аба ырайы сайттарынан таба аласыз.
  • 18 -сап - Бул сенсордун ортосундагы убакыт. Линия 19- Бул жерде сиз метрикалык же империялык бирдиктерди көрсөтө аласыз.

Pi Zero WH түзмөгүңүзгө Python скриптиңизде 12–19 -саптарды койгондон кийин, текст редакторунан сактап, чыгыңыз. Төмөнкү буйрук менен скриптти иштетиңиз:

$ python3 bme280sensor.py

Эми сизде маалыматтар Баштапкы Мамлекет тактасына жөнөтүлөт. Куралдар тактаңызды кантип ыңгайлаштыруу боюнча бул макаланын акыркы бөлүмүнө өтүңүз.

8 -кадам: SAT HAT

Sense HAT
Sense HAT
Sense HAT
Sense HAT

Sense HATти колдонуунун биринчи кадамы - аны физикалык түрдө Пиңизге орнотуу. Пи өчүрүлгөндө, сүрөттө көрсөтүлгөндөй калпак тиркелет.

Эгерде сиз жогоруда көрсөтүлгөндөй чечимди колдонууну чечсеңиз, анда сиздин Sense HATтин температурасы бир аз жогору болорун байкасаңыз болот, анткени алар ушундай. Күнөө - бул Pi процессорунан келип чыккан жылуулук, ал Pi үстүндө отурганда Sense HATтин айланасындагы абаны жылытат. Температура сенсорун пайдалуу кылуу үчүн, биз калпакты Пи -ден алышыбыз керек же температура сенсорунун окуусун калибрлешибиз керек. Сенсорду Piден алыстатуу үчүн жакшы чечим - бул Sense HATтин Piден алысташына жол ачкан кабель. 6 дюймдук, 40-пиндүү IDE эркек-ургаачы кабелдик кабель амалын жасайт.

Эки вариант боюнча чечим кабыл алгандан кийин, Пиңизди күйгүзүңүз. Sense HATтен сенсордук маанилерди окууну оңой кылуу үчүн Python китепканасын орнотушубуз керек. Биринчиден, сиз Raspbian версияңызда бардыгы жаңырганын текшеришиңиз керек:

$ sudo apt-get update

Андан кийин, Sense HAT Python китепканасын орнотуңуз:

$ sudo apt-get install sens-hat

Пиңизди кайра жүктөңүз. Биз Sense HATти сенсордук маалыматтарды окуп, ошол маалыматты баштапкы абалга жөнөтүү менен сынап көрүүгө даярбыз.

Sensehat деп аталган файлды түзүңүз жана аны текст редакторунда буйрук сабында төмөнкүлөрдү киргизип ачыңыз:

$ nano sensehat.py

Төмөндөгү кодду көчүрүп, текст редакторуна чаптаңыз.

sense_hat импортунан SenseHat

ISStreamer. Streamerден импорттоо системасын импорттоо Streamer # --------- Колдонуучунун жөндөөлөрү --------- BUCKET_NAME = "Office Weather" BUCKET_KEY = "sensehat" ACCESS_KEY = "Your_Access_Key" SENSOR_LOCATION_NAME = " Office "MINUTES_BETWEEN_SENSEHAT_READS = 0.1 # -------------------------------- стример = Streamer (bucket_name = BUCKET_NAME, bucket_key = BUCKET_KEY, access_key = ACCESS_KEY) sense = SenseHat () True: # Сенсорлорду окуңуз temp_c = sense.get_temperature () нымдуулук = sense.get_humidity () pressure_mb = sense.get_pressure () # Берилиштерди форматтоо temp_f = temp_c * 9.0 / 5.0 + 32.0 temp_f = float ("{0:.2f}". Формат (temp_f)) нымдуулук = сүзүү ("{0:.2f}". Формат (нымдуулук)) pressure_in = 0.03937008*(press_mb) press_in = float ("{ 0:.2f} ". Формат (press_in)) # Басып чыгаруу жана басып чыгаруу SENSOR_LOCATION_NAME +" Температура (F): " + str (temp_f) басып чыгаруу SENSOR_LOCATION_NAME +" Нымдуулук (%): " + str (нымдуулук) басып чыгаруу SENSOR_LOCATION_NAME +" Басым (IN): " + str (press_in) streamer.log (": sunny: " + SEN) SOR_LOCATION_NAME + "Температура (F)", temp_f) streamer.log (": тердин тамчылары:" + SENSOR_LOCATION_NAME + "Нымдуулук (%)", нымдуулук) streamer.log (": булут:" + SENSOR_LOCATION_NAME + "Басым (IN)"), press_in) streamer.flush () time.sleep (60*MINUTES_BETWEEN_SENSEHAT_READS)

Биринчи сапта SenseHat китепканасын скриптке импорттоп жатканыбызга көңүл буруңуз. Бул скриптти иштетүүдөн мурун, колдонуучунун параметрлерин орнотушубуз керек.

# --------- Колдонуучунун жөндөөлөрү ---------

BUCKET_NAME = "Офицердик аба ырайы" BUCKET_KEY = "sensehat" ACCESS_KEY = "Сиздин_Аркылууңуздун ачкычы" SENSOR_LOCATION_NAME = "Офис" MINUTES_BETWEEN_SENSEHAT_READS = 0.1# ------------------------- --------

Тактап айтканда, ACCESS_KEYиңизди баштапкы абалга каттоо эсебине кирүү ачкычына орнотушуңуз керек. BUCKET_NAME менен SENSOR_LOCATION_NAME сенсордун чыныгы жерине өзгөртө аласыз. Сактоо жана текст редакторунан чыгуу.

Пиңиздин буйругу менен скриптти иштетиңиз:

$ sudo python sensehat.py

Эми сизде маалыматтар Баштапкы Мамлекет тактасына жөнөтүлөт. Куралдар тактаңызды кантип ыңгайлаштыруу боюнча бул макаланын акыркы бөлүмүнө өтүңүз.

9 -кадам: Баштапкы мамлекеттик тактаңызды ыңгайлаштырыңыз

Баштапкы абал тактаңызды ыңгайлаштырыңыз
Баштапкы абал тактаңызды ыңгайлаштырыңыз

Баштапкы мамлекеттик каттоо эсебиңизге барып, маалыматыңызды караңыз. Сиз плитканы оң баскыч менен чыкылдатып, диаграмманын түрүн өзгөртө аласыз жана плиткаңыздын өлчөмүн өзгөртүү жана жылдыруу үчүн Плиткаларды түзөтүү баскычын басыңыз. Мен температура үчүн термостатты жана нымдуулук үчүн суюктуктун деңгээлин колдонууну сунуштайт элем. Убакыттын өтүшү менен өзгөрүүлөрдү көрүү үчүн температура жана нымдуулук үчүн сызыктуу графиктерди түзө аласыз. Сиз ошондой эле панелге фондук сүрөттү кошо аласыз.

Триггер эскертмелерин койсоңуз болот, эгерде температура төмөндөсө же белгилүү бир чектен ашып кетсе SMS же электрондук кат ала аласыз. Маалымат чакаңызга барып, жөндөөлөрдү чыкылдатыңыз. Ал жерден Triggers өтмөгүнө өтүңүз. Көзөмөлдөөнү каалаган агым ачкычын, сиз колдонгуңуз келген операторду жана босого маанини киргизиңиз. Триггерди кошуу үчүн плюс белгисин басыңыз. Андан кийин сиз эскертмени алуу үчүн электрондук почтаңызды же телефон номериңизди киргизип, плюс белгисин басыңыз. Бардык триггерлериңизди орноткондон кийин, астындагы Даяр баскычын чыкылдатыңыз.

Эми сиз температура сенсорун жана Raspberry Pi менен температура мониторун түздүңүз, андан кийин дагы кандай экологиялык маалыматтарды көзөмөлдөөгө болорун ойлонуп баштасаңыз болот.

Сунушталууда: