Мазмуну:
- 1 -кадам: Аппаратты даярдоо
- 2 -кадам: SSH иштетүү
- 3 -кадам: Cloud4RPi орнотуу
- 4 -кадам: сенсорду туташтыруу
- 5 -кадам: Сенсордун окуусун булутка жөнөтүү
- 6 -кадам: Диаграммалар жана Ойготкучтар
Video: Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө: 6 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Жай келе жатат, кондиционери жоктор үй ичиндеги атмосфераны кол менен башкарууга даяр болушу керек. Бул постто мен адамдын жайлуулугу үчүн эң маанилүү параметрлерди өлчөөнүн заманбап жолун сүрөттөп жатам: температура жана нымдуулук. Бул чогултулган маалыматтар булутка жөнөтүлөт жана ошол жерде иштетилет.
Мен 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 орнотуу
Мен 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 аркылуу алыстан башкаруу үчүн релеге туташтыра алам. Мен ысыкка даярмын! Кош кел жай!
Сунушталууда:
SHT25 жана Raspberry Pi колдонуу менен температура жана нымдуулукту көзөмөлдөө: 5 кадам
SHT25 жана Raspberry Pi менен температураны жана нымдуулукту көзөмөлдөө: Биз жакында температуранын жана нымдуулуктун мониторингин талап кылган ар кандай долбоорлордун үстүндө иштедик, анан бул эки параметр системанын иштөө эффективдүүлүгүн баалоодо негизги ролду ойной турганын түшүндүк. Экөө тең
HDC1000 жана Raspberry Pi менен температураны жана нымдуулукту өлчөө: 4 кадам
HDC1000 жана Raspberry Pi менен температураны жана нымдуулукту өлчөө: HDC1000 - бул өтө аз кубаттуулукта мыкты өлчөө тактыгын камсыз кылган интегралдык температура сенсоруна ээ болгон санарип нымдуулук сенсору. Аппарат нымдуулукту жаңы сыйымдуу сенсордун негизинде өлчөйт. Нымдуулук жана температура сенсорлору бетке
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөө жана жаздыруу: 9 кадам (сүрөттөр менен)
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөп жана жаздырыңыз: Бул көрсөтмө Blue Lios (BLEHome) жана RaspberryPi 3B Bluetooth LE сенсорунун катасы менен көп түйүндүү температураны көзөмөлдөө тутумун кантип чогултуу жөнүндө. Bluetooth LE стандартынын өнүгүшүнө рахмат. азыр жеткиликтүү
ESP8266: Температураны жана нымдуулукту кантип көзөмөлдөө керек: 12 кадам
ESP8266: Температураны жана нымдуулукту кантип көзөмөлдөө керек: Бүгүнкү окуу куралында биз DHT22 сенсорунун температурасы жана нымдуулугу үчүн 01 конфигурациясында ESP8266 болгон ESP-01ди колдонобуз (болгону 2 GPIO менен). Мен сизге электр схемасын жана ESP программалоо бөлүгүн Arduino менен көрсөтөм
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү