Mundarija:

Raspberry Pi yordamida harorat va namlik monitoringi: 6 qadam (rasmlar bilan)
Raspberry Pi yordamida harorat va namlik monitoringi: 6 qadam (rasmlar bilan)

Video: Raspberry Pi yordamida harorat va namlik monitoringi: 6 qadam (rasmlar bilan)

Video: Raspberry Pi yordamida harorat va namlik monitoringi: 6 qadam (rasmlar bilan)
Video: ESP8266 ESP01 DHT11 harorat namligi sensori modulini dasturlash | RemoteXY | FLProg 2024, Iyul
Anonim
Raspberry Pi yordamida harorat va namlik monitoringi
Raspberry Pi yordamida harorat va namlik monitoringi
Raspberry Pi yordamida harorat va namlik monitoringi
Raspberry Pi yordamida harorat va namlik monitoringi

Yoz keladi va konditsioner bo'lmaganlar uy ichidagi atmosferani qo'lda boshqarishga tayyor bo'lishlari kerak. Bu postda men inson farovonligining eng muhim parametrlarini o'lchashning zamonaviy usulini tasvirlayman: harorat va namlik. Bu to'plangan ma'lumotlar bulutga yuboriladi va u erda qayta ishlanadi.

Men Raspberry Pi 1 taxtasi va DHT22 sensoridan foydalanmoqdaman. Siz Internet, GPIO va Python -ga ega bo'lgan har qanday kompyuterda xuddi shunday qilishingiz mumkin. Bundan arzon DHT11 sensori ham yaxshi ishlaydi.

1 -qadam: uskunani tayyorlash

Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash

Eng boshidan boshlaylik, chunki men Raspberry Pi -ni uzoq vaqt ishlatmaganman.

Bizga kerak bo'ladi:

  • Raspberry Pi taxtasi (yoki boshqa IoT-ga asoslangan platforma).
  • SD yoki microSD karta (platformaga qarab).
  • Micro-USB orqali 5V/1A.
  • LAN kabeli, Internetga ulanishni ta'minlaydi.
  • HDMI displeyi, RCA displeyi yoki UART porti (SSH -ni yoqish uchun).

Birinchi qadam - Raspbian -ni yuklab olish. Men Lite versiyasini tanladim, chunki men displey o'rniga SSHdan foydalanmoqchiman, oxirgi marta qilganimdan beri hamma narsa o'zgardi: endi Etcher deb nomlangan ajoyib dasturiy ta'minot mavjud, u mukammal ishlaydi va ajoyib dizaynga ega..

Rasm yozish tugagandan so'ng, men SD -kartani Pi -ga joylashtirdim, LAN va quvvat kabellarini uladim va bir muncha vaqt o'tgach, yo'riqnoma yangi qurilmani ro'yxatdan o'tkazdi.

2 -qadam: SSH -ni yoqish

SSH -ni yoqish
SSH -ni yoqish
SSH yoqilmoqda
SSH yoqilmoqda
SSH -ni yoqish
SSH -ni yoqish

SSH sukut bo'yicha o'chirilgan. Men UART-USB konvertoridan foydalanishim yoki qobiqqa kirish va SSH-ni yoqish uchun displeyni ulashim mumkin.

Qayta ishga tushirilgandan so'ng, men nihoyat kiraman. Birinchi navbatda, yangilaylik:

sudo apt update && sudo apt upgrade -y

Keling, bu yangi qurilmani Bulutga ulaylik.

3 -qadam: Cloud4RPi -ni o'rnatish

Cloud4RPi -ni o'rnatish
Cloud4RPi -ni o'rnatish

Men IoT uchun mo'ljallangan Cloud4RPi deb nomlangan bulutli platformani sinab ko'rishga qaror qildim.

Hujjatlarga ko'ra, uni ishga tushirish uchun bizga quyidagi paketlar kerak bo'ladi:

sudo apt install git python python -pip -y

Mijozlar kutubxonasi bitta buyruqda o'rnatilishi mumkin:

sudo pip cloud4rpi -ni o'rnatadi

Endi uning ishlashini ta'minlash uchun bizga namuna kodi kerak.

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

Minimal.py -ni ishga tushirishga qaror qildim, lekin menga soxta ma'lumotlar yoqmaydi. Yaxshiyamki, men bu misolda tashxis ma'lumotlarini haqiqatga aylantirishning oson yo'lini payqadim. Import bo'limiga yana bitta import qo'shing:

rpi importidan *

Keyin soxta ma'lumotlarni ta'minlaydigan bu funktsiyalarni o'chiring (rpi.py ularni hozir aniqlaydi):

def cpu_temp ():

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

Endi bizga Cloud4RPi -ga qurilmalarni hisoblar bilan bog'lash imkonini beradigan belgi kerak. Uni olish uchun cloud4rpi.io -da hisob yarating va ushbu sahifadagi "Yangi qurilma" tugmasini bosing. Minimal.py faylidagi _YOUR_DEVICE_TOKEN_ qatorini qurilmangiz belgisi bilan almashtiring va faylni saqlang. Endi biz birinchi ishga tushirishga tayyormiz.

python minimal.py

Qurilma sahifasini oching va u erda ma'lumotlar mavjudligini tekshiring.

Endi haqiqiy ma'lumotlarga o'tamiz.

4 -qadam: Sensorni ulash

Sensorni ulash
Sensorni ulash

Bizga kerak bo'ladi:

  • DHT22 yoki DHT11 namlik sensori
  • Yuk ko'tarish qarshiligi (5-10 KΩ)
  • Simlar

DHT22 sensori bir vaqtning o'zida harorat va namlikni o'lchaydi. Aloqa protokoli standartlashtirilmagan, shuning uchun uni raspi -configda yoqishning hojati yo'q - oddiy GPIO pin etarli.

Ma'lumot olish uchun men DHT datchiklari uchun Adafruit -ning ajoyib kutubxonasidan foydalanaman, lekin u ishlamasligi mumkin. Men bir marta kodda g'alati doimiy kechikish topdim, bu mening uskunam uchun ishlamadi va ikki yildan keyin tortishish so'rovim hali ham kutilmoqda. Men taxtalarni aniqlashning doimiy parametrlarini ham o'zgartirdim, chunki BCM2835 bilan Raspberry Pi 1 hayratlanarli darajada Raspberry Pi 3 sifatida aniqlandi. Agar bu to'g'ri bo'lsa edi … Shunday qilib, men vilkalarimdan foydalanishni maslahat beraman. Agar siz u bilan biron bir muammoga duch kelsangiz, iltimos, asl omborni sinab ko'ring, ehtimol u kimdir uchun ishlaydi, lekin men ulardan emasman.

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

Kutubxona C tilida yozilganligi uchun kompilyatsiya talab qilinadi, shuning uchun sizga build-essential va python-dev paketlari kerak bo'ladi.

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

Paketlar o'rnatilayotganda, DHT22 ni rasmda ko'rsatilgandek ulang.

Va sinab ko'ring:

cd ~ python -c "Adafruit_DHT ni d sifatida import qilish; d.read_retry ni chop etish (d. DHT22, 4)"

Agar siz (39.20000076293945, 22.600000381469727) kabi narsalarni ko'rsangiz, shuni bilingki, bu Selsiydagi namlik va foizlarda.

Endi hamma narsani birgalikda yig'amiz!

5 -qadam: Sensor o'qilishini bulutga yuborish

Sensor o'qilishini bulutga yuborish
Sensor o'qilishini bulutga yuborish

Minimal.py -ni asos sifatida ishlataman va unga DHT22 o'zaro ta'sirini qo'shaman.

cd bulut4rpi-raspberrypi-python

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

DHT22 harorati va namligini bitta qo'ng'iroqda qaytarganligi sababli, men ularni butun dunyo bo'ylab saqlayman va so'rovda faqat bir marta yangilayman, chunki ularning orasidagi kechikish 10 sekunddan oshadi. DHT22 ma'lumotlarini oladigan quyidagi kodni ko'rib chiqing:

Adafruit_DHT import qilish

temp, hum = Yo'q, 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 () qaytish davri (temp, 2) agar temp bo'lmasa Hech kim yo'q get_h (): update_data () qaytish davri (hum, 2) Boshqa hech kim Yo'q

Ushbu kodni mavjud importdan keyin kiriting va o'zgaruvchilar bo'limini o'zgartiring, shunda u yangi funktsiyalarni ishlatadi:

o'zgaruvchilar = {

'DHT22 Temp': {'turi': 'raqamli', 'bog'lanish': get_t}, 'DHT22 namligi': {'turi': 'raqamli', 'bog'lash': get_h}, 'CPU harorati': {'turi ':' raqamli ',' bog'lash ': cpu_temp}}

Ma'lumot uzatishni boshlash uchun qizil tugmani bosing:

python bulut_dht22.py

Keyin qurilma sahifasini tekshirishingiz mumkin.

Siz uni avvalgidek qoldirishingiz mumkin, lekin men hamma narsaga xizmat ko'rsatishni afzal ko'raman. Bu skriptning doimo ishlashini ta'minlaydi. To'liq avtomatlashtirilgan skript yordamida xizmat yaratish:

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

Xizmatni ishga tushirish:

sudo service cloud4rpi boshlanishi

Va tekshirish:

pi@raspberrypi: ~ $ sudo xizmati cloud4rpi holati -l

● cloud4rpi.service-Cloud4RPi demoni yuklandi: yuklandi (/lib/systemd/system/cloud4rpi.service; yoqilgan) Faol: faol (ishlayapti) Chor 2017-05-17 20:22:48 UTC; 1 daqiqa oldin Asosiy PID: 560 (python) CGroup: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.pyMay 17 May 20:22:51 raspberrypi python [560]: nashriyot iot -hub/messages: {'type': 'config', 'ts': '2017-05-17T20… y'}]} 17 may 20:22:53 raspberrypi python [560]: iot-hub/xabarlar nashr etilmoqda: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 may 20:22:53 raspberrypi python [560]: iot-hub/xabarlarni nashr qilish: {'turi': 'tizim', 'ts': '2017-05-17T20….4'}}

Agar hamma narsa kutilganidek ishlayotgan bo'lsa, biz Cloud4RPi platformasining imkoniyatlaridan foydalanib, ma'lumotlarni qayta ishlashimiz mumkin.

6 -qadam: jadvallar va signallar

Diagrammalar va signallar
Diagrammalar va signallar
Diagrammalar va signallar
Diagrammalar va signallar
Diagrammalar va signallar
Diagrammalar va signallar

Birinchidan, keling, o'zgaruvchilar qanday o'zgarishini bilib olaylik. Buni yangi Boshqarish panelini qo'shish va kerakli jadvallarni qo'yish orqali amalga oshirish mumkin.

Bu erda qila oladigan yana bir narsa - bu ogohlantirishni o'rnatish. Bu xususiyat o'zgaruvchining xavfsiz oralig'ini sozlash imkonini beradi. Diapazon oshib ketishi bilan u elektron pochta xabarini yuboradi. Boshqarish paneli tahrirlash sahifasida siz ogohlantirishlarga o'tishingiz va sozlashni o'rnatishingiz mumkin.

Shundan so'ng, mening xonamdagi namlik hech qanday sababsiz tez pasaya boshladi va tez orada signal eshitildi.

Siz Cloud4RPi -ni Python -ni bajaradigan har qanday uskuna bilan bepul ishlatishingiz mumkin, men hozir esa havo namlagichini qachon yoqish kerakligini doim bilaman va hatto uni Cloud4RPi orqali masofadan boshqarish o'rni bilan ulashim mumkin. Men issiqlikka tayyorman! Xush kelibsiz, Yoz!

Tavsiya: