Sisällysluettelo:
- Vaihe 1: Mitä tarvitset, ennen mitä tarvitset
- Vaihe 2: Mitä tarvitset - laitteisto
- Vaihe 3: Mitä tarvitset - ohjelmisto
- Vaihe 4: SQL Server -tietokanta
- Vaihe 5: ASP.NET SignalR Hub -sovellus
- Vaihe 6: Python SignalR Service Client
- Vaihe 7: Arduino UNO IR -lähetysluonnos ja koodi
- Vaihe 8: Järjestelmän kytkeminen ja testaus
- Vaihe 9: Järjestelmä toiminnassa
- Vaihe 10: Automaatiojärjestelmän ja siihen liittyvien korjausten parantaminen
- Vaihe 11: Tunnetut ongelmat ja turvallisuusongelmat
Video: Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Muutaman täällä ja täällä julkaistun IBLE -esipuheeni jälkeen tämä projekti ottaa ensimmäisen askeleen kohti perusversion rakentamista toimivasta Home Automation Hubista.
Olen käyttänyt useita erilaisia tekniikoita pyrkiäkseni ymmärtämään, kuinka voin ehkä käyttää kaikkia aiemmin oppiani asioita ja uusia asioita, joita opin edelleen päivien edetessä.
Siksi tämä automaatiokeskus koostuu seuraavista osista:
SQL Server 2012 -tietokanta, joka:
- tallentaa luettelon ennalta määritetyistä infrapuna (IR) koodeista taulukkoon yhdessä ainutlaatuisen "koodiavaimen" kanssa
- koodiavaimet nimetään intuitiivisesti (käyttäjän toimesta), jotta voidaan tunnistaa niihin liittyvien IR -koodien tarkoitus
Reaaliaikainen ASP. NET SignalR Hub -sovellus, joka:
- odottaa ja vastaanottaa "koodiavaimia" komentoina käyttäjältä, joka kohtaa HTML -asiakkaan
- kun se vastaanotetaan, muodostaa yhteyden SQL -tietokantaan ja hakee IR -koodin mukana toimitetulla koodiavaimella
- välittää haetun IR -koodin Python SignalR -asiakkaalle
Käyttäjä edessään HTML SignalR Dashboard -asiakas, joka:
- välittää ainutlaatuisen koodiavaimen Hubille jQuery SignalR Client -sovellusliittymien kautta
- jokainen hallintapaneelin painike edustaa ainutlaatuista koodiavainta, joka on tallennettu SQL -tietokantataulukkoon
Raspberry Pi 2.0: lla toimiva Python SignalR -taustapalvelusovellus, joka:
- vastaanottaa IR -koodeja komennoina Hubilta
- etsii erottimia IR -koodista ja jakaa erittäin pitkän koodin osiin
- kommunikoi sarjaportin kautta Arduinolle ja kirjoittaa jokaisen segmentin ulos peräkkäin
Arduino IR -lähettimen luonnos, joka:
- odottaa ja vastaanottaa jokaisen IR -koodisegmentin sarjaportin kautta
- kokoaa koodisegmentit IR -koodipuskurimatriisiksi
- pakkaa puskurin IR -lähetyskomentoon IRLib Arduino -kirjaston avulla
Jos kohdelaite on IR -lähettimen läheisyydessä, laite (voi) reagoida Arduinon lähettämään IR -signaaliin
HUOMAUTUS
Vaikka tässä esittelyssä käyttämäni kohdelaite reagoi IR -signaaleihin, saatat haluta lukea tämän toisen IBLE: n osion syistä, joiden vuoksi sanon, että laite (saattaa) reagoida IR -signaaliin.
Aika rullata.
Vaihe 1: Mitä tarvitset, ennen mitä tarvitset
Tämä opettavainen lähtee liikkeelle joistakin aiemmin tehdyistä töistä, jotka johtivat myös viimeiseen IBLEni.
Joten ennen kuin astumme siihen, mitä tarvitsemme tätä IBLE: tä varten, on suositeltavaa, että luet tämän ohjeen jonkin verran taustaa varten:
- Arduino IRLib -infrapunakirjasto perustettiin
- Tässä IBLE: ssä käytetyt IR -koodit kaapattiin IR -vastaanottimella
- Miten kaapattuja IR -koodeja käytettiin kohdelaitteen ohjaamiseen IR -lähettimen kautta
Tämän IBLE: n valmistumisen jälkeen otin käyttöön ASP. NET IR Code Recorder -sovelluksen, joka
- Hyväksy kaapattu IR -koodi ja intuitiivisesti nimetty koodiavain verkkolomakkeen syötteinä
- Jaa erittäin pitkä IR -koodi alle 64 merkin pituisiin segmentteihin, jotta pysyt Arduino Unon sarjapuskurirajan alapuolella
- Koodien viimeinen segmentti on ennalta kiinnitetty kirjaimella "E", joka osoittaa Arduinolle, että se on vastaanottanut koodin viimeisen segmentin
- Jokainen segmentti erotetaan putkierottimella ennen kuin se kootaan takaisin pitkäksi merkkijonoksi
- Lopuksi segmentoitu IR -koodi ja sen koodiavain tallennettiin SQL Server 2012 -tietokantaan
Tämä SQL -tietokanta muodostaa yhden tässä IBLE: ssä kehitetyn Home Automation Hub -komponentin osista.
HUOMAUTUS
IR Code Recorder -sovellus ei ole osa keskustelua seuraavista syistä:
- Voit kaapata koodit manuaalisesti Arduino Sketchin avulla, jakaa ne putkikohtaisesti erotettuihin osiin ja tallentaa ne tietokantaan ilman, että sinun tarvitsee rakentaa monimutkaista verkkosovellusta
- Toisin kuin tämä IBLE, IR -tallennin keskittyy käänteiseen viestintään Arduinosta Raspberry Pi: hen
Siksi tämän hankkeen yksityiskohdat olisivat toisen IBLE: n aihe
Vaihe 2: Mitä tarvitset - laitteisto
Toimiva Raspberry Pi 2.0 - Suosittelen Ubuntu Mate -ohjelmiston asentamista, koska siinä on runsaasti ominaisuuksia, kuten OpenLibre Office, joka muuten oli välttämätön tämän ohjeen dokumentoinnissa, siellä Raspberry Pi -laitteessa.
Lisäksi, Pi, tarvitset seuraavat ulkoiset osat:
- Arduino Unon prototyyppialusta tai klooni
- IR -lähettimen LED - Käytin tuotemerkkiä nimeltä Three Legs Amazon.com -sivustolta
- 330 tai 220 ohmin vastukset-käytin 220 (värikoodi punainen-punainen-ruskea), koska minulla oli useita käteviä
- Tavallinen leipälevy, liittimet ja tietokone, johon on asennettu Arduino Environment
- Testiehdokas - kuten kaikkialla läsnä oleva Samsungin LED -näyttö kauko -ohjaimella
Vaihe 3: Mitä tarvitset - ohjelmisto
Jotta kaikki osat saadaan yhteen, seuraava ohjelmistoasennus on asennettava ja suoritettava:
Raspberry Pi -laitteeseen sinun on asennettava seuraavat:
- Arduino IDE - käytettiin luonnoksen rakentamiseen ja sen välittämiseen UNO: lle
- Python -moduuli Arduinolle - sarjaliikenteelle UNO: n ja Pi: n välillä
- Python SignalR -asiakaskirjasto - Voit katsoa ohjeita täältä
Windows -kone, johon on asennettu seuraava kehitysympäristö:
- Ilmainen Microsoft Visual Studio Express 2013 -versio SignalR Hub- ja Web -asiakassovelluksen rakentamiseen
- Ilmainen SQL Server 2012 Express -versio taustatietokannan suunnitteluun ja rakentamiseen
Windows Internet Information Server (IIS) -isäntäympäristö:
- Kun SignalR Hub ja Web -asiakas on rakennettu ja testattu, se on otettava käyttöön paikallisessa IIS -palvelimessa
- Minun tapauksessani aion käyttää kotiverkossani vanhaa kannettavaa tietokonetta, jossa on Windows 7 ja IIS
HUOMAUTUS
Kaikki ohjeet koskevat Python 2.7.x -versiota. Versio 3.0 saattaa vaatia uudelleenkirjoituksia
Vaihe 4: SQL Server -tietokanta
Liitteenä oleva kaavio esittää tässä sovelluksessa käytetyn perus SQL Server -tietokannan rakenteen ja sisältää vain kaksi taulukkoa.
Taulukko AutoHubCode
Tämän taulukon kaksi tärkeää saraketta ovat:
AutoCodeKey - tallentaa koodiavaimen käyttäjäystävällisen nimen
Jokainen koodiavain lähetetään automaatioasiakkaalta - meidän tapauksessamme HTML -painike verkkosivulta
AutoCodeVal - tallentaa raa'an IR -koodisekvenssin
Tämä on todellinen IR -koodi, jonka SignalR Hub lähettää takaisin asiakkaalle
Tässä tapauksessa Python -asiakas, joka on jatkuvasti yhteydessä Hubiin, vastaanottaa IR -koodisekvenssin ja lähettää sen sarjaportin kautta Arduinon UNO: lle
Taulukko AutoHubLog
- Kirjaa automaatioasiakkaan pyytämän koodin.
- Tämä on toimenpide, jolla seurataan kuka ja milloin käytti järjestelmää ja mitä koodia pyydettiin
Kuten mainitsin, olen käyttänyt SQL Server 2012: ta valittuna tietokanta -alustana. Voit luoda tämän yksinkertaisen mallin uudelleen eri tietokantaympäristössä, kuten MySQL, Oracle jne.
Siitä huolimatta SQL -komentosarja tämän tietokannan luomiseksi on liitetty tähän
HUOMAUTUS
- SignalR Hubin koodi on suunniteltu muodostamaan yhteys SQL Server 2012 -tietokantaan
- Toisen tietokannan käyttö merkitsisi Hubin muuttamista käyttämään eri tietokanta -ohjainta
Vaihe 5: ASP. NET SignalR Hub -sovellus
ASP. NET SignalR Hub -verkkosovellus koostuu yhdessä seuraavista osista, jotka on esitetty liitteenä olevassa kaaviossa:
Osa 1 - SignalR Hub, joka vastaanottaa asiakkaalta pyyntöjä ja vastaa niihin
Osat 2, 4 - HTML -asiakassivusto ja sen tyylitaulukko muodostavat yhdessä automaatiojärjestelmän käyttöliittymän ja antavat komentoja Automation Hubille
Osa 3 - jQuery SignalR -sovellusliittymät, joita HTML -asiakas käyttää kommunikoidakseen Automation Hubiin
Osa 5 - SignalR Hub ei kommunikoi suoraan tietokantaan. Se tekee sen väliluokkien avulla, jotka on luotu käyttämällä Entity Framework -kehystä
Nämä luokat abstraktoivat tietokannan tiedot käyttöliittymästä
Osa 6 - Tietokanta -palveluluokka, joka auttaa suorittamaan luku- ja kirjoitusoperaatioita SQL -tietokannassa (kuvattu aiemmin) käyttämällä Entity Framework -luokkia
ASP. NET ja SignalR ovat Microsoftin teknologioita, ja tämä opetusohjelma opastaa yksinkertaisen SignalR -sovelluksen rakentamisessa ja käyttöönotossa.
Se, mitä olen rakentanut tänne, perustuu opetusohjelmasta hankittuihin perusasioihin. Kun sovellus on otettu käyttöön, sen pitäisi näyttää samanlaiselta kuin toisessa kuvassa näkyvä verkkosivu
HUOMAUTUS KOODISTA
Liitteeseen on liitetty ZIP -tiedosto, joka sisältää koodin poistetun version
Kansiorakenne on visualisoinnin mukainen - kaikki kehysluokat ja jQuery -komentosarjat on kuitenkin poistettu liitteen koon pienentämiseksi
Suosittelemme, että tätä koodia käytetään oppaana, koska kun luot uuden SignalR -verkkosovelluksen yllä olevan opetuslinkin kautta, uusimmat jQuery -kirjastot ja ASP. NET -kehysluokat lisätään automaattisesti
Myös index.html -sivun viittaukset jQuery -komentosarjoihin on muutettava vastaamaan jQuery SignalR -asiakirjakirjastojen uusinta versiota, joka lisätään automaattisesti Web -sovellusta luotaessa.
Lopuksi yhteysmerkkijono on muutettava vastaamaan tietokantaa tiedostoissa, joiden nimi on Web.config*
Vaihe 6: Python SignalR Service Client
Vaikka HTML SignalR Client on käyttöliittymä edestä päin, Python Client on palvelusovellus, jonka päätehtävä on vastaanottaa Hubin lähettämä IR -koodi ja reitittää se Arduino UNO: lle sarjaliikenteen kautta.
Liitteenä oleva koodi on itsestään selvä ja se on dokumentoitu riittävän hyvin kuvaamaan sen toimivuutta
Kuten yhdistetystä ruutukaaviosta näkyy, HTML -asiakas ja Python Service -asiakas kommunikoivat SignalR Hubin kautta seuraavasti:
- Automaatiojärjestelmän käyttäjä antaa komennon Hubille painikkeen napsautuksella
- Jokainen painike liittyy IR -avainkoodiin, ja kun sitä napsautetaan, tämä koodi lähetetään Hubiin
-
Hub vastaanottaa tämän koodin, muodostaa yhteyden tietokantaan ja hakee raa'an IR -signaalikoodin ja lähettää sen takaisin kaikille yhdistetyille asiakkaille
Samanaikaisesti Hub kirjaa merkinnän AutoHubLog -tietokantataulukkoon, joka tallentaa koodin ja päivämäärän ja kellonajan, jolloin etäasiakkaat pyysivät sitä
- Python -palveluasiakas vastaanottaa IR -koodin ja välittää sen Arduino UNO: lle jatkokäsittelyä varten
Vaihe 7: Arduino UNO IR -lähetysluonnos ja koodi
Visuaalissa esitetty Arduino -piiri on melko yksinkertainen tälle järjestelmälle, ja siksi se kuvataan lyhyesti:
- Väritön IR -LED on kytkettävä UNO: n digitaaliseen PIN 3: een - tämä on IRLib Arduino -kirjaston vaatimus
- Syyt on kuvattu aikaisemmassa IBLE -kalenterini kloonauksessa IRLib -kirjastoon liittyvässä osiossa
- Digitaaliseen PIN 4 -laitteeseen liitetty vihreä LED on visuaalinen ilmaisin, joka syttyy, kun UNO on vastaanottanut kaikki IR -koodin osat Raspberry Pi -laitteella toimivalta Python -asiakkaalta.
- Tämän LED -valon syttyminen vahvistaa, että sarjaliikenne Raspberry Pi: n ja UNO: n välillä toimii
- Jotta sarjaliikenne voidaan ottaa käyttöön, UNO on kytketty Raspberry Pi -laitteeseen USB -portin kautta
- Liitteenä oleva Arduino -luonnos on kommentoitu riittävästi kuvaamaan sen toimintaa
- Koodin yläosassa olevat kommentit kuvaavat myös, kuinka piiri on kytkettävä
HUOMAUTUS
Käytännössä Arduino ja Pi voitaisiin yhdistää yhdessä USB -keskittimeen, joka on tarpeeksi vahva ajamaan Pi: tä, Arduinoa ja lähettämään myös voimakkaan signaalin IR -LED -valon kautta
Vaihe 8: Järjestelmän kytkeminen ja testaus
- Luo ja ota käyttöön ASP. NET SignalR Hub, HTML -asiakas yhdessä SQL Server 2012 -tietokannan kanssa paikallisen kotiverkon Internet Information Server (IIS) -palvelimeen
- Pääset verkkosovellukseen avaamalla HTML SignalR -asiakas HTTP: n kautta
Tämän sivun URL -osoite olisi tyypillisesti https:// tietokoneesi: portin_numero/
- Napsauta ohjauspaneelin painiketta, ja jos sovellus on otettu käyttöön oikein, Hub vastaa palauttamalla IR -koodin ja näyttämällä sen ohjauspaneelin vieressä olevassa harmaassa paneelissa
Muistaa! Sinun on ladattava koodit tietokantaasi määrittämällä infrapunavastaanotinkirjasto ja tallentamalla koodit edellisen IBLE: n mukaisesti
-
Liitä Arduino Raspberry Pi: hen USB: n kautta - avaa Arduino IDE Pi: llä ja varmista, että UNO voi muodostaa yhteyden Pi: hen
näiden Arduino -opetusartikkelien pitäisi auttaa sinua pääsemään tähän melko nopeasti
-
Avaa Python -koodi ja tee seuraavat muutokset ympäristösi mukaan
- UNO: n sarjaporttiosoite, joka on saatu vaiheessa 4
- SignalR -keskittimen URL -osoite, joka vastaa paikallista URL -osoitettasi vaiheessa 2 - tässä esimerkissä se olisi https:// yourComputer: port_number/signalr
- Avaa lopuksi Arduino -luonnos Raspberry Pi: n Arduino IDE -laitteessa ja välitä se UNO: lle
- Aseta leipälauta, joka pitää piirin lähellä ohjattavaa laitetta - IR -LEDillä on oltava selkeä näkökenttä laitteen IR -vastaanottimen portin kanssa
- Käynnistä Python -ohjelma Raspberry Pi -laitteella painamalla F5 -painiketta Python IDLE -työkalurivillä
- Palaa HTML -asiakasohjelman Ohjauspaneeliin (vaihe 2) ja napsauta painiketta (kuten virta päälle tai äänenvoimakkuuden lisäys)
Jos järjestelmä on asennettu oikein, sinun pitäisi pystyä avaamaan puhelimen tai tabletin HTML -asiakassivu ja ohjaamaan laitettasi HTML -asiakassivusi painikkeilla.
Vaihe 9: Järjestelmä toiminnassa
Yllä olevat grafiikat osoittavat kodin automaatiojärjestelmän toiminnassa asennuksen jälkeen.
Tämän IBLE: n julkaisemisen jälkeen olen laajentanut käyttöliittymää kaappaamalla muutamia IR -koodeja VIZIO LED -televisiostani
Kuten tehtaan TV Remote -kaukosäätimen vieressä näkyy ensimmäisessä visualisoinnissa, muutamia tämän kauko -ohjaimen olennaisia toimintoja on sisäänrakennettu tabletin kautta käytettävään Web -käyttöliittymään
Myöhemmissä kuvissa tabletti näkyy etualalla ja televisio takana vastaa Web -käyttöliittymän antamiin komentoihin:
- Virta POIS -komento - TV sammuu
- Virtakytkin - TV käynnistyy ja "V" -logo tulee näkyviin, kun näyttö käynnistyy
- Mykistys ON -komento - Vaakasuora palkki tulee kaiuttimen mykistyksen kohdalle
Kaikissa testeissä tabletin näytön kojelaudan vieressä olevalla harmaalla alueella näkyy asiakkaan antama komento ja etäsignaalikeskuksen lähettämä vastaus.
Vaihe 10: Automaatiojärjestelmän ja siihen liittyvien korjausten parantaminen
Tätä järjestelmää voidaan laajentaa lisäämällä lisää eri järjestelmistä kaapattuja koodeja. Vaikka tämä osa on helppo, sinun on otettava huomioon kaksi muuta tekijää.
Parannus 1 (nopea): Eripituisten IR -signaalien kanssa työskentely
-
Eri järjestelmien IR -koodeja on eripituisia, jopa kahden saman valmistajan tuotteen välillä.
Esimerkiksi tässä tapauksessa LED -TV: n IR -koodimatriisin pituus on 67 ja Samsungin äänipalkin noin 87
- Tämä tarkoittaa, että jos otan Soundbarin ensin käyttöön, Arduino -luonnoksen IR -puskuriryhmä täytetään 87 koodia sisältävällä IR -koodisekvenssillä
- Tämän jälkeen jos otan LED -television käyttöön, se täyttää IR -puskuriryhmän vain 67 koodilla, mutta jäljellä olevat 20 koodia edellisestä toiminnosta ovat edelleen
Lopputulos? LED -TV ei käynnisty, koska IR -koodipuskuri on korruptoitunut 20 ylimääräisen koodin takia, joita ei ole puhdistettu edellisestä toiminnosta!
Korjaa 1 (helppo tie, ei suositella)
Muuta Arduino -luonnosta seuraavasti:
Muuta seuraavia funktiokutsuja silmukan () {} -funktiossa
lähetysIRCode ();
lähettääIRCode (c);
Tee muutokset yllä olevan toiminnon allekirjoitukseen:
void lähetysIRCode (int -koodiLen) {// RAWBUF -vakio korvataan koodillaLen IRTransmitter. IRSendRaw:: lähetä (IRCodeBuffer, codeLen, 38); }
Vaikka tämä on helppoa, ryhmä ei koskaan todellakaan tyhjene kokonaan, joten tämä ei ole kovin puhdas ratkaisu
Korjaa 2 (ei kovaa, suositellaan)
Ilmoita lisämuuttuja Arduino -luonnoksen yläosassa kommenttien jälkeen:
unsigned int EMPTY_INT_VALUE;
Lisää tämä setup () -toiminnon alkuun:
// Kaappaa tyhjän allekirjoittamattoman kokonaislukumuuttujan luonnollinen tilaEMPTY_INT_VALUE = IRCodeBuffer [0];
Vieritä alas ja lisää luonnokseen uusi toiminto heti lähetyksenIRCode () -toiminnon jälkeen:
void clearIRCodeBuffer (int codeLen) {// Tyhjennä kaikki koodit taulukosta // HUOMAUTUS: taulukkoelementtien asettaminen arvoon 0 ei ole ratkaisu! for (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}
Kutsu lopuksi uusi toiminto yllä olevaan silmukka () -funktion seuraavaan paikkaan:
// Nollaa - Jatka lukemista Serial PortclearIRCodeBuffer (c);…
Tämä on puhtaampi lähestymistapa, koska se itse asiassa nollaa kaikki IR -puskuriryhmän sijainnit, jotka on täytetty viimeisimmällä IR -koodisignaalilla jättämättä mitään sattuman varaan.
Parannus 2 (enemmän mukana): Toistuva IR -signaalin lähetys tietyille laitteille
Jotkin laitteet tarvitsevat saman signaalin lähettämisen useita kertoja vastatakseen Esimerkki: Tässä tapauksessa Samsung Sound Bar vaatii saman koodin lähettämisen kahdesti 1 sekunnin välein
Fix in Concept on käsitelty täällä, koska se on hieman enemmän mukana ja vaatii testausta
Toistotoiminnon lisääminen Ardunio Sketchiin tarkoittaa, että sinun täytyy vilkuttaa luonnos aina, kun lisäät uuden laitteen kodin automaatiojärjestelmään
Sen sijaan tämän korjauksen lisääminen HTML SignalR -asiakkaaseen ja Python SignalR Service -sovellukseen tekee ratkaisusta paljon joustavamman. Ja tämä voidaan saavuttaa periaatteessa seuraavasti:
Muokkaa SignalR HTML -asiakasohjelmaa välittääksesi toistotietoja Hubille
Avaa index.html ja upota toistoarvo HTML -painikkeeseen seuraavasti:
value = "SMSNG-SB-PWR-ON" muuttuisi value = "SMSNG-SB-PWR-ON_2_1000"
Missä 2 on toistoarvo ja 1000 on viivearvo millisekunteina kahden toistosignaalin välillä
Kun napsautat tätä painiketta, SignalR -keskus saa avainkoodin+Repeat_Spec
Muokkaa SignalR -palvelinpuolen menetelmiä jäsentääksesi vain avainkoodin:
- Nouda IR -koodi tietokannasta tavallisesti avainkoodilla
- Lähetä avainkoodi+Repeat_Spec ja IRCode SingalR -asiakkaille tavalliseen tapaan
Muokkaa Python SignalR Service -sovellusta lähettämään signaaleja uusinta -arvoja käyttäen:
Avaa Python -asiakas ja muokkaa seuraavia kahta toimintoa:
def print_command_from_hub (buttonId, cmdSrc):
# jäsentää toistokoodin buttonId -arvosta
def sendToArduino (IRSignalCode, delim, endPrefix):
# Aseta hetki tai silmukka signaalin lähettämiseksi halutulla taajuudella
- Tällä tavalla Arduinoa ei tarvitse vilkuttaa toistuvasti
- Tähän järjestelmään voitaisiin rakentaa mikä tahansa määrä toistotaajuuksia
- Sitä paitsi, jos käytät UNO: ta, luonnoksesi koko voi kasvaa!
Vaihe 11: Tunnetut ongelmat ja turvallisuusongelmat
Kuten ensimmäistä kertaa rakennettujen järjestelmien tapauksessa, tässä on pari ongelmaa, jotka ilmenivät testauksen aikana.
Ongelma 1: Kun komennot käynnistetään nopeasti peräkkäin ja alle sekunnin viive painikkeiden napsautusten välillä, järjestelmä ei reagoi muutaman ensimmäisen kerran vastaamisen jälkeen.
- Python SignalR -asiakasohjelman uudelleenkäynnistys palauttaa järjestelmän normaaliin toimintaan
- Välittömät ratkaisut voivat olla poistaa ei -toivotut virheenkorjausulostulot molemmista, Python SignalR Clientista ja myös Arduino Sketchistä, ja toistaa nämä testit
- Toinen paikka tarkastella olisi itse sarjaliikenne - olisiko mahdollista lisätä koodia puskurin nopeaan huuhtelemiseen?
Olen kuitenkin huomannut, että televisioni ei reagoi hyvin tehtaan kaukosäätimeen - siksi televisioni IR -viestinnän luonne voi olla myös vaikuttava tekijä.
Ongelma 2: HTML -näyttö lakkaa vastaamasta painikkeiden napsautuksiin pitkän käyttämättömyyden jälkeen
Yleensä sivun päivittäminen ratkaisee tämän ongelman - syy tähän on kuitenkin edelleen epäselvä
TURVALLISUUSHUOLTA
Tämä järjestelmä on suunniteltu vain paikalliseen (koti) verkkokäyttöön, eikä sillä ole tarvittavia turvatoimia Internetin käyttöä varten
Siksi on suositeltavaa, että SignalR Hub asennetaan paikalliseen tietokoneeseen paikallisessa/kotiverkossa
Kiitos IBLEn lukemisesta ja toivon, että pidät hauskaa!
Suositeltava:
DIY Home Automation Intruder Alarm System!: 5 vaihetta (kuvilla)
DIY Home Automation Intruder Alarm System!: Tässä projektissa näytän sinulle, kuinka käyttää Home Assistant -ohjelmistoa luodaksesi tunkeutujahälytysjärjestelmän kotiisi. Järjestelmä havaitsee periaatteessa, jos ovi avataan ilman lupaa, ja lähettää sitten ilmoituksen
Hallitse automaattista liukuporttia Home Assistantin ja ESP: n avulla Home: 5 vaihetta (kuvilla)
Hallitse automaattista liukuporttia Home Assistantin ja ESPHomen avulla: Seuraava artikkeli antaa palautetta henkilökohtaisesta kokemuksestani taloon asennetun automaattisen liukuportin ohjaamisesta. Tässä portissa, "V2 Alfariss", oli muutama Phox V2 -kaukosäädin sen hallitsemiseksi. Minulla on myös
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 vaihetta
Sonoff B1 Firmware Home Automation Openhab Google Home: Pidän todella Tasmota -laiteohjelmistosta Sonoff -kytkimille. Mutta a ei ollut todella tyytyväinen Sonoff-B1: n Tasmota-laiteohjelmistoon. En onnistunut täysin integroimaan sitä Openhabiini ja hallitsemaan sitä Google Homen kautta. Siksi kirjoitin oman yritykseni
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 vaihetta
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: Tässä opetusohjelmassa näytän sinulle, kuinka käytin ESP-NOW: ta kotiautomaatiossani. Kaaviossa näet viestintävirrat, jotka näytän sinulle: kuinka lähettäjä toimii näyttelemällä vastaanotin toimii näyttämällä sarjaliikenne Raspberry Pi: n kanssa.En näytä
RASPBERRY PI ALEXA HOME AUTOMATION: 4 vaihetta
RASPBERRY PI ALEXA HOME AUTOMATION: Tämä opas kattaa Amazon alexa eho dot, Raspberry pi Gpio -ohjauksen käsitteet alexan avulla. Alexan käsittelyn suurin ongelma on aina, kun sinun on lisättävä aws -tiliisi paljon aikaa vaativia taitoja perustaa c