Სარჩევი:

ESP-12 ინფრაწითელი ბლასტერი: 7 ნაბიჯი
ESP-12 ინფრაწითელი ბლასტერი: 7 ნაბიჯი

ვიდეო: ESP-12 ინფრაწითელი ბლასტერი: 7 ნაბიჯი

ვიდეო: ESP-12 ინფრაწითელი ბლასტერი: 7 ნაბიჯი
ვიდეო: ინფრაწითელი ოთახი- კლინიკა "სერაფიტში"! 2024, ივლისი
Anonim
ESP-12 ინფრაწითელი ბლასტერი
ESP-12 ინფრაწითელი ბლასტერი

ინფრაწითელი დისტანციური მართვის ბლასტერი esp8266 გამოყენებით

გადასცემს დისტანციური მართვის კოდებს, რომლებიც მიღებულია ვებ – გვერდიდან მრავალი გამომავალი მოწყობილობის მხარდაჭერით.

ჩაშენებული მარტივი ვებ გვერდი ძირითადად ტესტირებისთვის.

ჩვეულებრივი გამოყენება ხდება POST შეტყობინებების საშუალებით, რომლებიც შეიძლება მოვიდეს ვებ გვერდებიდან ან IFTTT / Alexa ხმოვანი კონტროლიდან.

მხარს უჭერს Amazon Echo / Dot გააქტიურებს დეტექტორი, რათა დადუმდეს / გააქტიურდეს როგორც კი გააქტიურდება სიტყვა.

ბრძანებები არის ერთი ბრძანება ან თანმიმდევრობა. თანმიმდევრობა შეიძლება ინახებოდეს როგორც დასახელებული მაკროსი, რომელიც შემდეგ შეიძლება გამოყენებულ იქნას როგორც ბრძანება ან სხვა თანმიმდევრობით.

უახლესი ისტორია და მაკროების სია შესაძლებელია ვებ ინტერფეისის საშუალებით

მხარს უჭერს ახალი პროგრამული უზრუნველყოფის OTA ატვირთვას და იყენებს WifiManager ბიბლიოთეკას საწყისი wifi დაყენებისთვის

ნაბიჯი 1: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

იყენებს შემდეგ კომპონენტებს

  • ESP-12F მოდული
  • 3.3V რეგულატორი (MP2307 მინი მამლის რეგულატორი)
  • MOSFET კონცენტრატორები (AO3400)
  • ინფრაწითელი გამცემი (3 მმ)
  • შუქზე დამოკიდებული რეზისტორი GL2258 (არასავალდებულო Alexa აქტივობის დეტექტორი)
  • რეზისტორები
  • კონდენსატორის გათიშვა (20uF)
  • USB მდედრობითი ბუდე (სასურველია შეხამდეს ყდის საშუალებით
  • 3 პინიანი IC სოკეტის ზოლები Alexa დეტექტორისთვის
  • მექანიკური ნაწილები (შესაძლებელია 3D ბეჭდვა)

შეიძლება შეიკრიბოს ESP-12F პროექტის ყუთში

  • მიამაგრეთ რეგულატორი USB კონექტორზე და ჩასვით ყუთში
  • შეადგინეთ IR დრაივერი ვერო დაფის პატარა ნაჭერზე (3 მავთული, +5V, 0V კარიბჭის შეყვანა)
  • შეაერთეთ IR დრაივერი USB +5V, 0V
  • ჩადეთ 3 პინიანი IC სოკეტი პროექტის ყუთში, თუ იყენებთ Alexa დეტექტორს. შეაერთეთ +3.3V, 0V და მავთული შეყვანისთვის
  • შეადგინეთ ESP-12F 2.2K– ით GPIO15– დან GND– მდე, EN– მდე Vdd, 4K7 GPIO13– დან Vdd– ით, Alexa შეყვანა GPIO13– ში, IR დრაივერი GPIO14– ზე, 0V– ით და Vdd– დან 3.3V– მდე
  • შექმენით Alexa დეტექტორი და საჭიროების შემთხვევაში დაუკავშირდით ბუფერს.

გაითვალისწინეთ, რომ ESP-12F– ის დაპროგრამება უფრო ადვილი შეიძლება იყოს, თუ თქვენ გაქვთ რაიმე სახის სერიული პროგრამირების ობიექტი ან მსგავსი დროებითი დაფა, რომელიც დაკავშირებულია სერიულ პორტებთან.

შემდგომი პროგრამირება შესაძლებელია ჩაშენებული OTA განახლების გამოყენებით.

ნაბიჯი 2: პროგრამული უზრუნველყოფა

Ir Blaster იყენებს Arduino სკეტჩს, რომელიც ხელმისაწვდომია github– ზე

ეს უნდა მორგდეს ადგილობრივ პირობებს და შემდგომ შეადგინოს esp8266 Arduino გარემოში.

საჭიროა შემდეგი ბიბლიოთეკები, უმეტესობა სტანდარტულია ან შეიძლება დაემატოს. ბოლო ორი შედის git- ში.

  • ESP8266WiFi
  • ESP8266 ვებ სერვერი
  • FS.h
  • DNSServer
  • ESP8266mDNS
  • ESP8266HTTP განახლების სერვერი
  • არდუინო ჯონსონი
  • BitTx (შედის Git– ში)
  • BitMessages (შედის Git– ში)

ესკიზის ელემენტები შესაცვლელი მოიცავს

  • ავტორიზაციის კოდი ვებ წვდომისათვის AP_AUTHID
  • Wfi მენეჯერის პაროლი WM_PASSWORD
  • firmware OTA პაროლი update_password
  • ახალი IR მოწყობილობები / ღილაკების კოდები (იხ. მოგვიანებით)

მას შემდეგ რაც ეს გაკეთდება, ის ჯერ უნდა აიტვირთოს ჩვეულებრივი სერიული ატვირთვის გამოყენებით.

როგორც SPIFFS გამოიყენება, მეხსიერება უნდა მომზადდეს arduino ESP8266 Sketch Data ატვირთვის ინსტრუმენტის დაყენებით და გამოყენებით. ეს ატვირთავს მონაცემთა საქაღალდეს, როგორც საწყის SPIFFS შინაარსს

როდესაც მოწყობილობა ვერ დაუკავშირდება ადგილობრივ ქსელს (როგორც ეს პირველად მოხდება), მაშინ Wifi მენეჯერი შექმნის წვდომის წერტილს (192.168.4.1). დაუკავშირდით ამ ქსელს ტელეფონიდან ან ტაბლეტიდან, შემდეგ დაათვალიერეთ 192.168.4.1. თქვენ მიიღებთ ვებ ინტერფეისს ადგილობრივ wifi- თან დასაკავშირებლად. შემდგომი წვდომა გამოიყენებს ამას. თუ ადგილობრივი ქსელი შეიცვლება, ის გადადის ამ კონფიგურაციის რეჟიმში.

შემდგომი განახლება შეიძლება გაკეთდეს Arduino გარემოში საექსპორტო ორობითი მონაცემების შედგენით და შემდეგ OTA ინტერფეისზე წვდომა ip/firmware– ზე.

ნაბიჯი 3: დაამატეთ მოწყობილობის / ღილაკის კოდები

შენიშვნა: ეს განყოფილება შეიცვალა წინა მეთოდისგან, სადაც კონფიგურაცია იყო ადრე შედგენილი კოდში. ახლა ის იყენებს ფაილებს, რომლებიც დატვირთულია SPIFF– ების ფაილური სისტემიდან. ეს ბევრად აადვილებს ახალი განმარტებების ატვირთვას.

ღილაკის განმარტებები შედის buttonnames.txt ფაილში. ეს არის სახელების გლობალური სია, რომლებიც გამოიყენება ყველა დისტანციური მართვის პუნქტში, რადგან ბევრი სახელი ჩვეულებრივ გვხვდება. როგორც მოწოდებულია, ეს შეიცავს დეტალებს, რომლებსაც მე ვიყენებ. ახალი ჩანაწერების დამატება შესაძლებელია. სულ 160 სახელისთვის არის ადგილი, მაგრამ ეს შეიძლება გაიზარდოს bitMessages.h- ში მუდმივების მორგებით და ხელახალი შედგენით. აქ განსაზღვრული სახელები არის სახელები, რომლებიც გამოიყენება ბრძანებების გაგზავნისას.

თითოეული დისტანციური მოწყობილობა განსაზღვრულია ფაილში სახელწოდებით dev_remotename. იგი შედგება კონფიგურაციის განყოფილების ზედა ნაწილში და შემდეგ რუქის ცხრილი ღილაკების სახელებიდან კოდებამდე, რომლებიც არის ექვსკუთხა სტრიქონები, რომლებიც შეიცავს გასაგზავნ ბიტებს. საჭიროა მხოლოდ ღილაკების სახელების განსაზღვრა.

კონფიგურაციის განყოფილება მოწყობილობის ფაილის დასაწყისში შეიცავს პარამეტრებს, რომლებიც უნდა იქნას გამოყენებული კოდის გაგზავნისას. პირველი ჩანაწერი არის სახელის სახელი, რომელიც გამოიყენება ბრძანების გაგზავნისას. სხვა პარამეტრები აღწერილია readme კოდის საიტზე.

დისტანციური მართვის უმეტესობა მიეკუთვნება პროტოკოლის 3 კატეგორიას (nec, rc5 და rc6). nec ალბათ ყველაზე გავრცელებულია და აქვს სათაურის მარტივი სტრუქტურა და ცოტა დრო. არსებობს ამის უმნიშვნელო ვარიანტი, რომელიც განსხვავდება მხოლოდ სათაურის პულსის დროში. rc5 და rc6 არის პროტოკოლები, რომლებიც განსაზღვრულია Philips– ის მიერ, მაგრამ ასევე გამოიყენება სხვა მწარმოებლების მიერ. ისინი ცოტა უფრო რთულნი არიან და rc6- ს განსაკუთრებით აქვს დროის განსაზღვრის მოთხოვნა ერთ -ერთ ბიტზე.

ახალი დისტანციური კოდების დასაფიქსირებლად ვიყენებ IR მიმღებს (TSOP), რომელიც ჩვეულებრივ გამოიყენება დისტანციური მიმღებების დანამატთან ერთად. ეს აკეთებს ძირითად დეკოდირებას და იძლევა ლოგიკური დონის გამომუშავებას. ჩვეულებრივ, მათ აქვთ 3.5 მმ ჯეკი +5V, GND, DATA კავშირებით. მე გავწირა ერთი, შევამცირე ტყვია და გავუშვი ინვერსიული 3.3 ვ ბუფერი, რათა GPIO პინმა მივაწოდო ჟოლოს პიზე.

შემდეგ ვიყენებ პითონის ინსტრუმენტს rxir.py (git ინსტრუმენტების საქაღალდეში) კოდების გადასაღებად. დიდი რაოდენობის ღილაკების გადაღების გასაადვილებლად, ინსტრუმენტი იყენებს ტექსტის განსაზღვრის ფაილს დისტანციური მართვის ღილაკების დასადგენად და არის მხოლოდ ღილაკების სახელები დისტანციური მართვის ჯგუფის ჯგუფში. მაგალითად, შეიძლება გქონდეთ Sony– ს ახალი დისტანციური მართვა და ერთი დააყენოთ 3 ტექსტური ფაილი სახელწოდებით sonytv-cursor, sonytv-numbers, sonytv-playcontrols each with the relevant შესაბამისი სახელები in. Tool will prompt for the device (sonytv), section (კურსორი) და რომელი პროტოკოლი გამოვიყენოთ (nec, nec1, rc5, rc6). შემდეგ ის თანმიმდევრულად მოგთხოვთ თითოეული ღილაკის დაჭერას და შედეგების ჩაწერას sonytv-ircodes ფაილში. სექციები შეიძლება განმეორდეს, თუ საჭიროა გადამოწმება, რომ გადაღებები კარგია.. Codes ფაილიდან ბიტების რედაქტირება შესაძლებელია BitDevices ცხრილებში.

ნაბიჯი 4: ვებ კონტროლი და მაკროები

ძირითადი ვებ კონტროლი არის ერთი მიღება ან json პოსტი, რომელიც შეიძლება შეიცავდეს თანმიმდევრობას.

მისაღებად /ირს აქვს 6 პარამეტრი

  • author - შეიცავს ავტორიზაციის კოდს
  • მოწყობილობა - დისტანციური მოწყობილობის სახელი
  • პარამეტრი - ღილაკის სახელი
  • ბიტი - არჩევითი ბიტების რაოდენობა
  • გამეორება - არჩევითი განმეორებითი რაოდენობა
  • ლოდინი - წამების დაყოვნება მომდევნო ბრძანების შესრულებამდე.

მოწყობილობა ასევე შეიძლება იყოს „ბათილი“მხოლოდ შეფერხების მისაღებად, „მაკრო“გამოიყენოს პარამეტრით მითითებული მაკრო, ან „აღმოაჩინოს“გამოიყენოს Alexa detection ფუნქცია (იხ. მოგვიანებით).

პოსტი /irjson შედგება json სტრუქტურისგან, როგორიცაა

{

"auth": "1234", "ბრძანებები": [{"მოწყობილობა": "yamahaAV", "პარამეტრი": "hdmi4", "ლოდინი": "5000", "ბიტი": "0", "გამეორება": "1"}, {"მოწყობილობა": "yamahaAV", "პარამეტრი": "მუნჯი", "ლოდინი": "100", "ბიტი": "0", "გამეორება": "1"}]

}

თანმიმდევრობა შეიძლება იყოს ნებისმიერი სიგრძე და მოწყობილობები შეიძლება იყოს მაკრო მითითება.

იგივე სტრუქტურა შეიძლება გამოყენებულ იქნას მაკროების განსაზღვრისათვის. უბრალოდ შეიყვანეთ მაკრო: "მაკრონომი", ზედა დონეზე მაგ. ავტორის შემდეგ. ფაქტობრივი შინაარსი ინახება ფაილში სახელწოდებით macroname.txt

მაკროების წაშლა შესაძლებელია მათი განსაზღვრის გარეშე "ბრძანებების" გარეშე.

სხვა ვებ ბრძანებები

  • /უახლესი (ჩამოთვლილია ბოლო აქტივობები)
  • /შემოწმება (აჩვენებს ძირითად სტატუსს)
  • / (იტვირთება ვებ ფორმა ბრძანებების ხელით გასაგზავნად)
  • / რედაქტირება (იტვირთება ვებ ფორმა ფაილების სიის სანახავად და ფაილების წასაშლელად/ ასატვირთად)
  • /edit? file = ფაილის სახელი (კონკრეტული ფაილის შინაარსის ნახვა)
  • /გადატვირთვა (გადატვირთვა ღილაკების სახელები და მოწყობილობის ფაილები. გამოიყენეთ რომელიმე მათგანის შეცვლის შემდეგ)

ნაბიჯი 5: Alexa ხმის კონტროლი IFTTT გამოყენებით

უმარტივესი გზა გამოიყენოს ir Blaster ერთად Alexa არის გამოიყენოს IFTTT როგორც კარიბჭე.

პირველი პორტი გაგზავნეთ პორტი, რომელიც გამოიყენება თქვენს ბლასტერში თქვენს როუტერში, ასე რომ ის ხელმისაწვდომი იქნება ინტერნეტიდან. კარგი იქნება გამოიყენოთ dns სერვისი freedns– ის მსგავსად, რათა თქვენს მარშრუტიზატორებს მიანიჭონ გარე ip სახელი და გაუადვილონ ამ IP– ის შეცვლა.

შექმენით IFTTT ანგარიში და ჩართეთ Maker Webhooks არხი და Alexa არხი. როდესაც ამას გააკეთებთ, IFTT წვდომის გასააქტიურებლად თქვენ უნდა შეხვიდეთ ამაზონის საიტზე.

შექმენით IF გამომწვევი IFTTT Alexa არხის გამოყენებით, შეარჩიეთ მოქმედება ფრაზის საფუძველზე და შეიყვანეთ თქვენთვის სასურველი ფრაზა (მაგ. მოცულობის გაზრდა).

შექმენით მოქმედება Maker webhooks არხის არჩევით. შეიყვანეთ URL ველში რაღაც მსგავსი

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

ეს მოქმედება გაიგზავნება ir blaster– ში, სადაც ის შეეცდება შეასრულოს მაკრო მოცულობა. სურვილისამებრ შეიძლება იყოს კონკრეტული მოწყობილობა/ღილაკები აქ, მაგრამ მე უკეთესად განვსაზღვრე და გამოვიყენო მაკროები, რადგან შემდეგ ქმედებების თანმიმდევრობა მარტივად შეიძლება შეიცვალოს მხოლოდ მაკროს ხელახალი განსაზღვრის გზით.

თითოეული ბრძანებისთვის საჭიროა ცალკე IFTTT აპლეტი.

ნაბიჯი 6: მშობლიური Alexa ხმის უნარი

IFTTT– ის ნაცვლად, თქვენ შეგიძლიათ შექმნათ პერსონალური უნარი Alexa– ს განვითარების შიგნით. ეს ახდენს ყველა დამუშავების ცენტრალიზაციას ერთ ადგილას და ნიშნავს რომ თქვენ არ გჭირდებათ ცალკეული მოქმედებების შექმნა თითოეული ღილაკისთვის.

თქვენ უნდა დარეგისტრირდეთ როგორც Amazon Alexa დეველოპერი და თქვენ უნდა დარეგისტრირდეთ Amazon AWS კონსოლის lambda სერვისით. თქვენ ასევე უნდა გადახედოთ გაკვეთილებს, რომ ცოტა გაიგოთ პროცესი.

Alexa დეველოპერის მხრიდან თქვენ უნდა შექმნათ ახალი ჩვევა, შეიყვანოთ მისი გამომწვევი სიტყვა და შექმნათ ბრძანებათა სიტყვების სია, როგორიცაა მოცულობის გაზრდა, სახელმძღვანელო და ა.

Alexa შემდეგ აგზავნის ფრაზას იმ პროგრამაზე, რომელიც მუშაობს ლამდას სერვისზე, რომელიც განმარტავს ფრაზას და URL- ს უხმობს Ir blaster- ს, რომ ის განახორციელოს.

მე ჩავრთე Alexa განზრახვის სქემა და კონსოლის lambda ფუნქცია, რომელსაც ვიყენებ git- ში. URL უნდა შეიცვალოს, რათა მიუთითოს შესაბამისი ip და ჰქონდეს შესაბამისი ავტორიზაცია. მარტივად რომ ვთქვათ, ლამბდა ფუნქციები იძახებს მაკროს, რომელსაც აქვს ფრაზის მცირე ზომის ვერსია. ის ასევე ცდილობს ამოიღოს გამომწვევი საკვანძო სიტყვა, რომელიც ზოგჯერ შეიძლება შევიდეს. Მაგალითად. blaster VOLUME up გამოიძახებს მაკროს, რომელსაც ეწოდება მოცულობა, თუ გამომწვევი სიტყვა იყო ბლასტერი.

ნაბიჯი 7: Alexa გააქტიურეთ დეტექტორი

მიუხედავად იმისა, რომ Echo / Dot ხმის ამოცნობა კარგია, ის ზოგჯერ შეიძლება დაბნეული იყოს, თუკი ტელევიზორიდან ჟღერს ხმა, თუ ახლოს არ მიხვალთ და ხმამაღლა არ ისაუბრებთ.

ამის გასაუმჯობესებლად მე დავამატე გააქტიურების დეტექტორი ჩემს წერტილს. როგორც კი საკვანძო სიტყვა (ალექსას ნათქვამია) LED- ების ბეჭედი ანათებს. დეტექტორი კვებავს მას ბლასტერში, სადაც ის გამოიყენებს alexaon მაკრო ტელევიზორის გასაქრობად, ანალოგიურად ბრძანების დამუშავების ბოლოს შუქები ჩაქრება და alexaoff მაკრო აღადგენს ხმას.

"გამოვლენის" ბრძანება ასევე შეიძლება გამოყენებულ იქნას ამის ჩართვისა და გამორთვისთვის. მაგალითად, მე ვიყენებ საწყის ტურნონ მაკროს, რათა აღმოვაჩინო, ხოლო გამორთვის მაკრო რომ გამორთო იგი. ეს ასევე შეიძლება გამოყენებულ იქნას სამოქმედო მაკროების ფარგლებში, რათა მხარი დაუჭიროს ნამდვილ მუნჯსა და დადუმებას, რაც სხვაგვარად პრობლემური იქნებოდა.

ფიზიკური დეტექტორი არის სინათლეზე დამოკიდებული რეზისტორი, რომელსაც წრე უჭერს მხარს. მე ვამონტაჟებ ჩემს წერტილს 3D დაბეჭდილი ფრჩხილით

გირჩევთ: