Mundarija:

Bulutdagi namlik: 5 qadam
Bulutdagi namlik: 5 qadam

Video: Bulutdagi namlik: 5 qadam

Video: Bulutdagi namlik: 5 qadam
Video: ОСМОНДАН ФАРИШТА ТУШДИ... 2024, Noyabr
Anonim
Bulutdagi namlik
Bulutdagi namlik

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.

Ta'minotlar

Men Raspberry Pi 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
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).
  • 5V/1A micro-USB. LAN kabeli orqali, 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 SSH ishlataman.

Oxirgi marta qilganimdan beri hamma narsa o'zgardi: endi Etcher deb nomlangan ajoyib dasturiy ta'minot bor, 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.

Ajoyib! Davom etamiz va unga SSH kiramiz.

Xavfsizlik yaxshi, menga yoqadi, lekin bu ishni biroz qiyinlashtiradi. Men UART-USB adapteridan foydalanib, qobiqqa kiraman va SSH-ni yoqaman …

UART o'rniga displeydan foydalanish ishni ancha osonlashtiradi.

Qayta ishga tushirilgandan so'ng, men nihoyat kiraman.

Birinchi navbatda, yangilaylik:

sudo apt update && sudo apt upgrade -y

Keling, bu yangi qurilmani Bulutga ulaylik.

2 -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 python3 python3 -pip -y

Mijozlar kutubxonasi bitta buyruqda o'rnatilishi mumkin:

sudo pip3 cloud4rpi -ni o'rnating

Endi bizga namuna kodi kerak.

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

Bajariladigan skript - control.py.

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. Control.py faylidagi _YOUR_DEVICE_TOKEN_ qatorini qurilmangiz belgisi bilan almashtiring va faylni saqlang. Endi biz birinchi ishga tushirishga tayyormiz.

sudo python3 control.py

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

Endi haqiqiy ma'lumotlarga o'tamiz.

3 -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.gitcd 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!

4 -qadam: Sensor o'qilishini bulutga yuborish

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

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

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

Namuna kodini yuqoridagi rasmda olib tashlang.

DHT22 bitta qo'ng'iroqda harorat va namlikni qaytaradi, 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, yo'q

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 boshqa bo'lmasa, yo'q get get_h (): update_data () qaytish davri (xum, 2), agar boshqa bo'lmasa, yo'q

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

o'zgaruvchilar = {'DHT22 Harorati': {'turi': 'raqamli', 'bog'lanish': get_t}, 'DHT22 namligi': {'turi': 'raqamli', 'bog'lanish': get_h}, 'CPU harorati': {'turi': 'raqamli', 'bog'lash': cpu_temp}}

Agar siz bu manipulyatsiyalarni chalkash deb bilsangiz, ushbu faylning oxirgi versiyasini oling. Ma'lumot uzatishni boshlash uchun qizil tugmani bosing:

Keyin qurilma sahifasini tekshirishingiz mumkin.

python3 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. Siz allaqachon cloud4rpi-raspberrypi-python katalogida mavjud bo'lgan to'liq avtomatlashtirilgan skript yordamida xizmat yaratish:

service_install.sh cloud_dht22.py

Xizmatni ishga tushirish:

sudo service cloud4rpi boshlanishi

Va tekshirish:

pi@raspberrypi: ~ $ sudo service cloud4rpi status -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) guruhi: /system.slice/cloud4rpi.service └─560/usr/bin/python /home/pi/cloud_dht22.py

17 may 20:22:51 raspberrypi python [560]: iot-hub/xabarlarni nashr qilish: {'type': 'config', 'ts': '2017-05-17T20… y'}]}}

17 may 20:22:53 raspberrypi python [560]: iot-hub/xabarlarni nashr qilish: {'type': 'data', 'ts': '2017-05-17T20: 2… 40'}} 17 may 20: 22:53 raspberrypi python [560]: iot-hub/xabarlarni nashr qilish: {'type': 'system', 'ts': '2017-05-17T20….4'}}

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

5 -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!

Cloud4RPi yordamida siz Raspberry Pi va boshqa IoT qurilmalarini real vaqt rejimida masofadan boshqarishingiz mumkin. Bizning saytimizga tashrif buyuring va cheksiz qurilmalarni bepul ulang.

Tavsiya: