Obsah:

Rozbočovač domácej automatizácie Raspberry Pi-Arduino-SignalR: 11 krokov (s obrázkami)
Rozbočovač domácej automatizácie Raspberry Pi-Arduino-SignalR: 11 krokov (s obrázkami)

Video: Rozbočovač domácej automatizácie Raspberry Pi-Arduino-SignalR: 11 krokov (s obrázkami)

Video: Rozbočovač domácej automatizácie Raspberry Pi-Arduino-SignalR: 11 krokov (s obrázkami)
Video: Loxone Miniserver teardown 2024, Júl
Anonim
Rozbočovač domácej automatizácie Raspberry Pi-Arduino-SignalR
Rozbočovač domácej automatizácie Raspberry Pi-Arduino-SignalR

Po niekoľkých mojich predohrách IBLE publikovaných tu a tu, tento projekt robí prvý krok k vytvoreniu základnej verzie funkčného centra pre domácu automatizáciu.

Použil som niekoľko rôznych technológií v snahe porozumieť tomu, ako budem môcť používať všetky veci, ktoré som sa naučil v minulosti, a nové veci, ktoré sa stále učím s postupujúcim dňom.

Toto centrum automatizácie sa preto skladá z nasledujúcich komponentov:

Databáza SQL Server 2012, ktorá:

  • uloží zoznam vopred určených infračervených (IR) kódov do tabuľky spolu s unikátnym „kódovým kľúčom“
  • kódové kľúče sú intuitívne pomenované (používateľom), aby sa identifikoval účel ich priradených IR kódov

Webová aplikácia ASP. NET SignalR Hub v reálnom čase, ktorá:

  • očakáva a prijíma „kódové kľúče“ako príkazy od používateľa, ktorý čelí klientovi HTML
  • po prijatí sa pripojí k databáze SQL a načíta kód IR pomocou dodaného kódu
  • odovzdá načítaný IR kód klientovi Python SignalR

Používateľ, ktorý čelí klientovi HTML panelu SignalR, ktorý:

  • komunikuje s Hubom jedinečný kódový kľúč prostredníctvom klientskych rozhraní API jQuery SignalR
  • každé tlačidlo na hlavnom paneli bude predstavovať jedinečný kódový kľúč zaznamenaný v tabuľke databázy SQL

Aplikácia na pozadí služby Python SignalR spustená na Raspberry Pi 2.0, ktorá:

  • prijíma IR kódy ako príkazy z Hubu
  • hľadá oddeľovače v kóde IR a rozdelí veľmi dlhý kód na segmenty
  • komunikuje cez Arduino cez sériový port a postupne zapisuje každý segment

Skica IR vysielača Arduino, ktorá:

  • očakáva a prijíma každý zo segmentov IR kódu cez sériový port
  • zostavuje segmenty kódu do poľa vyrovnávacej pamäte IR kódu
  • zabalí vyrovnávaciu pamäť do príkazu IR Transmit pomocou knižnice IRLib Arduino

Ak je cieľový spotrebič v blízkosti infračerveného vysielača, zariadenie (môže) reagovať na infračervený signál prenášaný Arduinom

POZNÁMKA

Aj keď cieľový spotrebič, ktorý používam v tejto ukážke, reaguje na infračervené signály, možno si budete chcieť prečítať túto časť môjho iného IBLE z dôvodov, prečo tvrdím, že zariadenie (môže) reagovať na infračervený signál.

Čas valcovať sa.

Krok 1: Čo potrebujete, pred tým, čo potrebujete

Čo potrebujete, pred tým, čo potrebujete
Čo potrebujete, pred tým, čo potrebujete
Čo potrebujete, pred tým, čo potrebujete
Čo potrebujete, pred tým, čo potrebujete
Čo potrebujete, pred tým, čo potrebujete
Čo potrebujete, pred tým, čo potrebujete

Tento pokyn štartuje s niektorou z vykonaných prác, ktoré viedli k môjmu poslednému IBLE.

Predtým, ako sa pustíme do toho, čo pre tento IBLE potrebujeme, preto odporúčame prečítať si tento návod a získať základné znalosti o tom, ako:

  1. Bola zriadená infračervená knižnica Arduino IRLib
  2. Ako boli IR kódy použité v tomto IBLE zachytené pomocou IR prijímača
  3. Ako boli zachytené IR kódy použité na ovládanie cieľového zariadenia prostredníctvom IR vysielača

Po dokončení tohto IBLE som nasadil webovú aplikáciu ASP. NET IR Code Recorder, ktorá by:

  • Akceptujte zachytený IR kód spolu s intuitívne pomenovaným kódovým kľúčom ako vstupy prostredníctvom webového formulára
  • Rozdeľte veľmi dlhý IR kód na segmenty kratšie ako 64 znakov, aby ste zostali pod limitom sériovej vyrovnávacej pamäte Arduino Uno
  • Posledný segment kódov bude vopred zafixovaný „E“, ktoré Arduinu naznačuje, že dostal posledný segment kódu
  • Pred zostavením späť do dlhého reťazca by bol každý segment oddelený oddeľovačom rúrok
  • Nakoniec bol segmentovaný IR kód spolu s jeho kódovým kľúčom uložený do databázy SQL Server 2012

Je to táto databáza SQL, ktorá tvorí jednu z komponentov centra Home Automation Hub vypracovaného v tomto IBLE.

POZNÁMKA

Webová aplikácia IR Code Recorder nie je súčasťou diskusie z týchto dôvodov:

  • Kódy môžete ručne zachytiť pomocou programu Arduino Sketch, rozdeliť ich na sekcie oddelené potrubím a uložiť ich do databázy bez toho, aby ste museli vytvárať komplikovanú webovú aplikáciu.
  • Na rozdiel od tohto IBLE sa IR rekordér zameriava na reverznú komunikáciu z Arduina na Raspberry Pi

Preto by podrobnosti o tomto projekte boli témou pre iný IBLE

Krok 2: Čo potrebujete - hardvér

Čo potrebujete - hardvér
Čo potrebujete - hardvér
Čo potrebujete - hardvér
Čo potrebujete - hardvér

Fungujúci Raspberry Pi 2.0 - Odporúčam nainštalovať Ubuntu Mate, pretože má bohatšiu sadu funkcií vrátane OpenLibre Office, ktoré bolo mimochodom nevyhnutné pri dokumentovaní tohto návodu, priamo na Raspberry Pi.

Navyše, Pi, budete potrebovať nasledujúce externé zariadenia:

  • Prototypová platforma Arduino Uno alebo klon
  • IR vysielač LED - použil som značku Three Legs od Amazon.com
  • Rezistory 330 alebo 220 ohmov-použil som 220 (farebný kód červeno-červeno-hnedý), pretože som mal niekoľko šikovných
  • Zvyčajná doska na chlieb, konektory a počítač s nainštalovaným prostredím Arduino
  • Testovací kandidát - napríklad všadeprítomný LED monitor Samsung s diaľkovým ovládaním

Krok 3: Čo potrebujete - softvér

Aby boli všetky diely spojené, bude potrebné nainštalovať a spustiť nasledujúce nastavenie softvéru:

Na Raspberry Pi budete musieť nainštalovať nasledujúce:

  • Arduino IDE - slúži na zostavenie náčrtu a jeho odoslanie do UNO
  • Modul Python pre Arduino - pre sériovú komunikáciu medzi UNO a Pi
  • Knižnica klienta Python SignalR - Tu si môžete prečítať pokyny

Počítač so systémom Windows s nainštalovaným nasledujúcim vývojovým prostredím:

  • Bezplatná edícia Microsoft Visual Studio Express 2013 na zostavenie klientskej aplikácie SignalR Hub a Web
  • Bezplatná edícia servera SQL Server 2012 Express na navrhovanie a budovanie back-endovej databázy

Hostiteľské prostredie Windows Internet Information Server (IIS):

  • Hneď ako bude SignalR Hub a webový klient zostavený a testovaný, bude potrebné ho nasadiť na lokálny server IIS
  • V mojom prípade plánujem vo svojej domácej sieti použiť starý prenosný počítač so systémom Windows 7 s IIS

POZNÁMKA

Všetky pokyny sú použiteľné pre verziu Python 2.7.x. Verzia 3.0 môže vyžadovať prepísanie

Krok 4: Databáza SQL Server

Databáza servera SQL Server
Databáza servera SQL Server

Priložená schéma ukazuje štruktúru základnej databázy servera SQL Server používanú v tejto aplikácii a obsahuje iba dve tabuľky.

Tabuľkový kód AutoHub

Dva dôležité stĺpce v tejto tabuľke sú:

AutoCodeKey - ukladá užívateľsky prívetivý názov kódu

Každý z kódových kľúčov je prenášaný automatizačným klientom - v našom prípade tlačidlom HTML z webovej stránky

AutoCodeVal - ukladá nespracovanú sekvenciu IR kódu

Toto je skutočný IR kód, ktorý v reakcii prostredníctvom centra SignalR prenáša späť klientovi

V tomto prípade klient Pythonu, ktorý neustále komunikuje s Hubom, prijíma sekvenciu IR kódov a prenáša ho cez sériový port do Arduino UNO.

Tabuľka AutoHubLog

  • Zaznamenáva kód požadovaný klientom automatizácie.
  • Toto je opatrenie na sledovanie toho, kto a kedy systém používal a aký kód bol požadovaný

Ako už bolo spomenuté, ako zvolenú databázovú platformu som použil SQL Server 2012. Tento jednoduchý dizajn môžete znova vytvoriť na inej databázovej platforme, ako je MySQL, Oracle atď.

Napriek tomu tu bol priložený skript SQL na vytvorenie tejto databázy

POZNÁMKA

  1. Kód pre centrum SignalR je určený na pripojenie k databáze SQL Server 2012
  2. Práca s inou databázou by znamenala zmenu Hubu tak, aby používal iný databázový ovládač

Krok 5: Webová aplikácia ASP. NET SignalR Hub

Webová aplikácia ASP. NET SignalR Hub
Webová aplikácia ASP. NET SignalR Hub
Webová aplikácia ASP. NET SignalR Hub
Webová aplikácia ASP. NET SignalR Hub

Webová aplikácia ASP. NET SignalR Hub spoločne pozostáva z nasledujúcich komponentov, ako je uvedené v priloženej schéme:

Časť 1 - Centrum SignalR, ktoré prijíma požiadavky od klienta a odpovedá naň

Oddiely 2, 4 - Webová stránka klienta HTML a jeho šablóna štýlov, ktoré spoločne tvoria prednú časť systému automatizácie a vydávajú príkazy do centra automatizácie

Časť 3 - Rozhrania API jQuery SignalR používané klientom HTML na komunikáciu s Centrom automatizácie

Časť 5 - SignalR Hub nekomunikuje priamo s databázou. Robí to prostredníctvom medziľahlých tried generovaných pomocou Entity Framework

Tieto triedy abstrahujú detaily databázy z klientskej aplikácie

Oddiel 6 - Trieda databázovej služby, ktorá pomáha vykonávať operácie čítania a zápisu v databáze SQL (popísané vyššie) pomocou tried Entity Framework

ASP. NET a SignalR sú technológie spoločnosti Microsoft a tento tutoriál vás prevedie tým, ako sa vytvára a nasadzuje jednoduchá aplikácia SignalR.

To, čo som tu postavil, je založené na základoch získaných z tohto tutoriálu. Po nasadení by mala aplikácia vyzerať podobne ako webová stránka zobrazená na druhom obrázku

POZNÁMKA KÓDU

Bol priložený súbor ZIP obsahujúci zmenšenú verziu kódu

Štruktúra priečinkov je zobrazená na obrázku - všetky triedy rámcov a skripty jQuery však boli odstránené, aby sa zmenšila veľkosť prílohy.

Odporúča sa, aby sa tento kód používal ako sprievodca, pretože keď vytvoríte novú webovú aplikáciu SignalR podľa vyššie uvedeného odkazu na tutoriál, najnovšie knižnice jQuery a triedy rámcov ASP. NET sa automaticky pridajú

Tiež odkazy na skripty jQuery na stránke index.html bude potrebné zmeniť, aby odrážali najnovšiu verziu klientskych knižníc jQuery SignalR, ktoré sa automaticky pridajú pri vytváraní webovej aplikácie.

Nakoniec bude potrebné zmeniť reťazec pripojenia tak, aby zodpovedal vašej databáze v súboroch s názvom Web.config*

Krok 6: Klient služby Python SignalR

Klient služby Python SignalR
Klient služby Python SignalR

Zatiaľ čo klient HTML SignalR je používateľským rozhraním orientovaným spredu, klient Python je back -end servisnou aplikáciou, ktorej hlavnou funkciou je prijímať IR kód prenášaný Hubom a smerovať ho do Arduino UNO cez sériovú komunikáciu.

Priložený kód je sám osebe vysvetľujúci a je dostatočne zdokumentovaný na popísanie jeho funkčnosti

Ako je znázornené na kompozitnej snímke obrazovky, klient HTML a klient služby Python komunikujú prostredníctvom centra SignalR takto:

  1. Užívateľ automatizačného systému vydá príkaz rozbočovaču kliknutím na tlačidlo
  2. Každé tlačidlo je priradené ku kódu IR kľúča a po kliknutí sa tento kód odošle do rozbočovača
  3. Hub prijme tento kód, pripojí sa k databáze a získa surový kód IR signálu a odošle ho späť všetkým pripojeným klientom

    Hub zároveň zaznamená záznam v databázovej tabuľke AutoHubLog, v ktorom zaznamená kód a dátum a čas, kedy ho požadovali vzdialení klienti

  4. Klient služby Python dostane IR kód a pošle ho Arduino UNO na ďalšie spracovanie

Krok 7: Skica a kód prenosu IR Arduino UNO

Skica a kód prenosu IR Arduino UNO
Skica a kód prenosu IR Arduino UNO
Skica a kód prenosu IR Arduino UNO
Skica a kód prenosu IR Arduino UNO
Skica a kód prenosu IR Arduino UNO
Skica a kód prenosu IR Arduino UNO

Obvod Arduino, ako je znázornené na obrázkoch, je pre tento systém celkom jednoduchý, a preto je stručne popísaný:

  • Bezfarebná IR LED dióda musí byť na UNO zapojená do Digital PIN 3 - to je požiadavka knižnice IRLib Arduino
  • Dôvody sú popísané v mojom predchádzajúcom IBLE o klonovaní diaľkového ovládača v časti súvisiacej s knižnicou IRLib
  • Zelená LED dióda pripojená k Digital PIN 4 je vizuálnym indikátorom, ktorý sa rozsvieti, keď UNO prijme všetky sekcie IR kódu od klienta Python bežiaceho na Raspberry Pi.
  • Rozsvietenie tejto LED diódy potvrdí, že sériová komunikácia medzi Raspberry Pi a UNO funguje
  • Aby bola povolená sériová komunikácia, UNO je pripojený k Raspberry Pi cez USB port
  • Priložená skica Arduino je dostatočne komentovaná na popísanie jej funkcie
  • Komentáre v hornej časti kódu tiež opisujú, ako je potrebné obvod zapojiť

POZNÁMKA

V praxi bolo možné Arduino a Pi spoločne pripojiť k napájanému rozbočovaču USB dostatočne silnému, aby poháňal Pi, Arduino a tiež prenášal silný signál prostredníctvom infračervenej LED diódy

Krok 8: Pripojenie a testovanie systému

Zapojenie a testovanie systému
Zapojenie a testovanie systému
Zapojenie a testovanie systému
Zapojenie a testovanie systému
Zapojenie a testovanie systému
Zapojenie a testovanie systému
  1. Vybudujte a nasaďte ASP. NET SignalR Hub, klienta HTML spolu s databázou SQL Server 2012, na server Internet Information Server (IIS) vo vašej lokálnej domácej sieti.
  2. K webovej aplikácii sa dostanete otvorením klienta HTML SignalR cez

    adresa URL tejto stránky bude zvyčajne https:// váš počítač: číslo_portu/

  3. Kliknite na tlačidlo na ovládacom paneli a ak bola aplikácia správne nasadená, Hub odpovie vrátením IR kódu a jeho zobrazením na sivom paneli vedľa ovládacieho panela.

    Pamätajte si! Kódy budete musieť načítať do svojej databázy nastavením knižnice IR prijímača a zachytením kódov podľa môjho predchádzajúceho IBLE

  4. Pripojte Arduino k Raspberry Pi cez USB - otvorte Arduino IDE na Pi a uistite sa, že UNO môže nadviazať spojenie s Pi

    tieto návody na Arduino by vám mali pomôcť dostať sa do toho dosť rýchlo

  5. Otvorte kód Python a vykonajte nasledujúce zmeny podľa vášho prostredia
    • adresu sériového portu vášho UNO získanú z kroku 4
    • adresa URL centra SignalR, aby sa zhodovala s vašou miestnou adresou URL z kroku 2 - v tomto prípade by to bol https:// váš počítač: číslo_portu/signál
  6. Nakoniec otvorte skicu Arduino v Arduino IDE na Raspberry Pi a odošlite ju do UNO
  7. Umiestnite dosku na chlieb, ktorá drží obvod, v tesnej blízkosti spotrebiča, ktorý chcete ovládať - IR LED dióda musí mať jasný zorný uhol s portom IR prijímača zariadenia
  8. Spustite program Python na Raspberry Pi stlačením tlačidla F5 na paneli s nástrojmi Python IDLE
  9. Vráťte sa na ovládací panel v klientskom programe HTML (krok 2) a kliknite na tlačidlo (napríklad Zapnúť alebo Zvýšiť hlasitosť)

Ak je systém nastavený správne, mali by ste byť schopní v telefóne alebo tablete vyvolať klientsku stránku HTML a ovládať svoje zariadenie pomocou tlačidiel na klientskej stránke HTML.

Krok 9: Systém v akcii

Systém v akcii
Systém v akcii
Systém v akcii
Systém v akcii
Systém v akcii
Systém v akcii
Systém v akcii
Systém v akcii

Vizuály vyššie zobrazujú systém domácej automatizácie v prevádzke hneď po jeho nastavení.

Od vydania tohto IBLE som rozhranie rozšíril zachytením niekoľkých IR kódov z môjho LED televízora VIZIO

Ako je znázornené vedľa prvého diaľkového ovládača televízora v prvom vizuáli, do webového používateľského rozhrania, ktoré je prístupné z môjho tabletu, bolo zabudovaných niekoľko základných funkcií tohto diaľkového ovládača.

Nasledujúce vizuály zobrazujú tablet v popredí s televízorom vzadu, ktorý reaguje na príkazy vydané z webového rozhrania:

  1. Príkaz vypnutia - televízor sa vypne
  2. Príkaz na zapnutie - televízor sa zapne a po zapnutí obrazovky sa zobrazí logo „V“
  3. Príkaz stlmenia ZAPNUTÝ - Pri stlmení reproduktora sa zobrazí vodorovná lišta

Vo všetkých testoch sa v šedej oblasti vedľa palubnej dosky na obrazovke tabletu zobrazuje príkaz zadaný klientom a odpoveď odoslaná vzdialeným serverom SignalR Hub

Krok 10: Vylepšenie systému automatizácie a súvisiace opravy

Tento systém je možné rozšíriť pridaním ďalších kódov zachytených z rôznych systémov. Aj keď je táto časť jednoduchá, existujú dva ďalšie faktory, ktoré budete musieť vziať do úvahy.

Vylepšenie 1 (rýchle): Práca s infračervenými signálmi rôznych dĺžok

  1. IR kódy rôznych systémov sa dodávajú s rôznymi dĺžkami, dokonca aj medzi dvoma výrobkami od rovnakého výrobcu.

    V tomto prípade je napríklad dĺžka poľa IR kódu pre LED televízor 67, zatiaľ čo pre zvukový panel Samsung je to približne 87

  2. To znamená, že ak by som najskôr zapol Sound Bar, pole IR Buffer v skici Arduino by bolo naplnené sekvenciou IR kódu, ktorá obsahuje 87 kódov
  3. Ak by som potom zapol LED televízor, zaplnilo by pole IR Buffer iba 67 kódov, ale zvyšných 20 kódov z predchádzajúcej operácie by bolo stále okolo.

Výsledok? LED televízor sa nezapne, pretože vyrovnávacia pamäť IR kódov bola poškodená ďalšími 20 kódmi, ktoré neboli vyčistené z predchádzajúcej operácie!

Oprava 1 (jednoduchá cesta von, neodporúča sa)

Skicu Arduino upravte takto:

Vo funkcii loop () {} zmeňte nasledujúce volania funkcií

transmitIRCode ();

vysielať IRCode (c);

Vykonajte zmeny v podpise vyššie uvedenej funkcie:

void transmitIRCode (int codeLen) {// Konštanta RAWBUF nahradená codeLen IRTransmitter. IRSendRaw:: send (IRCodeBuffer, codeLen, 38); }

Aj keď je to jednoduché, pole sa nikdy úplne nevymaže, a preto to nie je veľmi čisté riešenie

Oprava 2 (Nie je ťažké, odporúča sa)

Po sekcii komentárov vyhláste dodatočnú premennú na samom vrchu skici Arduino:

nepodpísané int EMPTY_INT_VALUE;

Pridajte to do hornej časti funkcie setup ():

// Zachyťte prirodzený stav prázdnej celočíselnej premennej bez znamienkaEMPTY_INT_VALUE = IRCodeBuffer [0];

Prejdite nadol a pridajte novú funkciu do náčrtu bezprostredne za funkciou transmitIRCode ():

void clearIRCodeBuffer (int codeLen) {// Vymazanie všetkých kódov z poľa // POZNÁMKA: Nastavenie prvkov poľa na 0 nie je riešením! pre (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}

Nakoniec zavolajte novú funkciu vyššie na nasledujúce miesto vo funkcii loop ():

// Reset - Pokračovať v čítaní Serial PortclearIRCodeBuffer (c);…

Toto je čistejší prístup, pretože v skutočnosti resetuje všetky miesta v poli IR Buffer, ktoré boli obsadené najnovším signálom IR kódu, bez toho, aby ste nechali čokoľvek na náhodu.

Vylepšenie 2 (Viac zapojené): Opakovaný prenos signálu IR pre určité zariadenia

Niektoré zariadenia vyžadujú na odpoveď rovnaký signál viackrát, aby odpovedali Príklad: V takom prípade zvukový panel Samsung vyžaduje odoslanie rovnakého kódu dvakrát s odstupom 1 sekundy

Diskutovalo sa o oprave v koncepcii, pretože je trochu viac zapojená a bude potrebovať testovanie

Pridanie funkcie opakovania do skici Ardunio bude znamenať, že budete musieť skicu flashovať pri každom pridaní nového zariadenia do vášho systému domácej automatizácie

Namiesto toho pridaním tejto opravy do klienta HTML SignalR a aplikácie Python SignalR Service bude riešenie oveľa flexibilnejšie. A to sa dá v zásade dosiahnuť nasledovne:

Upravte klienta HTML SignalR tak, aby do Hubu odosielal informácie o opakovaní

Otvorte index.html a vložte hodnotu opakovania do tlačidla HTML takto:

value = "SMSNG-SB-PWR-ON" sa zmení na value = "SMSNG-SB-PWR-ON_2_1000"

Kde 2 je hodnota opakovania a 1 000 je hodnota oneskorenia v milisekundách medzi dvoma signálmi opakovania

Keď kliknete na toto tlačidlo, centrum SignalR dostane kód kľúča+Repeat_Spec

Upravte metódy na strane servera SignalR tak, aby analyzovali iba kód kľúča:

  • Použite kód kľúča na získanie IR kódu z databázy ako obvykle
  • Odošlite kód kľúča+Repeat_Spec a kód IRC klientom SingalR ako obvykle

Upravte aplikáciu Python SignalR Service tak, aby prenášala signály pomocou hodnôt opakovania:

Otvorte klienta Python a upravte nasledujúce dve funkcie:

def print_command_from_hub (buttonId, cmdSrc):

# analyzujte opakujúci sa kód z hodnoty buttonId

def transmitToArduino (IRSignalCode, delim, endPrefix):

# nastavte chvíľu alebo slučku na prenos signálu na požadovanej frekvencii

  • Týmto spôsobom sa Arduino nemusí opakovane blikať
  • Do tohto systému je možné zabudovať ľubovoľný počet opakujúcich sa frekvencií
  • Okrem toho, ak používate UNO, existuje obmedzenie veľkosti, do ktorej môže váš Sketch narásť!

Krok 11: Známe problémy a obavy o bezpečnosť

Ako je tomu v prípade systémov postavených úplne prvýkrát, aj tento má niekoľko problémov, ktoré sa objavili počas testovania.

Problém 1: Spúšťacie príkazy v rýchlom slede s oneskorením medzi kliknutiami na tlačidlá menej ako sekundu spôsobili, že systém prestal reagovať po prvých niekoľkých odpovediach.

  • Reštartovaním klienta Python SignalR sa systém vráti do normálnej prevádzky
  • Okamžitým riešením môže byť odstránenie nechcených výstupov ladenia v klientovi Python SignalR a tiež v skici Arduino a zopakovanie týchto testov.
  • Ďalším miestom, kde by sme sa mali pozrieť, by bola samotná sériová komunikácia - bolo by možné pridať kód na rýchle vyprázdnenie vyrovnávacej pamäte?

To znamená, že som si všimol, že môj televízor nereaguje dobre na diaľkové ovládanie z výroby - preto môže prispieť aj samotná povaha IR komunikácie môjho televízora.

Problém 2: Obrazovka HTML prestáva po dlhom čase nečinnosti reagovať na kliknutia na tlačidlá

Toto správanie sa zvyčajne vyrieši obnovením stránky - príčina tohto správania je však stále nejasná

BEZPEČNOSTNÉ OPATRENIA

Tento systém bol navrhnutý len na používanie v miestnej (domácej) sieti a nemá potrebné bezpečnostné opatrenia, ktoré by bolo možné používať cez internet

Preto sa odporúča, aby bolo centrum SignalR rozmiestnené na miestnom počítači vo vašej miestnej/domácej sieti

Ďakujem, že ste si prečítali môj IBLE a dúfam, že sa budete baviť!

Odporúča: