Satura rādītājs:

ESP-12 infrasarkanais pūtējs: 7 soļi
ESP-12 infrasarkanais pūtējs: 7 soļi

Video: ESP-12 infrasarkanais pūtējs: 7 soļi

Video: ESP-12 infrasarkanais pūtējs: 7 soļi
Video: Объяснение UEFI: Windows 10/11 и UEFI 2024, Novembris
Anonim
ESP-12 infrasarkanais pūtējs
ESP-12 infrasarkanais pūtējs

Infrasarkanā tālvadības pults, izmantojot esp8266

Pārraida no Web saņemtos tālvadības pults kodus, kas atbalsta vairākas izvadierīces.

Iebūvēta vienkārša tīmekļa lapa galvenokārt testēšanai.

Parastā lietošana tiek veikta, izmantojot POST ziņojumus, kas var nākt no tīmekļa lapām vai no IFTTT / Alexa balss vadības.

Atbalsta Amazon Echo / Dot aktivizēšanas detektoru, lai izslēgtu / klusinātu, tiklīdz tiek izrunāts aktivizācijas vārds.

Komandas ir vai nu atsevišķas komandas, vai secības. Secības var saglabāt kā nosauktus makro, ko pēc tam var izmantot kā komandas vai citās secībās.

Jaunāko vēsturi un makro sarakstu var iegūt, izmantojot tīmekļa saskarni

Atbalsta jaunas programmaparatūras augšupielādi OTA un izmanto WifiManager bibliotēku sākotnējai wifi iestatīšanai

1. darbība. Aparatūra

Aparatūra
Aparatūra
Aparatūra
Aparatūra

Izmanto šādus komponentus

  • ESP-12F modulis
  • 3.3V regulators (MP2307 mini buck regulators)
  • MOSFET slēdži (AO3400)
  • Infrasarkanais izstarotājs (3 mm)
  • No gaismas atkarīgs rezistors GL2258 (izvēles Alexa aktivitātes detektors)
  • Rezistori
  • Atvienošanas kondensators (20uF)
  • USB sieviešu ligzda (vēlams lodētam draudzīga ar uzmavu
  • 3 kontaktu IC kontaktligzda Alexa detektoram
  • Mehāniskās detaļas (var izdrukāt 3D formātā)

Var salikt ESP-12F projekta kastē

  • Pievienojiet regulatoru USB savienotājam un ievietojiet kastē
  • Uzlieciet IR draiveri uz neliela vero plāksnes gabala (3 vadi, +5V, 0V vārtu ievade)
  • Pievienojiet IR draiveri USB +5V, 0V
  • Ievietojiet 3 kontaktu IC ligzdu projekta kastē, ja izmantojat Alexa detektoru. Pievienojiet pie +3.3V, 0V un ievadiet vadu
  • Uzpildiet ESP-12F ar 2,2K no GPIO15 līdz GND, EN līdz Vdd, 4K7 GPIO13 līdz Vdd, Alexa ievade GPIO13, IR draiveris līdz GPIO14, 0V un Vdd līdz 3,3V
  • Uzpildiet Alexa detektoru un, ja nepieciešams, atbalsta buferi.

Ņemiet vērā, ka vispirms var būt vieglāk ieprogrammēt ESP-12F, ja jums ir kāda veida sērijveida programmēšanas iespēja vai pagaidu maizes dēļu iekārta, lai izveidotu savienojumu ar seriālajiem portiem.

Turpmāko programmēšanu var veikt, izmantojot iebūvēto OTA atjauninājumu.

2. darbība: programmatūra

Ir Blaster izmanto Arduino skici, kas pieejama vietnē github

Tas ir jāpielāgo vietējiem apstākļiem un pēc tam jāapkopo esp8266 Arduino vidē.

Nepieciešamas šādas bibliotēkas, vairums ir standarta vai var tikt pievienotas. Pēdējie divi ir iekļauti git.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNS serveris
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (iekļauts Git)
  • BitMessages (iekļauts Git)

Skices maināmie vienumi ietver

  • Tīmekļa piekļuves autorizācijas kods AP_AUTHID
  • Wfi pārvaldnieka parole WM_PASSWORD
  • programmaparatūras OTA parole update_password
  • Jaunas IS ierīces / pogu kodi (skatīt vēlāk)

Kad tas ir izdarīts, vispirms to vajadzētu augšupielādēt, izmantojot parasto sērijveida augšupielādi.

Tā kā tiek izmantots SPIFFS, atmiņa jāsagatavo, instalējot un izmantojot arduino ESP8266 Sketch Data upload rīku. Tādējādi datu mape tiks augšupielādēta kā sākotnējais SPIFFS saturs

Kad ierīce nevar izveidot savienojumu ar vietējo tīklu (kā tas notiks pirmo reizi), Wifi pārvaldnieks izveidos piekļuves punktu (192.168.4.1). Izveidojiet savienojumu ar šo tīklu no tālruņa vai planšetdatora, pēc tam pārlūkojiet vietni 192.168.4.1. Jūs saņemsiet tīmekļa saskarni, lai izveidotu savienojumu ar vietējo wifi. Turpmākās piekļuves to izmantos. Ja vietējais tīkls mainās, tas atgriezīsies šajā konfigurācijas režīmā.

Turpmāko atjaunināšanu var veikt, apkopojot eksporta bināro failu Arduino vidē un pēc tam piekļūstot OTA saskarnei vietnē ip/firmware.

3. darbība: pievienojiet ierīces / pogu kodus

Piezīme. Šī sadaļa ir mainījusies no iepriekšējās metodes, kurā konfigurācija, kas iepriekš tika apkopota kodā. Tagad tas izmanto failus, kas tiek ielādēti no SPIFF failu sistēmas. Tas ievērojami atvieglo jaunu definīciju augšupielādi.

Pogas definīcijas ir iekļautas failā buttonnames.txt. Tas ir globāls vārdu saraksts visās izmantotajās tālvadības pultīs, jo daudzi vārdi mēdz būt izplatīti. Komplektā ir iekļauta informācija par izmantotajām tālvadības pultīm. Var pievienot jaunus ierakstus. Kopumā ir vietas 160 nosaukumiem, taču to var palielināt, pielāgojot konstantes bitMessages.h un pārkompilējot. Šeit definētie nosaukumi ir nosaukumi, kas jāizmanto, nosūtot komandas.

Katra attālā ierīce ir definēta failā ar nosaukumu dev_remotename. Tas sastāv no konfigurācijas sadaļas augšpusē un pēc tam kartēšanas tabulas no pogu nosaukumiem līdz kodiem, kas ir heksadecimālās virknes, kurās ir nosūtāmie biti. Jānosaka tikai nepieciešamie pogu nosaukumi.

Konfigurācijas sadaļā ierīces faila sākumā ir parametri, kas jāizmanto, nosūtot kodu. Pirmais ieraksts ir ierīces nosaukums, kas tiek izmantots, nosūtot komandu. Citi parametri ir aprakstīti koda vietnes lasījumā.

Lielākā daļa tālvadības pulti pieder vienai no 3 protokolu kategorijām (citur neklasificēta, rc5 un rc6). citur neklasificēts, iespējams, ir visizplatītākais, un tam ir vienkārša galvenes struktūra un bitu laiks. Tam ir neliels variants, kas atšķiras tikai ar galvenes impulsa laiku. rc5 un rc6 ir Philips definēti protokoli, bet tos izmanto arī daži citi ražotāji. Tie ir nedaudz sarežģītāki, un jo īpaši rc6 ir īpaša laika prasība vienam no bitiem.

Lai uztvertu jaunas tālvadības pults kodus, es izmantoju IR uztvērēju (TSOP), ko parasti izmanto ar pievienotajiem tālvadības uztvērējiem. Tas nodrošina pamata dekodēšanu un dod loģiska līmeņa izvadi. Parasti tiem ir 3,5 mm ligzda ar +5V, GND, DATA savienojumiem. Es upurēju vienu, saīsināju vadu un izliku to caur apgrieztu 3.3V buferi, lai barotu GPIO tapu uz Raspberry Pi.

Pēc tam es izmantoju python rīku rxir.py (mapē git tools) kodu uztveršanai. Lai atvieglotu daudzu pogu uzņemšanu, rīks izmanto teksta definīcijas failu, lai definētu tālvadības pults pogas, un tas ir tikai tālvadības pults grupas pogu nosaukums. Piemēram, var būt jauns Sony tālvadības pults, un viens izveido 3 teksta failus ar nosaukumu sonytv-cursor, sonytv-numuri, sonytv-playcontrols, katrs ar atbilstošo pogu nosaukumiem. Rīks pieprasīs ierīces (sonytv), sadaļu (kursors) un kādu protokolu izmantot (citur neklasificēts, citur neklasificēts, rc5, rc6). Pēc tam tas prasīs secīgi par katru pogas nospiešanu un ierakstīs rezultātus sonytv-ircodes failā. Ja nepieciešams, sadaļas var atkārtot, lai pārbaudītu, vai uzņemtie attēli ir labi. Bitus no.ircodes faila var rediģēt BitDevices tabulās.

4. darbība: tīmekļa vadība un makro

Pamata tīmekļa vadība ir vai nu viena saņemšana, vai json ziņa, kas var saturēt secību.

Get to /ir ir 6 parametri

  • auth - satur autorizācijas kodu
  • ierīce - attālās ierīces nosaukums
  • parametrs - pogas nosaukums
  • biti - pēc izvēles bitu skaits
  • atkārtot - pēc izvēles atkārtojumu skaits
  • gaidīt - aizkavēšanās sekundes, pirms var izpildīt nākamo komandu.

Ierīce var būt arī “nulle”, lai iegūtu tikai aizkavi, “makro”, lai izmantotu makro, uz kuru atsaucas parametrs, vai “atklāt”, lai izmantotu Alexa noteikšanas funkciju (sk. Vēlāk).

Ziņa uz /irjson sastāv no tādas json struktūras kā

{

"auth": "1234", "komandas": [{"device": "yamahaAV", "parameter": "hdmi4", "wait": "5000", "bits": "0", "Repeate": "1"}, {"ierīce": "yamahaAV", "parametrs": "izslēgt", "pagaidīt": "100", "biti": "0", "atkārtot": "1"}]

}

Secība var būt jebkura garuma, un ierīces var būt makro atsauces.

To pašu struktūru var izmantot, lai definētu makro. Vienkārši iekļaujiet makro: "macroname", augšējā līmenī, piem. pēc aut. Faktiskais saturs tiek saglabāts failā ar nosaukumu macroname.txt

Makro var izdzēst, definējot tos bez "komandām".

Citas tīmekļa komandas

  • /nesen (uzskaita nesenās darbības)
  • /pārbaude (parāda pamata statusu)
  • / (ielādē tīmekļa veidlapu, lai manuāli nosūtītu komandas)
  • / rediģēt (ielādē tīmekļa veidlapu, lai apskatītu failu sarakstu un dzēstu/ augšupielādētu failus)
  • /edit? file = faila nosaukums (skatiet konkrēta faila saturu)
  • /reload (atkārtoti ielādē pogu nosaukumus un ierīces failus. Izmantojiet pēc tam, kad esat mainījis kādu no šiem)

5. darbība: Alexa balss vadība, izmantojot IFTTT

Vienkāršākais veids, kā lietot ir Blaster ar Alexa, ir izmantot IFTTT kā vārteju.

Vispirms nosūtiet maršrutētājā savu blasteru izmantoto portu, lai tas būtu pieejams no interneta. Var būt labi izmantot dns pakalpojumu, piemēram, freedns, lai maršrutētājiem piešķirtu ārējā IP nosaukumu un atvieglotu apstrādi, ja šis IP mainās.

Izveidojiet IFTTT kontu un iespējojiet Maker Webhooks kanālu un Alexa kanālu. To darot, jums būs jāpiesakās Amazon vietnē, lai iespējotu piekļuvi IFTT.

Izveidojiet IF aktivizētāju, izmantojot IFTTT Alexa kanālu, izvēlieties darbību, pamatojoties uz frāzi, un ievadiet vajadzīgo frāzi (piemēram, palieliniet skaļumu).

Izveidojiet darbību, izvēloties kanālu Maker webhooks. Ievadiet URL laukā kaut ko līdzīgu

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

Šī darbība tiks nosūtīta uz ir blaster, kur tā mēģinās izpildīt makro skaļumu. Ja vēlaties, šeit var būt konkrēta ierīce/pogas, taču man šķiet, ka ir labāk definēt un izmantot makro, jo tad darbību secību var viegli mainīt, vienkārši no jauna definējot makro.

Katrai komandai ir nepieciešama atsevišķa IFTTT sīklietotne.

6. darbība: vietējā Alexa balss prasme

IFTTT vietā Alexa izstrādē var veidot pielāgotas prasmes. Tas visu apstrādi centralizē vienā vietā un nozīmē, ka jums nav jāizveido atsevišķas darbības katrai pogai.

Jums jāreģistrējas kā Amazon Alexa izstrādātājam un jāreģistrējas Amazon AWS konsoles lambda pakalpojumā. Jums būs jāaplūko arī apmācības, lai mazliet izprastu procesu.

Alexa izstrādātāju pusē jums ir jāizveido jauna pielāgota prasme, jāievada tā sprūda vārds un jāizveido komandu vārdu saraksts, piemēram, skaļuma palielināšana, ceļvedis utt.

Pēc tam Alexa nosūta frāzi programmai, kas darbojas lamda pakalpojumā, kas interpretē šo frāzi un veic URL zvanu uz Ir blaster, lai to izdarītu.

Gitā esmu iekļāvis Alexa nodomu shēmu un konsoles lambda funkciju, ko izmantoju. URL būs jāmaina, lai tas atsauktos uz atbilstošo ip un iegūtu pareizo autorizāciju. Lai viss būtu vienkārši, lambda funkcijas izsauc makro, kurā ir atstarpes frāzes mazie burti. Tas arī mēģina noņemt aktivizējošo atslēgvārdu, ko dažreiz var iekļaut. Piem. blaster VOLUME up izsauks makro, ko sauc par skaļuma palielināšanu, ja sprūda vārds bija blaster.

7. darbība: Alexa aktivizējiet detektoru

Lai gan balss atpazīšana ar atbalsi / punktu ir laba, dažkārt var rasties apjukums, ja skaņa tiek atskaņota, piemēram, no televizora, ja vien neesat tuvu un nerunājat skaļi.

Lai to uzlabotu, es savam punktam pievienoju aktivizācijas detektoru. Tiklīdz atslēgvārds (saka Alexa) iedegas gaismas diodes. Detektors to ievada blasterā, kur tas izmantos alexaon makro, lai izslēgtu televizora skaņu, līdzīgi komandas apstrādes beigās gaismas nodziest un alexaoff makro atjauno skaņu.

Komandu "atklāt" var izmantot arī, lai to ieslēgtu un izslēgtu. Piemēram, es izmantoju sākotnējo pagrieziena makro, lai iespējotu noteikšanu, un izslēgšanas makro, lai to atspējotu. To var izmantot arī darbības makro, lai atbalstītu īstu izslēgtu un izslēgtu komandu, kas citādi būtu problemātiska.

Fiziskais detektors ir no gaismas atkarīgs rezistors, ko ķēde atbalsta. Es piestiprinu raktuvi uz punkta ar 3D drukātu kronšteinu

Ieteicams: