Përmbajtje:

ESP-12 Infra Red Blaster: 7 hapa
ESP-12 Infra Red Blaster: 7 hapa

Video: ESP-12 Infra Red Blaster: 7 hapa

Video: ESP-12 Infra Red Blaster: 7 hapa
Video: My journey of making a PERFECT! Universal IR Blaster 👀 2024, Korrik
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

Blaster me telekomandë Infra Red duke përdorur esp8266

Transmeton kodet e telekomandës të marra nga Uebi që mbështet pajisje të shumta dalëse.

E ndërtuar në faqe të thjeshtë uebi kryesisht për testim.

Përdorimi normal është përmes mesazheve POST të cilat mund të vijnë nga faqet e internetit ose nga kontrolli zanor IFTTT / Alexa.

Mbështet një detektor aktivizimi Amazon Echo / Dot për të heshtur / heshtur sapo të thuhet fjala e aktivizimit.

Komandat janë ose komanda të vetme ose sekuenca. Sekuencat mund të ruhen si makro të emërtuara të cilat më pas mund të përdoren si komanda ose në sekuenca të tjera.

Historia e fundit dhe lista e makrove mund të merren përmes ndërfaqes në internet

Mbështet ngarkimin OTA të firmuerit të ri dhe përdor bibliotekën WifiManager për konfigurimin fillestar të wifi

Hapi 1: Pajisje kompjuterike

Hardware
Hardware
Hardware
Hardware

Përdor përbërësit e mëposhtëm

  • Moduli ESP-12F
  • Rregullator 3.3V (rregullator MP2307 mini buck)
  • Çelësat MOSFET (AO3400)
  • Emetues infra i kuq (3 mm)
  • Rezistencë e varur nga drita GL2258 (Detektor opsional i aktivitetit Alexa)
  • Rezistencat
  • Shkëputja e kondensatorit (20uF)
  • Foleja USB për femra (mundësisht të bashkohet me mëngë
  • 3 shirita fole IC për detektor Alexa
  • Pjesë mekanike (mund të printohen 3D)

Mund të mblidhet në kutinë e projektit ESP-12F

  • Bashkangjit rregullatorin në lidhësin USB dhe futeni në kuti
  • Përgatitni drejtuesin IR në një copë të vogël bordi vero (3 tela, +5V, hyrje porta 0V)
  • Lidhni shoferin IR me USB +5V, 0V
  • Futni prizën IC me 3 kunja në kutinë e projektit nëse përdorni detektor Alexa. Lidhu me +3.3V, 0V dhe tela për hyrje
  • Përbëjeni ESP-12F me 2.2K nga GPIO15 në GND, EN në Vdd, 4K7 GPIO13 në Vdd, hyrje Alexa në GPIO13, drejtues IR në GPIO14, 0V dhe Vdd në 3.3V
  • Përgatitni detektorin Alexa dhe mbështesni tamponin nëse kërkohet.

Vini re se mund të jetë më e lehtë të programoni ESP-12F së pari nëse keni një lloj strukture programimi serik ose pajisje të përkohshme të ngrënies si kjo për t'u lidhur me portet serike.

Programimi i mëvonshëm mund të bëhet duke përdorur azhurnimin e integruar në OTA.

Hapi 2: Softueri

Ir Blaster përdor një skicë Arduino të disponueshme në github

Kjo duhet të rregullohet për t'iu përshtatur kushteve lokale dhe më pas të përpilohet në një mjedis esp8266 Arduino.

Bibliotekat e mëposhtme janë të nevojshme, shumica janë standarde ose mund të shtohen. Dy të fundit përfshihen në git.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNSServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (e përfshirë në Git)
  • BitMessages (të përfshira në Git)

Artikujt në skicën që do të ndryshohen përfshijnë

  • Kodi i autorizimit për qasje në ueb AP_AUTHID
  • Fjalëkalimi i menaxherit Wfi WM_PASSWORD
  • firmware fjalëkalimi OTA update_password
  • Pajisjet e reja IR / kodet e butonave (shiko më vonë)

Pasi të bëhet kjo atëherë së pari duhet të ngarkohet duke përdorur ngarkim serik konvencional.

Ndërsa SPIFFS përdoret atëherë kujtesa duhet të përgatitet duke instaluar dhe përdorur mjetin e ngarkimit të arduino ESP8266 Sketch Data. Kjo do të ngarkojë dosjen e të dhënave si përmbajtje fillestare SPIFFS

Kur pajisja nuk mund të lidhet me rrjetin lokal (siç do të ndodhë herën e parë) atëherë menaxheri Wifi do të krijojë një pikë hyrjeje (192.168.4.1). Lidhuni me këtë rrjet nga një telefon ose tabletë pastaj shfletoni në 192.168.4.1 Ju do të merrni një ndërfaqe në internet për t'u lidhur me wifi -n lokal. Qasjet e mëvonshme do ta përdorin këtë. Nëse rrjeti lokal ndryshon, ai do të kthehet përsëri në këtë mënyrë konfigurimi.

Përditësimi i mëvonshëm mund të bëhet duke përpiluar një binar eksporti në mjedisin Arduino dhe më pas duke hyrë në ndërfaqen OTA në ip/firmware.

Hapi 3: Shtoni kodet e pajisjes / butonit

Shënim: Ky seksion ka ndryshuar nga metoda e mëparshme ku konfigurimi i cili ishte përpiluar më parë në kod. Tani përdor skedarë të ngarkuar nga sistemi i regjistrimit SPIFF. Kjo e bën shumë më të lehtë ngarkimin e përkufizimeve të reja.

Përkufizimet e butonave përfshihen në skedarin buttonnames.txt. Shtë një listë globale e emrave në të gjitha telekomandat në përdorim pasi shumë emra kanë tendencë të jenë të zakonshëm. Siç është dhënë, kjo përmban detaje për telekomandat që përdor. Mund të shtohen shënime të reja. Ka hapësirë për një total prej 160 emrash, por kjo mund të rritet duke rregulluar konstantet në bitMessages.h dhe duke rikompiluar. Emrat e përcaktuar këtu janë emrat që do të përdoren kur dërgoni komanda.

Çdo pajisje e largët përcaktohet në një skedar të quajtur dev_remotename. Përbëhet nga një seksion konfigurimi në krye dhe më pas një tabelë e hartës nga emrat e butonave tek kodet të cilët janë vargje gjashtëkëndësh që përmbajnë bitët që do të dërgohen. Vetëm emrat e butonave të kërkuar duhet të përcaktohen.

Seksioni i konfigurimit në fillim të një skedari të pajisjes përmban parametra që do të përdoren kur dërgoni një kod. Hyrja e parë është emri devic i cili përdoret kur dërgoni një komandë. Parametrat e tjerë përshkruhen në readme në faqen e kodit.

Shumica e telekomandave i përkasin njërës prej 3 kategorive të protokollit (nec, rc5 dhe rc6). nec është ndoshta më i zakonshmi dhe ka një strukturë të thjeshtë të titullit dhe kohën e bitit. Ekziston një variant i vogël i kësaj që ndryshon vetëm në kohën e pulsit të kokës. rc5 dhe rc6 janë protokolle të përcaktuara nga Philips, por të përdorura edhe nga disa prodhues të tjerë. Ato janë pak më të komplikuara dhe rc6 në veçanti ka një kërkesë të veçantë kohore për njërën nga bitët.

Për të kapur kodet për një telekomandë të re, unë përdor një marrës IR (TSOP) që përdoret zakonisht me priza në distancë. Kjo bën deshifrimin bazë dhe jep një dalje të nivelit logjik. Ata normalisht vijnë me një prizë 3.5 mm me lidhje +5V, GND, DATA. Unë sakrifikova një, shkurtova plumbin dhe e vendosa përmes një tamponi përmbysës 3.3V për të ushqyer një kunj GPIO me një Raspberry Pi.

Unë pastaj përdor një mjet python rxir.py (në dosjen git tools) për të kapur kode. Për ta bërë më të lehtë përdorimin e tij për të kapur një numër të madh butonash, mjeti përdor një skedar përcaktimi teksti për të përcaktuar butonat në telekomandë dhe është vetëm emrat e butonave në një grup në telekomandë. Për shembull, dikush mund të ketë një telekomandë të re Sony dhe një të vendosë 3 skedarë teksti të quajtur sonytv-cursor, sonytv-numbers, sonytv-playcontrols secili me emrat përkatës të butonave. Mjeti do të kërkojë për pajisjen (sonytv), seksionin (kursori) dhe cilin protokoll të përdorni (nec, nec1, rc5, rc6). Pastaj do të kërkojë në mënyrë sekuenciale për çdo buton të shtypur dhe të shkruajë rezultate në një skedar ircodes sonytv. Seksionet mund të përsëriten nëse kërkohet për të kontrolluar që kapjet janë të mira. Pjesët nga skedari.ircodes mund të redaktohen në tabelat e BitDevices.

Hapi 4: Kontrolli i uebit dhe makro

Kontrolli bazë i uebit është ose një marrje e vetme ose një postim json i cili mund të përmbajë një sekuencë.

Get to /ir ka 6 parametra

  • autor - që përmban kodin e autorizimit
  • pajisje - emri i pajisjes në distancë
  • parametër - emri i butonit
  • bit - një numërim bit opsional
  • përsëritje - një numërim opsional i përsëritjeve
  • prisni - një vonesë në sekonda para se të ekzekutohet komanda tjetër.

Pajisja gjithashtu mund të jetë 'nul' për të marrë vetëm një vonesë, 'makro' për të përdorur makron e përmendur nga parametri, ose 'zbulo' për të përdorur veçorinë e zbulimit Alexa (shih më vonë).

Postimi në /irjson përbëhet nga një strukturë json si

{

"auth": "1234", "komandat": [{"pajisje": "yamahaAV", "parametër": "hdmi4", "pres": "5000", "bit": "0", "përsëris": "1"}, {"pajisje": "yamahaAV", "parametër": "hesht", "prit": "100", "bite": "0", "përsëris": "1"}]

}

Sekuenca mund të jetë çdo gjatësi dhe pajisjet mund të jenë referenca makro.

E njëjta strukturë mund të përdoret për të përcaktuar makro. Thjesht përfshini makro: "emri makron", në nivelin e lartë p.sh. pas autorit. Përmbajtja aktuale ruhet në një skedar të quajtur macroname.txt

Makrot mund të fshihen duke i përcaktuar ato pa "komanda".

Komanda të tjera në internet

  • /e fundit (liston aktivitetet e fundit)
  • /kontrolloni (tregon statusin bazë)
  • / (ngarkon një formular në internet për të dërguar komanda me dorë)
  • / redakto (ngarkon një formë në internet për të parë listën e skedarëve dhe fshirë/ ngarkuar skedarët)
  • /edit? file = emri i skedarit (shikoni përmbajtjen e një skedari të veçantë)
  • /ringarkoni (ringarkon emrat e butonave dhe skedarët e pajisjes. Përdorni pasi të keni ndryshuar ndonjërën nga këto)

Hapi 5: Kontrolli i zërit Alexa duke përdorur IFTTT

Mënyra më e thjeshtë për të përdorur ir Blaster me Alexa është të përdorni IFTTT si një hyrje.

Porta e parë përpara portin e përdorur për blaster -in tuaj në ruterin tuaj në mënyrë që të jetë e arritshme nga interneti. Mund të jetë mirë të përdorni një shërbim dns si freedns për t'i dhënë një emër ip të jashtëm ruterëve tuaj dhe për ta bërë më të lehtë trajtimin nëse ky ip ndryshon.

Krijoni një llogari IFTTT dhe aktivizoni kanalin Maker Webhooks dhe kanalin Alexa. Ju do të duhet të identifikoheni në faqen e Amazon kur e bëni këtë për të mundësuar qasjen në IFTT.

Krijoni një shkas IF duke përdorur kanalin IFTTT Alexa, zgjidhni veprimin bazuar në një frazë dhe futni frazën që dëshironi (p.sh. vëllimi lart).

Krijoni veprimin duke zgjedhur kanalin e krijuesve të uebit Maker. Futni në fushën URL diçka si

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

Ky veprim do t'i dërgohet ir blaster ku do të përpiqet të ekzekutojë vëllimin makro. Dikush mund të jetë pajisje/butona të veçantë këtu nëse dëshironi, por më duket më mirë të përcaktoj dhe përdor makro sepse atëherë sekuenca e veprimit mund të ndryshohet lehtësisht vetëm duke ripërcaktuar makron.

Për çdo komandë nevojitet një aplet i veçantë IFTTT.

Hapi 6: Aftësia Zëri Alexa Voice

Në vend të IFTTT mund të ndërtoni një aftësi të personalizuar brenda zhvillimit të Alexa. Kjo centralizon të gjithë përpunimin në një vend dhe do të thotë që nuk keni nevojë të krijoni veprime të ndara për secilin buton.

Ju duhet të regjistroheni si një zhvillues i Amazon Alexa dhe duhet të regjistroheni me shërbimin lambda të tastierës Amazon AWS. Ju gjithashtu do të duhet të shikoni mësimet për të kuptuar pak procesin.

Nga ana e zhvilluesit Alexa ju duhet të krijoni një aftësi të re me porosi, të futni fjalën e saj të shkaktuar dhe të krijoni një listë të fjalëve komanduese si volumi i lartë, udhëzuesi, etj.

Alexa pastaj dërgon frazën në një program që funksionon në shërbimin lamda i cili interpreton frazën dhe bën një thirrje URL tek blaster Ir për ta vepruar atë.

Unë kam përfshirë skemën e synimit Alexa dhe funksionin lambda të tastierës që përdor në git. URL -ja do të duhet të modifikohet për t'iu referuar ip -së përkatëse dhe të ketë autorizimin e duhur. Për ta mbajtur të thjeshtë funksionet lambda thërrasin një makro e cila ka një version të vogël të frazës të zhveshur nga hapësira. Ai gjithashtu përpiqet të heqë fjalën kyçe të shkaktuar, e cila ndonjëherë mund të përfshihet. P.sh. blaster VOLUME up do të thërrasë një makro të quajtur vëllim nëse fjala shkas ishte blaster.

Hapi 7: Detektori i aktivizimit Alexa

Megjithëse njohja e zërit Echo / Dot është e mirë, nganjëherë mund të ngatërrohet nëse tingulli po luan nga thuaji një TV nëse nuk afroheni dhe flisni me zë të lartë.

Për ta përmirësuar këtë, shtova një detektor aktivizimi në Pikën time. Sapo fjala kyçe (thuhet Alexa) unaza e LED -ve ndizet. Detektori e fut këtë në blaster ku do të përdorë makron alexaon për të fikur televizorin, në mënyrë të ngjashme në fund të përpunimit të një komande dritat fiken dhe makro alexaoff rikthen tingullin.

Komanda "zbulo" gjithashtu mund të përdoret për ta aktivizuar dhe fikur këtë. Kështu për shembull unë përdor makron fillestare turnon për të mundësuar zbulimin dhe makro fikjen për ta çaktivizuar atë. Kjo gjithashtu mund të përdoret brenda makrove të veprimit për të mbështetur një koomand të vërtetë të heshtur dhe të heshtur, i cili përndryshe do të ishte problematik.

Detektori fizik është një rezistencë e varur nga drita të cilën qarku e mbështet. Unë e montoj timen në Dot me një kllapa të printuar 3D

Recommended: