Mundarija:
- 1 -qadam: Sizga kerak bo'lgan narsadan oldin
- 2 -qadam: Sizga nima kerak - apparat
- 3 -qadam: Sizga kerak bo'lgan narsa - dasturiy ta'minot
- 4 -qadam: SQL Server ma'lumotlar bazasi
- 5 -qadam: ASP.NET SignalR Hub veb -ilovasi
- 6 -qadam: Python SignalR xizmati mijozi
- 7 -qadam: Arduino UNO IR uzatish eskizi va kodi
- 8 -qadam: tizimni ulash va sinovdan o'tkazish
- 9 -qadam: Tizim amalda
- 10 -qadam: Avtomatlashtirish tizimini va tegishli tuzatishlarni kuchaytirish
- 11 -qadam: Ma'lum muammolar va xavfsizlik muammolari
Video: Raspberry Pi-Arduino-SignalR uy avtomatlashtirish markazi: 11 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Bu erda va bu erda nashr etilgan bir nechta IBLE -larimdan so'ng, ushbu loyiha uyni avtomatlashtirish markazining asosiy versiyasini yaratish yo'lida birinchi qadamni qo'yadi.
Men ilgari o'rgangan narsalarimni va kunlar o'tishi bilan o'rganishda davom etayotgan yangi narsalarni qanday ishlatishim mumkinligini tushunishga harakat qilib, turli texnologiyalardan foydalandim.
Shunday qilib, ushbu avtomatlashtirish markazi quyidagi komponentlardan iborat:
SQL Server 2012 ma'lumotlar bazasi:
- oldindan belgilangan infraqizil (IQ) kodlari ro'yxatini noyob "kod kaliti" bilan birga jadvalda saqlaydi.
- kod kalitlari intuitiv ravishda nomlanadi (foydalanuvchi tomonidan), ular bilan bog'liq bo'lgan IR kodlarining maqsadini aniqlash uchun
Haqiqiy vaqtda ASP. NET SignalR Hub veb-ilovasi:
- HTML -mijozga qaragan foydalanuvchidan buyruqlar sifatida "kod kalitlari" ni kutadi va oladi
- qabul qilinganda, SQL ma'lumotlar bazasiga ulanadi va berilgan kodli kalit yordamida IR kodini oladi
- olingan IR kodini Python SignalR mijoziga o'tkazadi
HTML SignalR boshqaruv paneli mijoziga qaragan foydalanuvchi:
- jQuery SignalR Client API -lari orqali Hub -ga yagona kod kalitini yuboradi
- Boshqaruv panelidagi har bir tugma SQL ma'lumotlar bazasi jadvalida yozilgan noyob kod kalitini ifodalaydi
Raspberry Pi 2.0 da ishlaydigan Python SignalR fon xizmatining ilovasi:
- Hubdan buyruq sifatida IR kodlarini oladi
- IR kodida chegarachilarni qidiradi va juda uzun kodni segmentlarga ajratadi
- ketma -ket port orqali Arduino bilan bog'lanadi va har bir segmentni ketma -ket yozadi
Arduino IQ transmitterining eskizi:
- Seriya porti orqali IR kodining har bir segmentini kutadi va oladi
- kod segmentlarini IR kod bufer qatoriga yig'adi
- buferni IRLib Arduino kutubxonasi yordamida IQ uzatish buyrug'iga to'playdi
Agar maqsadli qurilma IQ uzatgichi yaqinida bo'lsa, qurilma Arduino uzatadigan IQ signaliga javob berishi mumkin.
ESLATMA
Garchi, men ko'rsatishda ishlatadigan maqsadli qurilma IQ signallariga javob bersa ham, men boshqa IBLE bo'limimni o'qishni xohlashingiz mumkin, chunki men nima uchun qurilma IQ signaliga javob berishi mumkin.
Yugurish vaqti.
1 -qadam: Sizga kerak bo'lgan narsadan oldin
Bu ko'rsatma oldin bajarilgan ba'zi ishlar bilan boshlanadi, bu esa mening oxirgi IBLE ga olib keladi.
Shunday qilib, biz IBLE -ga kerak bo'lgan narsaga kirishdan oldin, ushbu ko'rsatmalarni o'qish tavsiya etiladi:
- Arduino IRLib infraqizil kutubxonasi o'rnatildi
- Ushbu IBLE -da ishlatilgan IR kodlari IQ qabul qilgich yordamida qanday olingan
- IQ uzatuvchi orqali maqsadli qurilmani boshqarish uchun qo'lga kiritilgan IR kodlari qanday ishlatilgan
Ushbu IBLE tugagandan so'ng, men ASP. NET IR kod yozuvchisi veb -ilovasini joylashtirdim:
- Qabul qilingan IR kodini intuitiv ravishda nomlangan kodli kalit bilan veb -shakl orqali kirish sifatida qabul qiling
- Arduino Uno -ning ketma -ket bufer chegarasida qolish uchun IQ kodini 64 belgidan kam bo'laklarga bo'ling.
- Kodlarning oxirgi qismi "E" belgisi bilan oldindan tuzilgan bo'lishi kerak, bu Arduino-ga kodning oxirgi segmentini olganligini ko'rsatadi.
- Har bir segment uzun ipga yig'ilishidan oldin quvur ajratuvchi bilan ajratilgan bo'lar edi
- Nihoyat, segmentlangan IR kodi va uning kalit kaliti SQL Server 2012 ma'lumotlar bazasida saqlandi
Aynan mana shu SQL ma'lumotlar bazasi, bu IBLE -da ishlab chiqilgan uy avtomatlashtirish markazining tarkibiy qismlaridan birini tashkil qiladi.
ESLATMA
IR kod yozuvchisi veb -ilovasi quyidagi sabablarga ko'ra bu erda muhokama qilinmaydi:
- Siz Arduino Sketch yordamida kodlarni qo'lda yozib olishingiz, ularni quvurlar bilan ajratilgan bo'limlarga ajratishingiz va ma'lumotlar bazasida saqlashingiz mumkin.
- Ushbu IBLEdan farqli o'laroq, IR yozuvchisi Arduino -dan Raspberry Pi -ga teskari aloqaga e'tibor qaratadi
Shuning uchun ushbu loyiha tafsilotlari boshqa IBLE uchun mavzu bo'ladi
2 -qadam: Sizga nima kerak - apparat
Ishlayotgan Raspberry Pi 2.0 - Men Ubuntu Mate -ni o'rnatishni maslahat beraman, chunki u boy xususiyatlarga ega, shu jumladan OpenLibre Office, bu ma'lumotni Raspberry Pi -da hujjatlashtirishda zarur edi.
Pi -ga qo'shimcha ravishda sizga quyidagi tashqi vositalar kerak bo'ladi.
- Arduino Uno prototiplash platformasi yoki klon
- IQ uzatuvchi LED - men Amazon.com saytidan Uch oyoqli brenddan foydalanardim
- 330 yoki 220 Ohmli rezistorlar-Men 220 (rang kodi Qizil-Qizil-Qora) ishlatardim, chunki menda bir nechta qulay narsalar bor edi.
- Oddiy non paneli, ulagichlar va Arduino Environment o'rnatilgan kompyuter
- Sinovga nomzod - masalan, hamma joyda joylashgan Samsung LED monitor, masofadan boshqarish pulti
3 -qadam: Sizga kerak bo'lgan narsa - dasturiy ta'minot
Barcha qismlarni birlashtirish uchun quyidagi dasturiy ta'minotni o'rnatish va ishga tushirish kerak bo'ladi:
Raspberry Pi -da siz quyidagilarni o'rnatishingiz kerak bo'ladi:
- Arduino IDE - eskizni yaratish va UNOga ko'rsatish uchun ishlatilgan
- Arduino uchun Python moduli - UNO va Pi o'rtasidagi ketma -ket aloqa uchun
- Python SignalR mijozlar kutubxonasi - Siz bu erda biriktirilgan ko'rsatmalarga murojaat qilishingiz mumkin
Quyidagi ishlab chiqish muhiti o'rnatilgan Windows mashinasi:
- SignalR uyasi va veb -mijoz dasturini yaratish uchun Microsoft Visual Studio Express 2013 -ning bepul nashri
- Ma'lumotlar bazasini yaratish va yaratish uchun SQL Server 2012 Express-ning bepul nashri
Windows Internet axborot serveri (IIS) xosting muhiti:
- SignalR uyasi va veb -mijozi qurilib, sinovdan o'tkazilgach, uni mahalliy IIS serveriga joylashtirish kerak bo'ladi.
- Menimcha, men uy tarmog'imda Windows 7 IIS bilan ishlaydigan eski noutbukdan foydalanishni rejalashtiryapman
ESLATMA
Barcha ko'rsatmalar Python 2.7.x versiyasiga tegishli. 3.0 versiyasi qayta yozishni talab qilishi mumkin
4 -qadam: SQL Server ma'lumotlar bazasi
Ilova qilingan sxema ushbu dasturda ishlatiladigan va faqat ikkita jadvalni o'z ichiga olgan asosiy SQL Server ma'lumotlar bazasining tuzilishini ko'rsatadi.
AutoHubCode jadvali
Jadvaldagi ikkita muhim ustun:
AutoCodeKey - kod kalitining foydalanuvchilarga qulay nomini saqlaydi
Har bir kod tugmachasi avtomatlashtirish mijozi tomonidan uzatiladi - bizning holda, veb -sahifadagi HTML tugmasi
AutoCodeVal - infraqizil kodning ketma -ketligini saqlaydi
Bu SignalR Hub javoban mijozga qaytariladigan haqiqiy IR kod
Bunday holda, uyaga doimiy aloqada bo'lgan Python mijozi IQ kodi ketma -ketligini oladi va uni ketma -ket port orqali Arduino UNOga uzatadi.
AutoHubLog jadvali
- Avtomatlashtirish mijozi talab qilgan kodni qayd qiladi.
- Bu tizim kim tomonidan va qachon ishlatilganligini va qaysi kod so'ralganligini kuzatish o'lchovidir
Aytganimdek, men tanlagan ma'lumotlar bazasi platformasi sifatida SQL Server 2012 -dan foydalandim. Siz ushbu oddiy dizaynni boshqa ma'lumotlar bazasi platformasida, masalan, MySQL, Oracle va boshqalarda qayta yaratishingiz mumkin.
Shunga qaramay, bu ma'lumotlar bazasini yaratish uchun SQL Skript bu erda biriktirilgan
ESLATMA
- SignalR uyasi uchun kod SQL Server 2012 ma'lumotlar bazasiga ulanish uchun mo'ljallangan
- Boshqa ma'lumotlar bazasi bilan ishlash Hub -ni boshqa ma'lumotlar bazasi drayveridan foydalanishni o'zgartirishni anglatadi
5 -qadam: ASP. NET SignalR Hub veb -ilovasi
ASP. NET SignalR Hub veb -ilovasi birgalikda biriktirilgan sxemada ko'rsatilgan quyidagi komponentlardan iborat:
1 -bo'lim - mijozdan so'rovlarni qabul qiladigan va ularga javob beradigan SignalR uyasi
2, 4 -bo'limlar - HTML mijozining veb -sahifasi va uning uslublar jadvali, bu avtomatlashtirish tizimining old qismini birlashtiradi va avtomatlashtirish markaziga buyruqlar beradi.
3 -bo'lim - HTML mijozi tomonidan avtomatlashtirish markaziga ulanish uchun ishlatiladigan jQuery SignalR API -lari.
5 -bo'lim - SignalR uyasi ma'lumotlar bazasi bilan bevosita aloqa qilmaydi. Buni Entity Framework yordamida yaratilgan oraliq sinflar orqali amalga oshiradi
Bu sinflar ma'lumotlar bazasi tafsilotlarini oldingi ilovadan mavhumlashtiradi
6 -bo'lim - SQL ma'lumotlar bazasida o'qish -yozish operatsiyalarini bajarishga yordam beradigan ma'lumotlar bazasi xizmatlari sinfi (ilgari tasvirlangan) Entity Framework sinflari yordamida.
ASP. NET va SignalR - bu Microsoft texnologiyalari va bu qo'llanma sizga oddiy SignalR ilovasi qanday qurilishi va joylashishi haqida ma'lumot beradi.
Men bu erda qurgan narsalarim bu darslikdan olingan asoslarga asoslangan. Qachon joylashtirilsa, dastur ikkinchi rasmda ko'rsatilgan veb -sahifaga o'xshash bo'lishi kerak
KODDA QAYD
Kodning o'chirilgan versiyasi bo'lgan ZIP fayli biriktirilgan
Jildning tuzilishi vizualda ko'rsatilgandek, lekin qo'shimchaning hajmini kamaytirish uchun barcha ramka sinflari va jQuery skriptlari olib tashlangan.
Tavsiya shundaki, bu kodni qo'llanma sifatida ishlatish kerak, chunki yuqoridagi o'quv havolasini bosib yangi SignalR Web ilovasini yaratganingizda, eng yangi jQuery kutubxonalari va ASP. NET ramka sinflari avtomatik ravishda qo'shiladi.
Shuningdek, index.html sahifasidagi jQuery skriptlariga havolalar jQuery SignalR mijoz kutubxonalarining so'nggi versiyasini aks ettirishi uchun o'zgartirilishi kerak, ular veb -ilovangizni yaratganingizda avtomatik ravishda qo'shiladi.
Nihoyat, Web.config* nomli fayllardagi ma'lumotlar bazasiga mos keladigan ulanish satrini o'zgartirish kerak bo'ladi.
6 -qadam: Python SignalR xizmati mijozi
HTML SignalR mijozi old tomonga qaraydigan foydalanuvchi interfeysi bo'lsa -da, Python mijozi - bu xizmat ko'rsatuvchi dastur bo'lib, uning asosiy vazifasi Hub tomonidan uzatiladigan IR kodini qabul qilish va uni ketma -ket aloqa orqali Arduino UNOga yuborishdir.
Qo'shilgan kod o'z-o'zidan tushunarli va uning funksionalligini tasvirlash uchun etarli darajada hujjatlashtirilgan
Kompozit ekran tasvirida ko'rsatilgandek, HTML Client va Python Service mijozi SignalR Hub orqali quyidagicha aloqa o'rnatadilar:
- Avtomatlashtirish tizimining foydalanuvchisi tugmani bosish orqali Hubga buyruq beradi
- Har bir tugma IR kalit kodi bilan bog'liq va bosilganda bu kod Hubga uzatiladi
-
Hub ushbu kodni oladi, ma'lumotlar bazasiga ulanadi va IR signalining xom kodini oladi va uni barcha ulangan mijozlarga qaytaradi.
Shu bilan birga, Hub AutoHubLog ma'lumotlar bazasi jadvaliga kirishni qayd qiladi va u uzoq mijozlar talab qilgan sana va vaqtni yozib qo'yadi
- Python xizmat mijozi IR kodini oladi va uni qayta ishlash uchun Arduino UNOga uzatadi
7 -qadam: Arduino UNO IR uzatish eskizi va kodi
Vizualda ko'rsatilgan Arduino sxemasi bu tizim uchun juda oddiy va shuning uchun qisqacha tasvirlangan:
- Rangsiz IQ LEDni UNO raqamli PIN 3 ga ulash lozim - bu IRLib Arduino kutubxonasining talabidir.
- Sabablari IRLib kutubxonasi bilan bog'liq bo'limda masofadan boshqarish pultini klonlash haqidagi oldingi IBLE -da tasvirlangan
- Raqamli PIN 4 -ga ulangan Yashil LED - bu BMT Raspberry Pi -da ishlaydigan Python mijozidan IR kodining barcha bo'limlarini olganida yonib turadigan vizual ko'rsatkich.
- Ushbu LED yoritgichi Raspberry Pi va UNO o'rtasidagi ketma -ket aloqa ishlayotganligini tasdiqlaydi
- Serial aloqani yoqish uchun UNO Raspberry Pi -ga USB port orqali ulangan
- Qo'shilgan Arduino Sketch o'z vazifasini tasvirlash uchun etarlicha izohlangan
- Kodning yuqori qismidagi izohlar, shuningdek, kontaktlarning zanglashiga olib kelishi kerakligini tasvirlaydi
ESLATMA
Amalda, Arduino va Pi birgalikda Pi, Arduino -ni boshqaradigan, shuningdek IQ LED orqali kuchli signal uzatadigan kuchli USB uyasiga ulanishi mumkin.
8 -qadam: tizimni ulash va sinovdan o'tkazish
- HTML mijozi ASP. NET SignalR uyasini, SQL Server 2012 ma'lumotlar bazasi bilan birgalikda mahalliy uy tarmog'ingizdagi Internet axborot serveriga (IIS) yarating va joylashtiring.
-
HTML SignalR mijozini HTTP orqali ochish orqali veb -ilovaga kiring
bu sahifaning URL manzili odatda https:// yourComputer: port_number/
-
Boshqarish panelidagi tugmani bosing va agar dastur to'g'ri joylashtirilgan bo'lsa, Hub javob beradi, IR kodini qaytaradi va uni boshqaruv paneli yonidagi kulrang panelda ko'rsatadi.
Eslab qoling! IQ qabul qiluvchilar kutubxonasini o'rnatish va oldingi IBLE -da tasvirlangan kodlarni olish orqali kodlarni ma'lumotlar bazangizga yuklashingiz kerak bo'ladi
-
Arduino -ni Raspberry Pi -ga USB orqali ulang - Pi -da Arduino IDE -ni oching va UNO Pi bilan aloqa o'rnatishi mumkinligiga ishonch hosil qiling.
Arduino -dagi o'quv qo'llanmalari bunga tezda erishishga yordam beradi
-
Python kodini oching va muhitingizga mos ravishda quyidagi o'zgartirishlarni kiriting
- 4 -qadamdan olingan UNO -ning ketma -ket port manzili
- SignalR markazining URL manzili 2 -bosqichdagi mahalliy URL manzilingizga mos keladi - bu misolda u https:// yourComputer: port_number/signalr bo'ladi.
- Nihoyat, Raspberry Pi -dagi Arduino IDE -dagi Arduino eskizini oching va UNO -ga yoqing.
- Devorni ushlab turadigan non taxtasini nazorat qilinadigan asbob bilan yaqin joylashtiring - IQ LED, qurilmaning IQ qabul qilish porti bilan aniq ko'rish chizig'iga ega bo'lishi kerak.
- Python IDLE asboblar panelidagi F5 tugmasini bosib Raspberry Pi -da Python dasturini ishga tushiring
- HTML mijoz dasturining Boshqarish paneliga qayting (2 -qadam) va tugmani bosing (Quvvatni yoqish yoki Ovozni ko'tarish kabi).
Agar tizim to'g'ri sozlangan bo'lsa, siz telefoningiz yoki planshetingizdagi HTML mijoz sahifasini ochib, HTML -mijoz sahifangizdagi tugmalar yordamida qurilmangizni boshqarishingiz kerak.
9 -qadam: Tizim amalda
Yuqoridagi tasvirlar uyni avtomatlashtirish tizimi o'rnatilgandan so'ng ishlayotganini ko'rsatadi.
IBLE nashr etilganidan beri men VIZIO LED televizoridan bir nechta IR kodlarini yozib, interfeysni kengaytirdim
Birinchi vizual qurilmada masofadan boshqarish pulti bilan yonma -yon ko'rsatilgandek, bu masofadan boshqarish pultining bir nechta muhim funktsiyalari mening planshetim orqali kiradigan veb -interfeysga o'rnatilgan.
Keyingi ingl. Veb -interfeysdan berilgan buyruqlarga javob berib, televizor orqa tomonda planshetni birinchi o'ringa qo'yadi.
- Quvvatni o'chirish buyrug'i - televizor o'chadi
- Quvvatni yoqish buyrug'i - televizor yoqiladi va ekran yoqilganda "V" belgisi paydo bo'ladi
- Ovozni o'chirish buyrug'i - gorizontal chiziq karnayning ovozini o'chiradi
Barcha testlarda, kulrang maydon planshet ekranidagi asboblar paneli yonida mijoz tomonidan berilgan buyruq va masofadan signal SignalR uyasi tomonidan qaytariladi.
10 -qadam: Avtomatlashtirish tizimini va tegishli tuzatishlarni kuchaytirish
Bu tizimni turli tizimlardan olingan ko'proq kodlarni qo'shish orqali uzaytirish mumkin. Bu qism oson bo'lsa -da, yana ikkita omilni hisobga olish kerak.
Yaxshilash 1 (tez): turli uzunlikdagi IQ signallari bilan ishlash
-
Turli tizimlarning IQ kodlari har xil uzunliklarda, hatto bitta ishlab chiqaruvchining ikkita mahsuloti orasida ham bo'ladi.
Masalan, bu holda LED televizorining IQ kodli massiv uzunligi 67, Samsung Sound Barniki esa 87 ga yaqin
- Bu shuni anglatadiki, agar men birinchi navbatda Sound Bar -ni yoqgan bo'lsam, Arduino eskizidagi IQ Buffer qatori 87 kodni o'z ichiga olgan IR kod ketma -ketligi bilan to'ldiriladi.
- Agar men LED -televizorni yoqgan bo'lsam, u IQ Bufer massivini atigi 67 ta kod bilan to'ldiradi, lekin oldingi operatsiyadan qolgan 20 ta kod hali ham shunday bo'ladi.
Natija? LED -televizor yoqilmaydi, chunki IR kodining buferi oldingi operatsiyadan tozalanmagan qo'shimcha 20 ta kod buzilgan!
Tuzatish 1 (chiqishning oson yo'li, tavsiya etilmaydi)
Arduino eskizini quyidagicha o'zgartiring:
Loop () {} funktsiyasida quyidagi funktsiya chaqiruvlarini o'zgartiring
transmitIRCode ();
IRCode (c) ni yuborish;
Yuqoridagi funktsiyani imzosiga o'zgartirishlar kiriting:
void transmitIRCode (int codeLen) {// RAWBUF doimiysi codeLen bilan almashtirildi IRTransmitter. IRSendRaw:: send (IRCodeBuffer, codeLen, 38); }
Bu oson bo'lsa -da, qator hech qachon to'liq tozalanmaydi va shuning uchun bu juda toza echim emas
Tuzatish 2 (qiyin emas, tavsiya etiladi)
Sharhlar bo'limidan so'ng, Arduino Sketch -ning yuqori qismida qo'shimcha o'zgaruvchini e'lon qiling:
imzosiz int EMPTY_INT_VALUE;
Buni setup () funktsiyasining yuqori qismiga qo'shing:
// Bo'sh imzo qo'yilmagan butun sonli o'zgaruvchining tabiiy holatini olingEMPTY_INT_VALUE = IRCodeBuffer [0];
Pastga siljiting va transmitIRCode () funktsiyasidan so'ng darhol eskizga yangi funksiya qo'shing:
void clearIRCodeBuffer (int codeLen) {// Barcha kodlarni massivdan tozalash // QAYD: qator elementlarini 0 ga o'rnatish-bu yechim emas! (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}
Nihoyat, loop () funktsiyasining quyidagi joyida yuqoridagi yangi funktsiyani chaqiring:
// Nolga o'rnatish - ketma -ket PortclearIRCodeBuffer (c) o'qishni davom ettiring;…
Bu yanada aniqroq yondashuv, chunki u IR -bufer massividagi IR manzilining so'nggi signallari bilan to'ldirilgan barcha joylarni hech narsaga yo'l qo'ymasdan qaytaradi.
2 -sonli takomillashtirish (Qo'shimcha): Ba'zi qurilmalar uchun IR signal uzatilishini takrorlash
Ba'zi qurilmalar javob berish uchun bir xil signalni bir necha marta uzatishni talab qiladi, masalan: Bunday holda, Samsung Sound Bar bir xil kodni 2 soniya bo'shliq bilan ikki marta yuborilishini talab qiladi
Kontseptsiyani tuzatish bu erda muhokama qilingan, chunki u biroz ko'proq ishtirok etadi va sinovdan o'tishi kerak
Ardunio Sketch -ga takroriy funktsiyani qo'shish, siz uy avtomatlashtirish tizimiga har safar yangi qurilmani qo'shganingizda, eskizni o'chirishingiz kerakligini bildiradi.
Buning o'rniga, HTML SignalR mijoziga va Python SignalR Service ilovasiga ushbu tuzatish qo'shilishi, bu yechimni ancha moslashuvchan qiladi. Va bunga printsipial ravishda quyidagicha erishish mumkin:
Hubga takroriy ma'lumotlarni uzatish uchun SignalR HTML mijozini o'zgartiring
Index.html -ni oching va takrorlash qiymatini HTML tugmasiga joylashtiring:
value = "SMSNG-SB-PWR-ON" qiymati = "SMSNG-SB-PWR-ON_2_1000" bo'ladi.
Bu erda, 2 - takroriy qiymat va 1000 - ikkita takroriy signal orasidagi millisekundlarda kechikish qiymati
Bu tugmani bosganingizda, SignalR uyasi Key Code+Repeat_Spec -ni oladi
SignalR Server usullarini o'zgartiring, faqat kalit kodini ajratib oling:
- IR kodini ma'lumotlar bazasidan odatdagidek olish uchun kalit kodidan foydalaning
- SingalR mijozlariga odatdagidek kalit kodi+Repeat_Spec va IRCode -ni yuboring
Takrorlash qiymatlari yordamida signallarni uzatish uchun Python SignalR Service ilovasini o'zgartiring:
Python mijozini oching va quyidagi ikkita funktsiyani o'zgartiring:
def print_command_from_hub (buttonId, cmdSrc):
# takrorlash kodini buttonId qiymatidan ajrating
def transmitToArduino (IRSignalCode, delim, endPrefix):
# signalni kerakli chastotada uzatish uchun bir muncha vaqt yoki tsiklni o'rnating
- Shunday qilib, Arduino -ni qayta -qayta chaqirish shart emas
- Ushbu tizimga har qanday takroriy chastotalar kiritilishi mumkin
- Bundan tashqari, agar siz UNO -dan foydalansangiz, sizning eskizingiz hajmining chegarasi bor!
11 -qadam: Ma'lum muammolar va xavfsizlik muammolari
Birinchi marta qurilgan tizimlarda bo'lgani kabi, bu sinov paytida paydo bo'lgan bir nechta muammolarga ega.
1 -masala: Buyruqlarni ketma -ket ishga tushirish, tugmachalarni bosish orasida bir soniyadan kamroq vaqtga kechikishlar bilan, tizim birinchi ikki marta javob berganidan keyin javob bermay qo'ydi.
- Python SignalR mijozini qayta ishga tushirish tizimni normal ishlashiga qaytaradi
- Python SignalR Client -da, Arduino Sketch -da keraksiz disk raskadrovka chiqishini olib tashlash va bu testlarni takrorlash darhol hal qilinishi mumkin.
- Ko'rib chiqiladigan yana bir joy - ketma -ket aloqaning o'zi - buferni tezda tozalash uchun kod qo'shish mumkinmi?
Aytgancha, men televizorim zavod masofadan boshqarish pultiga yaxshi javob bermayotganini payqadim, shuning uchun televizorimning IQ -aloqa texnologiyasi ham bunga hissa qo'shishi mumkin.
2 -masala: HTML ekrani uzoq vaqt harakatsizlikdan so'ng tugmachalarni bosishga javob berishni to'xtatadi
Odatda sahifani yangilash bu xatti -harakatni hal qiladi - bu xatti -harakatning sababi hali aniq emas
XAVFSIZLIK Xavotirlar
Bu tizim faqat mahalliy (uy) tarmoqdan foydalanish uchun mo'ljallangan va Internetda foydalanish uchun zarur xavfsizlik choralariga ega emas
Shuning uchun SignalR uyasini mahalliy/uy tarmog'ingizdagi mahalliy mashinaga joylashtirish tavsiya etiladi
IBLE -ni o'qiganingiz uchun tashakkur va umid qilamanki, siz zavqlanasiz!
Tavsiya:
1981 yil Portativ VCR Raspberry PI Media markazi: 12 qadam (rasmlar bilan)
1981 yil Portativ VCR Raspberry PI Media markazi: Bu 80 -yillarning boshlarida Sharp VC -2300H portativ videomagnitafonini aylantirganman - hozirda uning markazida Raspbmc media -markazining ajoyib dasturiy ta'minoti bor. Boshqa yangilanishlarga arduino asosidagi bema'ni soat va EL simli "tasma" kiradi
Stm32 -ga tushish: uy media markazi uchun masofadan boshqarish pulti: 4 qadam (rasmlar bilan)
Stm32 yiqilib tushdi: uy media markazi uchun masofadan boshqarish pulti - bu "bluepill" taxtasi deb nomlanuvchi stt32f103c8t6 smt32 mikro boshqaruvchisiga asoslangan uy media markazining masofadan boshqarish pultining to'liq prototipi. Aytaylik, siz uy media markazi uchun shaxsiy kompyuterdan foydalanayapsiz. Bu juda moslashuvchan yechim, bu sizga
Raqamli devor taqvimi va uy haqida ma'lumot markazi: 24 qadam (rasmlar bilan)
Raqamli devor taqvimi va uy haqida ma'lumot markazi: Men bu yo'riqnomada eski tekis ekranli televizorni Raspberry Pi bilan ishlaydigan yog'ochdan yasalgan raqamli devorga o'rnatilgan taqvim taqvimini va uy ma'lumot markazini yoqaman. Maqsad bir qarashda kirish edi. barcha a'zolari uchun tegishli ma'lumotlar
ESP8266 va PubNub bilan IoT yoqilgan sensorli ma'lumotlarni yig'ish markazi: 9 qadam (rasmlar bilan)
ESP8266 va PubNub bilan IoT yoqilgan sensorlar ma'lumotlarini yig'ish markazi: ESP8266 -dagi ko'pgina darsliklar yangi darajadagi (masofadan boshqariladigan chiroqni o'chirish) yoki o'z qobiliyatini yaxshilash va takomillashtirishni qidirayotganlar uchun juda murakkab. o'rgatuvchi maqsad bu bo'shliqni yaratishga qaratilgan
Raspberry Pi: devorga o'rnatilgan taqvim va xabarnoma markazi: 5 qadam (rasmlar bilan)
Raspberry Pi: Devorga o'rnatilgan taqvim va xabarnoma markazi: "raqamli asrdan oldin"; ko'p oilalar bo'lajak voqealarning har oylik ko'rinishini ko'rsatish uchun devor taqvimidan foydalangan. Devorga o'rnatilgan taqvimning zamonaviy versiyasi bir xil asosiy funktsiyalarni o'z ichiga oladi: Har oylik kun tartibini oila a'zolarini sinxronlashtirish