Мазмуну:

Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 кадам (сүрөттөр менен)
Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 кадам (сүрөттөр менен)

Video: Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 кадам (сүрөттөр менен)

Video: Raspberry Pi-Arduino-SignalR Home Automation Hub: 11 кадам (сүрөттөр менен)
Video: 2018-11-20 Learning SignalR - Home Automation with .NET Core and Hubitat 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 коддорун Hubдан буйрук катары алат
  • IR кодунда чектөөчүлөрдү издейт жана өтө узун кодду сегменттерге бөлөт
  • Serdu порт аркылуу Arduino менен байланышып, ар бир сегменти катары менен жазат

An Arduino IR өткөргүч эскизи:

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

Эгерде максаттуу шайман IR өткөргүчүнүн жанында болсо, анда шайман (мүмкүн) Arduino тарабынан берилген IR сигналына жооп берет

ЭСКЕРТҮҮ

Мен бул демонстрацияда колдонгон максаттуу шайман IR сигналдарына реакция кылса да, менин IRLE сигналына жооп берет деп айтуумдун себептерине байланыштуу менин башка IBLE бөлүмүмдү окууну каалашыңыз мүмкүн.

Убакыт келди.

1 -кадам: Сизге керек болгон нерсеге чейин

Сага эмне керек, эмне керек чейин
Сага эмне керек, эмне керек чейин
Сага эмне керек, эмне керек чейин
Сага эмне керек, эмне керек чейин
Сизге эмне керек, сизге эмне керек
Сизге эмне керек, сизге эмне керек

Бул көрсөтмөлүү иш менин мурунку IBLEге алып келген кээ бир иштер менен коштолот.

Ошентип, биз бул IBLEге керектүү нерсеге киришүүдөн мурун, бул инструкцияны окуу үчүн сунушталат:

  1. Arduino IRLib инфракызыл китепканасы орнотулган
  2. Бул IBLEде колдонулган IR коддору IR алуучунун жардамы менен кантип тартылган
  3. IR транслятору аркылуу максаттуу аппаратты башкаруу үчүн IR коддору кантип колдонулган

Бул IBLE аяктагандан кийин, мен ASP. NET IR Code Recorder веб тиркемесин жайгаштырдым:

  • Тартылган IR кодун интуитивдүү түрдө аталган код ачкычы менен веб формасы аркылуу кабыл алыңыз
  • IR кодунун узундугу 64 символдон ашпаган сегменттерге бөлүнүп, Arduino Uno сериялык буфердик чегинде калышы керек.
  • Коддордун акыркы сегменти "E" менен алдын ала белгиленет, бул Arduinoго коддун акыркы сегментин алганын көрсөтөт
  • Ар бир сегмент кайра узун жипке бириктириле электе түтүк бөлгүч менен бөлүнмөк
  • Акыр -аягы, сегменттелген IR коду жана анын ачкычы SQL Server 2012 маалымат базасына сакталган

Бул IBLEде иштелип чыккан үй автоматташтыруу хабынын компоненттеринин бирин түзгөн бул SQL маалымат базасы.

ЭСКЕРТҮҮ

IR Code Recorder Web тиркемеси төмөнкү себептерден улам бул жерде талкуунун бир бөлүгүн түзбөйт:

  • Сиз коддорду Arduino Sketchтин жардамы менен колго түшүрүп, аларды түтүк менен ажыратылган бөлүктөргө бөлүп, татаал веб-тиркемени түзбөстөн маалымат базасында сактай аласыз.
  • Бул IBLEден айырмаланып, IR жаздыргыч Arduinoдон Raspberry Piге кайтарым байланышка басым жасайт

Ошондуктан бул долбоор боюнча деталдар башка IBLE үчүн тема болмокчу

2 -кадам: Сизге эмне керек - жабдык

Сизге эмне керек - жабдык
Сизге эмне керек - жабдык
Сизге эмне керек - жабдык
Сизге эмне керек - жабдык

Иштеп жаткан Raspberry Pi 2.0 - Мен Ubuntu Mate орнотууну сунуштайм, анткени анын өзгөчөлүктөрү байыраак, анын ичинде OpenLibre Office, бул жолкусунда Raspberry Piде документтештирүү үчүн абдан маанилүү болгон.

Мындан тышкары, Pi, сизге төмөнкү тышкы нерселер керек болот:

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

3 -кадам: Сизге эмне керек - Программалык камсыздоо

Бардык бөлүктөрдү чогултуу үчүн, төмөнкү программалык камсыздоону орнотуу жана иштетүү керек болот:

Raspberry Piде сиз төмөнкүлөрдү орнотушуңуз керек:

  • Arduino IDE - эскизди куруп, БУУга жаркыратуу үчүн колдонулат
  • Ардуино үчүн Python модулу - БУУ менен Пи ортосундагы сериялык байланыш үчүн
  • Python SignalR кардар китепканасы - Бул жерде тиркелген көрсөтмөлөргө кайрылсаңыз болот

Төмөнкү өнүктүрүү чөйрөсү орнотулган Windows машинасы:

  • SignalR Hub жана Web клиент тиркемесин куруу үчүн Microsoft Visual Studio Express 2013тун бекер чыгарылышы
  • SQL Server 2012 Expressтин акысыз версиясы, маалымат базасын түзүү жана куруу үчүн

Windows Internet Information Server (IIS) Хостинг чөйрөсү:

  • SignalR Hub жана Web клиенти курулуп, текшерилгенден кийин, аны жергиликтүү IIS серверине жайылтуу керек болот.
  • Менин учурда, мен үй тармагымда IIS менен Windows 7 менен иштеген эски ноутбукту колдонууну пландап жатам

ЭСКЕРТҮҮ

Бардык көрсөтмөлөр Python 2.7.x версиясына тиешелүү. 3.0 версиясы кайра жазууну талап кылышы мүмкүн

4 -кадам: SQL Server маалымат базасы

SQL Server маалымат базасы
SQL Server маалымат базасы

Тиркелген схема бул колдонмодо колдонулган негизги SQL Server маалымат базасынын түзүлүшүн көрсөтөт жана эки гана таблицаны камтыйт.

Таблица AutoHubCode

Бул таблицада эки маанилүү тилке:

AutoCodeKey - Код ачкычынын колдонуучуга ыңгайлуу атын сактайт

Код ачкычтарынын ар бири автоматташтыруу кардары тарабынан берилет - биздин учурда веб -баракчадан HTML баскычы

AutoCodeVal - чийки IR Code ырааттуулугун сактайт

Бул SignalR Hub тарабынан кардарга кайтарылып берилген чыныгы IR коду

Бул учурда, борбор менен дайыма байланышта болгон Python кардары IR кодунун ырааттуулугун алат жана аны Serdu Port аркылуу Arduino UNOго өткөрүп берет.

AutoHubLog таблицасы

  • Автоматташтыруу кардары сураган кодду каттайт.
  • Бул системаны ким жана качан колдонгонун жана кандай код суралганын көзөмөлдөө үчүн чара

Жогоруда айтылгандай, мен SQL Server 2012ди менин база платформам катары колдондум. Сиз бул жөнөкөй дизайнды MySQL, Oracle ж.

Ошентсе да, бул базаны түзүү үчүн SQL Script бул жерде тиркелген

ЭСКЕРТҮҮ

  1. SignalR Hub үчүн код 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 Hub кардардан суроо -талаптарды кабыл алат жана аларга жооп берет

2, 4 -бөлүмдөр - HTML кардарынын веб -баракчасы жана анын стили бар, ал автоматташтыруу системасынын алдыңкы бөлүгүн түзөт жана Automation Hubга буйруктарды берет.

3 -бөлүм - HTML кардары тарабынан Automation Hub менен байланышуу үчүн колдонулган jQuery SignalR APIлери.

5 -бөлүм - SignalR Hub маалымат базасы менен түз байланышпайт. Ал муну 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 Клиенти - бул кызматтын арткы бөлүгү, анын негизги функциясы Хаб тарабынан берилген IR кодун алуу жана аны Serdu байланыш аркылуу Arduino UNOго жөнөтүү.

Тиркелген код өзүнөн өзү түшүнүктүү жана анын иштешин сүрөттөө үчүн жетиштүү документтештирилген

Курама скриншотто көрсөтүлгөндөй, HTML Client жана Python Service кардары SignalR Hub аркылуу төмөнкүдөй байланышат:

  1. Автоматташтыруу системасынын колдонуучусу баскычты басуу аркылуу Хабга буйрук берет
  2. Ар бир баскыч IR ачкычынын коду менен байланышкан жана басылганда, бул код хабга өткөрүлүп берилет
  3. Hub бул кодду алат, маалымат базасына туташат жана чийки IR сигналынын кодун алат жана аны кайра туташкан бардык кардарларга өткөрүп берет

    Ошол эле учурда, Hub AutoHubLog маалымат базасынын таблицасына кодду жана алыстан кардарлар сураган күн менен убакытты жаздырат

  4. Python кызмат кардары IR кодун алат жана андан ары иштетүү үчүн аны Arduino UNOго өткөрүп берет

7 -кадам: Arduino UNO IR Transmission Sketch and Code

Arduino UNO IR Transmission Sketch and Code
Arduino UNO IR Transmission Sketch and Code
Arduino UNO IR Transmission Sketch and Code
Arduino UNO IR Transmission Sketch and Code
Arduino UNO IR Transmission Sketch and Code
Arduino UNO IR Transmission Sketch and Code

Көргөзмөдө көрсөтүлгөн Arduino схемасы бул система үчүн абдан жөнөкөй жана кыскача сүрөттөлөт:

  • Түссүз IR LED БУУдагы Digital PIN 3кө туташтырылышы керек - бул IRLib Arduino китепканасынын талабы
  • Себептер IRLib китепканасына тиешелүү бөлүмдө пультту клондоштуруу боюнча мурунку IBLE -де сүрөттөлгөн
  • Digital PIN 4 менен туташкан Жашыл LED, БУУ Raspberry Piде иштеген Python кардарынан IR кодунун бардык бөлүмдөрүн алганда күйүп турган визуалдык көрсөткүч.
  • Бул жарыктын жарыгы Raspberry Pi менен БУУнун ортосундагы сериялык байланыш иштеп жатканын тастыктайт
  • Сериялык байланышты иштетүү үчүн, БУУ Raspberry Pi менен USB порт аркылуу туташат
  • Тиркелген Arduino Sketch анын функциясын сүрөттөө үчүн жетиштүү түрдө комментарийленген
  • Коддун жогору жагындагы комментарийлер, ошондой эле, схеманы кантип зым менен жабуу керектигин сүрөттөйт

ЭСКЕРТҮҮ

Иш жүзүндө, Arduino менен Pi Pi, Arduino, ошондой эле IR LED аркылуу күчтүү сигналды берүү үчүн жетиштүү күчтүү USB борборуна туташтырылышы мүмкүн.

8 -кадам: тутумду туташтыруу жана тестирлөө

Тутумду туташтыруу жана тестирлөө
Тутумду туташтыруу жана тестирлөө
Тутумду туташтыруу жана тестирлөө
Тутумду туташтыруу жана тестирлөө
Тутумду туташтыруу жана тестирлөө
Тутумду туташтыруу жана тестирлөө
  1. ASP. NET SignalR Hubын, HTML кардарын 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. Контурду башкара турган шайманга схеманы кармаган нан тактасын жакын жайгаштырыңыз - IR LEDинин аппараттын IR кабыл алуучу порту менен так көз карашы болушу керек.
  8. Python IDLE куралдар тилкесиндеги F5 баскычын басуу менен Raspberry Piдеги Python программасын баштаңыз
  9. HTML кардар программасынын Башкаруу панелине кайтыңыз (2 -кадам) жана баскычты чыкылдатыңыз (мисалы, күйгүзүү же үнүн жогорулатуу)

Эгерде система туура орнотулган болсо, анда сиз телефонуңуздагы же планшетиңиздеги HTML кардар баракчасын алып келип, HTML кардарыңыздын бетиндеги баскычтар менен шайманыңызды башкара аласыз.

9 -кадам: Система аракетте

Система аракетте
Система аракетте
Система аракетте
Система аракетте
Система аракетте
Система аракетте
Система аракетте
Система аракетте

Жогорудагы көргөзмө Үйдү Автоматташтыруу Системасы орнотулгандан кийин иштей турганын көрсөтөт.

Бул IBLE жарыялангандан бери, мен VIZIO LED TVден бир нече IR коддорун тартып интерфейсти кеңейттим

Биринчи визуалдык фабриканын ТВ пульту менен катарлаш көрсөтүлгөндөй, бул алыстан башкаруунун бир нече негизги функциялары менин планшетим аркылуу жеткиликтүү веб интерфейсине орнотулган.

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

  1. Power OFF буйругу - ТВ өчөт
  2. Power ON командасы - сыналгы күйгүзүлүп, экран күйгүзүлгөндө "V" логотиби пайда болот
  3. Mute ON командасы - горизонталдык тилке динамиктин үнү басылганда чыгат

Бардык сыноолордо, планшеттин экранындагы панелдин жанындагы Боз аймак кардар тарабынан берилген буйрукту жана алыстагы SignalR Hub тарабынан кайтарылган жоопту көрсөтөт.

10 -кадам: Автоматташтыруу системасын жана ага байланыштуу оңдоолорду жакшыртуу

Бул система ар кандай системалардан алынган дагы коддорду кошуу менен узартылышы мүмкүн. Бул бөлүк оңой болгону менен, дагы эки факторду эске алуу керек.

Күчөтүү 1 (Тез): Ар кандай узундуктагы IR сигналдары менен иштөө

  1. Ар кандай системалардын IR коддору ар кандай узундукта келет, атүгүл бир эле өндүрүүчүнүн эки продуктусунун ортосунда.

    Мисалы, бул учурда, LED телекөрсөтүү үчүн IR кодунун массивинин узундугу 67, ал эми Samsung Sound Bar 87ге жакын

  2. Демек, эгер мен алгач Sound Bar'ди иштетсем, Arduino эскизиндеги IR Buffer массиви 87 кодду камтыган IR Code ырааттуулугу менен толтурулат.
  3. Мунун артынан, эгерде мен LED ТВны күйгүзсөм, IR Буфер массивин 67 гана код менен толтурмак, бирок мурунку операциядан калган 20 код дагы эле ошол бойдон калат

Жыйынтык? LED TV күйбөйт, анткени IR Code Buffer мурунку операциядан тазаланбаган кошумча 20 код тарабынан бузулган!

Оңдоо 1 (оңой чыгуу, сунушталбайт)

Arduino Sketchти төмөнкүчө өзгөртүңүз:

Төмөнкү функция чакырууларын 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 () функциясынын төмөнкү жеринде жаңы функцияны чакырыңыз:

// Баштапкы абалга келтирүү - Serical PortclearIRCodeBuffer (c) окууну улантуу;…

Бул дагы таза ыкма, анткени ал IR Буфер массивиндеги IR кодунун эң акыркы сигналы менен толтурулган бардык жерлерди эч нерсеге жол бербестен баштапкы абалга келтирет.

Күчөтүү 2 (дагы тартылган): Кээ бир түзмөктөр үчүн IR сигналынын кайталануусу

Кээ бир түзмөктөр жооп берүү үчүн бир эле сигналдын бир нече жолу өткөрүлүшүн талап кылат Мисалы: Бул учурда, Samsung Sound Bar 1 секунддук боштук менен бир эле кодду эки жолу жөнөтүүнү талап кылат

Концепциядагы оңдоо бул жерде талкууланды, анткени ал бир аз көбүрөөк тартылган жана тестирлөөнү талап кылат

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тин керексиз мүчүлүштүктөрүн жок кылуу жана бул сыноолорду кайталоо дароо чечилиши мүмкүн.
  • Издей турган дагы бир жер сериялык байланыштын өзү болмок - буферди тез тазалоо үчүн кодду кошууга болобу?

Айтор, мен сыналгымдын фабрикасынын пультуна жакшы жооп бербей турганын байкадым - ошондуктан менин телекөрсөтүүмдүн IR байланышынын табияты да салым кошуучу фактор болушу мүмкүн.

2 -маселе: HTML экраны көпкө чейин аракетсиздиктен кийин баскычтарды басууга жооп берүүнү токтотот

Адатта баракты жаңыртуу бул жүрүм -турумду чечет - бирок бул жүрүм -турумдун себеби дагы эле белгисиз

Коопсуздук тынчсыздандырат

Бул система жергиликтүү (үй) тармакты колдонуу үчүн гана иштелип чыккан жана интернет аркылуу колдонуу үчүн зарыл болгон коопсуздук чаралары жок

Ошондуктан SignalR Hubды жергиликтүү/үй тармагыңыздагы жергиликтүү машинага жайгаштыруу сунушталат

Менин IBLE окуганыңыз үчүн рахмат жана сизге кызыктуу болот деп ишенем!

Сунушталууда: