- Materiale necesare:
- Metodologie de lucru:
- Cerințe prealabile:
- Funcționarea unei telecomenzi AC:
- Schema și explicația circuitului:
- Decodarea semnalelor de la distanță AC:
- Programul principal Arduino:
- Instalarea aplicației Android:
- Funcționarea AC controlată de telefonul mobil:
În lumea modernă de astăzi, oriunde mergem, avem o mulțime de dispozitive electronice în jurul nostru. Dar, dintre toate, există un singur dispozitiv pe care îl avem personal în buzunare tot timpul. Da, sunt telefoanele noastre mobile. Acum telefoanele mobile au devenit mai mult decât un dispozitiv folosit pentru comunicare, sunt camerele noastre de fotografiat, sunt hărțile noastre, sunt karturile noastre de cumpărături și ce nu?
Având această capacitate în mâinile noastre, este într-adevăr o idee plictisitoare să folosim telecomenzi pentru a controla orice aplicații electronice din casă, cum ar fi TV, AC, home theater etc. Este întotdeauna frustrant să ajungi la telecomanda AC din confortul confortabil al patului nostru. sau canapea. Prin urmare, în acest proiect vom construi o mică configurație cu ajutorul căreia puteți controla aparatul de aer condiționat prin telefonul dvs. inteligent utilizând Bluetooth și Arduino. Sună interesant, nu-i așa! Să construim unul
Materiale necesare:
- Arduino Mega 2560
- TSOP (HS0038)
- Led IR
- Orice LED color și rezistență 1K (opțional)
- HC-06
- Breadboard
- Conectarea firelor
Metodologie de lucru:
Toate telecomenzile din casa noastră pe care le folosim pentru a controla televizorul, Home Theater, AC etc. funcționează cu ajutorul IR Blasters. Un blaster IR nu este altceva decât un LED IR care ar putea blaster un semnal prin pulsuri repetitive; acest semnal va fi citit de receptor în aparatul electronic. Pentru fiecare buton diferit de pe telecomandă va fi lansat un semnal unic care după citirea de către receptor este utilizat pentru a efectua o anumită sarcină predefinită. Dacă suntem capabili să citim acest semnal care iese de la telecomandă, putem imita același semnal folosind un LED IR atunci când este necesar să îndeplinim acea sarcină specială. Am realizat anterior un circuit IR Blaster pentru telecomanda IR universală și pentru controlul automat al temperaturii AC.
Un TSOP este un receptor IR care ar putea fi folosit pentru a decoda semnalul provenit de la telecomenzi. Vom folosi acest TSOP pentru a decoda toate informațiile de la telecomandă și pentru a le stoca pe Arduino. Apoi, folosind aceste informații și un LED IR, putem recrea semnalele IR de la Arduino ori de câte ori este necesar.
Cerințe prealabile:
Pentru acest proiect AC Arduino Bluetooth controlat, asigurați-vă că aveți un Arduino Mega și nu orice altă versiune a Arduino, deoarece dimensiunea codului este mare. Instalați biblioteca la distanță IR folosind acest link pentru a lucra cu TSOP și IR Blaster.
Funcționarea unei telecomenzi AC:
Înainte de a începe proiectul, luați ceva timp și observați cum funcționează telecomanda dvs. CA. Telecomandele AC funcționează într-un mod puțin diferit în comparație cu telecomandele TV, DVD IR. S-ar putea să existe doar 10-12 butoane pe telecomandă, dar acestea vor putea trimite o mulțime de tipuri diferite de semnale. Adică telecomanda nu trimite același cod de fiecare dată pentru același buton. De exemplu, atunci când reduceți temperatura utilizând butonul în jos pentru a face 24 ° C (grade Celsius) veți primi un semnal cu un set de date, dar când îl apăsați din nou pentru a seta 25 ° C nu veți obține același lucru date, deoarece temperatura este acum 25 și nu 24. În mod similar, codul pentru 25 va varia, de asemenea, pentru diferite viteze ale ventilatorului, setările de somn etc. Deci, să nu ne jucăm cu toate opțiunile și să concentrăm doar valorile temperaturii cu o valoare constantă pentru alte setări.
O altă problemă este cantitatea de date care este trimisă pentru fiecare apăsare a butonului, telecomenzile normale cu trimitere fie pe 24 de biți, fie pe 48 de biți, dar o telecomandă AC ar putea trimite până la 228 de biți, deoarece fiecare semnal conține o mulțime de informații, cum ar fi Temp, Fan Speed Momentul somnului, stilul Swing etc. Acesta este motivul pentru care avem nevoie de un Arduino Mega pentru opțiuni de stocare mai bune.
Schema și explicația circuitului:
Din fericire, configurarea hardware a acestui aparat de aer condiționat controlat de telefonul mobil este foarte ușoară. Puteți pur și simplu să utilizați o placă de calcul și să faceți conexiunile așa cum se arată mai jos.
Următorul tabel poate fi utilizat și pentru a vă verifica conexiunile.
S. Nu: |
Pinul componentei |
Pinul Arduino |
1 |
TSOP - Vcc |
5V |
2 |
TSOP - Gnd |
Gnd |
3 |
TSOP - Semnal |
8 |
4 |
Led IR - catod |
Gnd |
5 |
Led IR - Anod |
9 |
6 |
HC-05 - Vcc |
5V |
7 |
HC05 - Gnd |
Sol |
8 |
HC05 - Tx |
10 |
9 |
HC05 - Rx |
11 |
După ce ați terminat conexiunile, ar trebui să arate așa cum se arată mai jos. Am folosit un panou pentru a ordona lucrurile, dar puteți, de asemenea, să faceți fire de la masculin la feminin direct pentru a conecta toate componentele
Decodarea semnalelor de la distanță AC:
Primul pas pentru a vă controla AC-ul este să utilizați TSOP1738 pentru a decoda codurile IR ale telecomenzii AC. Faceți toate conexiunile așa cum se arată în schema de circuit și asigurați-vă că ați instalat toate bibliotecile menționate. Acum deschideți exemplul de program „ IRrecvDumpV2 ” care poate fi găsit la Fișier -> Exemple -> IRremote -> IRrecvDumpV2 .
int recvPin = 8; IRrecv irrecv (recvPin);
Deoarece TSOP-ul nostru este conectat la pinul 8, schimbați numărul de linie 9 la int recPin = 8 așa cum se arată mai sus. Apoi încărcați programul pe Arduino Mega și deschideți Serial Monitor.
Îndreptați telecomanda către TSOP și apăsați orice buton, pentru fiecare buton pe care îl apăsați Semnalul respectiv va fi citit de TSOP1738, decodat de Arduino și afișat în monitorul serial. Pentru fiecare schimbare de temperatură de pe telecomandă, veți primi date diferite. Salvați aceste date pentru că le vom folosi în programul nostru principal. Monitorul dvs. serial va arăta cam așa, am arătat și fișierul Word pe care am salvat datele copiate.
Captura de ecran arată codul pentru setarea temperaturii la 26 ° C pentru telecomanda AC. Pe baza telecomenzii dvs. veți obține un set diferit de coduri. Copiați în mod similar codurile pentru toate nivelurile diferite de temperatură. Puteți verifica toate codurile IR ale telecomenzii pentru aer condiționat din codul Arduino dat la sfârșitul acestui tutorial.
Programul principal Arduino:
Programul principal Arduino complet poate fi în partea de jos a acestei pagini, dar nu puteți utiliza același program. Trebuie să modificați valorile codului de semnal pe care tocmai le-am obținut din schița de exemplu. Deschideți programul principal de pe Arduino IDE și derulați în jos până la această zonă prezentată mai jos, unde trebuie să înlocuiți valorile matricei cu valorile pe care le-ați obținut pentru telecomandă.
Rețineți că am folosit 10 matrici, dintre care două am folosit pentru a porni și opri AC, în timp ce restul 8 este folosit pentru a seta temperatura diferită. De exemplu, Temp23 este folosit pentru a seta 23 * C pe AC, deci utilizați codul respectiv în matricea respectivă. Odată ce ați făcut acest lucru, trebuie doar să încărcați codul pe Arduino.
Trebuie să importăm două biblioteci pentru acest proiect. Una este biblioteca IRremote pe care tocmai am adăugat-o la Arduino, iar cealaltă este biblioteca Serial Software încorporată care ne ajută să folosim modulul Bluetooth.
#include
Apoi inițializăm modulul Bluetooth pe pinii 10 și 11 și apoi folosim un obiect numit irsend pentru a accesa toate caracteristicile IR ale bibliotecii.
SoftwareSerial BT_module (10, 11); // RX, TX IRsend irsend;
Urmează liniile de cod foarte importante. Aici sunt prezente informațiile pentru a vă controla AC. Cel afișat mai jos este pentru telecomanda AC, ar fi trebuit să-l obțineți în pasul anterior.
Apoi, în interiorul funcției de configurare nulă , inițializăm două comunicații seriale. Unul este Bluetooth la o rată de 9600 baud și celălalt este monitorul serial la o rată de 57600 baud.
void setup () {BT_module.begin (9600); // BT funcționează pe 9600 Serial.begin (57600); // Serial Monitor work son 57600}
În interiorul buclei voastre ( buclă infinită), verificăm dacă există ceva primit de modulul Bluetooth. Dacă se primește ceva, stocăm aceste informații în variabila BluetoothData .
while (BT_module.available ()) // Dacă apar date {BluetoothData = BT_module.read (); // citiți-l și salvați-l Serial.println (BluetoothData); // tipăriți-l pe serie în scopul testării}
Informațiile primite prin Bluetooth se vor baza pe butonul apăsat pe aplicația noastră Android pe care îl vom instala în următorul nostru pas. Odată ce informațiile sunt primite, trebuie doar să declanșăm codul IR respectiv, ca mai jos
if (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); delay (2000); // Trimite semnal pentru a seta Temperatue 23C}
Aici, dacă se primește codul „2”, trebuie să setăm temperatura AC la 23 ° C. În mod similar, avem cod de la 0 la 9 pentru a efectua toate funcțiile de control de bază ale AC. Puteți consulta codul complet arduino la sfârșitul acestei pagini.
Instalarea aplicației Android:
Ultimul pas al aerului condiționat controlat de telefonul inteligent este instalarea aplicației Android. Aplicația Android pentru acest proiect a fost creată folosind Procesarea modului Android. Procesarea este un instrument excelent pentru a crea fișiere.EXE sau fișiere APK pentru proiectele dvs. încorporate. Este o platformă open source la fel ca Arduino și, prin urmare, este complet gratuită pentru descărcare.
Dacă nu doriți să intrați prea mult în el, puteți descărca pur și simplu fișierul APK de aici din fișierul zip și îl puteți instala direct pe telefonul mobil. Deschideți aplicația și veți obține un ecran așa cum se arată mai jos, după care puteți trece la pasul următor și vă puteți bucura de lucrul cu proiectul. Dar dacă doriți să modificați programul aplicației pentru a se potrivi nevoilor dvs., puteți citi mai departe.
Fișierul complet al programului pentru procesarea codului poate fi descărcat de aici. Acest Zip va avea codul și sursa de imagine cu ajutorul căreia funcționează aplicația. După deschiderea codului, puteți modifica următoarele linii pentru a-l adapta la nevoile dvs.
După cum am spus mai devreme, Procesarea este similară cu Arduino. Deci are, de asemenea, funcții de configurare și buclă de golire (aici desen). În interiorul funcției de configurare nulă , vom instrui Bluetooth-ul telefonului să se conecteze la Bluetooth-ul Arduino. Numele dispozitivului meu aici este „HC-05”, deci linia mea de cod va fi
bt.start (); // începeți să ascultați conexiunile BT bt.getPairedDeviceNames (); bt.connectToDeviceByName ("HC-05"); // Conectați-vă la modulul nostru bluetooth HC-06
Apoi, în interiorul funcțiilor load_buttons () puteți desena oricâte butoane doriți. Am desenat 10 butoane așa cum se arată în aplicație. Urmată de aceasta avem funcția read_buttons () care este utilizată pentru a detecta ce buton atingeți. Fiecare buton are o culoare specifică, așa că atunci când un utilizator atinge ecranul, verificăm ce culoare a atins și determinăm ce buton a atins. Un exemplu de cod pentru a crea un buton și a-l selecta pe baza culorii este prezentat mai jos
umplutură (255.145,3); rect (lățime / 2-lățime / 4, înălțime / 2, lățime / 4, înălțime / 12); umplutură (255); text ("25C", lățime / 2-lățime / 4, înălțime / 2); // butonul 5 if (color_val == - 13589993) {octet date = {'0'}; bt.broadcast (date);}
Linia „octet date = {'0'};” este o linie foarte importantă. Aici decidem ce cod trebuie trimis către Arduino prin Bluetooth. Aici, dacă este apăsat acest buton, caracterul „0” este trimis de la Bluetooth la Arduino. În mod similar, putem trimite un caracter diferit pentru butoane diferite. Aceste personaje pot fi apoi comparate pe partea Arduino și pot fi luate măsuri respective.
Continuați și lăsați-vă în jurul codului, dacă aveți îndoieli, ajungeți la mine prin secțiunea de comentarii și veți încerca tot posibilul să vă ajut.
Funcționarea AC controlată de telefonul mobil:
Odată ce sunteți gata cu aplicațiile dvs. hardware, cod Arduino și Android, este timpul să vă bucurați de ieșire. Încărcați codul Arduino pe hardware și plasați-l cu fața către AC. Acum deschideți aplicația Android pe telefonul dvs. mobil, dacă totul funcționează așa cum vă așteptați, ar trebui să vedeți „ Conectat la: dispozitiv_nume (un cod) ”, așa cum se arată mai jos
Acum, trebuie doar să apăsați orice buton din aplicația dvs. Android și ar trebui să declanșeze o acțiune respectivă pe AC ca și cum ați folosi o telecomandă. Puteți adăuga cât de multe butoane doriți modificând codul și, de asemenea, automatizați AC-ul în funcție de temperatura sau prezența camerei. Verificați codul Arduino complet și videoclipul de mai jos.
Sper că ți-a plăcut proiectul și ai înțeles conceptul din spatele acestuia. Ca întotdeauna, dacă aveți vreo problemă în a face acest lucru, puteți folosi forumurile pentru a vă posta întrebări și a le rezolva.
Fișierul APK pentru instalarea aplicației Android poate fi descărcat de aici.