Turinys:

ESP-12 infraraudonųjų spindulių pūtiklis: 7 žingsniai
ESP-12 infraraudonųjų spindulių pūtiklis: 7 žingsniai

Video: ESP-12 infraraudonųjų spindulių pūtiklis: 7 žingsniai

Video: ESP-12 infraraudonųjų spindulių pūtiklis: 7 žingsniai
Video: Grindinis šildymas infraraudonaisiais spinduliai 2024, Liepa
Anonim
ESP-12 infraraudonųjų spindulių pūtiklis
ESP-12 infraraudonųjų spindulių pūtiklis

Infraraudonųjų spindulių nuotolinio valdymo pultelis naudojant esp8266

Perduoda nuotolinio valdymo kodus, gautus iš žiniatinklio, palaikančius kelis išvesties įrenginius.

Sukurtas paprastas tinklalapis, daugiausia skirtas bandymams.

Įprastas naudojimas atliekamas naudojant POST pranešimus, kurie gali būti siunčiami iš tinklalapių arba naudojant IFTTT / Alexa valdymą balsu.

Palaiko „Amazon Echo“/ „Dot“aktyvavimo detektorių, kad nutildytų / nutildytų, kai tik bus ištartas aktyvus žodis.

Komandos yra pavienės komandos arba sekos. Sekos gali būti saugomos kaip pavadintos makrokomandos, kurios vėliau gali būti naudojamos kaip komandos arba kitose sekose.

Naujausią istoriją ir makrokomandų sąrašą galima gauti naudojant žiniatinklio sąsają

Palaiko naujos programinės aparatinės įrangos įkėlimą OTA ir naudoja „WifiManager“biblioteką pradiniam „Wi -Fi“nustatymui

1 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Naudoja šiuos komponentus

  • ESP-12F modulis
  • 3.3V reguliatorius (MP2307 mini buck reguliatorius)
  • MOSFET jungikliai (AO3400)
  • Infraraudonųjų spindulių spinduolis (3 mm)
  • Nuo šviesos priklausomas rezistorius GL2258 (pasirenkamas „Alexa“aktyvumo detektorius)
  • Rezistoriai
  • Atsiejamasis kondensatorius (20uF)
  • USB kištukinis lizdas (pageidautina lydmetalis su rankovėmis
  • 3 kontaktų IC lizdo juosta „Alexa“detektoriui
  • Mechaninės dalys (galima spausdinti 3D)

Galima surinkti į ESP-12F projekto dėžutę

  • Prijunkite reguliatorių prie USB jungties ir įdėkite į dėžutę
  • Uždėkite infraraudonųjų spindulių tvarkyklę ant nedidelio vero plokštės gabalo (3 laidai, +5 V, 0 V vartų įvestis)
  • Prijunkite IR tvarkyklę prie USB +5V, 0V
  • Įdėkite 3 kontaktų IC lizdą į projekto dėžutę, jei naudojate „Alexa“detektorių. Prijunkite prie +3.3V, 0V ir įvesties laido
  • Užpildykite ESP-12F su 2,2K nuo GPIO15 iki GND, nuo EN iki Vdd, 4K7 GPIO13 į Vdd, „Alexa“įvestis į GPIO13, IR tvarkyklė į GPIO14, 0V ir Vdd iki 3.3V
  • Užpildykite „Alexa“detektorių ir, jei reikia, palaikykite buferį.

Atminkite, kad pirmiausia gali būti lengviau užprogramuoti ESP-12F, jei turite tam tikrą serijinio programavimo įrenginį arba laikiną maitinimo laidą, skirtą prisijungti prie nuosekliųjų prievadų.

Vėlesnį programavimą galima atlikti naudojant įmontuotą OTA atnaujinimą.

2 žingsnis: programinė įranga

„Ir Blaster“naudoja „Arduino“eskizą, kurį galima rasti „github“

Tai reikia sureguliuoti, kad atitiktų vietos sąlygas, ir tada surinkti esp8266 Arduino aplinkoje.

Reikia šių bibliotekų, dauguma jų yra standartinės arba gali būti pridėtos. Paskutiniai du yra įtraukti į git.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNS serveris
  • ESP8266mDNS
  • ESP8266HTTPatnaujinimo serveris
  • ArduinoJson
  • „BitTx“(įtraukta į „Git“)
  • „BitMessages“(įtraukta į „Git“)

Eskizo elementai, kuriuos reikia keisti, apima

  • Prieigos prie žiniatinklio prieigos teisės kodas AP_AUTHID
  • Wfi tvarkyklės slaptažodis WM_PASSWORD
  • programinės įrangos OTA slaptažodis update_password
  • Nauji IR įrenginiai / mygtukų kodai (žr. Vėliau)

Kai tai bus padaryta, pirmiausia jį reikia įkelti naudojant įprastą serijinį įkėlimą.

Kadangi naudojamas SPIFFS, atmintis turėtų būti paruošta įdiegus ir naudojant „arduino ESP8266 Sketch Data upload“įrankį. Tai įkelia duomenų aplanką kaip pradinį SPIFFS turinį

Kai įrenginys negali prisijungti prie vietinio tinklo (kaip atsitiks pirmą kartą), „Wifi“valdytojas sukurs prieigos tašką (192.168.4.1). Prisijunkite prie šio tinklo iš telefono ar planšetinio kompiuterio, tada eikite į 192.168.4.1 Gausite žiniatinklio sąsają, kad galėtumėte prisijungti prie vietinio „Wi -Fi“. Vėlesnės prieigos tai naudos. Jei vietinis tinklas pasikeis, jis grįš į šį konfigūracijos režimą.

Vėlesnis atnaujinimas gali būti atliktas surenkant eksporto dvejetainį failą „Arduino“aplinkoje ir pasiekus OTA sąsają naudojant „ip/firmware“.

3 veiksmas: pridėkite įrenginio / mygtuko kodus

Pastaba: Šis skyrius pasikeitė nuo ankstesnio metodo, kai konfigūracija, anksčiau surinkta į kodą. Dabar ji naudoja failus, kurie įkeliami iš SPIFF failų sistemos. Tai labai palengvina naujų apibrėžimų įkėlimą.

Mygtuko apibrėžimai yra įtraukti į failą buttonnames.txt. Tai yra visuotinis visų naudojamų nuotolinio valdymo pultų vardų sąrašas, nes daugelis pavadinimų dažniausiai būna įprasti. Komplekte yra išsami informacija apie mano naudojamus nuotolinio valdymo pultus. Galima pridėti naujų įrašų. Iš viso yra 160 pavadinimų, tačiau tai galima padidinti pakoregavus bitMessages.h konstantas ir perkompiliuojant. Čia nurodyti vardai yra vardai, kurie turi būti naudojami siunčiant komandas.

Kiekvienas nuotolinis įrenginys yra apibrėžtas faile pavadinimu dev_remotename. Jį sudaro konfigūracijos skyrius viršuje ir žemėlapių lentelė nuo mygtukų pavadinimų iki kodų, kurie yra šešioliktainės eilutės, kuriose yra siunčiami bitai. Reikia apibrėžti tik reikalingus mygtukų pavadinimus.

Įrenginio failo pradžioje esančioje konfigūracijos skiltyje yra parametrai, kuriuos reikia naudoti siunčiant kodą. Pirmasis įrašas yra įrenginio pavadinimas, naudojamas siunčiant komandą. Kiti parametrai aprašyti kodo svetainės readme.

Dauguma nuotolinio valdymo pultų priklauso vienai iš 3 protokolų kategorijų (niekur kitur nepriskirta, rc5 ir rc6). Nec yra tikriausiai labiausiai paplitęs ir turi paprastą antraštės struktūrą ir bitų laiką. Yra nedidelis šio varianto variantas, kuris skiriasi tik antraštės impulso laiku. „rc5“ir „rc6“yra „Philips“apibrėžti protokolai, tačiau taip pat naudojami kai kurių kitų gamintojų. Jie yra šiek tiek sudėtingesni, o ypač rc6 turi specialų laiko reikalavimą vienam iš bitų.

Norėdami užfiksuoti naujo nuotolinio valdymo pulto kodus, naudoju IR imtuvą (TSOP), dažniausiai naudojamą su prijungtais nuotoliniais imtuvais. Tai atlieka pagrindinį dekodavimą ir suteikia loginio lygio išvestį. Paprastai jie turi 3,5 mm lizdą su +5V, GND, DATA jungtimis. Aš paaukojau vieną, sutrumpinau laidą ir įdėjau jį į apverstą 3,3 V buferį, kad galėčiau maitinti GPIO kaištį „Raspberry Pi“.

Tada kodams fiksuoti naudoju python įrankį rxir.py (aplanke „git tools“). Kad būtų lengviau fotografuoti daugybę mygtukų, įrankis naudoja teksto apibrėžimo failą, kad nustatytų nuotolinio valdymo pulto mygtukus, ir yra tik nuotolinio valdymo pulto grupės mygtukų pavadinimai. Pvz., Vienas gali turėti naują „Sony“nuotolinio valdymo pultą, o kitas-nustatyti 3 teksto failus, vadinamus sonytv-cursor, sonytv numerius, sonytv-playcontrols, kurių kiekviename yra atitinkamų mygtukų pavadinimai. Įrankis paprašys įrenginio (sonytv), skyriaus (žymeklis) ir kokį protokolą naudoti (niekur kitur nepriskirtas, niekur nepriskiriamas, niekur nepriskiriamas, nec1, rc5, rc6). Tada jis paeiliui paragins kiekvieną mygtuko paspaudimą ir įrašys rezultatus į „sonytv-ircodes“failą. Skyriai gali būti kartojami, jei reikia, kad patikrintumėte, ar užfiksuoti vaizdai yra geri. Failai.ircodes gali būti redaguojami „BitDevices“lentelėse.

4 veiksmas: žiniatinklio valdymas ir makrokomandos

Pagrindinis žiniatinklio valdymas yra vienas gavimas arba „json“įrašas, kuriame gali būti seka.

„Get to /ir“turi 6 parametrus

  • auth - yra autorizacijos kodas
  • prietaisas - nuotolinio prietaiso pavadinimas
  • parametras - mygtuko pavadinimas
  • bitai - pasirenkamas bitų skaičius
  • pakartoti - pasirenkamas pakartojimų skaičius
  • palaukti - delsimas sekundėmis, kol bus galima vykdyti kitą komandą.

Įrenginys taip pat gali būti „nulinis“, kad gautų tik vėlavimą, „makro“, jei norite naudoti parametro nurodytą makrokomandą, arba „aptikti“, jei norite naudoti „Alexa“aptikimo funkciją (žr. Vėliau).

Įrašą į /irjson sudaro tokia json struktūra kaip

{

"auth": "1234", "komandos": [{"device": "yamahaAV", "parametras": "hdmi4", "palaukti": "5000", "bitai": "0", "pakartoti": "1"}, {"device": "yamahaAV", "parametras": "nutildyti", "palaukti": "100", "bitai": "0", "pakartoti": "1"}]

}

Seka gali būti bet kokio ilgio, o įrenginiai - makrokomandos.

Ta pati struktūra gali būti naudojama makrokomandoms apibrėžti. Tiesiog įtraukite makro: „macroname“, aukščiausiame lygyje, pvz. po aut. Tikrasis turinys saugomas faile, pavadintame macroname.txt

Makrokomandas galima ištrinti apibrėžiant jas be „komandų“.

Kitos žiniatinklio komandos

  • /neseniai (išvardija naujausią veiklą)
  • /patikrinti (rodo pagrindinę būseną)
  • / (įkelia žiniatinklio formą komandoms siųsti rankiniu būdu)
  • / redaguoti (įkelia žiniatinklio formą, kad būtų galima peržiūrėti failų sąrašą ir ištrinti/ įkelti failus)
  • /edit? file = failo pavadinimas (peržiūrėti konkretaus failo turinį)
  • /reload (iš naujo įkeliami mygtukų pavadinimai ir įrenginio failai. Naudokite juos pakeitę)

5 veiksmas: „Alexa“valdymas balsu naudojant IFTTT

Paprasčiausias būdas naudoti „Blaster“su „Alexa“yra naudoti IFTTT kaip šliuzą.

Pirmiausia įveskite prievadą, naudojamą jūsų maršrutizatoriuje, kad jis būtų pasiekiamas iš interneto. Gali būti gerai naudoti dns paslaugą, pvz., „Freedns“, kad maršrutizatoriams būtų suteiktas išorinis IP pavadinimas ir būtų lengviau valdyti, jei šis IP pasikeis.

Nustatykite IFTTT paskyrą ir įgalinkite kanalą „Maker Webhooks“ir „Alexa“. Kai tai padarysite, turėsite prisijungti prie „Amazon“svetainės, kad įgalintumėte IFTT prieigą.

Sukurkite IF aktyviklį naudodami IFTTT Alexa kanalą, pasirinkite veiksmą pagal frazę ir įveskite norimą frazę (pvz., Padidinkite garsumą).

Sukurkite veiksmą pasirinkę „Maker webhooks“kanalą. Įveskite URL lauką kažką panašaus

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

Šis veiksmas bus išsiųstas į ir blaster, kur jis bandys atlikti makrokomandos garsumą. Jei norite, čia gali būti konkretus įrenginys/mygtukai, tačiau manau, kad geriau apibrėžti ir naudoti makrokomandas, nes tada veiksmų seką galima lengvai pakeisti tiesiog iš naujo apibrėžiant makrokomandą.

Kiekvienai komandai reikalinga atskira IFTTT programėlė.

6 veiksmas: vietinis „Alexa“balso įgūdis

Vietoj IFTTT „Alexa“kūrimo metu galite sukurti individualų įgūdį. Tai sutelkia visą apdorojimą vienoje vietoje ir reiškia, kad nereikia kiekvienam mygtukui kurti atskirų veiksmų.

Turite užsiregistruoti kaip „Amazon Alexa“kūrėjas ir užsiregistruoti „Amazon AWS“konsolės „lambda“paslaugoje. Taip pat turėsite pažvelgti į vadovėlius, kad šiek tiek suprastumėte procesą.

„Alexa“kūrėjo pusėje turite sukurti naują pasirinktinį įgūdį, įvesti jo aktyvinimo žodį ir sukurti komandinių žodžių, pvz., Garsumo didinimo, vadovo ir kt., Sąrašą.

Tada „Alexa“siunčia frazę programai, veikiančiai „lamda“tarnyboje, kuri interpretuoja frazę ir skambina URL, kad „Ir blaster“imtųsi veiksmų.

Į „git“įtraukiau „Alexa“ketinimo schemą ir konsolės lambda funkciją, kurią naudoju. URL turės būti pakeistas, kad būtų nurodytas atitinkamas IP ir turimas tinkamas įgaliojimas. Kad viskas būtų paprasta, „lambda“funkcijos iškviečia makrokomandą, kurioje yra tarpo išimtos mažosios raidės. Taip pat bandoma pašalinti aktyvinantį raktinį žodį, kuris kartais gali būti įtrauktas. Pvz. „blaster VOLUME up“iškvies makrokomandą „volumeup“, jei trigeris buvo blaster.

7 veiksmas: „Alexa“suaktyvina detektorių

Nors „Echo / Dot“balso atpažinimas yra geras, kartais jis gali susipainioti, jei garsas skamba iš televizoriaus, nebent priartėsite ir garsiai kalbėsite.

Norėdami tai pagerinti, prie savo taško pridėjau aktyvinimo detektorių. Kai tik raktinis žodis (pasakyta Alexa) užsidega šviesos diodų žiedas. Detektorius tiekia tai į pūtimo aparatą, kur televizoriaus nutildymui naudos „alexaon“makrokomandą, panašiai, apdorojant komandą, lemputės užgęsta ir „alexaoff“makrokomanda atkuria garsą.

Taip pat galima įjungti ir išjungti komandą „aptikti“. Taigi, pavyzdžiui, aš naudoju pradinę posūkio makrokomandą, kad įgalinčiau aptikimą, ir išjungimo makrokomandą, kad ją išjungčiau. Tai taip pat gali būti naudojama veiksmų makrokomandose, kad būtų palaikomas tikras nutildymas ir įjungimas, kuris priešingu atveju būtų problemiškas.

Fizinis detektorius yra nuo šviesos priklausomas rezistorius, kurį palaiko grandinė. Aš pritvirtinu ant taško 3D spausdintą laikiklį

Rekomenduojamas: