- Vereiste materialen:
- Werkwijze:
- Voorwaarden:
- Werking van een AC Remote:
- Schakelschema en uitleg:
- Decodering van uw AC-afstandssignalen:
- Hoofd Arduino-programma:
- Android-applicatie installeren:
- Werking van door mobiele telefoons bestuurde AC:
In de moderne wereld van vandaag, waar we ook gaan, hebben we veel elektronische apparaten om ons heen. Maar bovenal is er maar één apparaat dat we persoonlijk altijd in onze zakken hebben. Ja, het zijn onze mobiele telefoons. Nu zijn mobiele telefoons meer geworden dan een apparaat dat wordt gebruikt voor communicatie, het zijn onze camera's, het zijn onze kaarten, het zijn onze winkelkarts en wat niet?
Met deze mogelijkheid in onze handen, is het echt een saai idee om afstandsbedieningen te gebruiken om elektronische toepassingen in ons huis te bedienen, zoals tv, wisselstroom, thuisbioscoop enz. Het is altijd frustrerend om vanuit het comfortabele comfort van ons bed naar de afstandsbediening van de airconditioning te reiken. of bank. Daarom gaan we in dit project een kleine set-up bouwen waarmee je de airconditioner kunt bedienen via je smartphone met behulp van Bluetooth en Arduino. Klinkt interessant toch! Laten we er een bouwen
Vereiste materialen:
- Arduino Mega 2560
- TSOP (HS0038)
- IR Led
- Elke kleur LED en 1K weerstand (optioneel)
- HC-06
- Breadboard
- Verbindingsdraden
Werkwijze:
Alle afstandsbedieningen in ons huis die we gebruiken om tv, thuisbioscoop, AC enz. Te bedienen, werken met de hulp van IR Blasters. Een IR-blaster is niets anders dan een IR-led die een signaal zou kunnen blazen door herhaaldelijk pulsen; dit signaal wordt uitgelezen door de ontvanger in het elektronica toestel. Voor elke verschillende knop op de afstandsbediening wordt een uniek signaal uitgestraald dat na lezing door de ontvanger wordt gebruikt om een bepaalde vooraf gedefinieerde taak uit te voeren. Als we dit signaal van de afstandsbediening kunnen lezen, kunnen we hetzelfde signaal nabootsen met een IR-led wanneer dat ooit nodig is om die specifieke taak uit te voeren. We hebben eerder een IR Blaster-circuit gemaakt voor Universal IR Remote en voor automatische AC-temperatuurregeling.
Een TSOP is een IR-ontvanger die kan worden gebruikt om het signaal dat van de afstandsbedieningen komt te decoderen. We zullen deze TSOP gebruiken om alle informatie van onze afstandsbediening te decoderen en op Arduino op te slaan. Met behulp van die informatie en een IR-led kunnen we de IR-signalen van onze Arduino indien nodig opnieuw creëren.
Voorwaarden:
Zorg ervoor dat je voor dit Arduino Bluetooth Controlled AC Project een Arduino Mega hebt en geen andere versie van Arduino, aangezien de codegrootte zwaar is. Installeer de IR Remote Library via deze link om met TSOP en IR Blaster te werken.
Werking van een AC Remote:
Voordat we verder gaan met het project, neem even de tijd en merk op hoe uw AC-afstandsbediening werkt. AC-afstandsbedieningen werken op een iets andere manier in vergelijking met tv, dvd-IR-afstandsbedieningen. Er zijn misschien maar 10-12 knoppen op uw afstandsbediening, maar ze kunnen veel verschillende soorten signalen verzenden. Dit betekent dat de afstandsbediening niet elke keer dezelfde code voor dezelfde knop verzendt. Als je bijvoorbeeld de temperatuur verlaagt met de knop omlaag om deze op 24 ° C (graden Celsius) te brengen, krijg je een signaal met een set gegevens, maar als je er nogmaals op drukt om 25 ° C in te stellen, krijg je niet hetzelfde gegevens aangezien de temperatuur nu 25 is en niet 24. Op dezelfde manier zal de code voor 25 ook variëren voor verschillende ventilatorsnelheden, slaapinstellingen enz. Dus laten we niet met alle opties spelen en alleen de temperatuurwaarden met een constante waarde concentreren voor andere instellingen.
Een ander probleem is de hoeveelheid gegevens die wordt verzonden voor elke druk op de knop, normale afstandsbedieningen sturen ofwel 24 bits of 48 bits, maar een AC-afstandsbediening kan tot 228 bits verzenden, omdat elk signaal veel informatie bevat, zoals Temp, Fan Speed, Slaaptiming, Swing-stijl enz. Dit is de reden waarom we een Arduino Mega nodig hebben voor betere opslagmogelijkheden.
Schakelschema en uitleg:
Gelukkig is de hardware-installatie van deze mobiele telefoongestuurde airconditioner erg eenvoudig. U kunt eenvoudig een breadboard gebruiken en de verbindingen maken zoals hieronder weergegeven.
De volgende tabel kan ook worden gebruikt om uw verbindingen te verifiëren.
S.Nee: |
Component Pin |
Arduino-pin |
1 |
TSOP - Vcc |
5V |
2 |
TSOP - Gnd |
GND |
3 |
TSOP - Signaal |
8 |
4 |
IR Led - Kathode |
GND |
5 |
IR Led - Anode |
9 |
6 |
HC-05 - Vcc |
5V |
7 |
HC05 - Gnd |
Grond |
8 |
HC05 - Tx |
10 |
9 |
HC05 - Rx |
11 |
Als u eenmaal verbinding heeft gemaakt, zou het er ongeveer zo uit moeten zien als hieronder. Ik heb een Breadboard gebruikt om dingen op te ruimen, maar je kunt ook Male naar female draden direct aansluiten om alle componenten aan te sluiten
Decodering van uw AC-afstandssignalen:
De eerste stap om uw AC te bedienen, is door TSOP1738 te gebruiken om AC-afstandsbedieningen IR-codes te decoderen. Maak alle aansluitingen zoals weergegeven in het schakelschema en zorg ervoor dat u alle genoemde bibliotheken hebt geïnstalleerd. Open nu het voorbeeldprogramma “ IRrecvDumpV2 ” dat te vinden is onder Bestand -> Voorbeelden -> IRremote -> IRrecvDumpV2 .
int recvPin = 8; IRrecv irrecv (recvPin);
Aangezien onze TSOP is verbonden met pin 8, wijzigt u het regelnummer 9 in int recPin = 8 zoals hierboven weergegeven. Upload vervolgens het programma naar uw Arduino Mega en open de seriële monitor.
Richt je afstandsbediening op TSOP en druk op een willekeurige knop, voor elke knop die je indrukt, wordt het bijbehorende signaal gelezen door de TSOP1738, gedecodeerd door Arduino en weergegeven in de seriële monitor. Voor elke verandering in temperatuur op uw afstandsbediening krijgt u andere gegevens. Bewaar deze gegevens, want we zullen ze in ons hoofdprogramma gebruiken. Je seriële monitor zal er ongeveer zo uitzien, ik heb ook het Word-bestand laten zien waarop ik de gekopieerde gegevens heb opgeslagen.
De schermafbeelding toont de code voor het instellen van de temperatuur op 26 ° C voor mijn AC-afstandsbediening. Op basis van uw afstandsbediening krijgt u een andere set codes. Kopieer op dezelfde manier de codes voor alle verschillende temperatuurniveaus. U kunt alle IR-codes van de afstandsbediening van de airconditioner controleren in de Arduino-code die aan het einde van deze tutorial wordt gegeven.
Hoofd Arduino-programma:
Het volledige Arduino-hoofdprogramma kan onderaan deze pagina staan, maar u kunt niet hetzelfde programma gebruiken. U moet de signaalcodewaarden wijzigen die we zojuist hebben verkregen uit de voorbeeldschets. Open het hoofdprogramma op je Arduino IDE en scrol omlaag naar dit gedeelte dat hieronder wordt weergegeven, waar je de matrixwaarden moet vervangen door de waarden die je hebt verkregen voor je afstandsbediening.
Merk op dat ik 10 arrays heb gebruikt waarvan er twee gebruikten om de AC AAN en UIT te zetten, terwijl de rest 8 wordt gebruikt om een andere temperatuur in te stellen. Temp23 wordt bijvoorbeeld gebruikt om 23 * C op uw AC in te stellen, dus gebruik de respectieve code in die array. Zodra dat is gebeurd, hoeft u alleen maar de code naar uw Arduino te uploaden.
We moeten twee bibliotheken importeren voor dit project. Een daarvan is de IRremote- bibliotheek die we zojuist aan Arduino hebben toegevoegd en de andere is de ingebouwde Software Serial Library die ons helpt bij het gebruik van de Bluetooth-module.
# omvatten
Vervolgens initialiseren we de Bluetooth-module op pin 10 en 11 en gebruiken we vervolgens een object met de naam irsend om toegang te krijgen tot alle IR-functies van de bibliotheek.
SoftwareSerial BT_module (10, 11); // RX, TX IRsend irsend;
Vervolgens komen de zeer belangrijke regels code. Dit is waar de informatie om uw AC te bedienen aanwezig is. De hieronder getoonde is voor mijn AC-afstandsbediening, je had de jouwe in de vorige stap moeten hebben.
Vervolgens initialiseren we in de leegte-instelfunctie twee seriële communicaties. Een daarvan is Bluetooth met een baudsnelheid van 9600 en de andere is een seriële monitor met een baudsnelheid van 57600.
ongeldige setup () {BT_module.begin (9600); // BT werkt op 9600 Serial.begin (57600); // Serial Monitor werk zoon 57600}
Binnen onze lege lus (oneindige lus) controleren we of er iets wordt ontvangen door de Bluetooth-module. Als er iets wordt ontvangen, slaan we die informatie op in de variabele BluetoothData .
while (BT_module.available ()) // Als er gegevens komen {BluetoothData = BT_module.read (); // lees het en sla het op Serial.println (BluetoothData); // print het op serie voor testdoeleinden}
De informatie die door Bluetooth wordt ontvangen, is gebaseerd op de knop die is ingedrukt in onze Android-app die we in onze volgende stap zullen installeren. Zodra de informatie is ontvangen, hoeven we alleen maar de respectieve IR-code te activeren, zoals hieronder
if (BluetoothData == '2') {irsend.sendRaw (Temp23, sizeof (Temp23) / sizeof (Temp23), khz); delay (2000); // Stuur signaal om Temperatue 23C in te stellen}
Hier als de code '2' wordt ontvangen, moeten we de temperatuur van de AC instellen op 23 ° C. Evenzo hebben we code van 0 tot 9 om alle basisbesturingsfuncties van AC uit te voeren. U kunt de volledige arduino-code aan het einde van deze pagina raadplegen.
Android-applicatie installeren:
De laatste stap van de door een smartphone bestuurde airconditioning is het installeren van de Android-applicatie. De Android-applicatie voor dit project is gemaakt met behulp van de Android-modus verwerken. Verwerking is een uitstekende tool om.EXE-bestanden of APK-bestanden voor u Embedded-projecten te maken. Het is een open source platform net als Arduino en dus volledig gratis te downloaden om te gebruiken.
Als u er niet te diep in wilt gaan, kunt u eenvoudig het APK-bestand van hieruit in het zip-bestand downloaden en het rechtstreeks op uw mobiele telefoon installeren. Open de applicatie en je krijgt een scherm zoals hieronder getoond, waarna je verder kunt gaan naar de volgende stap en met plezier aan het project kunt werken. Maar als u het programma van de applicatie aan uw wensen wilt aanpassen, kunt u verder lezen.
Het volledige programmabestand voor Processing code kan hier worden gedownload. Deze zip bevat de code en afbeeldingsbron waarmee de applicatie werkt. Na het openen van de code kunt u de volgende regels aanpassen om deze aan uw behoefte aan te passen.
Zoals eerder gezegd, is Processing vergelijkbaar met Arduino. Het heeft dus ook een void setup en void loop (hier draw) functies. Binnen de ongeldige setup- functie zullen we de Bluetooth van de telefoon instrueren om verbinding te maken met Bluetooth van Arduino. Mijn apparaatnaam hier is "HC-05", dus mijn regel code zal zijn
bt.start (); // begin met luisteren naar BT-verbindingen bt.getPairedDeviceNames (); bt.connectToDeviceByName ("HC-05"); // Maak verbinding met onze HC-06 bluetooth-module
Vervolgens kun je in de load_buttons () -functies zoveel knoppen tekenen als je wilt. Ik heb 10 knoppen getekend zoals weergegeven in de applicatie. Daarna hebben we de functie read_buttons () die wordt gebruikt om te detecteren welke knop u aanraakt. Elke knop heeft een specifieke kleur, dus als een gebruiker het scherm aanraakt, kijken we welke kleur hij heeft aangeraakt en welke knop hij heeft aangeraakt. Hieronder ziet u een voorbeeldcode om een knop te maken en deze op kleur te selecteren
vullen (255,145,3); rect (breedte / 2-breedte / 4, hoogte / 2, breedte / 4, hoogte / 12); vullen (255); tekst ("25C", breedte / 2-breedte / 4, hoogte / 2); // knop 5 if (color_val == - 13589993) {byte data = {'0'}; bt.broadcast (gegevens);}
De regel "byte data = {'0'};" is een heel belangrijke lijn. Hier beslissen we welke code via Bluetooth naar de Arduino gestuurd moet worden. Hier als deze knop wordt ingedrukt, wordt het teken "0" van Bluetooth naar Arduino gestuurd. Op dezelfde manier kunnen we een ander teken voor verschillende knoppen verzenden. Deze karakters kunnen vervolgens aan de Arduino-kant worden vergeleken en de betreffende actie kan worden ondernomen.
Ga je gang en speel met de code, als je twijfelt, neem dan contact met me op via het commentaargedeelte en ik zal mijn best doen om je te helpen.
Werking van door mobiele telefoons bestuurde AC:
Zodra u klaar bent met uw hardware, Arduino-code en Android-applicaties, is het tijd om van de output te genieten. Upload de Arduino-code naar uw hardware en plaats deze tegenover uw AC. Open nu de Android-applicatie op je mobiele telefoon. Als alles werkt zoals verwacht, zou je " Connected to: device_name (some code) " moeten zien zoals hieronder weergegeven
Druk nu gewoon op een willekeurige knop in uw Android-applicatie en het zou een respectieve actie op de AC moeten activeren alsof u een afstandsbediening gebruikt. U kunt zoveel knoppen toevoegen als u wilt door de code te wijzigen en zelfs uw airconditioning automatiseren op basis van uw kamertemperatuur of aanwezigheid. Bekijk de volledige Arduino-code en de onderstaande video.
Ik hoop dat je genoten hebt van het project en het concept erachter hebt begrepen. Zoals altijd, als je problemen hebt om dit te laten werken, kun je de forums gebruiken om je vragen te stellen en ze op te lossen.
APK-bestand voor het installeren van Android-applicatie kan hier worden gedownload.