- Reikalingos medžiagos:
- Darbo metodika:
- Išankstinės sąlygos:
- Kintamosios srovės nuotolinio valdymo pulto veikimas:
- Grandinės schema ir paaiškinimas:
- Jūsų nuotolinio kintamosios srovės signalų dekodavimas:
- Pagrindinė „Arduino“ programa:
- „Android“ programos diegimas:
- Mobiliojo telefono valdomos kintamosios srovės veikimas:
Šiuolaikiniame šiuolaikiniame pasaulyje aplink mus yra daugybė elektroninių prietaisų. Tačiau iš viso yra tik vienas prietaisas, kurį nuolat turime kišenėje. Taip, tai yra mūsų mobilieji telefonai. Dabar mobilieji telefonai tapo daugiau nei prietaisas, naudojamas ryšiams, jie yra mūsų fotoaparatai, jie yra mūsų žemėlapiai, jie yra mūsų prekybos kartingai, o kas ne?
Turėdami šią galimybę savo rankose, iš tikrųjų yra nuobodi idėja naudoti nuotolinio valdymo pultus bet kokioms mūsų namų elektroninėms programoms valdyti, pavyzdžiui, televizoriui, kintamosios srovės įrenginiui, namų kino teatrui ir t. T. ar sofa. Taigi šiame projekte mes sukursime nedidelę sąranką, kurią naudodami galėsite valdyti oro kondicionierių per savo išmanųjį telefoną naudodami „Bluetooth“ ir „Arduino“. Skamba įdomiai teisingai! Sukursime vieną
Reikalingos medžiagos:
- „Arduino Mega 2560“
- TSOP (HS0038)
- IR lemputė
- Bet koks spalvotas LED ir 1K rezistorius (pasirinktinai)
- HC-06
- Bandomoji Lenta
- Laidų sujungimas
Darbo metodika:
Visi mūsų namų nuotolinio valdymo pultai, kuriais mes valdome televizorių, namų kino teatrą, kintamosios srovės kompiuterį ir kt., Veikia naudojant „IR Blasters“. IR Blaster yra nieko, bet diodas, kuris galėtų Blaster šalutinis pasikartojantis pulsacijų signalą; šį signalą nuskaitys elektronikos prietaiso imtuvas. Kiekvienam skirtingam nuotolinio valdymo pulto mygtukui bus susprogdintas unikalus signalas, kurį gavėjui perskaičius bus naudojama tam tikra iš anksto nustatyta užduotis. Jei sugebėsime perskaityti šį signalą, išeinantį iš nuotolinio valdymo pulto, tada galime imituoti tą patį signalą naudodami IR šviesos diodą, kai to kada nors reikia atlikti tam tikrai užduočiai. Anksčiau mes sukūrėme „IR Blaster“ grandinę universaliam IR nuotolinio valdymo pultui ir automatiniam kintamosios temperatūros valdymui.
Korpusas TSOP yra IR imtuvas, kad galėtų būti naudojamas iššifruoti signalą, ateinantį iš nuotolinio valdymo įrenginių. Mes naudosime šį TSOP, kad iššifruotume visą informaciją iš „Remote“ ir išsaugotume ją „Arduino“. Tada naudodamiesi šia informacija ir IR „Led“ galime prireikus iš naujo sukurti IR signalus iš savo „Arduino“.
Išankstinės sąlygos:
Šiam „ Arduino“ valdomam „AC“ projektui įsitikinkite, kad turite „Arduino Mega“, o ne bet kurią kitą „Arduino“ versiją, nes kodo dydis yra didelis. Įdiekite IR nuotolinę biblioteką naudodami šią nuorodą, kad galėtumėte dirbti su TSOP ir „IR Blaster“.
Kintamosios srovės nuotolinio valdymo pulto veikimas:
Prieš pradėdami projektą, šiek tiek užtruksite ir pastebėkite, kaip veikia jūsų kintamosios srovės nuotolinio valdymo pultas. Kintamosios srovės pulteliai veikia šiek tiek kitaip, palyginti su TV, DVD IR pulteliais. Jūsų nuotolinio valdymo pultelyje gali būti tik 10–12 mygtukų, tačiau jie galės siųsti daug įvairių tipų signalų. Tai reiškia, kad nuotolinio valdymo pultas kiekvieną kartą nesiunčia to paties kodo tam pačiam mygtukui. Pvz., Kai sumažinsite temperatūrą naudodamiesi mygtuku žemyn, kad ji būtų 24 ° C (Celsijaus laipsniai), gausite signalą su duomenų rinkiniu, tačiau dar kartą paspaudę, kad nustatytumėte 25 ° C, to paties negausite. duomenys, nes temperatūra dabar yra 25, o ne 24. Panašiai 25 kodas taip pat gali skirtis priklausomai nuo ventiliatoriaus greičio, miego nustatymų ir pan. Taigi nesikuklinkime su visomis galimybėmis ir tiesiog sutelkime tik temperatūros vertes su pastovia kitų nustatymų verte.
Kita problema yra siunčiamų duomenų kiekis už kiekvieną mygtuko paspaudimą, įprasti nuotolinio valdymo pultai su 24 arba 48 bitų siuntimu, tačiau kintamosios srovės nuotolinio valdymo pultas gali siųsti iki 228 bitų, nes kiekviename signale yra daug informacijos, pvz., Temp, Fan Speed, Miego laikas, „Swing“ stilius ir kt. Tai yra priežastis, kodėl mums reikia „Arduino Mega“, kad galėtume geriau saugoti.
Grandinės schema ir paaiškinimas:
Laimei, šio mobiliojo telefono valdomo oro kondicionieriaus aparatinę įrangą labai lengva nustatyti. Galite tiesiog naudoti duonos lentą ir užmegzti jungtis, kaip parodyta žemiau.
Ši lentelė taip pat gali būti naudojama jūsų ryšiams patikrinti.
S.Ne: |
Komponento kaištis |
Arduino kaištis |
1 |
TSOP - Vcc |
5V |
2 |
TSOP - Gnd |
Gnd |
3 |
TSOP - signalas |
8 |
4 |
IR lemputė - katodas |
Gnd |
5 |
IR lemputė - anodas |
9 |
6 |
HC-05 - Vcc |
5V |
7 |
HC05 - Gnd |
Žemė |
8 |
HC05 - Tx |
10 |
9 |
HC05 - Rx |
11 |
Kai prijungsite, tai turėtų atrodyti taip, kaip parodyta žemiau. Aš naudoju „Breadboard“, kad sutvarkyčiau dalykus, bet jūs taip pat galite tiesiogiai iš vyro ir moters laidus, kad sukabintumėte visus komponentus
Jūsų nuotolinio kintamosios srovės signalų dekodavimas:
Pirmasis kintamosios srovės valdymo žingsnis yra TSOP1738 naudojimas kintamosios srovės nuotolinio valdymo IR kodų dekodavimui. Atlikite visas jungtis, kaip parodyta grandinės schemoje, ir įsitikinkite, kad įdiegėte visas paminėtas bibliotekas. Dabar atidarykite pavyzdinę programą „ IRrecvDumpV2 “, kurią galite rasti aplanke Failas -> Pavyzdžiai -> IRremote -> IRrecvDumpV2 .
int recvPin = 8; IRrecv irrecv (recvPin);
Kadangi mūsų TSOP jungiasi prie 8 kaiščio, pakeiskite eilutės numerį 9 į int recPin = 8, kaip parodyta aukščiau. Tada įkelkite programą į „Arduino Mega“ ir atidarykite nuoseklųjį monitorių.
Nukreipkite nuotolinio valdymo pultą link TSOP ir paspauskite bet kurį mygtuką. Kiekvieną mygtuką, paspaudusį jo atitinkamą signalą, perskaitys TSOP1738, iššifruotas „Arduino“ ir rodomas nuosekliojo monitoriaus ekrane. Už kiekvieną nuotolinio valdymo pulto temperatūros pasikeitimą gausite skirtingus duomenis. Išsaugokite šiuos duomenis, nes juos naudosime pagrindinėje programoje. Jūsų serijinis monitorius atrodys maždaug taip, aš taip pat parodžiau „Word“ failą, kuriame išsaugojau nukopijuotus duomenis.
Ekrano ekrane rodomas kodas, kuriuo nustatomas 26 ° C temperatūros nustatymas kintamosios srovės nuotolinio valdymo pultui. Remdamiesi savo nuotolinio valdymo pultu, gausite kitokį kodų rinkinį. Panašiai nukopijuokite visų skirtingų temperatūrų kodus. Visus oro kondicionieriaus nuotolinio valdymo pulto IR kodus galite patikrinti „Arduino“ kode, pateiktame šios pamokos pabaigoje.
Pagrindinė „Arduino“ programa:
Visa pagrindinė „Arduino“ programa gali būti šio puslapio apačioje, tačiau jūs negalite naudoti tos pačios programos. Turite pakeisti signalo kodo vertes, kurias ką tik gavome iš pavyzdžio eskizo. Atidarykite pagrindinę „Arduino IDE“ programą ir slinkite žemyn į šią žemiau parodytą sritį, kur masyvo reikšmes turite pakeisti vertėmis, kurias gavote savo nuotolinio valdymo pultui.
Atkreipkite dėmesį, kad aš naudojau 10 masyvų, iš kurių du mes įpratome įjungti ir išjungti kintamąją srovę, o likusieji 8 naudojami skirtingai temperatūrai nustatyti. Pvz., „Temp23“ naudojamas jūsų kintamajai srovei nustatyti 23 * C, todėl naudokite atitinkamą masyvo kodą. Kai tai bus padaryta, jūs tiesiog turite įkelti kodą į „Arduino“.
Šiam projektui turime importuoti dvi bibliotekas. Viena yra „ IRremote“ biblioteka, kurią ką tik pridėjome prie „Arduino“, o kita - įmontuota programinės įrangos serijos biblioteka, padedanti mums naudotis „Bluetooth“ moduliu.
# įtraukti
Tada mes inicijuojame „Bluetooth“ modulį 10 ir 11 kaiščiuose, tada naudodamiesi objektu, vadinamu irsend, pasieksime visas bibliotekos IR funkcijas.
„SoftwareSerial BT_module“ (10, 11); // RX, TX IRsend irsend;
Toliau pateikiamos labai svarbios kodo eilutės. Čia yra informacija apie jūsų kintamosios srovės valdymą. Žemiau pateiktas yra skirtas mano kintamosios srovės nuotolinio valdymo pultui. Ankstesniame etape turėtumėte įsigyti savo.
Toliau tuščios sąrankos funkcijos viduje mes inicijuojame du nuoseklius ryšius. Vienas iš jų yra „Bluetooth“, esant 9600 perdavimo spartai, o kitas - nuoseklusis monitorius, kurio sparta yra 57600.
negaliojanti sąranka () {BT_module.begin (9600); // BT veikia 9600 Serial.begin (57600); // „Serial Monitor“ darbinis sūnus 57600}
Savo tuštumos kilpos (begalinė kilpa) viduje mes patikriname, ar yra kažkas, kurį gavo „Bluetooth“ modulis. Jei kas nors gaunama, mes saugome šią informaciją kintamajame „ BluetoothData“ .
while (BT_module.available ()) // Jei gaunami duomenys {BluetoothData = BT_module.read (); // perskaityk ir išsaugok Serial.println (BluetoothData); // išspausdinkite ant serijos bandymo tikslais}
„Bluetooth“ gaunama informacija bus pagrįsta „ Android“ programoje paspaustu mygtuku, kurį įdiegsime kitame žingsnyje. Gavę informaciją, mes tiesiog turime suaktyvinti atitinkamą IR kodą, kaip nurodyta toliau
if (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); delsa (2000); // Siųskite signalą, norėdami nustatyti temperatūrą 23C
Jei gauname kodą „2“, mes turime nustatyti kintamosios srovės temperatūrą iki 23 ° C. Panašiai mes turime kodą nuo 0 iki 9, kad atliktume visas pagrindines kintamosios srovės valdymo funkcijas. Visą „Arduino“ kodą galite nurodyti šio puslapio pabaigoje.
„Android“ programos diegimas:
Paskutinis išmaniojo telefono valdomo oro kondicionieriaus žingsnis yra įdiegti „Android“ programą. Šio projekto „Android“ programa buvo sukurta naudojant „Android“ režimo apdorojimą. Apdorojimas yra puikus įrankis kuriant.EXE failus arba APK failus įterptiesiems projektams. Tai yra atvirojo kodo platforma, kaip ir „Arduino“, todėl ją galima nemokamai atsisiųsti.
Jei nenorite per daug įsigilinti, galite tiesiog atsisiųsti APK failą iš čia ZIP failo viduje ir įdiegti jį tiesiai į savo mobilųjį telefoną. Atidarykite programą ir gausite ekraną, kaip parodyta žemiau, po kurio galėsite pereiti prie kito žingsnio ir mėgautis darbu su projektu. Bet jei norite pritaikyti programos programą, kad ji atitiktų jūsų poreikius, galite perskaityti toliau.
Visa programa, failą perdirbti kodas gali būti atsisiųsti iš čia. Šis pašto kodas turės kodą ir vaizdo šaltinį, kurį naudojant programa veikia. Atidarę kodą, galite pritaikyti šias eilutes, kad pritaikytumėte ją savo poreikiams.
Kaip minėta anksčiau, „Processing“ yra panašus į „Arduino“. Taigi jis taip pat turi tuštumo nustatymą ir tuštumos ciklo (čia atkreipkite) funkcijas. Tuščios sąrankos funkcijos viduje mes nurodysime telefono „Bluetooth“ prisijungti prie „Arduino“ „Bluetooth“. Čia mano įrenginio pavadinimas yra „HC-05“, todėl mano kodo eilutė bus
bt.start (); // pradėkite klausytis „BT“ ryšių bt.getPairedDeviceNames (); „bt.connectToDeviceByName“ („HC-05“); // Prisijunkite prie mūsų „HC-06“ „Bluetooth“ modulio
Šalia funkcijų „ load_buttons“ () galite piešti tiek mygtukų, kiek norite. Aš nupiešiau 10 mygtukų, kaip parodyta programoje. Po to mes turime funkciją read_buttons (), kuri naudojama aptikti, kurį mygtuką palietėte . Kiekvienas mygtukas turi tam tikrą spalvą, todėl kai vartotojas paliečia ekraną, mes patikriname, kurią spalvą jis palietė, ir nustatome, kurį mygtuką jis palietė. Pavyzdys kodas sukurti mygtuką ir pasirinkite jį remiantis spalvos yra parodyta žemiau
užpildyti (255,145,3); tiesus (plotis / 2 plotis / 4, aukštis / 2, plotis / 4, aukštis / 12); užpildyti (255); tekstas („25C“, plotis / 2 plotiai / 4, aukštis / 2); // mygtukas 5 if (color_val == - 13589993) {baitų duomenys = {'0'}; transliacija (duomenys);}
Eilutė „baitų duomenys = {'0'};“ yra labai svarbi linija. Čia mes nusprendžiame, kurį kodą reikia siųsti „Arduino“ per „Bluetooth“. Čia, paspaudus šį mygtuką, simbolis „0“ siunčiamas iš „Bluetooth“ į „Arduino“. Panašiai mes galime siųsti skirtingus simbolius skirtingiems mygtukams. Tada šiuos simbolius galima palyginti „Arduino“ pusėje ir atlikti atitinkamus veiksmus.
Eik į priekį ir sukinėk kodą, jei turite kokių nors abejonių, susisiekite su manimi per komentarų skyrių ir pasistengsiu padėti jums.
Mobiliojo telefono valdomos kintamosios srovės veikimas:
Kai būsite pasirengę aparatinei įrangai, „Arduino Code“ ir „Android“ programoms, laikas mėgautis išvestimi. Įkelkite „Arduino“ kodą į savo aparatinę įrangą ir padėkite jį nukreipę į kintamosios srovės kompiuterį. Dabar atidarykite „Android“ programą mobiliajame telefone, jei viskas veikia taip, kaip tikėtasi, turėtumėte pamatyti „ Prisijungta prie: įrenginio_vardas (tam tikras kodas) “, kaip parodyta žemiau
Dabar tiesiog paspauskite bet kurį „Android“ programos mygtuką ir jis turėtų suaktyvinti atitinkamą AC veiksmą, tarsi naudojatumėte nuotolinio valdymo pultą. Galite pridėti tiek norimų mygtukų, modifikuodami kodą, taip pat net automatizuodami kintamą srovę, atsižvelgdami į kambario temperatūrą ar buvimą. Patikrinkite visą „ Arduino“ kodą ir toliau pateiktą vaizdo įrašą.
Tikiuosi, kad jums patiko projektas ir supratote jo idėją. Kaip visada, jei turite kokių nors problemų dėl šio darbo, galite naudoti forumus norėdami paskelbti klausimus ir juos išspręsti.
APK failą, skirtą „Android“ programai įdiegti, galite atsisiųsti iš čia.