Съдържание:
- Стъпка 1: Подготовка на хардуера
- Стъпка 2: Активиране на SSH
- Стъпка 3: Инсталиране на Cloud4RPi
- Стъпка 4: Свързване на сензора
- Стъпка 5: Изпращане на показанията на сензора в облака
- Стъпка 6: Графики и аларми
Видео: Мониторинг на температура и влажност с помощта на Raspberry Pi: 6 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Идва лятото и тези без климатик трябва да бъдат подготвени да контролират ръчно атмосферата на закрито. В този пост описвам съвременния начин за измерване на най -важните параметри за човешки комфорт: температура и влажност. Тези събрани данни се изпращат в облака и се обработват там.
Използвам платка 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 е деактивиран по подразбиране. Мога да използвам UART-USB конвертор или просто да свържа дисплей за достъп до черупката и активиране на SSH.
След рестартиране най -накрая влизам. Първо първо, нека актуализираме:
sudo apt update && sudo apt upgrade -y
Сега нека свържем това ново устройство с облака.
Стъпка 3: Инсталиране на Cloud4RPi
Реших да опитам облачната платформа, наречена Cloud4RPi, която е предназначена за IoT.
Според документите се нуждаем от следните пакети, за да го стартираме:
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/minimal.py && 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 и натиснете бутона Ново устройство на тази страница. Заменете низа _YOUR_DEVICE_TOKEN_ във файла minimal.py с маркера на вашето устройство и го запазете. Сега сме готови за първото изстрелване.
python minimal.py
Отворете страницата на устройството и проверете дали данните са там.
Сега да преминем към реални данни.
Стъпка 4: Свързване на сензора
Ще ни трябва:
- 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…. 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), трябва да знаете, че това е влажността в проценти и температурата в Целзий.
Сега, нека съберем всичко заедно!
Стъпка 5: Изпращане на показанията на сензора в облака
Ще използвам minimal.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 (): глобално 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 не е никой друг Няма def get_h (): update_data () връщане на кръг (hum, 2) ако hum не е Никой друг Никой
Вмъкнете този код след съществуващите импорти и редактирайте секцията с променливи, така че да използва новите функции:
променливи = {
'DHT22 Temp': {'type': 'numeric', 'bind': get_t}, 'DHT22 Humidity': {'type': 'numeric', 'bind': get_h}, 'CPU Temp': {'type ':' numeric ',' bind ': 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]: Публикуване на 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 за манипулиране на данните.
Стъпка 6: Графики и аларми
Първо, нека начертаем променливите, за да видим как се променят. Това може да стане чрез добавяне на нов контролен панел и поставяне на необходимите диаграми в него.
Друго нещо, което можем да направим тук, е да зададем предупреждение. Тази функция ви позволява да конфигурирате безопасен диапазон за променлива. Веднага щом диапазонът бъде превишен, той изпраща известие по имейл. На страницата за редактиране на контролния панел можете да превключите към Сигнали и да настроите такава.
Веднага след това влажността в стаята ми започна бързо да намалява без видима причина и скоро последва алармата.
Можете да използвате Cloud4RPi безплатно с всеки хардуер, който е в състояние да изпълнява Python. Що се отнася до мен, сега винаги знам кога да включа въздушния овлажнител и дори мога да го свържа към реле за дистанционно управление чрез Cloud4RPi. Подготвен съм за горещините! Добре дошло лято!
Препоръчано:
Мониторинг на температура и влажност с помощта на NODE MCU И BLYNK: 5 стъпки
Мониторинг на температурата и влажността с помощта на NODE MCU И BLYNK: Здравейте момчета В тази инструкция нека се научим как да получаваме температура и влажност на атмосферата с помощта на DHT11-сензор за температура и влажност, използвайки приложението Node MCU и BLYNK
Мониторинг на температура и влажност с помощта на ESP-01 & DHT и облака AskSensors: 8 стъпки
Мониторинг на температура и влажност с помощта на ESP-01 & DHT и облака AskSensors: В тази инструкция ще научим как да следим температурата и измерванията на влажността с помощта на платката IOT-MCU/ESP-01-DHT11 и платформата AskSensors IoT Избирам модула IOT-MCU ESP-01-DHT11 за това приложение, защото
Мониторинг на температура и влажност с помощта на Blynk: 6 стъпки
Мониторинг на температурата и влажността с помощта на Blynk: В този урок ще преминем към Мониторинг на температура и влажност с помощта на DHT11 и ще изпратим данните в облака, използвайки BlynkComponents, необходими за този урок: Arduino UnoDHT11 сензор за температура и влажност на WiFi ESP8266-01 WiFi модул
ESP8266 Nodemcu Мониторинг на температурата с помощта на DHT11 на локален уеб сървър - Вземете стайна температура и влажност на вашия браузър: 6 стъпки
ESP8266 Nodemcu Температурен мониторинг с помощта на DHT11 на локален уеб сървър | Вземете стайна температура и влажност на вашия браузър: Здравейте момчета, днес ще направим влажност & система за мониторинг на температурата, използваща ESP 8266 NODEMCU & DHT11 температурен сензор. Температурата и влажността ще бъдат получени от DHT11 Sensor & в браузър може да се види коя уеб страница ще се управлява
Мониторинг на температура и влажност с помощта на SHT25 и Raspberry Pi: 5 стъпки
Мониторинг на температура и влажност с помощта на SHT25 и Raspberry Pi: Наскоро работихме по различни проекти, които изискват мониторинг на температурата и влажността и след това осъзнахме, че тези два параметъра всъщност играят ключова роля за оценката на работната ефективност на системата. И двамата в индуса