- Potrebni materiali:
- Delovna metodologija:
- Predpogoji:
- Delovanje daljinskega upravljalnika:
- Shema vezja in razlaga:
- Dekodiranje oddaljenih signalov AC:
- Glavni program Arduino:
- Namestitev aplikacije Android:
- Delovanje mobilnega telefona pod nadzorom:
V današnjem sodobnem svetu, kamor koli gremo, imamo okoli sebe veliko elektronskih naprav. Toda od vseh obstaja samo ena naprava, ki jo imamo osebno ves čas v žepu. Da, to so naši mobilni telefoni. Zdaj so mobilni telefoni postali več kot le naprava, ki se uporablja za komunikacijo, so naši fotoaparati, naši zemljevidi, nakupovalni kartingi in kaj ne?
S to zmožnostjo v naših rokah je res dolgočasna ideja uporabljati daljinske upravljalnike za nadzor kakršnih koli elektronskih aplikacij v našem domu, kot so televizija, klimatska naprava, domači kino itd. Vedno je neprijetno, če iz udobnega udobja naše postelje posežemo po daljinskem upravljalniku. ali kavč. V tem projektu bomo zato zgradili majhno postavitev, s katero lahko s pametnim telefonom s pomočjo Bluetooth in Arduino upravljate s klimatsko napravo. Sliši se zanimivo, kajne! Zgradimo enega
Potrebni materiali:
- Arduino Mega 2560
- TSOP (HS0038)
- IR Led
- Vsaka barvna LED in 1K upor (neobvezno)
- HC-06
- Breadboard
- Povezovanje žic
Delovna metodologija:
Vsi daljinski upravljalniki v našem domu, ki jih uporabljamo za nadzor televizorja, domačega kina, AC itd., Delujejo s pomočjo IR Blasterjev. IR ni nič, ampak IR LED, ki bi Blaster signal zaradi ponavljajočih impulzov; ta signal bo prebral sprejemnik v elektronski napravi. Za vsak drugačen gumb na daljinskem upravljalniku se bo sprožil edinstven signal, ki se po branju sprejemnika uporabi za izvedbo določene vnaprej določene naloge. Če lahko preberemo ta signal, ki prihaja iz daljinskega upravljalnika, lahko isti signal posnemamo z IR-diodo, kadar je to potrebno za izvedbo te naloge. Pred tem smo izdelali vezje IR Blaster za univerzalni IR daljinski upravljalnik in za samodejni nadzor temperature AC.
TSOP je IR sprejemnik, ki se lahko uporablja za dekodiranje signala, ki prihaja iz daljinskih upravljalnikov. Ta TSOP bomo uporabili za dekodiranje vseh informacij z našega daljinskega upravljalnika in njihovo shranjevanje v Arduino. Nato z uporabo teh informacij in IR Led lahko po potrebi ponovno ustvarimo IR signale iz našega Arduina.
Predpogoji:
Za ta Arduino Bluetooth Controlled AC Project poskrbite, da imate Arduino Mega in ne katero koli drugo različico Arduina, saj je velikost kode velika. Namestite knjižnico IR Remote Library s pomočjo te povezave za delo s TSOP in IR Blaster.
Delovanje daljinskega upravljalnika:
Preden nadaljujemo s projektom, vzemite nekaj časa in opazite, kako deluje vaš daljinski upravljalnik. Daljinski upravljalniki z izmeničnim tokom delujejo nekoliko drugače kot televizijski, DVD IR daljinci. Na daljinskem upravljalniku je lahko le 10–12 gumbov, vendar bodo lahko pošiljali veliko različnih vrst signalov. To pomeni, da daljinski upravljalnik ne pošlje iste kode vsakič za isti gumb. Ko na primer znižate temperaturo z gumbom navzdol, da je 24 ° C (stopinja Celzija), boste dobili signal z nizom podatkov, ko pa ga znova pritisnete za nastavitev 25 ° C, ne boste dobili enakega podatki, saj je temperatura zdaj 25 in ne 24. Podobno se bo tudi koda za 25 spreminjala glede na različne hitrosti ventilatorja, nastavitve spanja itd. Zato se ne pretiravajmo z vsemi možnostmi in zgolj koncentriramo samo vrednosti temperature s konstantno vrednostjo za druge nastavitve.
Druga težava je količina podatkov, ki se pošlje za vsak pritisk gumba, običajni daljinski upravljalniki s pošiljanjem bodisi 24 bitov bodisi 48 bitov, toda daljinski upravljalnik lahko pošlje do 228 bitov, saj vsak signal vsebuje veliko informacij, kot so temperatura, hitrost ventilatorja, Čas spanja, slog gugalnice itd. To je razlog, zakaj potrebujemo Arduino Mega za boljše možnosti shranjevanja.
Shema vezja in razlaga:
Na srečo je strojna nastavitev te klimatske naprave z nadzorovanim mobilnim telefonom zelo enostavna. Lahko preprosto uporabite ploščo in vzpostavite povezave, kot je prikazano spodaj.
Naslednjo tabelo lahko uporabite tudi za preverjanje povezav.
S. Št: |
Komponentni pin |
Arduino Pin |
1. |
TSOP - Vcc |
5V |
2. |
TSOP - Gnd |
Gnd |
3. |
TSOP - Signal |
8. |
4. |
IR Led - katoda |
Gnd |
5. |
IR Led - anoda |
9. |
6. |
HC-05 - Vcc |
5V |
7. |
HC05 - Gnd |
Tla |
8. |
HC05 - Tx |
10. |
9. |
HC05 - Rx |
11. |
Ko končate povezave, bi moralo izgledati približno tako, kot je prikazano spodaj. Za pospravljanje stvari sem uporabil Breadboard, lahko pa tudi žice za moške in ženske, da priklopite vse komponente
Dekodiranje oddaljenih signalov AC:
Prvi korak za nadzor AC je uporaba TSOP1738 za dekodiranje IR kod daljinskega upravljalnika AC. Naredite vse povezave, kot je prikazano na vezju, in preverite, ali ste namestili vse omenjene knjižnice. Zdaj odprite primer programa “ IRrecvDumpV2 ”, ki ga najdete v Datoteka -> Primeri -> IRremote -> IRrecvDumpV2 .
int recvPin = 8; IRrecv unrecv (recvPin);
Ker je naš TSOP povezan z zatičem 8, spremenite številko vrstice 9 v int recPin = 8, kot je prikazano zgoraj. Nato naložite program na svoj Arduino Mega in odprite serijski monitor.
Usmerite daljinski upravljalnik proti TSOP in pritisnite kateri koli gumb, za vsak gumb, ki ga pritisnete, bo TSOP1738 prebral signal, dekodiral Arduino in prikazal na serijskem monitorju. Za vsako spremembo temperature na daljinskem upravljalniku boste dobili druge podatke. Shranite te podatke, ker jih bomo uporabljali v našem glavnem programu. Vaš serijski monitor bo videti približno tako, pokazal sem tudi datoteko Word, v katero sem shranil kopirane podatke.
Posnetek zaslona prikazuje kodo za nastavitev temperature na 26 ° C za moj daljinski upravljalnik. Na podlagi vašega daljinskega upravljalnika boste dobili drugačen nabor kod. Podobno kopirajte kode za vse različne temperature. Vse IR kode daljinskega upravljalnika klimatske naprave lahko preverite v kodi Arduino, ki je navedena na koncu te vadnice.
Glavni program Arduino:
Celoten Glavni program Arduino lahko na dnu te strani, vendar ne morete uporabljati isti program. Spremeniti morate vrednosti signalne kode, ki smo jih pravkar dobili na vzorčni skici. Odprite glavni program na vašem Arduino IDE in se pomaknite navzdol do spodnjega območja, kjer morate vrednosti matrike zamenjati z vrednostmi, ki ste jih dobili za svoj daljinski upravljalnik.
Upoštevajte, da sem uporabil 10 nizov, od katerih smo dva uporabljali VKLOP in IZKLOP AC, medtem ko se preostalih 8 uporablja za nastavitev drugačne temperature. Na primer Temp23 se uporablja za nastavitev 23 * C na vašem AC, zato uporabite ustrezno kodo v tem polju. Ko je to storjeno, morate samo naložiti kodo na svoj Arduino.
Za ta projekt moramo uvoziti dve knjižnici. Ena je knjižnica IRremote, ki smo jo pravkar dodali v Arduino, druga pa vgrajena programska serijska knjižnica, ki nam pomaga pri uporabi modula Bluetooth.
#include
Nato modul Bluetooth inicializiramo na pin 10 in 11 in nato s predmetom, imenovanim irsend, dostopamo do vseh IR funkcij knjižnice.
SoftwareSerial BT_module (10, 11); // RX, TX IRsend irsend;
Sledijo zelo pomembne vrstice kode. Tu so prisotne informacije za nadzor AC. Spodnji prikaz je za moj daljinski upravljalnik z izmeničnim tokom, svojega bi morali dobiti v prejšnjem koraku.
Nato znotraj funkcije nastavitve praznine inicializiramo dve zaporedni komunikaciji. Eden je Bluetooth s hitrostjo 9600 baudov, drugi pa serijski monitor s hitrostjo 57600 baudov.
void setup () {BT_module.begin (9600); // BT deluje na 9600 Serial.begin (57600); // Serijski monitor, delovni sin 57600}
V naši void zanki (neskončna zanka) preverimo, ali je Bluetooth modul kaj prejel. Če je kaj prejeto, te podatke shranimo v spremenljivko BluetoothData .
while (BT_module.available ()) // Če prihajajo podatki {BluetoothData = BT_module.read (); // preberemo in shranimo Serial.println (BluetoothData); // natisnimo na serijo za namen testiranja}
Informacije, ki jih prejme Bluetooth, bodo temeljile na gumbu, pritisnjenem na naši aplikaciji za Android, ki ga bomo namestili v naslednjem koraku. Ko prejmemo informacije, moramo le sprožiti ustrezno IR kodo, kot je prikazano spodaj
if (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); delay (2000); // Pošlji signal za nastavitev temperature 23C}
Če dobimo kodo '2', moramo temperaturo AC nastaviti na 23 ° C. Podobno imamo kodo od 0 do 9 za izvajanje vseh osnovnih nadzornih funkcij AC. Na koncu te strani se lahko sklicujete na celotno kodo arduino.
Namestitev aplikacije Android:
Zadnji korak klimatske naprave s pametnim telefonom je namestitev aplikacije Android. Aplikacija Android za ta projekt je bila ustvarjena z uporabo Processing Android Mode. Obdelava je odlično orodje za ustvarjanje datotek.EXE ali datotek APK za vaše vdelane projekte. Je odprtokodna platforma, tako kot Arduino, in jo je zato popolnoma brezplačno prenesti za uporabo.
Če se nočete preveč poglabljati v to, lahko preprosto prenesete datoteko APK od tukaj znotraj datoteke zip in jo namestite neposredno v svoj mobilni telefon. Odprite aplikacijo in dobili boste zaslon, kot je prikazano spodaj, po katerem lahko nadaljujete do naslednjega koraka in uživate v delu s projektom. Če pa želite program aplikacije prilagoditi svojim potrebam, lahko preberete naprej.
Celoten program datoteka kodo Processing lahko prenesete od tukaj. Ta Zip bo imel kodo in vir slike, s pomočjo katerih aplikacija deluje. Ko odprete kodo, lahko prilagodite naslednje vrstice, da jo prilagodite svojim potrebam.
Kot že rečeno, je obdelava podobna Arduinu. Torej ima tudi funkcije za nastavitev void in void loop (tukaj risanje). Znotraj funkcije za nastavitev praznine bomo Bluetoothu telefona naročili, naj se poveže z Bluetoothom Arduino. Ime moje naprave tukaj je »HC-05«, zato bo moja vrstica kode
bt.start (); // začnite poslušati BT povezave bt.getPairedDeviceNames (); bt.connectToDeviceByName ("HC-05"); // Povežite se z našim modulom bluetooth HC-06
Nato znotraj funkcij load_buttons () lahko narišete poljubno število gumbov. Narisal sem 10 gumbov, kot je prikazano na aplikaciji. Sledi funkcija read_buttons (), ki se uporablja za zaznavanje gumba, ki se ga dotikate. Vsak gumb ima določeno barvo, zato ko se uporabnik dotakne zaslona, preverimo, katere barve se je dotaknil, in določimo, katerega gumba se je dotaknil. Vzorec koda ustvariti gumb in izberite je pokazala, da na podlagi barve spodaj
izpolnite (255,145,3); rect (širina / 2-širina / 4, višina / 2, širina / 4, višina / 12); izpolnite (255); besedilo ("25C", širina / 2-širina / 4, višina / 2); // gumb 5 if (color_val == - 13589993) {bajtni podatki = {'0'}; bt.broadcast (podatki);}
Vrstica "byte data = {'0'};" je zelo pomembna vrstica. Tu se odločimo, katero kodo moramo poslati Arduinu prek Bluetootha. Tukaj, če pritisnete ta gumb, se črka »0« pošlje iz Bluetootha v Arduino. Podobno lahko za različne gumbe pošljemo drugačen znak. Te znake lahko nato primerjate na strani Arduino in izvedete ustrezne ukrepe.
Pojdite naprej in se poigrajte po kodi, če imate kakršne koli dvome, da se obrnete na mene prek oddelka za komentarje in se vam po najboljših močeh potrudim.
Delovanje mobilnega telefona pod nadzorom:
Ko ste pripravljeni s svojo strojno opremo, kodo Arduino in aplikacijami za Android, je čas, da uživate v izhodu. Kodo Arduino naložite na svojo strojno opremo in jo postavite proti AC. Zdaj odprite aplikacijo android na svojem mobilnem telefonu, če vse deluje po pričakovanjih, bi morali videti “ Connected to: device_name (neka koda) ”, kot je prikazano spodaj
Zdaj samo pritisnite kateri koli gumb v aplikaciji za Android in sprožil bo ustrezno dejanje na AC, kot da uporabljate daljinski upravljalnik. S spreminjanjem kode lahko dodate poljubno število gumbov in celo avtomatizirate svoj AC glede na vašo sobno temperaturo ali prisotnost. Preverite celotno kodo Arduino in video spodaj.
Upam, da vam je projekt všeč in ste razumeli koncept tega. Kot vedno, če imate pri tem kakršne koli težave, lahko na forumih objavite vprašanja in jih rešite.
Datoteko APK za namestitev aplikacije Android lahko prenesete od tukaj.