Мазмуну:

Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө: 6 кадам (сүрөттөр менен)
Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө: 6 кадам (сүрөттөр менен)

Video: Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө: 6 кадам (сүрөттөр менен)

Video: Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө: 6 кадам (сүрөттөр менен)
Video: Raspberry Pi Pico PLC менен өнөр жай сенсорлорун кантип интерфейске салуу керек 2024, Июль
Anonim
Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө
Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө
Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө
Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө

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

Мен Raspberry Pi 1 тактасын жана DHT22 сенсорун колдонуп жатам. Интернет, GPIO жана Python бар каалаган компьютерде ушундай кылсаңыз болот. Арзаныраак DHT11 сенсору да жакшы иштейт.

1 -кадам: Аппаратты даярдоо

Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо

Башынан баштайлы, анткени мен Raspberry Pi -ди көпкө чейин колдонгон жокмун.

Бизге керек болот:

  • Raspberry Pi тактасы (же IoTга багытталган башка платформа).
  • SD же microSD картасы (платформага жараша).
  • 5V/1A микро-USB аркылуу.
  • LAN кабели, Интернетке туташууну камсыз кылат.
  • HDMI дисплейи, RCA дисплейи же UART порту (SSH иштетүү үчүн).

Биринчи кадам Raspbian жүктөп алуу болуп саналат. Мен Lite версиясын тандадым, анткени мен SSHди дисплейдин ордуна колдонуп жатам. Акыркы жолу мен кылган нерселер өзгөрдү: азыр Etcher деп аталган сонун күйүүчү программасы бар, ал кемчиликсиз иштейт жана укмуш дизайнга ээ.

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

2 -кадам: SSH иштетүү

SSH иштетилүүдө
SSH иштетилүүдө
SSH иштетилүүдө
SSH иштетилүүдө
SSH иштетилүүдө
SSH иштетилүүдө

SSH демейки боюнча өчүрүлгөн. Мен UART-USB конвертерин колдоно алам, же жөн эле дисплейди туташтырып, кабыкка жетип, SSHди иштете алам.

Кайра жүктөөдөн кийин, мен акыры кирип жатам. Биринчи кезекте, жаңырталы:

sudo apt update && sudo apt upgrade -y

Эми бул жаңы түзмөктү Булутка туташтыралы.

3 -кадам: Cloud4RPi орнотуу

Cloud4RPi орнотуу
Cloud4RPi орнотуу

Мен IOT үчүн иштелип чыккан Cloud4RPi деп аталган булут платформасын сынап көрүүнү чечтим.

Документтерге ылайык, аны иштетүү үчүн бизге төмөнкү пакеттер керек:

sudo apt install git python python -pip -y

Кардар китепканасы бир буйрукта орнотулушу мүмкүн:

sudo pip cloud4rpi орнотот

Эми анын иштешин камсыз кылуу үчүн бизге кээ бир үлгү коду керек.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python git clone https://gist.github.com/f8327a1ef09ceb1ef142fa68701270de.git e && mv e/mv e/mv && rmdir -re

Minimal.py иштетүүнү чечтим, бирок мен жасалма маалыматтарды жактырбайм. Бактыга жараша, мен бул мисалда диагностикалык маалыматтарды реалдуу кылуунун оңой жолун байкадым. Импорт бөлүмүнө дагы бир импортту кошуу:

rpi импортунан *

Андан кийин жасалма маалыматтарды берген бул функцияларды өчүрүңүз (rpi.py аларды азыр аныктайт):

def cpu_temp ():

return 70 def ip_address (): return '8.8.8.8' def host_name (): return 'hostname' def os_name (): return 'osx'

Эми бизге Cloud4RPi түзмөктөрүн эсептер менен байланыштырууга мүмкүндүк берген токен керек. Бирөөнү алуу үчүн, cloud4rpi.ioдо каттоо эсебин түзүңүз жана бул беттеги Жаңы түзмөк баскычын басыңыз. Minimal.py файлындагы _YOUR_DEVICE_TOKEN_ сабын түзмөгүңүздүн энбелгиси менен алмаштырып, файлды сактаңыз. Эми биз биринчи учурууга даярбыз.

python минималдуу.py

Түзмөктүн баракчасын ачыңыз жана анда маалыматтар бар экенин текшериңиз.

Эми реалдуу маалыматтарга өтөлү.

4 -кадам: сенсорду туташтыруу

Сенсорду туташтыруу
Сенсорду туташтыруу

Бизге керек болот:

  • DHT22 же DHT11 нымдуулук сенсору
  • Тартуу каршылыгы (5-10 KΩ)
  • Зымдар

DHT22 сенсору бир эле убакта температураны жана нымдуулукту өлчөйт. Байланыш протоколу стандартташтырылган эмес, ошондуктан аны raspi -configда иштетүүнүн кажети жок - жөнөкөй GPIO пини жетиштүү.

Маалыматты алуу үчүн, мен Adafruitтин улуу китепканасын DHT сенсорлору үчүн колдоном, бирок ал иштебей калышы мүмкүн. Мен бир жолу коддо бир кызыктай кечигүүнү таптым, ал менин жабдууларым үчүн иштебей калды, жана эки жылдан кийин менин тартуу өтүнүчүм дагы эле күтүлүүдө. Мен тактанын аныктоо константаларын да өзгөрттүм, анткени менин BCM2835 менен Raspberry Pi 1 таң каларлык түрдө Raspberry Pi 3 деп табылды. Мен чын болсо экен деп тилеймин … Ошентип, мен вилканы колдонууну сунуштайм. Эгер сизде кандайдыр бир көйгөйлөр пайда болсо, сураныч, оригиналдуу репозиторийди колдонуп көрүңүз, балким ал кимдир бирөө үчүн иштейт, бирок мен алардын бири эмесмин.

git clone https://github.com/Himura2la/Adafruit_Python_DHT…. Adafruit_Python_DHT

Китепкана C тилинде жазылгандыктан, ал компиляцияны талап кылат, андыктан сизге build-essential жана python-dev пакеттери керек.

sudo apt install build-essential python-dev -ysudo python setup.py install

Топтомдор орнотулуп жатканда DHT22ди сүрөттө көрсөтүлгөндөй туташтырыңыз.

Жана сынап көрүңүз:

cd ~ python -c "d d катары Adafruit_DHT импорттоо; d.read_retry басып чыгаруу (d. DHT22, 4)"

Эгерде сиз (39.20000076293945, 22.600000381469727) сыяктуу нерсени көрсөңүз, анда бул Цельсийдеги пайыздык жана температурадагы нымдуулук экенин билишиңиз керек.

Эми, келгиле, баарын чогуу чогулталы!

5 -кадам: Сенсордун окуусун булутка жөнөтүү

Сенсордун окуусун булутка жөнөтүү
Сенсордун окуусун булутка жөнөтүү

Минималдуу.py'ди база катары колдонуп, ага DHT22 өз ара аракетин кошом.

cd cloud4rpi-raspberrypi-python

cp minimal.py ~/cloud_dht22.py cp rpi.py ~/rpi.py cd vi cloud_dht22.py

DHT22 бир чалууда температураны жана нымдуулукту кайтарып бергендиктен, мен аларды глобалдык деңгээлде сактайм жана алардын ортосундагы кечигүү 10 секунддан ашык деп ойлоп, бир гана жолу сурамда жаңыртам. DHT22 маалыматын алган төмөнкү кодду карап көрөлү:

Adafruit_DHT импорттоо

temp, hum = None, None last_update = time.time () - 20 def update_data (): global last_update, hum, temp if time.time () - last_update> 10: hum, temp = Adafruit_DHT.read_retry (Adafruit_DHT. DHT22, 4) last_update = time.time () def get_t (): update_data () return round (temp, 2) if not not else Eone def get_h (): update_data () return round (hum, 2) if hum if not Башка эч ким Жок

Бул кодду бар импорттон кийин киргизиңиз жана өзгөрмөлөр бөлүмүн жаңы функцияларды колдонушу үчүн түзөтүңүз:

өзгөрмөлөр = {

'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' сандык ',' байлоо ': cpu_temp}}

Берүүнү баштоо үчүн кызыл баскычты басыңыз:

python cloud_dht22.py

Андан кийин сиз түзмөктүн баракчасын текшере аласыз.

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

wget -O https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python/blob/master/service_install.sh | sudo bash -s cloud_dht22.py

Кызматты баштоо:

sudo кызматы cloud4rpi баштайт

Жана текшерүү:

pi@raspberrypi: ~ $ sudo кызматы cloud4rpi абалы -l

● cloud4rpi.service-Cloud4RPi демон Жүктөлдү: жүктөлдү (/lib/systemd/system/cloud4rpi.service; иштетилген) Активдүү: активдүү (иштеп жатат) Шар 2017-05-17 20:22:48 UTC; 1 мүнөт мурун Негизги PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyМай 17 Май 20:22:51 raspberrypi python [560]: Publishing iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 май 20:22:53 raspberrypi python [560]: iot-hub/билдирүүлөрдү жарыялоо: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 май 20:22:53 raspberrypi python [560]: iot-hub/билдирүүлөрдү жарыялоо: {'түрү': 'система', 'ts': '2017-05-17T20….4'}}

Эгерде баары күтүлгөндөй иштесе, биз Cloud4RPi платформасынын мүмкүнчүлүктөрүн колдонуп, маалыматтарды иштете алабыз.

6 -кадам: Диаграммалар жана Ойготкучтар

Диаграммалар жана сигналдар
Диаграммалар жана сигналдар
Диаграммалар жана сигналдар
Диаграммалар жана сигналдар
Диаграммалар жана сигналдар
Диаграммалар жана сигналдар

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

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

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

Сиз Cloud4RPi'ди Pythonду аткара ала турган ар кандай жабдыктар менен бекер колдоно аласыз. Мен үчүн, мен азыр абаны нымдагычты качан күйгүзүүнү дайыма билем, ал тургай аны Cloud4RPi аркылуу алыстан башкаруу үчүн релеге туташтыра алам. Мен ысыкка даярмын! Кош кел жай!

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