- Szükséges anyagok:
- Munka módszertan:
- Előfeltételek:
- AC távirányító működése:
- Áramkör és magyarázat:
- Az AC távirányító dekódolása:
- Fő Arduino program:
- Android-alkalmazás telepítése:
- Mobiltelefon vezérlésű váltóáram működése:
A mai modern világban, bárhová is megyünk, rengeteg elektronikus eszköz van körülöttünk. De mindenekelőtt csak egy eszköz van, amelyet személyesen állandóan a zsebünkben tartunk. Igen, ez a mobiltelefonunk. Most a mobiltelefonok többé váltak, mint egy kommunikációhoz használt eszköz, ők a kameráink, a térképeink, a mi bevásárló gokartjaink és mi nem?
Mivel ez a képesség a kezünkben van, valóban unalmas ötlet a távirányítókkal otthoni elektronikus alkalmazásokat vezérelni, például tévét, váltóáramot, házimozit stb. vagy kanapé. Ezért ebben a projektben egy kis felépítést fogunk építeni, amelynek segítségével a légkondicionálót okos telefonján keresztül Bluetooth és Arduino segítségével vezérelheti. Érdekesen hangzik! Építsünk egyet
Szükséges anyagok:
- Arduino Mega 2560
- TSOP (HS0038)
- IR Led
- Bármilyen színes LED és 1K ellenállás (opcionális)
- HC-06
- Kenyérlemez
- Vezetékek csatlakoztatása
Munka módszertan:
Az otthoni összes távirányító, amelyet a tévé, a házimozi, az AC stb. Vezérléséhez használunk, az IR Blasters segítségével működik. Az IR-robbantó nem más, mint egy IR-LED, amely ismétlődő impulzusokkal képes robbantani egy jelet; ezt a jelet az elektronikai készülék vevője olvassa fel. A távvezérlő minden egyes gombjára egyedi jel fog robbantani, amelyet a vevő olvasása után egy előre meghatározott feladat végrehajtására használnak. Ha képesek vagyunk leolvasni ezt a távirányítóból kijövő jelet, akkor utánozhatjuk ugyanazt a jelet egy IR LED segítségével, amikor csak szükséges az adott feladat végrehajtásához. Korábban készítettünk egy IR Blaster áramkört az univerzális IR távirányítóhoz és az automatikus váltóáramú hőmérséklet-szabályozáshoz.
A TSOP egy IR vevő, amely felhasználható a távirányítókról érkező jel dekódolására. Ezt a TSOP-t arra használjuk, hogy a távirányítónkból származó összes információt dekódoljuk, és az Arduino-n tároljuk. Ezután ezt az információt és egy IR Led-et felhasználva szükség esetén újra létrehozhatjuk az Arduino IR-jeit.
Előfeltételek:
Ehhez az Arduino Bluetooth vezérlésű AC projekthez győződjön meg arról, hogy Arduino Mega-val rendelkezik, és nem az Arduino bármely más verziójával, mivel a kód mérete nehéz. Telepítse az IR távoli könyvtárat ezen a linken keresztül a TSOP és az IR Blaster használatához.
AC távirányító működése:
Mielőtt belekezdenénk a projektbe, szánjon egy kis időt, és vegye észre, hogyan működik az AC távirányítója. Az AC távirányítók kicsit másképp működnek, mint a TV, DVD IR távirányítók. Lehet, hogy csak 10-12 gomb van a távirányítón, de sokféle jelet képesek küldeni. Ez azt jelenti, hogy a távvezérlő nem mindig ugyanazt a kódot küldi ugyanarra a gombra. Például, ha a lefelé gombbal csökkenti a hőmérsékletet, hogy 24 ° C (Celsius fok) legyen, akkor jelet kap egy adatsorral, de ha újra megnyomja a 25 ° C beállításához, akkor nem kapja meg ugyanazt. adatok, mivel a hőmérséklet most 25 és nem 24. Hasonlóképpen a 25-ös kód is változik a ventilátor különféle sebessége, alvási beállításai stb. függvényében. Tehát ne babráljunk az összes lehetőséggel, és csak a hőmérsékleti értékeket koncentráljuk állandó értékkel más beállításokhoz.
Egy másik probléma az egyes gombnyomásokra küldött adatok mennyisége, normál távirányítók 24 vagy 48 bit küldésével, de az AC távirányító akár 228 bitet is küldhet, mivel mindegyik jel sok információt tartalmaz, például Temp, Fan Speed, Alvás időzítése, Swing stílus stb. Ezért van szükségünk Arduino Mega-ra a jobb tárolási lehetőségek érdekében.
Áramkör és magyarázat:
Szerencsére a mobiltelefon-vezérlésű légkondicionáló hardveres beállítása nagyon egyszerű. Egyszerűen használhat kenyérlapot, és az alábbiak szerint csatlakoztathatja a csatlakozásokat.
A következő táblázat a kapcsolatok ellenőrzésére is használható.
S. Nem: |
Alkatrészcsap |
Arduino Pin |
1 |
TSOP - Vcc |
5V |
2 |
TSOP - Gnd |
Gnd |
3 |
TSOP - Jel |
8. |
4 |
IR Led - katód |
Gnd |
5. |
IR Led - Anód |
9. |
6. |
HC-05 - Vcc |
5V |
7 |
HC05 - Gnd |
Talaj |
8. |
HC05 - Tx |
10. |
9. |
HC05 - Rx |
11. |
Miután a kapcsolatok elkészültek, az alábbiak szerint kell kinéznie. Kenyérlemezt használtam a dolgok rendbetételéhez, de Ön is csatlakozhat a hímtől a nőig vezetékekhöz az összes alkatrész csatlakoztatásához
Az AC távirányító dekódolása:
Az AC vezérlésének első lépése a TSOP1738 használata az AC távirányító IR kódok dekódolásához. Hajtsa végre az összes csatlakozást a kapcsolási rajz szerint, és győződjön meg arról, hogy telepítette az összes említett könyvtárat. Most nyissa meg az „ IRrecvDumpV2 ” példaprogramot, amely a File -> Példák -> IRremote -> IRrecvDumpV2 menüpontban található .
int recvPin = 8; IRrecv irrecv (recvPin);
Mivel TSOP-junk a 8. tűhöz csatlakozik, változtassa meg a 9-es sort int recPin = 8-ra a fent látható módon. Ezután töltse fel a programot Arduino Mega készülékére, és nyissa meg a soros monitort.
Irányítsa a távvezérlőt a TSOP felé, és nyomja meg bármelyik gombot, minden egyes gomb megnyomásakor a megfelelő jelét a TSOP1738 beolvassa, az Arduino dekódolja és megjeleníti a soros monitoron. A távvezérlő hőmérsékletének minden változásához más adatokat kap. Mentse el ezeket az adatokat, mert a fő programunkban használni fogjuk. A soros monitorod valami ilyennek fog kinézni, megmutattam azt a Word fájlt is, amelyre a másolt adatokat elmentettem.
A Képernyőkép mutatja a hőmérsékletet 26 ° C-ra beállító kódot az AC távirányítómhoz. A távirányítója alapján más kódkészletet kap. Hasonlóképpen másolja a kódokat az összes különböző hőmérsékleti szinthez. Az oktatóanyag végén található Arduino kódban ellenőrizheti az összes légkondicionáló távirányító infravörös kódját.
Fő Arduino program:
A teljes Arduino fő program az oldal alján lehet, de nem használhatja ugyanazt a programot. Meg kell változtatnia a jelkód értékeket, amelyeket a példa vázlatból kaptunk. Nyissa meg az Arduino IDE főprogramját, és görgessen lefelé az alább látható területre, ahol a tömb értékeit le kell cserélnie a távvezérlőhöz kapott értékekre.
Ne feledje, hogy 10 tömböt használtam, amelyek közül kettőnk a váltóáramot be- és kikapcsolta, míg a többit 8 különböző hőmérséklet beállítására használtuk. Például a Temp23 segítségével 23 * C beállítható az AC-n, ezért használja az adott tömb megfelelő kódját. Miután ez megtörtént, csak fel kell töltenie a kódot az Arduino-ra.
Meg kell importálni két könyvtárat ehhez a projekthez. Az egyik az IRremote könyvtár, amelyet nemrég adtunk hozzá az Arduinóhoz , a másik pedig a beépített Software Serial Library, amely segít a Bluetooth modul használatában.
#include
Ezután inicializáljuk a Bluetooth modult a 10. és 11. tűn, majd az irsend nevű objektummal elérjük a könyvtár összes IR-tulajdonságát.
SoftwareSerial BT_module (10, 11); RX, TX IRsend irsend;
Ezután következnek a nagyon fontos kódsorok. Itt vannak az AC vezérléséhez szükséges információk. Az alább látható az AC távirányítómra vonatkozik, az előző lépésben meg kellett volna szereznie a sajátját.
A void beállítási funkción belül két soros kommunikációt inicializálunk. Az egyik a Bluetooth 9600 Baud sebességgel, a másik pedig a soros monitor 57600 baud sebességgel.
void setup () {BT_module.begin (9600); // A BT a 9600 Serial.begin (57600) készüléken működik; // soros monitor munkafia 57600}
Belül a void loop (végtelen ciklus), akkor ellenőrizze, ha van valami érkezett a Bluetooth modul. Ha bármi érkezik, akkor ezeket az információkat a BluetoothData változóban tároljuk.
while (BT_module.available ()) // Ha adatok érkeznek {BluetoothData = BT_module.read (); // elolvassa és elmenti Serial.println (BluetoothData); // tesztelés céljából nyomtassa sorosra}
A Bluetooth által kapott információk az Android alkalmazásunkon megnyomott gombra fognak épülni, amelyet a következő lépésben telepítünk. Miután megkapta az információt, csak ki kell váltanunk a megfelelő IR kódot, mint az alábbiakban
if (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); delay (2000); // Jel küldése a 23C hőmérséklet beállításához}
Ha a „2” kódot kapjuk, akkor az AC hőmérsékletét 23 ° C-ra kell állítanunk. Hasonlóképpen 0 és 9 közötti kóddal rendelkezünk az AC összes alapvető vezérlési funkciójának elvégzéséhez. Hivatkozhat a teljes arduino kódra az oldal végén.
Android-alkalmazás telepítése:
Az okostelefon által vezérelt légkondicionált készülék utolsó lépése az Android alkalmazás telepítése. A projekt Android-alkalmazását az Android Mode feldolgozása segítségével hozták létre. A feldolgozás kiváló eszköz.EXE fájlok vagy APK fájlok létrehozására a beágyazott projektek számára. Ez egy nyílt forráskódú platform, csakúgy, mint az Arduino, és ezért teljesen ingyenesen letölthető.
Ha nem akar túl mélyen belemenni, egyszerűen letöltheti az APK fájlt innen a zip fájl belsejéből, és telepítheti közvetlenül a mobiltelefonjára. Nyissa meg az alkalmazást, és kap egy képernyőt az alábbiak szerint, amely után folytathatja a következő lépéssel, és élvezheti a munkát a projekttel. De ha szeretné módosítani az alkalmazás programját, hogy az megfeleljen az Ön igényeinek, akkor olvashat tovább.
A teljes program fájl feldolgozása kódot lehet innen letölthető. Ez a ZIP egy kóddal és képforrással rendelkezik, amely segítségével az alkalmazás működik. A kód megnyitása után az alábbi sorokat módosíthatja az igényeinek megfelelően.
Mint korábban említettük, a Processing hasonló az Arduinóhoz. Tehát van egy void setup és void loop (itt rajz) funkciók is. A void beállítási funkción belül meg fogjuk utasítani a telefon Bluetooth-ját, hogy csatlakozzon az Arduino Bluetooth-jához. A készülékem neve itt „HC-05”, tehát a kódsorom az lesz
bt.start (); // kezdje hallgatni a BT kapcsolatokat bt.getPairedDeviceNames (); bt.connectToDeviceByName ("HC-05"); // Csatlakozás a HC-06 bluetooth modulunkhoz
Ezután a load_buttons () függvényben annyi gombot rajzolhat, amennyit csak akar. 10 gombot rajzoltam meg, ahogy az az Alkalmazáson látható. Ezt követi a read_buttons () függvény, amely arra szolgál, hogy érzékelje, melyik gombot érinti. Minden gombnak van egy adott színe, így amikor a felhasználó megérinti a képernyőt, ellenőrizzük, hogy melyik színt érintette meg, és meghatározzuk, hogy melyik gombot érintette meg. Az alábbiakban bemutatunk egy mintakódot egy gomb létrehozásához és a szín alapján történő kiválasztásához
kitöltés (255,145,3); rect (szélesség / 2 szélesség / 4, magasság / 2, szélesség / 4, magasság / 12); kitöltés (255); szöveg ("25C", szélesség / 2 szélesség / 4, magasság / 2); // 5. gomb if (color_val == - 13589993) {byte data = {'0'}; bt.broadcast (adatok);}
A „byte data = {'0'};” sor nagyon fontos vonal. Itt döntjük el, melyik kódot kell Bluetooth-on keresztül elküldeni az Arduinónak. Itt, ha ezt a gombot megnyomja, a „0” karaktert elküldi a Bluetooth-ról az Arduino-nak. Hasonlóképpen más karaktereket is küldhetünk a különböző gombokhoz. Ezeket a karaktereket aztán össze lehet hasonlítani az Arduino oldalán, és meg lehet tenni a megfelelő lépéseket.
Menj előre, és babrálj a kód körül, ha kétségei vannak a hozzászólás szakaszon keresztül, és igyekszem a lehető legjobban segíteni.
Mobiltelefon vezérlésű váltóáram működése:
Ha készen áll a Hardver, az Arduino Code és az Android alkalmazásokra, itt az ideje, hogy élvezze a kimenetet. Töltse fel az Arduino kódot a hardverére, és helyezze az AC felé. Most nyissa meg az android alkalmazást a mobiltelefonján, ha minden a várt módon működik, akkor az alábbiak szerint látnia kell a „ Csatlakoztatva: eszköznév (valamilyen kód) ” részt.
Most csak nyomja meg az Android alkalmazás bármely gombját, és ennek megfelelő műveletet kell végrehajtania az AC-n, mintha egy távirányítót használna. Hozzáadhat annyi gombot, amennyit csak akar, a kód módosításával, sőt a szobahőmérséklete vagy a jelenléte alapján is automatizálja az AC-t. Ellenőrizze a teljes Arduino kódot és az alábbi videót.
Remélem, hogy élvezte a projektet és megértette a mögötte álló koncepciót. Mint mindig, ha bármilyen problémája van ennek a munkának a megvalósításában, a fórumokat felhasználva kérdéseket tehet fel és megoldhatja azokat.
Az Android Application telepítéséhez szükséges APK-fájl innen tölthető le.