Съдържание:

Влажност в облака: 5 стъпки
Влажност в облака: 5 стъпки

Видео: Влажност в облака: 5 стъпки

Видео: Влажност в облака: 5 стъпки
Видео: География 5-6к. §41 Влажность воздуха. Облака 2024, Ноември
Anonim
Влажност в облака
Влажност в облака

Идва лятото и тези без климатик трябва да бъдат подготвени да контролират ръчно атмосферата на закрито. В този пост описвам съвременния начин за измерване на най -важните параметри за човешки комфорт: температура и влажност. Тези събрани данни се изпращат в облака и се обработват там.

Консумативи

Използвам платка Raspberry Pi и сензор DHT22. Можете да направите същото на всеки компютър, който има интернет, GPIO и Python. По -евтиният сензор DHT11 също работи добре.

Стъпка 1: Подготовка на хардуера

Подготовка на хардуера
Подготовка на хардуера
Подготовка на хардуера
Подготовка на хардуера
Подготовка на хардуера
Подготовка на хардуера
Подготовка на хардуера
Подготовка на хардуера

Нека започнем от самото начало, тъй като не използвах моя Raspberry Pi доста дълго време.

Ще ни трябва:

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

Първата стъпка е изтеглянето на Raspbian. Избрах версията Lite, тъй като ще използвам SSH вместо дисплей.

Нещата се промениха от последния път, когато го направих: сега има страхотен записващ софтуер, наречен Etcher, който работи перфектно и има зашеметяващ дизайн.

След като записването на изображението приключи, поставих SD картата в моя Pi, включих LAN и захранващите кабели и след известно време моят рутер регистрира новото устройство.

Страхотен! Нека продължим и SSH в него.

Сигурността е ОК, харесва ми, но това прави нещата малко по -трудни. Ще използвам UART-USB адаптер за достъп до черупката и активиране на SSH …

Използването на дисплей вместо UART го прави много по -лесно.

След рестартиране най -накрая влизам.

Първо, нека актуализираме:

sudo apt update && sudo apt upgrade -y

Сега нека свържем това ново устройство с облака.

Стъпка 2: Инсталиране на Cloud4RPi

Инсталиране на Cloud4RPi
Инсталиране на Cloud4RPi

Реших да опитам облачната платформа, наречена Cloud4RPi, която е предназначена за IoT.

Според документите се нуждаем от следните пакети, за да го стартираме:

sudo apt install git python3 python3 -pip -y

Клиентската библиотека може да бъде инсталирана в една команда:

sudo pip3 инсталирайте cloud4rpi

Сега имаме нужда от примерен код.

git clone https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python && cd cloud4rpi-raspberrypi-python

Изпълнимият скрипт е control.py.

Нуждаем се от жетон, който позволява на Cloud4RPi да свързва устройствата с акаунтите. За да го получите, създайте акаунт в cloud4rpi.io и натиснете бутона Ново устройство на тази страница. Заменете низа _YOUR_DEVICE_TOKEN_ във файла control.py с маркера на вашето устройство и го запазете. Сега сме готови за първото изстрелване.

sudo python3 control.py

Отворете страницата на устройството и проверете дали данните са там.

Сега да преминем към реални данни.

Стъпка 3: Свързване на сензора

Свързване на сензора
Свързване на сензора

Ще ни трябва:

  • DHT22 или DHT11 сензор за влажност
  • Издърпващ се резистор (5-10 KΩ)
  • Проводници

Сензорът DHT22 измерва температурата и влажността едновременно. Комуникационният протокол не е стандартизиран, така че не е необходимо да го активираме в raspi -config - обикновен GPIO щифт е повече от достатъчен.

За да получа данните, ще използвам страхотната библиотека на Adafruit за DHT сензори, но може да не работи както е. Веднъж открих странно постоянно забавяне в кода, което не работи за хардуера ми и след две години моята заявка за изтегляне все още е в процес на изчакване. Също така промених константи за откриване на платката, защото моят Raspberry Pi 1 с BCM2835 беше изненадващо открит като Raspberry Pi 3. Иска ми се да е вярно … Затова препоръчвам да използвам вилицата си. Ако имате някакви проблеми с него, моля, опитайте оригиналното хранилище, може би работи за някого, но аз не съм един от тях.

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

Тъй като библиотеката е написана на C, тя изисква компилация, така че се нуждаете от пакетите build-essential и python-dev.

sudo apt install build-съществен python-dev -ysudo python setup.py инсталиране

Докато пакетите се инсталират, свържете DHT22, както е показано на снимката.

И го тествайте:

cd ~ python -c "импортиране на Adafruit_DHT като d; печат d.read_retry (d. DHT22, 4)"

Ако видите нещо като (39.20000076293945, 22.600000381469727), трябва да знаете, че това е влажността в проценти и температурата в Целзий.

Сега, нека съберем всичко заедно!

Стъпка 4: Изпращане на показанията на сензора в облака

Изпращане на показания на сензора в облак
Изпращане на показания на сензора в облак
Изпращане на показания на сензора в облак
Изпращане на показания на сензора в облак

Ще използвам control.py като основа и ще добавя взаимодействието DHT22 към него.

cp cloud4rpi-raspberrypi-python/control.py./cloud_dht22.pycp cloud4rpi-raspberrypi-python/rpi.py./rpi.pyvi cloud_dht22.py

Премахнете примерния код, както на изображението по -горе.

Тъй като DHT22 връща температурата и влажността в едно обаждане, ще ги съхраня в световен мащаб и ще актуализирам само веднъж в заявка, като приемам, че закъснението между тях е повече от 10 секунди. Помислете за следния код, който получава данните от DHT22:

внос Adafruit_DHT

temp, hum = Няма, Няма

last_update = time.time () - 20

def update_data ():

глобална 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 () връщане на кръг (temp, 2) ако temp не е None else Няма def get_h (): update_data () return round (hum, 2) ако hum не е None else None

Вмъкнете този код след съществуващите импорти и редактирайте секцията с променливи, така че да използва новите функции:

променливи = {'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type': 'numeric', 'bind': cpu_temp}}

Ако откриете, че манипулациите са объркващи, вземете крайната версия на този файл. Натиснете червения бутон, за да започнете прехвърлянето на данни:

След това можете да проверите страницата на устройството.

python3 cloud_dht22.py

След това можете да проверите страницата на устройството.

Можете да го оставите както е, но аз предпочитам да имам услуга за всичко. Това гарантира, че скриптът винаги работи. Създаване на услуга с напълно автоматизиран скрипт, който вече имате в директорията cloud4rpi-raspberrypi-python:

service_install.sh 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]: Публикуване на iot-hub/messages: {'type': 'config', 'ts': '2017-05-17T20 … y'}]}

17 май 20:22:53 raspberrypi python [560]: Публикуване на iot-hub/messages: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 май 20: 22:53 raspberrypi python [560]: Публикуване на iot-hub/messages: {'type': 'system', 'ts': '2017-05-17T20….4'}}

Ако всичко работи според очакванията, можем да продължим и да използваме възможностите на платформата Cloud4RPi за манипулиране на данните.

Стъпка 5: Графики и аларми

Графики и аларми
Графики и аларми
Графики и аларми
Графики и аларми
Графики и аларми
Графики и аларми

Първо, нека начертаем променливите, за да видим как се променят. Това може да стане чрез добавяне на нов контролен панел и поставяне на необходимите диаграми в него.

Друго нещо, което можем да направим тук, е да зададем предупреждение. Тази функция ви позволява да конфигурирате безопасен диапазон за променлива. Веднага щом диапазонът бъде превишен, той изпраща известие по имейл. На страницата за редактиране на контролния панел можете да превключите към Сигнали и да настроите такава.

Веднага след това влажността в стаята ми започна бързо да намалява без видима причина и скоро последва алармата.

Можете да използвате Cloud4RPi безплатно с всеки хардуер, който е в състояние да изпълнява Python. Що се отнася до мен, сега винаги знам кога да включа въздушния овлажнител и дори мога да го свържа към реле за дистанционно управление чрез Cloud4RPi. Подготвен съм за горещините! Добре дошло лято!

С Cloud4RPi можете да контролирате вашите Raspberry Pi и други IoT устройства дистанционно в реално време. Посетете нашия сайт и свържете безплатно неограничени устройства.

Препоръчано: