Mündəricat:

ESP-12 Infra Red Blaster: 7 addım
ESP-12 Infra Red Blaster: 7 addım

Video: ESP-12 Infra Red Blaster: 7 addım

Video: ESP-12 Infra Red Blaster: 7 addım
Video: My journey of making a PERFECT! Universal IR Blaster 👀 2024, Iyul
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

Esp8266 istifadə edən Infra Red uzaqdan idarəetmə blasteri

Birdən çox çıxış cihazını dəstəkləyən İnternetdən alınan uzaqdan idarəetmə kodlarını ötürür.

Əsasən test üçün sadə veb səhifədə yaradılmışdır.

Normal istifadə, veb səhifələrdən və ya IFTTT / Alexa səs nəzarətindən gələ biləcək POST mesajları vasitəsilə həyata keçirilir.

Amazon Echo / Dot aktivləşdirici dedektoru, aktivləşdirilən söz danışan kimi susdurmaq / susdurmaq üçün dəstəkləyir.

Əmrlər ya tək əmrlər, ya da ardıcıllıqlardır. Ardıcıllıqlar sonradan əmr olaraq və ya digər ardıcıllıqla istifadə edilə bilən adlandırılmış makrolar kimi saxlanıla bilər.

Son tarix və makroların siyahısı veb interfeysi vasitəsilə əldə edilə bilər

Yeni firmware OTA yükləməsini dəstəkləyir və ilkin wifi qurmaq üçün WifiManager kitabxanasından istifadə edir

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Aşağıdakı komponentlərdən istifadə edir

  • ESP-12F modulu
  • 3.3V tənzimləyici (MP2307 mini buck tənzimləyicisi)
  • MOSFET açarları (AO3400)
  • İnfra Qırmızı yayıcı (3 mm)
  • İşıqdan asılı Rezistor GL2258 (İsteğe bağlı Alexa fəaliyyət detektoru)
  • Rezistorlar
  • Ayrılan kondansatör (20uF)
  • USB qadın yuvası (tercihen qollu lehimlə uyğun gəlir
  • Alexa detektoru üçün 3 pinli IC yuva şeridi
  • Mexaniki hissələr (3D çap edilə bilər)

ESP-12F layihə qutusuna yığıla bilər

  • USB tənzimləyicisini tənzimləyiciyə bağlayın və qutuya daxil edin
  • Kiçik bir vero lövhəsinə IR sürücüsünü düzəldin (3 tel, +5V, 0V qapı girişi)
  • IR sürücüsünü USB +5V, 0V -ə qoşun
  • Alexa detektoru istifadə edirsinizsə, 3 pinli IC yuvasını layihə qutusuna daxil edin. +3.3V, 0V və giriş üçün telə qoşulun
  • GPIO15-dən GND-ə, EN-dən Vdd-ə, 4K7 GPIO13-dən Vdd-ə, Alexa girişi-GPIO13-ə, İK sürücüsü-GPIO14, 0V və Vdd-dən 3.3V-ə qədər 2.2K ilə ESP-12F hazırlayın.
  • Lazım gələrsə Alexa detektoru və dəstək tamponunu hazırlayın.

Nəzərə alın ki, seriyalı limanlara qoşulmaq üçün bir növ serial proqramlaşdırma və ya müvəqqəti çörək taxma qurğunuz varsa, əvvəlcə ESP-12F proqramlaşdırmaq daha asan ola bilər.

Sonrakı proqramlaşdırma daxili OTA yeniləməsi ilə edilə bilər.

Addım 2: Proqram təminatı

İr Blaster, github -da mövcud olan bir Arduino eskizindən istifadə edir

Bu, yerli şəraitə uyğunlaşdırılmalı və sonra esp8266 Arduino mühitində tərtib edilməlidir.

Aşağıdakı kitabxanalara ehtiyac var, əksəriyyəti standartdır və ya əlavə edilə bilər. Son ikisi git -ə daxildir.

  • ESP8266 Wi -Fi
  • ESP8266WebServer
  • FS.h
  • DNSServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (Git daxil)
  • BitMessages (Git daxil)

Dəyişdiriləcək eskizdəki maddələr daxildir

  • AP_AUTHID veb girişi üçün icazə kodu
  • Wfi meneceri parol WM_PASSWORD
  • firmware OTA parol update_password
  • Yeni IR cihazları / düymə kodları (daha sonra bax)

Bunu etdikdən sonra əvvəlcə adi serial yükləmə istifadə edərək yüklənməlidir.

SPIFFS istifadə edildiyindən, yaddaş arduino ESP8266 Sketch Data yükləmə vasitəsini quraşdıraraq istifadə edərək hazırlanmalıdır. Bu, məlumat qovluğunu ilkin SPIFFS məzmunu olaraq yükləyəcək

Cihaz yerli şəbəkəyə qoşula bilmədikdə (ilk dəfə olduğu kimi) Wifi meneceri bir giriş nöqtəsi yaradacaq (192.168.4.1). Bu şəbəkəyə bir telefondan və ya planşetdən qoşulun, sonra 192.168.4.1 ünvanına daxil olaraq yerli wifi -yə qoşulmaq üçün bir veb interfeysi alacaqsınız. Sonrakı girişlər bundan istifadə edəcək. Yerli şəbəkə dəyişərsə, yenidən bu konfiqurasiya rejiminə keçəcək.

Sonrakı yeniləmə, Arduino mühitində bir ixrac ikili quraraq və sonra ip/firmware -də OTA interfeysinə daxil olaraq edilə bilər.

Addım 3: Cihaz / Düymə Kodları əlavə edin

Qeyd: Bu bölmə konfiqurasiyanın əvvəllər kodda tərtib edildiyi əvvəlki metoddan dəyişdi. İndi SPIFFs fayl sistemindən yüklənmiş fayllardan istifadə edir. Bu, yeni təriflərin yüklənməsini xeyli asanlaşdırır.

Düymə tərifləri buttonnames.txt faylına daxil edilmişdir. İstifadə olunan bütün pultlardakı qlobal adların siyahısıdır, çünki bir çox ad ümumi olmağa meyllidir. Təmin edildiyi kimi istifadə etdiyim pultlar üçün detallar var. Yeni girişlər əlavə edilə bilər. Ümumilikdə 160 ad üçün yer var, lakin bu bitMessages.h -də sabitləri düzəltmək və yenidən tərtib etməklə artırıla bilər. Burada təyin olunan adlar əmr göndərərkən istifadə ediləcək adlardır.

Hər uzaq cihaz dev_remotename adlı bir faylda təyin olunur. Yuxarıdakı bir konfiqurasiya bölməsindən və sonra düymələrin adlarından göndəriləcək bitləri ehtiva edən altıbucaqlı kodlara qədər bir eşleme masasından ibarətdir. Yalnız lazım olan düymələrin adlarını təyin etmək lazımdır.

Cihaz faylının başındakı konfiqurasiya bölməsi kod göndərərkən istifadə ediləcək parametrləri ehtiva edir. İlk giriş, əmr göndərərkən istifadə olunan cihaz adıdır. Digər parametrlər kod saytındakı readme -də təsvir edilmişdir.

Əksər pultlar 3 protokol kateqoriyasından birinə aiddir (nec, rc5 və rc6). nec, ehtimal ki, ən çox yayılmışdır və sadə başlıq quruluşuna və bit vaxtına malikdir. Bunun yalnız başlıq pulse vaxtında fərqlənən kiçik bir variantı var. rc5 və rc6, Philips tərəfindən müəyyən edilmiş, eyni zamanda bəzi digər istehsalçılar tərəfindən istifadə olunan protokollardır. Bir az daha mürəkkəbdir və xüsusilə rc6 -nın bitlərdən biri üçün xüsusi bir vaxt tələbi var.

Yeni bir pultun kodlarını çəkmək üçün ümumiyyətlə uzaqdan qəbuledicilərin fişində istifadə olunan IR qəbuledicisini (TSOP) istifadə edirəm. Bu, əsas şifrələməni yerinə yetirir və məntiq səviyyəsi çıxışı verir. Normalda +5V, GND, DATA əlaqələri olan 3,5 mm -lik bir jakla gəlirlər. Birini qurban verdim, qurğunu qısaltdım və bir Raspberry Pi üzərində GPIO pinini qidalandırmaq üçün ters 3.3V tampondan keçirdim.

Daha sonra kodları ələ keçirmək üçün rxir.py (git tools qovluğunda) python alətindən istifadə edirəm. Çox sayda düyməni çəkmək üçün istifadə etməyi asanlaşdırmaq üçün alət, pultdakı düymələri təyin etmək üçün bir mətn tərif sənədindən istifadə edir və pultdakı bir qrupdakı düymələrin adlarıdır. Məsələn, yeni bir Sony uzaqdan idarəetmə cihazına sahib ola bilərsiniz və hər biri müvafiq düymə adları olan sonytv-cursor, sonytv-numbers, sonytv-playcontrols adlı 3 mətn faylını qurur. Alət cihazı (sonytv), bölməni istəyəcək. (kursor) və hansı protokoldan istifadə olunmalıdır (nec, nec1, rc5, rc6). Daha sonra hər bir düyməni basmaq və nəticələri sonytv-ircodes faylına yazmaq üçün ardıcıl olaraq istəyəcək. Çəkilişlərin yaxşı olduğunu yoxlamaq üçün lazım olduqda bölmələr təkrarlana bilər.. İrcodes faylının bitləri BitDevices cədvəllərində düzəldilə bilər.

Addım 4: Veb Nəzarəti və Makrolar

Əsas veb nəzarəti ya bir əldə və ya bir ardıcıllığı ehtiva edən bir json mesajıdır.

Get /ir 6 parametrdən ibarətdir

  • auth - icazə kodunu ehtiva edir
  • cihaz - uzaqdakı cihazın adı
  • parametr - düymənin adı
  • bit - isteğe bağlı bit sayı
  • təkrar - isteğe bağlı təkrar sayı
  • gözləyin - növbəti əmrin yerinə yetirilməsindən bir neçə saniyə əvvəl gecikmə.

Cihaz yalnız gecikmə əldə etmək üçün 'sıfır', parametrin istinad etdiyi makrodan istifadə etmək üçün 'makro' və ya Alexa aşkarlama xüsusiyyətindən istifadə etmək üçün 'təsbit' ola bilər (daha sonra bax).

/İrjson yazısı kimi bir json quruluşundan ibarətdir

{

"auth": "1234", "əmrlər": [{"cihaz": "yamahaAV", "parametr": "hdmi4", "gözləmə": "5000", "bit": "0", "təkrar et": "1"}, {"cihaz": "yamahaAV", "parametr": "səssiz", "gözlə": "100", "bit": "0", "təkrar et": "1"}]

}

Ardıcıllıq istənilən uzunluqda ola bilər və cihazlar makro istinadlar ola bilər.

Eyni quruluş makroları təyin etmək üçün istifadə edilə bilər. Yalnız makro daxil edin: "makroname", ən üst səviyyədə, məsələn. icazədən sonra. Əsl məzmun macroname.txt adlı bir faylda saxlanılır

Makrolar heç bir "əmr" olmadan təyin olunaraq silinə bilər.

Digər veb əmrləri

  • /son (son fəaliyyətləri siyahıya alır)
  • /yoxlayın (əsas vəziyyəti göstərir)
  • / (əmrləri əl ilə göndərmək üçün veb formu yükləyir)
  • / redaktə (fayl siyahısına baxmaq və faylları silmək/ yükləmək üçün veb formu yükləyir)
  • /edit? file = fayl adı (müəyyən bir faylın məzmununu görmək)
  • /yenidən yüklə (düymə adlarını və cihaz fayllarını yenidən yükləyir. Bunlardan birini dəyişdikdən sonra istifadə edin)

Addım 5: IFTTT istifadə edərək Alexa Səs İdarəetmə

İr Blaster -i Alexa ilə istifadə etməyin ən sadə yolu, IFTTT -ni bir ağ geçidi olaraq istifadə etməkdir.

İlk portu marşrutlaşdırıcınızda istifadə etdiyiniz portu internetə daxil etmək üçün yönləndirin. Routerlərinizə xarici ip adı vermək və bu ip dəyişərsə idarə etməyi asanlaşdırmaq üçün liberns kimi bir dns xidmətindən istifadə etmək yaxşı ola bilər.

Bir IFTTT hesabı qurun və Maker Webhooks kanalını və Alexa kanalını aktiv edin. IFTT girişini təmin etmək üçün bunu edərkən Amazon saytına daxil olmalısınız.

IFTTT Alexa kanalını istifadə edərək IF tetikleyicisi yaradın, bir ifadəyə əsaslanaraq hərəkəti seçin və istədiyiniz ifadəni daxil edin (məsələn, həcmi artırın).

Maker webhooks kanalını seçərək hərəkət yaradın. URL sahəsinə bənzər bir şey daxil edin

myip: port/irjson? plain = {"auth": "1234", "comm…"

Bu hərəkət, makro yığımını yerinə yetirməyə çalışacağı ir blasterə göndəriləcək. İstəsəniz burada xüsusi bir cihaz/düymələr ola bilər, ancaq makroları təyin etməyi və istifadə etməyi daha yaxşı hesab edirəm, çünki o zaman hərəkət ardıcıllığı sadəcə makronu yenidən təyin etməklə asanlıqla dəyişdirilə bilər.

Hər bir əmr üçün ayrı bir IFTTT appleti lazımdır.

Addım 6: Doğma Alexa Səs Bacarığı

IFTTT əvəzinə Alexa inkişafında xüsusi bir bacarıq qurmaq olar. Bu, bütün emalları bir yerdə mərkəzləşdirir və hər düymə üçün ayrı hərəkətlər yaratmağınız lazım olmadığını bildirir.

Amazon Alexa geliştiricisi olaraq qeydiyyatdan keçməlisiniz və Amazon AWS konsol lambda xidmətində qeydiyyatdan keçməlisiniz. Prosesi bir az başa düşmək üçün dərsliklərə də baxmalısınız.

Alexa geliştirici tərəfində yeni bir xüsusi bacarıq yaratmalı, tətik sözünü daxil etməli və həcmi artırmaq, bələdçi və s.

Alexa daha sonra ifadəni şərh edən və bunu etmək üçün Ir blaster -ə URL zəngi verən lamda xidmətində işləyən bir proqrama göndərir.

Gitdə istifadə etdiyim Alexa niyyət sxemini və konsol lambda funksiyasını daxil etdim. Uyğun ipə istinad etmək və doğru icazəyə sahib olmaq üçün URL -nin dəyişdirilməsi lazımdır. Sadə saxlamaq üçün lambda funksiyaları ifadənin kiçik hərfli bir versiyası olan bir makro çağırır. Həm də bəzən daxil edilə bilən tətik açar sözünü silməyə çalışır. Məsələn, tetikleyici söz blaster olsaydı blaster VOLUME up, həcm artırma adlı bir makro çağıracaq.

Addım 7: Alexa Detektoru aktivləşdirin

Echo / Dot səs tanınması yaxşı olsa da, yaxınlaşıb yüksək səslə danışmasanız, bir televizorun səsi səslənirsə, bəzən qarışa bilər.

Bunu yaxşılaşdırmaq üçün nöqtəmə aktivləşdirmə detektoru əlavə etdim. Açar söz olaraq (Alexa deyilir) LED halqası yanır. Detektor bunu televizoru səssiz etmək üçün alexaon makrosundan istifadə etdiyi blasterə verir, buna bənzər bir işləmə sonunda işıqlar sönür və alexaoff makrosu səsi bərpa edir.

'Detect' əmri də bunu açmaq və söndürmək üçün istifadə edilə bilər. Məsələn, aşkarlanmanı təmin etmək üçün ilk növbədə makronu və söndürmək üçün dönüş makrosunu istifadə edirəm. Bu, əks halda problemli olacaq həqiqi səssiz və səssiz komandanı dəstəkləmək üçün fəaliyyət makrolarında da istifadə edilə bilər.

Fiziki detektor, dövrənin dəstəklədiyi işığa bağlı bir rezistordur. Minanı 3D çaplı bir mötərizə ilə nöqtəyə bağlayıram

Tövsiyə: