Turinys:
- 1 žingsnis: ko jums reikia, prieš tai, ko jums reikia
- 2 žingsnis: ko jums reikia - aparatinė įranga
- 3 žingsnis: ko jums reikia - programinė įranga
- 4 veiksmas: SQL serverio duomenų bazė
- 5 veiksmas: žiniatinklio programa „ASP.NET SignalR Hub“
- 6 veiksmas: „Python SignalR“paslaugų klientas
- 7 žingsnis: „Arduino UNO“IR perdavimo eskizas ir kodas
- 8 veiksmas: sistemos prijungimas ir bandymas
- 9 žingsnis: Sistema veikia
- 10 veiksmas: patobulinkite automatikos sistemą ir susijusias pataisas
- 11 veiksmas: žinomos problemos ir saugumo problemos
Video: „Raspberry Pi-Arduino-SignalR“namų automatikos centras: 11 žingsnių (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Po kelių čia ir čia paskelbtų mano įžanginių IBLE, šis projektas žengia pirmąjį žingsnį kuriant pagrindinę funkcinio namų automatizavimo centro versiją.
Aš panaudojau kelias skirtingas technologijas, siekdamas suvokti, kaip galėčiau panaudoti visus dalykus, kuriuos išmokau praeityje, ir naujus dalykus, kurių aš ir toliau mokuosi eidamas į priekį.
Todėl šį automatikos centrą sudaro šie komponentai:
„SQL Server 2012“duomenų bazė, kurioje:
- lentelėje kartu su unikaliu „kodo raktu“saugo iš anksto nustatytų infraraudonųjų spindulių (IR) kodų sąrašą
- kodo raktai intuityviai įvardijami (vartotojo), kad būtų galima nustatyti su jais susijusių IR kodų paskirtį
Realaus laiko ASP. NET „SignalR Hub“žiniatinklio programa, kuri:
- laukia ir gauna „kodo raktus“kaip komandas iš vartotojo, susiduriančio su HTML klientu
- kai gaunamas, prisijungia prie SQL duomenų bazės ir nuskaito IR kodą naudodamas pateiktą kodo raktą
- perduoda gautą IR kodą „Python SignalR“klientui
Vartotojas, susidūręs su „HTML SignalR“informacijos suvestinės klientu, kuris:
- perduoda „Hub“unikalų kodo raktą per „jQuery SignalR Client“API
- kiekvienas mygtukas prietaisų skydelyje parodys unikalų kodo raktą, įrašytą SQL duomenų bazės lentelėje
„Python SignalR“foninės paslaugos programa, veikianti „Raspberry Pi 2.0“, kuri:
- gauna IR kodus kaip komandas iš koncentratoriaus
- ieško ribų IR kodekse ir suskaido labai ilgą kodą į segmentus
- per serijinį prievadą bendrauja su „Arduino“ir išrašo kiekvieną segmentą iš eilės
„Arduino“IR siųstuvo eskizas, kuriame:
- laukia ir gauna kiekvieną IR kodo segmentą per nuoseklųjį prievadą
- surenka kodo segmentus į IR kodo buferio masyvą
- naudojant IRLib Arduino biblioteką buferį supakuoja į IR perdavimo komandą
Jei tikslinis prietaisas yra šalia IR siųstuvo, prietaisas (gali) reaguoti į „Arduino“perduodamą IR signalą
PASTABA
Nors tikslinis prietaisas, kurį naudoju šioje demonstracijoje, reaguoja į IR signalus, galbūt norėsite perskaityti šį mano IBLE skyrių dėl priežasčių, kodėl sakau, kad prietaisas (gali) reaguoti į IR signalą.
Laikas riedėti.
1 žingsnis: ko jums reikia, prieš tai, ko jums reikia
Šis pamokomas darbas prasideda nuo kai kurių anksčiau atliktų darbų, kurie taip pat lėmė mano paskutinį IBLE.
Taigi, prieš imdamiesi to, ko mums reikia šiam IBLE, rekomenduojama perskaityti šią instrukciją, kad sužinotumėte, kaip:
- Buvo įkurta „Arduino IRLib“infraraudonųjų spindulių biblioteka
- Kaip šiame IBLE naudojami IR kodai buvo užfiksuoti naudojant IR imtuvą
- Kaip užfiksuoti IR kodai buvo naudojami tikslinio prietaiso valdymui per IR siųstuvą
Baigęs šį IBLE, aš įdiegiau ASP. NET IR kodų įrašymo žiniatinklio programą, kuri:
- Priimkite užfiksuotą IR kodą kartu su intuityviai įvardytu kodo raktu kaip įvestį per žiniatinklio formą
- Padalinkite labai ilgą IR kodą į trumpesnius nei 64 simbolių segmentus, kad neviršytumėte „Arduino Uno“serijos buferio ribos
- Paskutinis kodų segmentas būtų iš anksto pritvirtintas „E“, kuris „Arduino“nurodo, kad jis gavo paskutinį kodo segmentą
- Kiekvienas segmentas būtų atskirtas vamzdžių ribotuvu, prieš jį surenkant į ilgą eilutę
- Galiausiai segmentuotas IR kodas kartu su jo kodo raktu buvo išsaugotas „SQL Server 2012“duomenų bazėje
Būtent ši SQL duomenų bazė yra vienas iš namų automatizavimo centro komponentų, sukurtų šiame IBLE.
PASTABA
IR kodo įrašymo žiniatinklio programa čia nėra diskusijos dalis dėl šių priežasčių:
- Galite rankiniu būdu užfiksuoti kodus naudodami „Arduino Sketch“, padalyti juos į vamzdžiais atskirtus skyrius ir išsaugoti juos duomenų bazėje, nesukurdami sudėtingos žiniatinklio programos
- Skirtingai nuo šio IBLE, IR įrašymo įrenginys sutelkia dėmesį į atvirkštinį ryšį iš „Arduino“į „Raspberry Pi“
Todėl išsami informacija apie šį projektą būtų kito IBLE tema
2 žingsnis: ko jums reikia - aparatinė įranga
Veikiantis „Raspberry Pi 2.0“- rekomenduoju įdiegti „Ubuntu Mate“, nes jis turi turtingesnį funkcijų rinkinį, įskaitant „OpenLibre Office“, kuris, beje, buvo būtinas dokumentuojant šį pamokomą dokumentą „Raspberry Pi“.
Be to, „Pi“jums reikės šių išorinių elementų:
- „Arduino Uno“prototipų platforma arba klonas
- IR siųstuvų šviesos diodas - naudojau prekės ženklą „Three Legs“iš „Amazon.com“
- 330 arba 220 omų rezistoriai-aš naudoju 220 (spalvos kodas raudona-raudona-ruda), nes turėjau kelis patogius
- Įprasta duonos lenta, jungtys ir kompiuteris su įdiegta „Arduino Environment“
- Bandomasis kandidatas - pavyzdžiui, visur esantis „Samsung“LED monitorius su nuotolinio valdymo pultu
3 žingsnis: ko jums reikia - programinė įranga
Norėdami sujungti visas dalis, turėsite įdiegti ir paleisti šią programinės įrangos sąranką:
„Raspberry Pi“turėsite įdiegti šiuos dalykus:
- „Arduino IDE“- naudojamas eskizui sukurti ir perduoti UNO
- „Python“modulis „Arduino“- skirtas serijiniam ryšiui tarp UNO ir „Pi“
- „Python SignalR“klientų biblioteka - galite vadovautis čia pateiktomis instrukcijomis
„Windows“mašina, kurioje įdiegta ši kūrimo aplinka:
- Nemokamas „Microsoft Visual Studio Express 2013“leidimas „SignalR Hub“ir žiniatinklio kliento programai kurti
- Nemokamas „SQL Server 2012 Express“leidimas, skirtas suplanuoti ir sukurti užpakalinę duomenų bazę
„Windows“interneto informacijos serverio (IIS) prieglobos aplinka:
- Sukūrus ir išbandžius „SignalR Hub“ir žiniatinklio klientą, juos reikės įdiegti į vietinį IIS serverį
- Mano atveju namų tinkle planuoju naudoti seną nešiojamąjį kompiuterį, kuriame veikia „Windows 7“su IIS
PASTABA
Visos instrukcijos taikomos „Python 2.7.x“versijai. 3.0 versiją gali reikėti perrašyti
4 veiksmas: SQL serverio duomenų bazė
Pridedama schema rodo pagrindinės SQL serverio duomenų bazės struktūrą, naudojamą šioje programoje, ir yra tik dvi lentelės.
Lentelė AutoHubCode
Du svarbūs šios lentelės stulpeliai yra šie:
„AutoCodeKey“- saugo patogų kodo rakto pavadinimą
Kiekvieną kodo raktą perduoda automatikos klientas - mūsų atveju HTML mygtukas iš tinklalapio
„AutoCodeVal“- saugo neapdorotą IR kodo seką
Tai yra tikrasis IR kodas, kurį „SignalR Hub“atsako atgal klientui
Šiuo atveju „Python“klientas, nuolat palaikantis ryšį su centru, gauna IR kodo seką ir perduoda ją per nuoseklųjį prievadą „Arduino UNO“
Lentelė AutoHubLog
- Įregistruoja automatizavimo kliento prašomą kodą.
- Tai priemonė, skirta stebėti, kas ir kada naudojo sistemą ir kokio kodo buvo paprašyta
Kaip minėta, kaip pasirinktą duomenų bazės platformą naudojau „SQL Server 2012“. Galite atkurti šį paprastą dizainą kitoje duomenų bazės platformoje, pvz., „MySQL“, „Oracle“ir kt.
Nepaisant to, čia pridėtas SQL scenarijus šiai duomenų bazei sukurti
PASTABA
- „SignalR Hub“kodas skirtas prisijungti prie „SQL Server 2012“duomenų bazės
- Darbas su kita duomenų baze reikštų „Hub“pakeitimą, kad būtų galima naudoti kitą duomenų bazės tvarkyklę
5 veiksmas: žiniatinklio programa „ASP. NET SignalR Hub“
„ASP. NET SignalR Hub“žiniatinklio programą kartu sudaro šie komponentai, kaip nurodyta pridedamoje schemoje:
1 skyrius - „SignalR Hub“, gaunantis kliento užklausas ir atsakantis į jį
2, 4 skyriai - HTML kliento tinklalapis ir jo stiliaus lapas, kurie kartu sudaro automatikos sistemos priekinę dalį ir išduoda komandas automatikos centrui
3 skyrius - „jQuery SignalR“API, kurias naudoja HTML klientas, norėdamas susisiekti su automatikos centru
5 skyrius - „SignalR Hub“tiesiogiai nesusisiekia su duomenų baze. Tai daroma per tarpines klases, sukurtas naudojant „Entity Framework“
Šios klasės surenka duomenų bazės informaciją iš priekinės programos
6 skyrius - Duomenų bazės paslaugų klasė, padedanti atlikti skaitymo ir rašymo operacijas SQL duomenų bazėje (aprašyta anksčiau) naudojant „Entity Framework“klases
ASP. NET ir „SignalR“yra „Microsoft“technologijos ir ši pamoka padės jums sužinoti, kaip kuriama ir diegiama paprasta „SignalR“programa.
Tai, ką aš čia sukūriau, grindžiama pagrindais, įgytais iš šios pamokos. Įdiegus programą, ji turėtų atrodyti panaši į tinklalapį, parodytą antrame paveikslėlyje
PASTABA KODE
Pridėtas ZIP failas, kuriame yra pašalinta kodo versija
Aplanko struktūra yra tokia, kaip parodyta vaizdinėje medžiagoje, tačiau visos pagrindų klasės ir „jQuery“scenarijai buvo pašalinti, kad sumažėtų priedo dydis
Rekomenduojama šį kodą naudoti kaip vadovą, nes kai sukuriate naują „SignalR“žiniatinklio programą, vadovaudamiesi aukščiau pateikta mokymo nuoroda, naujausios „jQuery“bibliotekos ir ASP. NET sistemos klasės bus pridėtos automatiškai
Be to, nuorodos į „jQuery“scenarijus puslapyje index.html turės būti pakeistos, kad atspindėtų naujausią „jQuery SignalR“klientų bibliotekų versiją, kuri bus automatiškai pridėta kuriant žiniatinklio programą.
Galiausiai ryšio eilutė turės būti pakeista, kad atitiktų jūsų duomenų bazę failuose, pavadintuose kaip Web.config*
6 veiksmas: „Python SignalR“paslaugų klientas
Nors „HTML SignalR“klientas yra priekinė vartotojo sąsaja, „Python“klientas yra užpakalinė paslaugų programa, kurios pagrindinė funkcija yra gauti koncentratoriaus perduotą IR kodą ir nukreipti jį į „Arduino UNO“serijiniu ryšiu.
Pridėtas kodas yra savaime suprantamas ir pakankamai dokumentuotas, kad apibūdintų jo funkcionalumą
Kaip parodyta sudėtiniame ekrano vaizde, HTML klientas ir „Python Service“klientas per „SignalR Hub“bendrauja taip:
- Automatikos sistemos vartotojas, paspausdamas mygtuką, duoda komandą Hubui
- Kiekvienas mygtukas yra susietas su IR rakto kodu ir paspaudus, šis kodas perduodamas į koncentratorių
-
Centras gauna šį kodą, prisijungia prie duomenų bazės ir gauna neapdorotą IR signalo kodą ir perduoda jį atgal visiems prijungtiems klientams
Tuo pačiu metu „Hub“registruoja įrašą „AutoHubLog“duomenų bazės lentelėje, kuriame įrašomas kodas ir data bei laikas, kai to paprašė nuotoliniai klientai
- „Python“paslaugų klientas gauna IR kodą ir perduoda jį „Arduino UNO“tolesniam apdorojimui
7 žingsnis: „Arduino UNO“IR perdavimo eskizas ir kodas
„Arduino“grandinė, kaip parodyta vaizdinėje medžiagoje, yra gana paprasta šiai sistemai, todėl trumpai aprašyta:
- Bespalvis IR šviesos diodas turi būti prijungtas prie „Digital PIN 3“UNO - to reikalauja IRLib Arduino biblioteka
- Priežastys aprašytos mano ankstesniame IBLE dėl nuotolinio valdymo pulto klonavimo skyriuje, susijusiame su IRLib biblioteka
- Žalias šviesos diodas, prijungtas prie „Digital PIN 4“, yra vizualus indikatorius, kuris užsidega, kai UNO iš „Raspberry Pi“veikiančio „Python“kliento gauna visas IR kodo dalis.
- Jei užsidegs šis šviesos diodas, patvirtinsite, kad serijinis ryšys tarp „Raspberry Pi“ir UNO veikia
- Norėdami įjungti serijinį ryšį, UNO prie „Raspberry Pi“prijungtas per USB prievadą
- Pridedamas „Arduino“eskizas yra pakankamai pakomentuotas, kad apibūdintų jo funkciją
- Kodo viršuje esančiose pastabose taip pat aprašoma, kaip reikia prijungti grandinę
PASTABA
Praktiškai „Arduino“ir „Pi“gali būti kartu prijungti prie pakankamai maitinamo USB šakotuvo, kad būtų galima valdyti „Pi“, „Arduino“ir taip pat perduoti stiprų signalą per IR šviesos diodą
8 veiksmas: sistemos prijungimas ir bandymas
- Sukurkite ir įdiekite „ASP. NET SignalR Hub“, HTML klientą kartu su „SQL Server 2012“duomenų baze, į vietinio namų tinklo interneto informacijos serverį (IIS)
-
Pasiekite žiniatinklio programą atidarydami HTML „SignalR“klientą per
šio puslapio URL paprastai yra https:// yourComputer: port_number/
-
Spustelėkite mygtuką valdymo skydelyje ir, jei programa buvo tinkamai įdiegta, koncentratorius atsakys grąžindamas IR kodą ir rodydamas jį pilkame skydelyje greta valdymo skydelio
Prisiminti! Turėsite įkelti kodus į savo duomenų bazę, sukurdami IR imtuvų biblioteką ir užfiksuodami kodus, kaip aprašyta mano ankstesniame IBLE
-
Prijunkite „Arduino“prie „Raspberry Pi“per USB - atidarykite „Arduino IDE“„Pi“ir įsitikinkite, kad UNO gali užmegzti ryšį su „Pi“
šie „Arduino“mokymo straipsniai turėtų padėti jums tai pasiekti gana greitai
-
Atidarykite „Python“kodą ir atlikite šiuos pakeitimus, kurie tinka jūsų aplinkai
- JT serijinio prievado adresą, gautą atlikus 4 veiksmą
- „SignalR“koncentratoriaus URL, atitinkantis jūsų vietinį URL, atliktą 2 veiksme - šiame pavyzdyje tai būtų https:// yourComputer: port_number/signalr
- Galiausiai atidarykite „Arduino“eskizą „Arduino IDE“, esančiame „Raspberry Pi“, ir atsiųskite jį UNO
- Padėkite duonos lentą, kurioje grandinė yra arti valdomo prietaiso - IR šviesos diodas turi aiškiai matyti prietaiso IR imtuvo prievadą
- Paleiskite „Python“programą „Raspberry Pi“paspausdami F5 mygtuką „Python IDLE“įrankių juostoje
- Grįžkite į HTML kliento programos valdymo skydelį (2 veiksmas) ir spustelėkite mygtuką (pvz., Įjungti arba padidinti garsumą)
Jei sistema nustatyta teisingai, turėtumėte turėti galimybę savo telefone ar planšetiniame kompiuteryje atverti HTML kliento puslapį ir valdyti savo prietaisą mygtukais, esančiais HTML kliento puslapyje.
9 žingsnis: Sistema veikia
Aukščiau pateiktuose vaizduose parodyta, kaip namų automatikos sistema veikia, kai ji yra sukonfigūruota.
Nuo tada, kai paskelbiau šį IBLE, išplėtiau sąsają, užfiksuodamas keletą IR kodų iš savo VIZIO LED televizoriaus
Kaip parodyta kartu su gamykliniu televizoriaus nuotolinio valdymo pultu pirmoje vaizdo medžiagoje, keletas pagrindinių šio nuotolinio valdymo pulto funkcijų buvo integruotos į žiniatinklio vartotojo sąsają, prieinamą per mano planšetinį kompiuterį
Vėlesniuose vaizduose planšetinis kompiuteris rodomas pirmame plane, o televizorius gale reaguoja į komandas, išduotas iš žiniatinklio sąsajos:
- Maitinimo išjungimo komanda - televizorius išsijungia
- Įjungimo komanda - televizorius įsijungia ir įjungus ekraną pasirodo „V“logotipas
- Komanda „Nutildyti įjungta“- horizontali juosta pasirodo išjungus garsiakalbį
Visuose bandymuose pilka sritis šalia prietaisų skydelio planšetinio kompiuterio ekrane rodo kliento išduotą komandą ir nuotolinio „SignalR Hub“atsiųstą atsakymą
10 veiksmas: patobulinkite automatikos sistemą ir susijusias pataisas
Šią sistemą galima išplėsti pridedant daugiau kodų, užfiksuotų iš skirtingų sistemų. Nors ši dalis yra lengva, yra dar du veiksniai, į kuriuos turėsite atsižvelgti.
1 patobulinimas (greitas): darbas su skirtingo ilgio IR signalais
-
Skirtingų sistemų IR kodai yra skirtingo ilgio, net tarp dviejų to paties gamintojo produktų.
Pavyzdžiui, šiuo atveju LED televizoriaus IR kodo masyvo ilgis yra 67, o „Samsung Sound Bar“- apie 87
- Tai reiškia, kad jei pirmiausia įjungčiau garso juostą, „Arduino“eskizo IR buferio masyvas būtų užpildytas IR kodų seka, kurioje yra 87 kodai
- Po to, jei įjungčiau LED televizorių, jis užpildytų IR buferio masyvą tik 67 kodais, tačiau likę 20 ankstesnės operacijos kodų vis tiek išliks
Rezultatas? LED televizorius neįsijungia, nes IR kodo buferis buvo sugadintas dėl papildomų 20 kodų, kurie nebuvo išvalyti nuo ankstesnės operacijos!
Ištaisykite 1 (lengva išeitis, nerekomenduojama)
Pakeiskite „Arduino“eskizą taip:
Pakeiskite toliau nurodytus funkcijos iškvietimus ciklo () {} funkcijoje
sendIRCode ();
perduotiIRCode (c);
Pakeiskite pirmiau nurodytos funkcijos parašą:
void transferIRCode (int codeLen) {// RAWBUF konstanta pakeista codeLen IRTransmitter. IRSendRaw:: send (IRCodeBuffer, codeLen, 38); }
Nors tai lengva, masyvas iš tikrųjų niekada nėra visiškai išvalytas, todėl tai nėra labai švarus sprendimas
2 pataisymas (nėra sunku, rekomenduojama)
Paskelbkite papildomą kintamąjį pačiame „Arduino“eskizo viršuje, po komentarų skyriaus:
unsigned int EMPTY_INT_VALUE;
Pridėkite tai prie sąrankos () funkcijos viršaus:
// Užfiksuoti tuščią nepasirašytą sveikų skaičių kintamojo natūralią būsenąEMPTY_INT_VALUE = IRCodeBuffer [0];
Slinkite žemyn ir pridėkite naują funkciją prie eskizo iškart po funkcijos „sendIRCode ()“:
void clearIRCodeBuffer (int codeLen) {// Išvalyti visus kodus iš masyvo // PASTABA: masyvo elementų nustatymas į 0 nėra sprendimas! for (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}
Galiausiai iškvieskite naują funkciją aukščiau šioje kilpos () funkcijos vietoje:
// Atstatyti - tęsti skaitymą „Serial PortclearIRCodeBuffer“(c);…
Tai yra švaresnis metodas, nes iš tikrųjų iš naujo nustatomos visos IR buferio masyvo vietos, kuriose buvo įrašytas naujausias IR kodo signalas, nieko nepaliekant atsitiktinumui.
2 patobulinimas (daugiau dalyvauja): pakartotinis IR signalo perdavimas tam tikriems įrenginiams
Norint atsakyti į kai kuriuos įrenginius, tas pats signalas turi būti perduodamas kelis kartus Pavyzdys: Tokiu atveju „Samsung Sound Bar“reikalauja, kad tas pats kodas būtų siunčiamas du kartus su 1 sekundės pertrauka
„Fix in Concept“čia buvo aptartas, nes jis yra šiek tiek daugiau įtrauktas ir jį reikės išbandyti
Jei pridėsite pakartojimo funkciją prie „Ardunio“eskizo, turėsite blykstelėti eskizą kiekvieną kartą, kai prie savo namų automatizavimo sistemos pridedate naują įrenginį
Vietoj to, pridėjus šį pataisą prie „HTML SignalR“kliento ir „Python SignalR Service“programos, sprendimas tampa daug lankstesnis. Ir tai iš esmės būtų galima pasiekti taip:
Pakeiskite „SignalR“HTML klientą, kad „Hub“perduotų pakartotinę informaciją
Atidarykite index.html ir įterpkite pakartojimo reikšmę į HTML mygtuką taip:
value = "SMSNG-SB-PWR-ON" taptų value = "SMSNG-SB-PWR-ON_2_1000"
Kur 2 yra pakartojimo vertė, o 1000 yra delsos vertė milisekundėmis tarp dviejų pakartojimo signalų
Kai spustelėsite šį mygtuką, „SignalR“koncentratorius gaus rakto kodą+„Repeat_Spec“
Pakeiskite „SignalR“serverio metodus, kad išanalizuotumėte tik pagrindinį kodą:
- Naudokite rakto kodą, kad gautumėte IR kodą iš duomenų bazės, kaip įprasta
- Kaip įprasta, perduokite „SingalR“klientams raktinį kodą+„Repeat_Spec“ir IRCode
Pakeiskite „Python SignalR Service“programą, kad perduotumėte signalus naudodami kartojimo vertes:
Atidarykite „Python“klientą ir pakeiskite šias dvi funkcijas:
def print_command_from_hub (buttonId, cmdSrc):
# analizuokite kartojimo kodą iš „buttonId“vertės
def sendToArduino (IRSignalCode, delim, endPrefix):
# nustatykite tam tikrą laiką arba kad ciklas perduotų signalą norimu dažniu
- Tokiu būdu „Arduino“nereikia pakartotinai blykstelėti
- Į šią sistemą gali būti įtrauktas bet koks kartotinių dažnių skaičius
- Be to, jei naudojate UNO, eskizo dydis gali būti ribotas!
11 veiksmas: žinomos problemos ir saugumo problemos
Kaip ir sistemų, sukurtų pirmą kartą, atveju, ši turi keletą problemų, kurios išryškėjo bandymo metu.
1 problema. Greitai paleidus komandas, kai tarp mygtukų paspaudimų vėluojama mažiau nei sekundę, sistema nereagavo, kai atsakė pirmuosius porą kartų.
- Iš naujo paleidus „Python SignalR“klientą, sistema vėl tampa įprasta
- Neatidėliotinas sprendimas gali būti pašalinti nepageidaujamus derinimo išėjimus abiejuose „Python SignalR Client“ir „Arduino Sketch“ir pakartoti šiuos testus
- Kita vieta, į kurią reikia atkreipti dėmesį, būtų pati serijinė komunikacija - ar būtų galima pridėti kodą, kad greitai išplautų buferį?
Tačiau pastebėjau, kad mano televizorius blogai reaguoja į gamyklinį nuotolinio valdymo pultą - todėl pats televizoriaus IR ryšio pobūdis taip pat gali būti svarbus veiksnys.
2 problema: HTML ekranas nustoja reaguoti į mygtukų paspaudimus po ilgo neveiklumo
Paprastai atnaujinus puslapį šis elgesys išsprendžiamas, tačiau tokio elgesio priežastis vis dar neaiški
SAUGUMO RŪPES
Ši sistema sukurta naudoti tik vietiniame (namų) tinkle ir neturi tinkamų apsaugos priemonių, kuriomis būtų galima naudotis internetu
Todėl rekomenduojama, kad „SignalR Hub“būtų įdiegtas į vietinį kompiuterį jūsų vietiniame/namų tinkle
Dėkojame, kad perskaitėte mano IBLE ir tikiuosi, kad jums bus smagu!
Rekomenduojamas:
„Pasidaryk pats“namų automatikos įsilaužimo aliarmo sistema!: 5 žingsniai (su nuotraukomis)
„Pasidaryk pats“namų automatikos įsibrovėlių aliarmo sistema!: Šiame projekte aš jums parodysiu, kaip naudotis „Home Assistant“programine įranga, kad jūsų namuose būtų sukurta įsibrovėlių signalizacija. Sistema iš esmės aptiks, ar durys bus atidarytos be leidimo, ir tada išsiųs pranešimą
Visi nori automatikos su dideliu ekranu!: 16 žingsnių
Visi nori automatikos su dideliu ekranu !: Taip, dar vienas vaizdo įrašas apie DISPLAYS, tema man labai patinka! Ar žinote kodėl? Kadangi su juo galima patobulinti vartotojo sąsają. Automatikos naudotojams reikia geros vizualios nuorodos. Taigi pateiksiu jums pavyzdį su 7 colių ekranu su talpomis
Baterija maitinamas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: 5 žingsniai (su nuotraukomis)
Baterija varomas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: Šioje pamokoje aš jums parodysiu, kaip aš sukūriau akumuliatoriumi varomą durų jutiklį su namų automatikos integracija. Aš mačiau keletą kitų gražių jutiklių ir signalizacijos sistemų, bet norėjau tai padaryti pats. Mano tikslai: jutiklis, kuris aptinka ir praneša apie atliktą darbą
(Pasidaryk pats) Kaip padaryti „ESP8266 Ultra Mini“ir paprastą relinę namų automatikos plokštę: 17 žingsnių
(Pasidaryk pats) Kaip padaryti ESP8266 „Ultra Mini & Simple Relay“namų automatikos plokštę: Sveiki, kiekvienas, šiandien aš jums pranešiu, kaip padaryti „Mini Esp 12“„Wi -Fi“relės plokštę, kurios matmenys yra tik 3,9 cm x 3,9 cm! Ši lenta turi labai šaunių funkcijų, kurios patiks kiekvienam technikos mylėtojui. Įtraukiau visus failus į kitus veiksmus. Ši lenta
„Raspberry Pi“: sieninis kalendorius ir pranešimų centras: 5 žingsniai (su nuotraukomis)
„Raspberry Pi“: prie sienos montuojamas kalendorius ir pranešimų centras: prieš “ skaitmeninį amžių “ daugelis šeimų naudojo sieninius kalendorius, kad kas mėnesį rodytų būsimų įvykių vaizdą. Ši moderni sieninio kalendoriaus versija apima tas pačias pagrindines funkcijas: mėnesio darbotvarkė Šeimos narių veiklos sinchronizavimas