Sadržaj:

Raspberry Pi-Arduino-SignalR čvorište za kućnu automatizaciju: 11 koraka (sa slikama)
Raspberry Pi-Arduino-SignalR čvorište za kućnu automatizaciju: 11 koraka (sa slikama)

Video: Raspberry Pi-Arduino-SignalR čvorište za kućnu automatizaciju: 11 koraka (sa slikama)

Video: Raspberry Pi-Arduino-SignalR čvorište za kućnu automatizaciju: 11 koraka (sa slikama)
Video: How to build a robot arm with .NET 7, Raspberry Pi, Blazor, and SignalR 2024, Srpanj
Anonim
Raspberry Pi-Arduino-SignalR čvorište za kućnu automatizaciju
Raspberry Pi-Arduino-SignalR čvorište za kućnu automatizaciju

Nakon nekoliko mojih uvodnih IBLE -ova objavljenih ovdje i ovdje, ovaj projekt čini prvi korak prema izgradnji osnovne verzije funkcionalnog čvorišta za kućnu automatizaciju.

Koristio sam nekoliko različitih tehnologija u nastojanju da shvatim kako ću moći koristiti sve stvari koje sam naučio u prošlosti i nove stvari koje nastavljam učiti kako dana napreduju.

Stoga se ovo čvorište za automatizaciju sastoji od sljedećih komponenti:

Baza podataka SQL Server 2012 koja:

  • pohranjuje popis unaprijed određenih infracrvenih (IC) kodova u tablicu zajedno s jedinstvenim "kodnim ključem"
  • kodne ključeve intuitivno imenuje (korisnik) kako bi se identificirala svrha njihovih povezanih IR kodova

Web-aplikacija ASP. NET SignalR Hub u stvarnom vremenu koja:

  • čeka i prima "kodne ključeve" kao naredbe od korisnika koji se suočava s HTML klijentom
  • kada ga primi, povezuje se sa SQL bazom podataka i dohvaća IR kod pomoću isporučenog ključa koda
  • prenosi dohvaćeni IR kôd Python SignalR klijentu

Korisnik suočen s klijentom nadzorne ploče HTML SignalR koji:

  • komunicira jedinstveni kodni ključ čvorištu putem jQuery SignalR Client API -ja
  • svaki gumb na nadzornoj ploči predstavljat će jedinstveni kodni ključ zabilježen u tablici SQL baze podataka

Aplikacija pozadinske usluge Python SignalR koja radi na Raspberry Pi 2.0 i koja:

  • prima IC kodove kao naredbe sa koncentratora
  • traži razdjelnike u IR kodu i razbija vrlo dugačak kod u segmente
  • komunicira preko serijskog porta s Arduinom i zapisuje svaki segment uzastopno

Skica Arduino IC odašiljača koja:

  • čeka i prima svaki od segmenata IR koda preko serijskog porta
  • sastavlja segmente koda u niz međuspremnika IR koda
  • pakuje međuspremnik u naredbu za IR prijenos putem IRLib Arduino knjižnice

Ako se ciljni uređaj nalazi u blizini IC odašiljača, tada uređaj (može) reagirati na IC signal koji prenosi Arduino

BILJEŠKA

Iako ciljni aparat koji koristim u ovoj demonstraciji reagira na IC signale, možda ćete htjeti pročitati ovaj dio mog drugog IBLE -a iz razloga zašto kažem da uređaj (može) reagirati na IC signal.

Vrijeme je za kotrljanje.

Korak 1: Što vam treba, prije onoga što vam treba

Što vam treba, prije nego što vam treba
Što vam treba, prije nego što vam treba
Što vam treba, prije nego što vam treba
Što vam treba, prije nego što vam treba
Što vam treba, prije nego što vam treba
Što vam treba, prije nego što vam treba

Ova instrukcija uzima u obzir dio prethodno obavljenog posla koji je također rezultirao mojim posljednjim IBLE -om.

Dakle, prije nego što uđemo u ono što nam je potrebno za ovaj IBLE, preporučuje se da pročitate ovo uputstvo radi neke pozadine o tome kako:

  1. Postavljena je Arduino IRLib infracrvena knjižnica
  2. Kako su IC kodovi korišteni u ovom IBLE -u snimljeni pomoću IC prijemnika
  3. Kako su snimljeni IR kodovi korišteni za upravljanje ciljnim uređajem putem IC odašiljača

Nakon završetka ovog IBLE -a, postavio sam web aplikaciju ASP. NET IR Code Recorder koja bi:

  • Prihvatite zarobljeni IR kod zajedno s intuitivno imenovanim kodnim ključem kao unose putem web obrasca
  • Podijelite vrlo dugačak IR kod na segmente manje od 64 znaka kako biste ostali ispod ograničenja serijskog međuspremnika Arduino Uno
  • Posljednji segment kodova bio bi unaprijed fiksiran s "E" koji označava Arduinu da je primio zadnji segment koda
  • Svaki bi segment bio odvojen razdjelnikom cijevi prije nego što se ponovno sastavi u dugi niz
  • Konačno, segmentirani IR kod zajedno s kodnim ključem pohranjen je u bazu podataka SQL Server 2012

Ova SQL baza podataka čini jednu od komponenti čvorišta kućne automatizacije, razrađenu u ovom IBLE -u.

BILJEŠKA

Web aplikacija IR Code Recorder nije sastavni dio rasprave iz sljedećih razloga:

  • Možete ručno snimiti kodove pomoću Arduino Sketch-a, podijeliti ih u odjeljke razgraničene cijevima i pohraniti ih u bazu podataka bez potrebe za izgradnjom razrađene web aplikacije
  • Za razliku od ovog IBLE -a, IR snimač fokusira se na obrnutu komunikaciju s Arduina na Raspberry Pi

Stoga bi detalji o ovom projektu bili tema za drugi IBLE

Korak 2: Ono što vam treba - hardver

Ono što trebate - hardver
Ono što trebate - hardver
Ono što trebate - hardver
Ono što trebate - hardver

Funkcionalni Raspberry Pi 2.0 - preporučujem instaliranje Ubuntu Mate jer ima bogatiji skup značajki, uključujući OpenLibre Office koji je usput bio neophodan u dokumentiranju ovog uputstva, upravo na Raspberry Pi.

Osim toga, za Pi su vam potrebni sljedeći vanjski elementi:

  • Arduino Uno prototipna platforma ili klon
  • LED odašiljač LED - koristio sam robnu marku Three Legs s Amazon.com
  • Otpornici 330 ili 220 ohma-koristio sam 220 (oznaka boje crveno-crveno-smeđa) jer sam imao nekoliko pri ruci
  • Uobičajena ploča za kruh, priključci i računalo s instaliranim okruženjem Arduino
  • Kandidat za testiranje - poput sveprisutnog Samsung LED monitora s daljinskim upravljačem

Korak 3: Ono što vam treba - softver

Da biste spojili sve dijelove, potrebno je instalirati i pokrenuti sljedeće postavke softvera:

Na Raspberry Pi morate instalirati sljedeće:

  • Arduino IDE - koristi se za izradu Sketcha i prosljeđivanje u UNO
  • Python modul za Arduino - za serijsku komunikaciju između UNO -a i Pi -a
  • Knjižnica klijenta Python SignalR - možete se obratiti uputama priloženim ovdje

Windows stroj sa instaliranim sljedećim razvojnim okruženjem:

  • Besplatno izdanje Microsoft Visual Studio Express 2013 za izradu aplikacije SignalR Hub i web klijenta
  • Besplatno izdanje SQL Servera 2012 Express za projektiranje i izgradnju pozadinske baze podataka

Okruženje za hosting Windows Internet Information Server (IIS):

  • Nakon što se izgradi i testira SignalR Hub i web klijent, morat će se postaviti na lokalni IIS poslužitelj
  • U mom slučaju planiram koristiti staro prijenosno računalo sa sustavom Windows 7 s IIS -om na svojoj kućnoj mreži

BILJEŠKA

Sve upute primjenjive su na verziju Python 2.7.x. Verzija 3.0 može zahtijevati prepisivanje

Korak 4: Baza podataka SQL Servera

Baza podataka SQL Servera
Baza podataka SQL Servera

Priložena shema prikazuje strukturu osnovne baze podataka SQL Servera koja se koristi u ovoj aplikaciji i sadrži samo dvije tablice.

Tablica AutoHubCode

Dva važna stupca u ovoj tablici su:

AutoCodeKey - sprema korisnički naziv ključa koda

Svaki od kodnih ključeva prenosi klijent za automatizaciju - u našem slučaju HTML gumb s web stranice

AutoCodeVal - pohranjuje sirovi niz IR koda

Ovo je stvarni IR kod koji se šalje SignalR čvorištu natrag klijentu kao odgovor

U ovom slučaju, Python klijent u stalnoj komunikaciji sa čvorištem prima niz IR koda i prenosi ga preko serijskog porta na Arduino UNO

AutoHubLog tablice

  • Zapisuje kôd koji je zatražio klijent za automatizaciju.
  • Ovo je mjera za praćenje tko je i kada koristio sustav i koji je kod zatražen

Kao što je spomenuto, koristio sam SQL Server 2012 kao svoju platformu baze podataka po izboru. Ovaj jednostavan dizajn možete ponovno stvoriti na drugoj platformi baze podataka kao što su MySQL, Oracle itd.

Ipak, ovdje je priložen SQL skript za stvaranje ove baze podataka

BILJEŠKA

  1. Kôd za SignalR Hub dizajniran je za povezivanje s bazom podataka SQL Server 2012
  2. Rad s drugom bazom podataka značio bi promjenu koncentratora na korištenje drugog upravljačkog programa baze podataka

Korak 5: Web aplikacija ASP. NET SignalR Hub

Web aplikacija ASP. NET SignalR Hub
Web aplikacija ASP. NET SignalR Hub
Web aplikacija ASP. NET SignalR Hub
Web aplikacija ASP. NET SignalR Hub

Web -aplikacija ASP. NET SignalR Hub zajedno sastoji se od sljedećih komponenti navedenih u priloženoj shemi:

Odjeljak 1 - SignalR čvorište koje prima zahtjeve od klijenta i odgovara na njega

Odjeljci 2, 4 - Web stranica HTML klijenta i njegov stilski list koji zajedno čine prednji dio sustava za automatizaciju i izdaju naredbe za središte za automatizaciju

Odjeljak 3 - jQuery SignalR API -ji koje HTML klijent koristi za komunikaciju s Automation Hubom

Odjeljak 5 - SignalR čvorište ne komunicira izravno s bazom podataka. To čini putem posrednih klasa generiranih pomoću Entity Framework -a

Ove klase apstrahiraju pojedinosti baze podataka iz prednje aplikacije

Odjeljak 6 - Klasa usluge Database koja pomaže u izvođenju operacija čitanja i pisanja u SQL bazi podataka (prethodno opisana) pomoću klasa Entity Framework

ASP. NET i SignalR su Microsoftove tehnologije i ovaj će vas vodič uputiti u to kako se gradi i primjenjuje jednostavna aplikacija SignalR.

Ono što sam ovdje izgradio temelji se na osnovama stečenim u ovom vodiču. Kada se primijeni, aplikacija bi trebala izgledati slično web stranici prikazanoj na drugoj slici

NAPOMENA O KODU

Priložena je ZIP datoteka koja sadrži skinutu verziju koda

Struktura mape je prikazana na slici - međutim, sve klase okvira i skripte jQuery uklonjene su kako bi se smanjila veličina privitka

Preporuka je da se ovaj kôd koristi kao vodič jer kada kreirate novu SignalR web aplikaciju slijedeći gornju vezu s vodičem, najnovije biblioteke jQuery i klase okvira ASP. NET bit će automatski dodane

Također, reference na jQuery skripte na stranici index.html morat će se promijeniti tako da odražavaju najnoviju verziju jQuery SignalR klijentske knjižnice koja će se automatski dodati prilikom izrade vaše web aplikacije.

Konačno, niz veze morat će se promijeniti kako bi odgovarao vašoj bazi podataka u datotekama pod imenom Web.config*

Korak 6: Python SignalR servisni klijent

Klijent usluge Python SignalR
Klijent usluge Python SignalR

Dok je HTML SignalR Client prednje korisničko sučelje, Python Client je aplikacija pozadinske usluge čija je glavna funkcija primiti IC kod koji prenosi Hub i usmjeriti ga na Arduino UNO putem serijske komunikacije.

Priloženi kôd sam po sebi objašnjava i dovoljno je dokumentiran da opiše njegovu funkcionalnost

Kao što je prikazano na složenom snimku zaslona, HTML klijent i klijent usluge Python komuniciraju putem SignalR čvorišta na sljedeći način:

  1. Korisnik sustava za automatizaciju pritiskom na gumb šalje naredbu čvorištu
  2. Svaki gumb pridružen je kodu IC ključa, a kada se pritisne, ovaj se kôd prenosi na čvorište
  3. Središte prima ovaj kôd, povezuje se s bazom podataka i dohvaća neobrađeni kôd IR signala te ga šalje natrag svim povezanim klijentima

    Istodobno, čvorište zapisuje unos u tablicu baze podataka AutoHubLog bilježeći kôd te datum i vrijeme koje su zatražili udaljeni klijenti

  4. Klijent usluge Python prima IR kod i prosljeđuje ga Arduino UNO -u na daljnju obradu

Korak 7: Skica i kod za prijenos Arduino UNO IC prijenosa

Skica i kod za prijenos Arduino UNO IR prijenosa
Skica i kod za prijenos Arduino UNO IR prijenosa
Skica i kod za prijenos Arduino UNO IC prijenosa
Skica i kod za prijenos Arduino UNO IC prijenosa
Skica i kod za prijenos Arduino UNO IC prijenosa
Skica i kod za prijenos Arduino UNO IC prijenosa

Arduino kolo kako je prikazano u slikama prilično je jednostavno za ovaj sustav i stoga je ukratko opisano:

  • Bezbojna IC LED dioda mora biti spojena na digitalni PIN 3 na UNO - to je zahtjev biblioteke IRLib Arduino
  • Razlozi su opisani u mom ranijem IBLE -u o kloniranju daljinskog upravljača u odjeljku koji se odnosi na biblioteku IRLib
  • Zelena LED dioda povezana s digitalnim PIN -om 4 vizualni je indikator koji svijetli kada UNO primi sve odjeljke IR koda od Python klijenta koji radi na Raspberry Pi.
  • Uključivanje ove LED lampice potvrdit će da serijska komunikacija između Raspberry Pi -a i UNO -a radi
  • Kako bi se omogućila serijska komunikacija, UNO je povezan s Raspberry Pi putem USB priključka
  • Priložena Arduino skica komentirana je dovoljno da opiše njezinu funkciju
  • Komentari na vrhu koda također opisuju kako treba spojiti krug

BILJEŠKA

U praksi bi se Arduino i Pi mogli zajedno spojiti na napajano USB čvorište dovoljno snažno da pokreće Pi, Arduino i također prenosi snažan signal putem IC LED diode

Korak 8: Spajanje i testiranje sustava

Spajanje i testiranje sustava
Spajanje i testiranje sustava
Spajanje i testiranje sustava
Spajanje i testiranje sustava
Spajanje i testiranje sustava
Spajanje i testiranje sustava
  1. Izgradite i postavite ASP. NET SignalR Hub, HTML klijent zajedno sa bazom podataka SQL Server 2012 na internetski informacijski poslužitelj (IIS) na svojoj lokalnoj kućnoj mreži
  2. Pristupite web aplikaciji otvaranjem HTML SignalR klijenta putem HTTP -a

    URL ove stranice obično bi bio https:// yourComputer: port_number/

  3. Pritisnite gumb na upravljačkoj ploči, a ako je aplikacija ispravno postavljena, središte će odgovoriti vraćanjem IC koda i prikazom na sivoj ploči koja se nalazi pored upravljačke ploče

    Zapamtiti! Kodove ćete morati učitati u bazu podataka postavljanjem biblioteke IC prijemnika i hvatanjem kodova kako je opisano u mom prethodnom IBLE -u

  4. Spojite Arduino na Raspberry Pi putem USB -a - otvorite Arduino IDE na Pi i provjerite može li UNO uspostaviti vezu s Pi

    ovi članci o vodiču Arduino trebali bi vam pomoći da to postignete prilično brzo

  5. Otvorite Python kôd i unesite sljedeće promjene koje su primjenjive na vaše okruženje

    • adresu serijskog porta vašeg UNO -a stečenu u 4. koraku
    • URL SignalR čvorišta koji odgovara vašem lokalnom URL -u iz 2. koraka - u ovom primjeru to bi bio https:// yourComputer: port_number/signalr
  6. Na kraju, otvorite Arduino Sketch u Arduino IDE -u na Raspberry Pi i prenesite ga u UNO
  7. Postavite ploču za kruh koja drži krug u neposrednoj blizini uređaja koji se kontrolira - IR LED mora imati jasnu liniju vidljivosti s priključkom za IC prijemnik uređaja
  8. Pokrenite Python program na Raspberry Pi pritiskom na tipku F5 na alatnoj traci Python IDLE
  9. Vratite se na upravljačku ploču u HTML klijentskom programu (korak 2) i kliknite gumb (kao što je uključivanje ili pojačavanje zvuka)

Ako je sustav ispravno postavljen, tada biste trebali moći otvoriti stranicu HTML klijenta na telefonu ili tabletu i upravljati uređajem pomoću gumba na stranici HTML klijenta.

Korak 9: Sustav na djelu

Sustav na djelu
Sustav na djelu
Sustav na djelu
Sustav na djelu
Sustav na djelu
Sustav na djelu
Sustav na djelu
Sustav na djelu

Gornji vizualni prikazi prikazuju sustav kućne automatizacije na djelu nakon postavljanja.

Od objavljivanja ovog IBLE -a, proširio sam sučelje snimanjem nekoliko IC kodova sa svog VIZIO LED televizora

Kao što je prikazano uporedo s tvorničkim TV daljinskim upravljačem u prvom vizualnom prikazu, nekoliko bitnih funkcija ovog daljinskog upravljača ugrađeno je u web sučelje kojem se pristupa putem mog tableta

Sljedeći vizualni prikazi prikazuju tablet u prednjem planu s TV -om straga koji odgovara na naredbe izdane s web sučelja:

  1. Naredba za isključivanje napajanja - TV se isključuje
  2. Naredba za uključivanje i isključivanje - TV se uključuje i logotip "V" se pojavljuje dok se zaslon uključuje
  3. Naredba za isključivanje zvuka ON - Na vodoravnoj traci pojavljuje se zvučnik isključen

U svim testovima, sivo područje uz nadzornu ploču na zaslonu tableta prikazuje naredbu koju je izdao klijent i odgovor koji je poslao udaljeni SignalR Hub

Korak 10: Poboljšanje sustava automatizacije i povezani popravci

Ovaj se sustav može proširiti dodavanjem više kodova snimljenih iz različitih sustava. Iako je ovaj dio jednostavan, morate uzeti u obzir još dva faktora.

Poboljšanje 1 (brzo): Rad s IC signalima različitih duljina

  1. IR kodovi različitih sustava dolaze s različitim duljinama, čak i između dva proizvoda istog proizvođača.

    Na primjer, u ovom slučaju duljina niza IR kodova za LED televizor je 67, dok je dužina Samsung Sound Bar -a oko 87

  2. Što znači, ako bih prvo uključio Sound Bar, niz IC međuspremnika u Arduino skici bio bi ispunjen nizom IR kodova koji sadrži 87 kodova
  3. Nakon toga, kad bih uključio LED televizor, ispunio bi niz polja IR međuspremnika sa samo 67 kodova, ali preostalih 20 kodova iz prethodne operacije i dalje bi bilo prisutno

Rezultat? LED televizor se ne uključuje jer je međuspremnik IR kodova oštećen zbog dodatnih 20 kodova koji nisu očišćeni iz prethodne operacije!

Popravi 1 (jednostavan izlaz, ne preporučuje se)

Promijenite Arduino skicu na sljedeći način:

Promijenite sljedeće pozive funkcija u funkciji loop () {}

transmitIRCode ();

za prijenosIRCode (c);

Izmijenite potpis gornje funkcije:

void transmitIRCode (int codeLen) {// RAWBUF konstanta zamijenjena codeLen IRTransmitter. IRSendRaw:: send (IRCodeBuffer, codeLen, 38); }

Iako je to jednostavno, niz se nikada ne razjašnjava u potpunosti i stoga ovo nije baš čisto rješenje

Popravak 2 (nije teško, preporučuje se)

Proglasite dodatnu varijablu na samom vrhu Arduino skice, nakon odjeljka komentara:

bez potpisa int EMPTY_INT_VALUE;

Dodajte ovo na vrh funkcije setup ():

// Hvatanje prirodnog stanja prazne bezznačne cjelobrojne varijableEMPTY_INT_VALUE = IRCodeBuffer [0];

Pomaknite se prema dolje i dodajte novu funkciju skici odmah nakon funkcije transmitIRCode ():

void clearIRCodeBuffer (int codeLen) {// Brisanje svih kodova iz niza // NAPOMENA: postavljanje elemenata niza na 0 nije rješenje! za (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}

Konačno, pozovite novu funkciju gore na sljedećem mjestu u funkciji loop ():

// Resetiraj - nastavi čitanje Serial PortclearIRCodeBuffer (c);…

Ovo je čistiji pristup jer zapravo resetira sve lokacije u nizu IR međuspremnika koje su napunjene najnovijim signalom IR koda, ne ostavljajući ništa slučaju.

Poboljšanje 2 (više uključeno): Ponavljanje prijenosa IC signala za određene uređaje

Neki uređaji zahtijevaju da se isti signal prenosi više puta kako bi odgovorili Primjer: U ovom slučaju Samsung Sound Bar zahtijeva da se isti kod pošalje dva puta s razmakom od 1 sekunde

Ovdje se raspravljalo o Popravku u konceptu jer je malo više uključen i bit će potrebno testiranje

Dodavanje funkcije ponavljanja u Ardunio Sketch značit će da ćete morati bljeskati Sketch svaki put kada dodate novi uređaj u sustav kućne automatizacije

Umjesto toga, dodavanjem ovog popravka u HTML SignalR klijent i aplikaciju Python SignalR Service rješenje je puno fleksibilnije. To se načelno može postići na sljedeći način:

Izmijenite SignalR HTML klijent za prijenos ponavljajućih informacija na Hub

Otvorite index.html i umetnite ponovljenu vrijednost u HTML gumb ovako:

value = "SMSNG-SB-PWR-ON" postalo bi value = "SMSNG-SB-PWR-ON_2_1000"

Gdje je 2 vrijednost ponavljanja, a 1000 vrijednost kašnjenja u milisekundama između dva signala ponavljanja

Kada kliknete na ovaj gumb, SignalR čvorište primit će kôd ključa+Repeat_Spec

Izmijenite metode na strani SignalR poslužitelja da biste raščlanili samo kôd ključa:

  • Upotrijebite kôd ključa za preuzimanje IR koda iz baze podataka kao i obično
  • Prenesite kôd ključa+Repeat_Spec i IRCode klijentima SingalR -a kao i obično

Izmijenite aplikaciju usluge Python SignalR za prijenos signala koristeći vrijednosti ponavljanja:

Otvorite Python klijenta i izmijenite sljedeće dvije funkcije:

def print_command_from_hub (buttonId, cmdSrc):

# raščlanite kôd za ponavljanje iz vrijednosti buttonId

def prijenosToArduino (IRSignalCode, delim, endPrefix):

# postavite petlju za vrijeme ili for za prijenos signala na željenoj frekvenciji

  • Na ovaj način, Arduino se ne mora više puta bljeskati
  • U ovaj sustav može se ugraditi bilo koji broj ponavljajućih frekvencija
  • Osim toga, ako koristite UNO, postoji ograničenje veličine na koju vaša skica može narasti!

Korak 11: Poznati problemi i sigurnosni problemi

Kao što je slučaj sa sustavima izgrađenim po prvi put, i ovaj ima nekoliko problema koji su se pojavili tijekom testiranja.

Pitanje 1: Brzo uzastopno pokretanje naredbi s kašnjenjima manjim od sekunde između klikova na gumb dovelo je do toga da sustav prestane reagirati nakon što je reagirao prvih nekoliko puta.

  • Ponovnim pokretanjem Python SignalR klijenta sustav se vraća na uobičajeno poslovanje
  • Neposredna rješenja mogu biti uklanjanje neželjenih izlaza za otklanjanje pogrešaka u oba, Python SignalR Client i Arduino Sketch te ponoviti ove testove
  • Drugo mjesto za proučavanje bila bi sama serijska komunikacija - bi li bilo moguće dodati kod za brzo ispiranje međuspremnika?

Uprkos tome, primijetio sam da moj televizor ne reagira dobro na tvornički daljinski upravljač - stoga sama priroda IC komunikacije moga televizora također može biti faktor koji doprinosi.

Pitanje 2: HTML zaslon prestaje reagirati na klikove gumba nakon dugog razdoblja neaktivnosti

Obično osvježavanje stranice rješava ovo ponašanje - međutim uzrok ovog ponašanja još uvijek je nejasan

ZAŠTITA SIGURNOSTI

Ovaj sustav je dizajniran samo za upotrebu u lokalnoj (kućnoj) mreži i nema potrebne sigurnosne mjere za korištenje putem interneta

Stoga se preporučuje da se SignalR Hub postavi na lokalni stroj na vašoj lokalnoj/kućnoj mreži

Hvala što ste pročitali moj IBLE i nadam se da ćete se zabaviti!

Preporučeni: