Мазмұны:

Raspberry Pi-Arduino-SignalR үйдегі автоматтандыру хаб: 11 қадам (суреттермен)
Raspberry Pi-Arduino-SignalR үйдегі автоматтандыру хаб: 11 қадам (суреттермен)

Бейне: Raspberry Pi-Arduino-SignalR үйдегі автоматтандыру хаб: 11 қадам (суреттермен)

Бейне: Raspberry Pi-Arduino-SignalR үйдегі автоматтандыру хаб: 11 қадам (суреттермен)
Бейне: How to build a robot arm with .NET 7, Raspberry Pi, Blazor, and SignalR 2024, Шілде
Anonim
Raspberry Pi-Arduino-SignalR үйдегі автоматтандыру хабы
Raspberry Pi-Arduino-SignalR үйдегі автоматтандыру хабы

Осы жерде және осы жерде жарияланған IBLE -дің бірнеше нұсқасынан кейін бұл жоба функционалды үй автоматтандыру хабының негізгі нұсқасын құруға алғашқы қадам жасайды.

Мен бірнеше түрлі технологияларды қолдандым, мен бұрын үйренгендердің барлығын және күн өткен сайын үйренуді жалғастыратын жаңа нәрселерді қалай қолдануға болатынын түсіну үшін.

Сондықтан бұл автоматтандыру хабына келесі компоненттер кіреді:

SQL Server 2012 мәліметтер базасы:

  • кестеде алдын ала анықталған инфрақызыл (IR) кодтарының тізімін бірегей «код кілтімен» бірге сақтайды
  • код кілттері интуитивті түрде аталады (пайдаланушы), олармен байланысты IR кодтарының мақсатын анықтау үшін

Нақты уақыттағы ASP. NET SignalR Hub веб-қосымшасы:

  • HTML клиентіне қарайтын пайдаланушыдан «код кілттерін» күтеді және алады
  • алған кезде SQL мәліметтер базасына қосылады және берілген код кілтін қолданып IR кодын шығарады
  • алынған IR кодын Python SignalR клиентіне жібереді

HTML SignalR бақылау тақтасының клиентіне қарайтын пайдаланушы:

  • jQuery SignalR Client API арқылы хабқа бірегей код кілтін береді
  • бақылау тақтасындағы әрбір түйме SQL дерекқор кестесінде жазылған бірегей код кілтін білдіреді

Raspberry Pi 2.0 -де жұмыс істейтін Python SignalR фондық қызмет қосымшасы:

  • инфрақызыл кодтарды хабтан командалар ретінде қабылдайды
  • IR кодында бөлгіштерді іздейді және өте ұзын кодты сегменттерге бөледі
  • сериялық порт арқылы Arduino -мен байланысады және әр сегментті кезекпен жазады

Arduino IR таратқышының эскизі:

  • Сериялық портта IR код сегменттерінің әрқайсысын күтеді және алады
  • код сегменттерін IR Code буферлік массивіне жинайды
  • буферді IRLib Arduino кітапханасының көмегімен IR жіберу пәрменіне жинақтайды

Егер мақсатты құрылғы ИҚ таратқышының жанында болса, онда құрылғы Arduino тарататын ИҚ сигналына жауап беруі мүмкін.

ЕСКЕРТУ

Мен бұл демонстрацияда қолданатын мақсатты құрылғы инфрақызыл сигналдарға әсер етсе де, сіз менің басқа IBLE бөлімін оқығыңыз келуі мүмкін, себебі мен бұл құрылғы IR сигналына жауап беруі мүмкін.

Айналу уақыты.

1 -қадам: Сізге қажет нәрседен бұрын

Не керек, не керек бұрын
Не керек, не керек бұрын
Не керек, не керек бұрын
Не керек, не керек бұрын
Не керек, не керек бұрын
Не керек, не керек бұрын

Бұл нұсқаулық менің соңғы IBLE -ге әкелген бұрын орындалған кейбір жұмыстармен байланысты.

Сонымен, біз осы IBLE -ге қажет нәрсеге кіріспес бұрын, осы нұсқаулықты оқуға кеңес береміз:

  1. Arduino IRLib инфрақызыл кітапханасы құрылды
  2. Осы IBLE -де қолданылатын IR кодтары IR қабылдағышының көмегімен қалай түсірілді
  3. ИҚ таратқышы арқылы мақсатты құрылғыны басқару үшін алынған IR кодтары қалай қолданылды

Осы IBLE аяқталғаннан кейін мен ASP. NET IR Code Recorder веб -қосымшасын орналастырдым, ол:

  • Түсірілген IR кодын интуитивті түрде аталатын код кілтімен бірге веб -форма арқылы енгізу ретінде қабылдаңыз
  • IR кодын Arduino Uno сериялық буферлік шегінде қалу үшін ұзындығы 64 таңбадан аспайтын сегменттерге бөліңіз.
  • Кодтардың соңғы сегменті Arduino-ға кодтың соңғы сегментін алғанын көрсететін «E» белгісімен алдын ала бекітілген болар еді.
  • Әр сегмент ұзын жіпке қайта жиналмас бұрын құбыр бөлгішпен бөлінген болар еді
  • Соңында сегменттелген IR коды және оның кілт кілтімен бірге SQL Server 2012 мәліметтер базасында сақталды

Бұл осы IBLE -де дайындалған үйдегі автоматтандыру хабының компоненттерінің бірін құрайтын SQL дерекқоры.

ЕСКЕРТУ

IR Code Recorder веб -қосымшасы мына себептерге байланысты мұнда талқылауға қатыспайды:

  • Сіз кодтарды Arduino Sketch көмегімен қолмен түсіре аласыз, оларды құбырлармен бөлінген бөліктерге бөле аласыз және оларды арнайы веб-қосымшаны құрмай-ақ дерекқорда сақтай аласыз.
  • Бұл IBLE -ден айырмашылығы, IR Recorder Arduino -дан Raspberry Pi -ге дейінгі кері байланысқа бағытталған

Сондықтан бұл жоба туралы мәліметтер басқа IBLE үшін тақырып болады

2 -қадам: Сізге не қажет - аппараттық құрал

Сізге не қажет - аппараттық құрал
Сізге не қажет - аппараттық құрал
Сізге не қажет - аппараттық құрал
Сізге не қажет - аппараттық құрал

Жұмыс істейтін Raspberry Pi 2.0 - Мен Ubuntu Mate -ді орнатуды ұсынамын, өйткені оның мүмкіндіктері бай, оның ішінде OpenLibre Office бар, ол осы нұсқаулықты құжаттау үшін Raspberry Pi -де қажет болды.

Сонымен қатар, Pi, сізге келесі сыртқы элементтер қажет:

  • Arduino Uno прототиптеу платформасы немесе клон
  • Инфрақызыл таратқыштың жарық диоды - мен Amazon.com сайтынан Three Legs атты брендті қолдандым
  • 330 немесе 220 Ом резисторлары-мен 220-ды қолдандым (түс қызыл-қызыл-қоңыр), себебі менде бірнеше ыңғайлы болды.
  • Кәдімгі нан тақтасы, қосқыштар және Arduino ортасы орнатылған компьютер
  • Тестілеуге үміткер - мысалы, қашықтан басқару пульті бар Samsung LED мониторы

3 -қадам: Сізге не қажет - Бағдарламалық қамтамасыз ету

Барлық бөлшектерді біріктіру үшін келесі бағдарламалық жасақтаманы орнату және іске қосу қажет:

Raspberry Pi -ге келесі әрекеттерді орнату қажет:

  • Arduino IDE - эскизді құруға және оны БҰҰ -ға жарқылдауға арналған
  • Arduino үшін Python модулі - UNO мен Pi арасындағы сериялық байланыс үшін
  • Python SignalR клиенттерінің кітапханасы - Сіз мұнда берілген нұсқаулықтарға жүгіне аласыз

Келесі әзірлеу ортасы орнатылған Windows машинасы:

  • SignalR хаб пен веб -клиенттік қосымшаны құру үшін Microsoft Visual Studio Express 2013 тегін нұсқасы
  • Мәліметтер қорын құруға және құруға арналған SQL Server 2012 Express тегін нұсқасы

Windows Internet Information Server (IIS) хостинг ортасы:

  • SignalR хаб пен веб -клиент құрастырылып, тексерілгеннен кейін оны жергілікті IIS серверіне орналастыру қажет болады.
  • Менің жағдайда, мен үй желісінде Windows 7 IIS жүйесі бар ескі ноутбукты қолдануды жоспарлап отырмын

ЕСКЕРТУ

Барлық нұсқаулар Python 2.7.x нұсқасына қолданылады. 3.0 нұсқасы қайта жазуды қажет етуі мүмкін

4 -қадам: SQL Server мәліметтер базасы

SQL Server мәліметтер қоры
SQL Server мәліметтер қоры

Қосылған схемада осы қосымшада пайдаланылатын SQL Server базалық базасының құрылымы көрсетілген және тек екі кесте бар.

AutoHubCode кестесі

Бұл кестедегі екі маңызды баған:

AutoCodeKey - код кілтінің ыңғайлы атауын сақтайды

Әрбір код кілттерін автоматтандыру клиенті береді - біздің жағдайда HTML -батырмасы веб -беттен

AutoCodeVal - шикізат IR кодының реттілігін сақтайды

Бұл сигналға жауап ретінде клиентке жіберілетін нақты IR коды

Бұл жағдайда хабпен үнемі байланыста болатын Python клиенті инфрақызыл кодтың реттілігін алады және оны сериялық порт арқылы Arduino UNO -ға жібереді.

AutoHubLog кестесі

  • Автоматтандыру клиенті сұраған кодты тіркейді.
  • Бұл жүйені кім және қашан қолданғанын және қандай код сұралғанын бақылауға арналған шара

Жоғарыда айтылғандай, мен SQL Server 2012 -ді таңдаған мәліметтер базасы ретінде қолдандым. Сіз бұл қарапайым дизайнды MySQL, Oracle және т.

Соған қарамастан, осы дерекқорды құруға арналған SQL сценарийі осында бекітілген

ЕСКЕРТУ

  1. SignalR хабының коды SQL Server 2012 мәліметтер базасына қосылуға арналған
  2. Басқа дерекқормен жұмыс істеу хабтың басқа дерекқор драйверін қолдануын өзгертуді білдіреді

5 -қадам: ASP. NET SignalR Hub веб -қосымшасы

ASP. NET SignalR Hub веб -қосымшасы
ASP. NET SignalR Hub веб -қосымшасы
ASP. NET SignalR Hub веб -қосымшасы
ASP. NET SignalR Hub веб -қосымшасы

ASP. NET SignalR Hub веб -қосымшасы қоса берілген схемада көрсетілгендей келесі компоненттерден тұрады:

1 -бөлім - Клиенттен сұраныстарды қабылдайтын және жауап беретін SignalR хабы

2, 4 бөлімдер - HTML клиентінің веб -беті және оның стиль кестесі, ол автоматтандыру жүйесінің алдыңғы жағын құрайды және автоматтандыру хабына пәрмендер береді.

3 -бөлім - HTML клиенті автоматтандыру хабымен байланысу үшін пайдаланатын jQuery SignalR API интерфейстері

5 -бөлім - SignalR хабы дерекқормен тікелей байланыспайды. Ол мұны Entity Framework көмегімен жасалған аралық сыныптар арқылы жасайды

Бұл сыныптар дерекқордың мәліметтерін алдыңғы қосымшадан алады

6 -бөлім - Entity Framework сыныптарын қолдану арқылы SQL дерекқорында оқу -жазу операцияларын орындауға көмектесетін мәліметтер базасының қызмет класы (бұрын сипатталған).

ASP. NET және SignalR - бұл Microsoft технологиялары және бұл оқулық сізге қарапайым SignalR қосымшасының қалай құрастырылғанын және қолданылатынын көрсетеді.

Мен мұнда салған нәрселер осы оқулықтан алынған негіздерге негізделген. Қолданылған кезде бағдарлама екінші суретте көрсетілген веб -бетке ұқсас болуы керек

КОДТА ЕСКЕРТУ

Кодтың жойылған нұсқасы бар ZIP файлы қосылды

Қалтаның құрылымы көрнекіде көрсетілгендей, бірақ тіркеменің көлемін азайту үшін барлық құрылымдық сыныптар мен jQuery сценарийлері жойылды.

Ұсыныс - бұл кодты нұсқаулық ретінде пайдалану, себебі жоғарыдағы оқулық сілтемесі бойынша жаңа SignalR Web қосымшасын жасаған кезде, соңғы jQuery кітапханалары мен ASP. NET құрылымдық сыныптары автоматты түрде қосылады.

Сондай -ақ, index.html бетіндегі jQuery сценарийлеріне сілтемелер веб -қосымшаны құрған кезде автоматты түрде қосылатын jQuery SignalR клиент кітапханаларының соңғы нұсқасын көрсету үшін өзгертілуі керек.

Ақырында, байланыс жолын Web.config* деп аталатын файлдардағы мәліметтер базасына сәйкес келу үшін өзгерту қажет болады.

6 -қадам: Python SignalR қызметінің клиенті

Python SignalR қызмет клиенті
Python SignalR қызмет клиенті

HTML SignalR Клиенті алдыңғы бетке қарайтын пайдаланушы интерфейсі болса да, Python Client - бұл артқы жағында қызмет көрсететін қосымша, оның негізгі функциясы Хаб арқылы берілетін IR кодын алу және оны Arduino UNO -ге сериялық байланыс арқылы жіберу болып табылады.

Қосылған код өздігінен түсіндіріледі және оның функционалдығын сипаттауға жеткілікті құжатталған

Құрама скриншотта көрсетілгендей, HTML Client және Python Service клиенті SignalR хаб арқылы келесідей байланысады:

  1. Автоматтандыру жүйесін пайдаланушы түймені басу арқылы хабқа команда береді
  2. Әр түйме IR кілтінің кодымен байланысты және басылған кезде бұл код хабқа жіберіледі
  3. Хаб бұл кодты алады, мәліметтер базасына қосылады және IR сигналының шикізат кодын алады және оны барлық қосылған клиенттерге жібереді.

    Сонымен қатар, хаб AutoHubLog деректер қорының кестесінде кодты және қашықтағы клиенттер сұраған күн мен уақытты тіркейді

  4. Python қызмет клиенті IR кодын алады және оны одан әрі өңдеу үшін Arduino UNO -ға жібереді

7 -қадам: Arduino UNO IR тарату эскизі мен коды

Arduino UNO IR тарату эскизі мен коды
Arduino UNO IR тарату эскизі мен коды
Arduino UNO IR тарату эскизі мен коды
Arduino UNO IR тарату эскизі мен коды
Arduino UNO IR тарату эскизі мен коды
Arduino UNO IR тарату эскизі мен коды

Көрнекіліктерде көрсетілген Arduino схемасы бұл жүйе үшін өте қарапайым, сондықтан қысқаша сипатталған:

  • Түссіз IR светодиоды UNO -дағы сандық PIN 3 -ке қосылуы керек - бұл IRLib Arduino кітапханасының талабы.
  • Себептер IRLib кітапханасына қатысты бөлімде қашықтан басқару құралын клондау туралы менің бұрынғы IBLE -де сипатталған
  • Digital PIN 4 -ке қосылған жасыл жарық диоды - бұл БҰҰ Raspberry Pi -де жұмыс істейтін Python клиентінен IR кодының барлық бөлімдерін алған кезде жанатын визуалды көрсеткіш.
  • Бұл жарықдиодты жарықтандыру Raspberry Pi мен БҰҰ арасындағы сериялық байланыс жұмыс істейтінін растайды
  • Сериялық байланысты қосу үшін БҰҰ Raspberry Pi -ге USB порты арқылы қосылған
  • Қосылған Arduino Sketch функциясын сипаттау үшін жеткілікті түрде түсіндірілген
  • Кодтың жоғарғы жағындағы түсініктемелер схеманы қалай қосу керектігін сипаттайды

ЕСКЕРТУ

Іс жүзінде Arduino мен Pi бір мезгілде Pi, Arduino -ны басқаруға жеткілікті қуатты USB хабына қосылуы мүмкін, сонымен қатар IR жарықдиодты сигнал арқылы күшті сигнал береді.

8 -қадам: жүйені қосу және тексеру

Жүйені қосу және тексеру
Жүйені қосу және тексеру
Жүйені қосу және тексеру
Жүйені қосу және тексеру
Жүйені қосу және тексеру
Жүйені қосу және тексеру
  1. HTML клиенті ASP. NET SignalR хабын, SQL Server 2012 мәліметтер базасымен бірге жергілікті ақпараттық желідегі Интернет ақпарат серверіне (IIS) құру және орналастыру.
  2. HTML SignalR клиентін HTTP арқылы ашу арқылы веб -бағдарламаға қол жеткізіңіз

    бұл беттің URL мекенжайы әдетте https:// yourComputer: port_number/болады

  3. Басқару тақтасындағы түймені басыңыз, және егер бағдарлама дұрыс орналастырылған болса, онда ХАБ IR кодын қайтарады және оны басқару тақтасының жанындағы сұр тақтасында көрсетеді.

    Есіңізде болсын! IR қабылдағыш кітапханасын орнату және менің алдыңғы IBLE -де сипатталғандай кодтарды түсіру арқылы кодтарды дерекқорға жүктеу қажет болады

  4. Arduino -ны Raspberry Pi -ге USB арқылы қосыңыз - Pi -дегі Arduino IDE ашыңыз және БҰҰ Пи -мен байланыс орната алатынына көз жеткізіңіз.

    бұл Arduino оқулықтары сізге тез жетуге көмектеседі

  5. Python кодын ашып, қоршаған ортаға сәйкес келесі өзгерістерді енгізіңіз

    • 4 -қадамнан алынған БҰҰ -ның сериялық порт мекенжайы
    • SignalR хабының URL мекенжайы 2 -қадамдағы жергілікті URL -ге сәйкес келеді - бұл мысалда ол https:// yourComputer: port_number/signalr болады
  6. Ақырында, Raspberry Pi -де Arduino IDE -де Arduino эскизін ашып, оны БҰҰ -ға көрсетіңіз.
  7. Сызбаны ұстайтын нан тақтасын басқарылатын құрылғының жанында орналастырыңыз - ИҚ жарықдиодты құрылғының ИҚ қабылдағыш портымен айқын көру сызығы болуы керек.
  8. Python IDLE құралдар тақтасындағы F5 батырмасын басу арқылы Raspberry Pi -де Python бағдарламасын іске қосыңыз
  9. HTML клиенттік бағдарламасының Басқару тақтасына оралыңыз (2 -қадам) және түймені басыңыз (мысалы, Қосу немесе Дыбыс деңгейін жоғарылату)

Егер жүйе дұрыс орнатылған болса, онда сіз телефондағы немесе планшеттегі HTML клиентінің бетін ашып, HTML клиентінің бетіндегі түймелердің көмегімен құрылғыны басқара алуыңыз керек.

9 -қадам: жүйе әрекет етеді

Әрекет етуші жүйе
Әрекет етуші жүйе
Әрекет етуші жүйе
Әрекет етуші жүйе
Әрекет етуші жүйе
Әрекет етуші жүйе
Әрекет етуші жүйе
Әрекет етуші жүйе

Жоғарыдағы көрнекіліктер үйдегі автоматтандыру жүйесін орнатқаннан кейін оның әрекетін көрсетеді.

Осы IBLE жарияланғаннан бері мен VIZIO LED теледидарымнан бірнеше IR кодтарын түсіру арқылы интерфейсті кеңейттім

Алғашқы визуалда зауыттық теледидардың қашықтан басқару пультімен қатар көрсетілгендей, бұл қашықтан басқару пультінің бірнеше маңызды функциялары менің планшетім арқылы қол жетімді веб -интерфейске енгізілген.

Кейінгі көрнекіліктер планшетті алдыңғы жағында, артында теледидар, веб -интерфейстен берілген командаларға жауап береді:

  1. Қуатты өшіру пәрмені - теледидар өшеді
  2. Қуатты қосу пәрмені - теледидар қосылады және экран күшейген кезде «V» логотипі пайда болады
  3. Дыбысты өшіру пәрмені - көлденең жолақ динамиктің дыбысы өшірілген кезде шығады

Барлық сынақтарда, сұр аймақ планшеттің экранындағы бақылау тақтасының жанында клиент берген пәрменді және қашықтағы SignalR хабынан жіберілген жауапты көрсетеді.

10 -қадам: Автоматтандыру жүйесін және байланысты түзетулерді жақсарту

Бұл жүйені әр түрлі жүйелерден алынған кодтарды қосу арқылы кеңейтуге болады. Бұл бөлім оңай болғанымен, тағы екі факторды ескеру қажет.

Қосымша 1 (Жылдам): Әр түрлі ұзындықтағы IR сигналдарымен жұмыс

  1. Әр түрлі жүйелердің IR кодтары әр түрлі ұзындықта келеді, тіпті бір өндірушінің екі өнімі арасында.

    Мысалы, бұл жағдайда жарықдиодты теледидардың инфрақызыл коды массивінің ұзындығы 67, ал Samsung дыбыс жолағының ұзындығы 87 шамасында

  2. Яғни, егер мен алдымен Sound Bar қосқан болсам, Arduino эскизіндегі IR буферлік массиві 87 кодты қамтитын IR Code реттілігімен толтырылады.
  3. Осыдан кейін, егер мен LED теледидарын қоссам, ол IR буферлік массивін 67 кодпен толтырады, бірақ алдыңғы операциядан қалған 20 код бәрібір болады.

Нәтиже? Жарықдиодты теледидар қосылмайды, себебі IR кодының буфері алдыңғы операциядан тазаланбаған қосымша 20 кодпен бүлінген!

1 түзету (оңай жол, ұсынылмайды)

Arduino эскизін келесідей өзгертіңіз:

Loop () {} функциясында келесі функция шақыруларын өзгертіңіз

transmitIRCode ();

IRCode (c) жіберу үшін;

Жоғарыдағы функцияның қолтаңбасына өзгерістер енгізіңіз:

void transmitIRCode (int codeLen) {// RAWBUF тұрақтысы codeLen IRTransmitter. IRSendRaw:: send (IRCodeBuffer, codeLen, 38) ауыстырылды; }

Бұл оңай болғанымен, массив ешқашан толық тазартылмайды, сондықтан бұл өте таза шешім емес

2 түзету (қиын емес, ұсынылады)

Пікірлер бөлімінен кейін Arduino Sketch -тің жоғарғы жағында қосымша айнымалы деп жариялаңыз:

қол қойылмаған int EMPTY_INT_VALUE;

Мұны setup () функциясының жоғарғы жағына қосыңыз:

// Бос белгісіз бүтін сан айнымалысының табиғи күйін түсіруEMPTY_INT_VALUE = IRCodeBuffer [0];

TransmitIRCode () функциясынан кейін бірден төмен жылжып, эскизге жаңа функция қосыңыз:

void clearIRCodeBuffer (int codeLen) {// Барлық кодтарды массивтен тазарту // ЕСКЕРТУ: массив элементтерін 0-ге орнату-шешім емес! (int i = 1; i <= codeLen; i ++) {IRCodeBuffer [i-1] = EMPTY_INT_VALUE;}}

Соңында, loop () функциясының келесі жерінде жаңа функцияны шақырыңыз:

// Қалпына келтіру - Сериялық PortclearIRCodeBuffer (c) оқуды жалғастыру;…

Бұл неғұрлым таза әдіс, себебі ол IR буферлік массивіндегі IR кодының ең соңғы сигналымен толтырылған барлық орындарды кездейсоқ қалдырмайды.

2 -қосымша (қосымша қамтылған): белгілі бір құрылғылар үшін қайталанатын инфрақызыл сигнал беру

Кейбір құрылғылар жауап беру үшін бір сигналды бірнеше рет беруді талап етеді Мысал: Бұл жағдайда Samsung Sound Bar сол кодты 2 секундтық үзіліспен екі рет жіберуді талап етеді

Тұжырымдаманы түзету осы жерде талқыланды, өйткені бұл сәл көбірек қатысады және тестілеуді қажет етеді

Ardunio Sketch -ке қайталанатын функцияны қосу үйдегі автоматтандыру жүйесіне жаңа құрылғыны қосқан сайын эскизді жыпылықтауды қажет ететінін білдіреді.

Оның орнына, бұл түзетуді HTML SignalR клиентіне және Python SignalR Service қосымшасына қосу шешімді әлдеқайда икемді етеді. Және бұған принцип бойынша келесі түрде қол жеткізуге болады:

Қайталанатын ақпаратты хабқа жіберу үшін SignalR HTML клиентін өзгертіңіз

Index.html ашыңыз және қайталау мәнін HTML түймесіне келесідей енгізіңіз:

value = «SMSNG-SB-PWR-ON» мән = «SMSNG-SB-PWR-ON_2_1000» болады

Мұндағы 2 - қайталанатын мән, ал 1000 - екі қайталанатын сигнал арасындағы миллисекундтағы кідіріс мәні

Бұл батырманы басқанда, SignalR хабына Key Code+Repeat_Spec беріледі

Кілт кодын ғана талдау үшін SignalR Server жанама әдістерін өзгертіңіз:

  • IR кодын дерекқордан әдеттегідей алу үшін кілт кодын қолданыңыз
  • Негізгі код+Repeat_Spec пен IRCode -ді SingalR клиенттеріне әдеттегідей жіберіңіз

Қайталау мәндерін қолданып сигналдарды беру үшін Python SignalR Service қосымшасын өзгертіңіз:

Python клиентін ашып, келесі екі функцияны өзгертіңіз:

def print_command_from_hub (buttonId, cmdSrc):

# қайталау кодын buttonId мәнінен талдау

def transmitToArduino (IRSignalCode, delim, endPrefix):

# сигналды қажетті жиілікте беру үшін біраз уақыт немесе цикл орнатыңыз

  • Осылайша, Arduino бірнеше рет жыпылықтаудың қажеті жоқ
  • Бұл жүйеге қайталанатын жиіліктердің кез келген санын енгізуге болады
  • Сонымен қатар, егер сіз БҰҰ -ны қолдансаңыз, сіздің эскизіңіздің көлеміне шектеу бар!

11 -қадам: белгілі мәселелер мен қауіпсіздік мәселелері

Бірінші рет салынған жүйелердегідей, бұл тестілеу кезінде пайда болған бірнеше мәселелерге ие.

1 -мәселе: Түймені басу арасындағы секундтан аз уақытқа кешіктіріле отырып, пәрмендерді біртіндеп іске қосу жүйенің алғашқы екі рет жауап бергеннен кейін жауап бермеуіне әкелді.

  • Python SignalR клиентін қайта қосу жүйені қалыпты жұмысына қайтарады
  • Шұғыл шешімдер - Python SignalR клиентінде, сондай -ақ Arduino Sketch -те жөндеуге қажет емес шығуларды жою және осы сынақтарды қайталау.
  • Қарастырылатын тағы бір орын - бұл сериялық байланыстың өзі - буферді жылдам тазарту үшін кодты қосуға бола ма?

Айтпақшы, менің теледидарым зауыттық қашықтан басқару пультіне жақсы жауап бермейтінін байқадым, сондықтан менің теледидарымның ИҚ байланысының сипаты да осы факторға әсер етуі мүмкін.

2 -мәселе: HTML экраны ұзақ уақыт әрекетсіздіктен кейін түймелердің басылуына жауап беруді тоқтатады

Әдетте бетті жаңарту бұл әрекетті шешеді - бұл мінез -құлықтың себебі әлі белгісіз

ҚАУІПСІЗДІК ҚАУІПСІЗДІГІ

Бұл жүйе тек жергілікті (үйдегі) желілерге арналған және Интернет желісінде қолданылатын қажетті қауіпсіздік шаралары жоқ

Сондықтан SignalR хабын жергілікті/үй желісіндегі жергілікті машинаға қолдану ұсынылады

Менің IBLE -ді оқығаныңыз үшін рахмет және сіз көңілді боласыз деп үміттенемін!

Ұсынылған: