RaspberryPi uchun amalga oshirish[9][11]




Download 288.89 Kb.
Sana23.04.2024
Hajmi288.89 Kb.
#205664
Bog'liq
6 bet maǵ
ona tili-1, GCE1Certificate, rasmlar tarmoqlar, Dars jadvalim, Презентация, Dinshunoslik fanidan Mustaqil talim, 8 -tema, ReadMe UzLAp Office 2003, 1167070, 141-amsiral-is-test-baza-uzb-489, Sayt dizayni, Axborot xavfsizligi tushunchasi va zaruriyati. Raqamli iqtisodiy-azkurs.org, Intellektual kapital, intelluktual mulkni shakllantirish va uni , Investitsiya, Mavzu Oila tarbiyasi metod shakl va vositalari

2.4 RaspberryPi uchun amalga oshirish[9][11]
Tizimning veb-qismining tavsifi
Tizimning foydalanuvchi va tizimning o'zaro ta'sirini amalga oshiradigan veb-qismi MVC - model-View-Controller kontseptsiyasi tamoyillari asosida amalga oshiriladi.
MVC bu bir nechta dizayn naqshlaridan foydalanish sxemasi bo'lib, unda dastur modeli, foydalanuvchi interfeysi va foydalanuvchi tajribasi uchta alohida komponentga bo'linadi, shunda komponentlardan birini o'zgartirish qolgan qismlarga minimal ta'sir ko'rsatadi.
Barcha HTTP so'rovlari RequestParser klassi tomonidan ko'rib chiqiladi. Ushbu sinf so'rovlarni tahlil qiladi va boshqaruvni keyinchalik amalga oshirish uchun boshqaruvchilarga uzatadi.
IndexController-bu veb-interfeysning asosiy sahifasi ishlashini ta'minlaydigan boshqaruvchi. U tizimlarga ulangan barcha qurilmalarni tavsiflovchi va ularni boshqarish qobiliyatiga ega sahifani yaratadi.
BlindsController-nazoratchi, pardalar bilan bog'liq so'rovlarni qayta ishlash uchun javobgardir (ochish/yopish va qurilmalar ro'yxatini olish - pardalar yoki pardalar). Ushbu tekshirgich faqat ajax so'rovlarini ko'rib chiqadi va natijalarni json satrlari sifatida qaytaradi.
SensorController-nazoratchi, tutun va oqish sensorlari bilan bog'liq so'rovlarni qayta ishlash uchun javobgardir. Keyinchalik veb-interfeysda namoyish qilish uchun barcha sensorlar va ularning holatlari ro'yxati bilan json satrini qaytaradi.
LightController-nazoratchi, yorug'lik moslamalarini boshqarish bilan bog'liq so'rovlarni qayta ishlash uchun javobgardir. Ajax so'rovlarini qabul qiladi hujax-hujax yorug'lik moslamalarini yoqish/o'chirish. Barcha yorug'lik moslamalari va ularning holatlari ro'yxati bilan JSON qatorini qaytarishga imkon beradi-yoqilgan yoki o'chirilgan.
IRController-nazoratchi, ir qurilmalari bilan bog'liq so'rovlarni qayta ishlash uchun javobgardir. Ir qabul qiluvchisi orqali boshqarish qobiliyatiga ega televizorlar, karnay tizimlari va boshqa jihozlarni boshqarish uchun ir masofadan boshqarish tugmachalari kodlari bilan ajax so'rovlarini qabul qiladi.
Alohida-alohida, AdminController kontrollerini ta'kidlash kerak, u tizim ma'muriyatini amalga oshiradi. Bu foydalanuvchilarga avtorizatsiya qilish va tizimga ulangan qurilmalarni tahrirlash imkonini beradi.
Ko'rish sinfi html shablonlaridan sahifalar yaratish uchun javobgardir. U kirish uchun shablon nomini va sahifa yaratish uchun zarur bo'lgan parametrlar ro'yxatini oladi[12].
Tizim model sinflari: Blinds, Light, Sensor va User ActiveRecord dizayn naqshini amalga oshiradi. Ushbu sinflar tegishli nomlar bilan jadvallarda ma'lumotlarni olish va saqlash uchun ishlatiladi.
Simsiz qurilmalarga xabarlarni yuborish uchun wirelessremote klassi amalga oshirildi. Bu quyida tavsiflangan send yordam dasturining ustiga o'ralgan.
Ir qurilmalariga xabarlarni yuborish uchun IRRemote klassi amalga oshirildi. Bu lirc paketidagi irsend yordam dasturining ustiga o'ralgan.
9-rasmda turar-joy binolarini avtomatlashtirish tizimining ma'lumotlar bazasining ER modeli ko'rsatilgan. Ma'lumotlar bazasi tizimga kirish huquqiga ega bo'lgan foydalanuvchilarning hisoblarini va tizimga ulangan qurilmalarning hozirgi holati to'g'risidagi ma'lumotlarni saqlash uchun ishlatiladi.
Ko'pgina qurilmalarda hech qanday teskari aloqa mavjud emas, shuning uchun ular har doim qanday holatda ekanligini bilish uchun (yoqilgan/o'chirilgan), siz ushbu holatni o'zgartirgandan so'ng darhol eslab qolishingiz kerak. Shuningdek, sensor jadvali suv toshqini/tutun sensorlari va veb-interfeys o'rtasidagi aloqa uchun ishlatiladi. Shunday qilib, sensorlardan xabarlarni tinglaydigan fon xizmati sensor jadvalidagi ularning holatini yangilaydi va php skripti vaqti-vaqti bilan ushbu qiymatlarni o'qiydi va veb-interfeysda namoyish etadi.

1 - rasm-model mohiyati-ma'lumotlar bazasi aloqasi turar-joy binolarini avtomatlashtirish tizimlari


Yuborish Yordam Dasturi
Kalitlarga va o'rni (pardalar/pardalar, suv o'tkazgichlari va qulflari, boshqa servolar) ga xabarlarni yuborish uchun C++tilida yozilgan send konsol yordam dasturidan foydalaniladi.
RaspberryPi 433MHZ simsiz tekshirgichi ulangan gpio apparat interfeysiga ega.
Gpio qisqartmasi umumiy maqsadli kirish chiqishi degan ma'noni anglatadi. Bu past darajadagi to'g'ridan-to'g'ri boshqaruv kiritish-chiqarish interfeysi. Ushbu interfeys orqali Raspberry har qanday tashqi qurilmani tinglashi va buyruq berishi mumkin.
Dasturdan GPIO pinlari bilan ishlash uchun uchinchi tomon wiringpi kutubxonasi ishlatiladi.
Ushbu kutubxona GPIO pinlarini C++tilining int turidagi o'zgaruvchilarga bog'laydi. Bu o'zgaruvchilar qiymatlarini oddiy tekshirish orqali tarmoqdan xabarlarni olish imkonini beradi. Xabarlarni tarmoqqa yuborish, shuningdek, tegishli o'zgaruvchilar qiymatlarini ma'lum vaqt oralig'ida o'zgartirish (modulyatsiya) orqali GPIO pinlariga signal berish orqali amalga oshiriladi. Ma'lumotlarni modulyatsiya qilish GPIO pinlaridagi kuchlanish darajasini o'zgartirishda vaqt kechikishi orqali amalga oshiriladi.

Koddan parcha:


1) kuchlanishni qo'llang:
digitalWrite(this->nTransmitterPin, HIGH);
2) nhighpulses mikrosaniyasida kechikish:
delayMicroseconds(nHighPulses);
3) kuchlanishni bo'shating:
digitalWrite(this->nTransmitterPin, LOW);
2) nlowpulses mikrosaniyasida kechikish:
delayMicroseconds(nLowPulses);

Yuborish yordam dasturi quyidagi kirish parametrlarini qabul qiladi:


-xabar mo'ljallangan qurilmaning kod kodi;
-buyruq-xabar-qurilmaga uzatiladigan buyruq.

Yuborish yordam dasturining umumiy mantig'i quyidagicha:


1. Biz kirish uchun qurilma kodini va ushbu qurilma uchun mo'ljallangan buyruqni olamiz.
2. Biz ushbu parametrlarni RCSwitch kutubxonasining send() usuliga o'tkazamiz, bu esa o'z navbatida buni translyatsiya simsiz protokoli orqali uzatish uchun xabarlarga kodlaydi.

2-rasm-send yordam dasturining sinf diagrammasi
IRSend
IR qabul qiluvchisi bo'lgan qurilmalarni boshqarish uchun GNU lirc loyihasida amalga oshirilgan irsend yordam dasturidan foydalaniladi. Irsend infraqizil transmitter bilan ishlaydi, undan foydalanib elektr jihozlarini boshqarish uchun buyruqlar yuboradi, masalan: televizorlar, karnay tizimlari va boshqalar.
Fon xizmatini tinglash
Tutun va oqish sensorlaridan xabarlarni olish uchun RaspberryPi gpio interfeysidagi o'zgarishlarni tinglaydigan fon xizmatidan foydalaniladi.

3-rasm-fon xizmatining sinf diagrammasi
11-rasmda RaspberryPi apparat platformasida ishlaydigan fon xizmatining sinf diagrammasi ko'rsatilgan. Rcswitch klassi simsiz qabul qilgich tomonidan qabul qilingan xabarlarni qabul qilish va dastlabki ishlov berish uchun javobgardir. WiringPi klassi uchinchi tomon wiringpi kutubxonasi bilan ishlashni tashkil qiladi va uskunani dastlabki sozlashni amalga oshiradi [10]. U GPIO pinlarini int tipidagi o'zgaruvchilarga ulashni amalga oshiradi. Bu o'zgaruvchilar qiymatlarini oddiy tekshirish orqali tarmoqdan xabarlarni olish imkonini beradi. Sensor, BaseModel sinflari va active record dizayn naqshini amalga oshirish orqali olingan ma'lumotlarning ma'lumotlar bazasiga saqlanishini ta'minlaydi. DBConnector-ma'lumotlar bazasiga to'g'ridan-to'g'ri ulanishni amalga oshiradigan sinf.
Xizmatning algoritmini quyidagi harakatlar zanjiri bilan tavsiflash mumkin:
1. Oqish yoki tutun sensori favqulodda vaziyat yuzaga kelganligi to'g'risida buyruq yuboradi.
2. AlarmDaemon faylining asosiy funktsiyasida.cpp GPIO bilan yangi kelgan xabarlarni tekshiradigan cheksiz tsiklni amalga oshiradi.
3. Agar biron bir sensordan favqulodda vaziyat haqida xabar kelgan bo'lsa, bu sensor holati sensor jadvalidagi ma'lumotlar bazasiga saqlanadi.
4. Agar keyinchalik sensordan favqulodda vaziyat tugashi haqida xabar kelgan bo'lsa, u holda sensorning holati sensor jadvalida ham yangilanadi.
5. Veb-interfeys bir xil ma'lumotlar bazasi bilan ishlaydi va sensorlar holatini vaqti-vaqti bilan tekshiradi. Agar sensorlardan biri "favqulodda vaziyat" holatiga ega bo'lsa, u foydalanuvchini xabardor qilish uchun veb-interfeysda ko'rsatiladi.
Download 288.89 Kb.




Download 288.89 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



RaspberryPi uchun amalga oshirish[9][11]

Download 288.89 Kb.