- Vereiste componenten:
- Werkende uitleg:
- Schakelschema:
- IR-afstandsbedieningssignalen decoderen met Arduino:
- De Android-app voor IR Blaster bouwen:
Ik begon dit project om verschillende afstandsbedieningen bij mij thuis weg te werken en iets te bouwen dat alle functies van alle afstandsbedieningen zou kunnen bevatten. Ik kreeg dit idee toen ik een van de mobiele telefoons van mijn vriend zag met ingebouwde IR-blaster, op dat moment besloot ik om geen soortgelijke telefoon te kopen, maar mijn eigen apparaat te maken dat compatibel zou moeten zijn met mijn bestaande handset. Dus hier gaan we een Android-telefoon omzetten in een IR-afstandsbediening met Arduino om verschillende apparaten thuis te bedienen.
Vereiste componenten:
- Arduino Uno
- IR-led
- TSOP-IR-ontvanger (1838T)
- Bluetooth-module (HC05)
- Android-apparaat (telefoon, tablet, etc.)
Werkende uitleg:
Over het algemeen gebruiken we twee afstandsbedieningen om thuis tv te bedienen, een voor televisie en een voor de settopbox, dus hier in dit project richt ik me op deze twee afstandsbedieningen en maak ik een Android-telefoon die werkt als IR Blaster zodat de tv kan worden bediend met de telefoon., zonder een van de afstandsbedieningen aan te raken.
Het gebruik van een Arduino Uno-bord heeft het voor mij zojuist gemakkelijker gemaakt om met het IR-decoderings- en coderingsgedeelte om te gaan. Het op maat gemaakte schild draagt bij aan het gemak van dit project. Het schild bestaat uit een TSOP IR ontvanger (1838T), een IR LED en een Bluetooth module (HC-05), zie onderstaande afbeelding:
U kunt het aangepaste schild bouwen of de componenten rechtstreeks op de Arduino aansluiten, zoals weergegeven in het 'schakelschema' in het onderstaande gedeelte.
Voordat we verder gaan, laten we eerst bespreken 'hoe de IR-afstandsbedieningen werken'. De meeste IR-afstandsbedieningen werken rond de 38 kHz-frequenties (dit is de reden waarom ik heb gekozen voor 18 38 T). Als u zich verder met dit onderwerp bezighoudt, zal men erkennen dat er geen vaste weergave is voor nullen en enen in deze IR-datatransmissiemethoden. Deze codes maken gebruik van verschillende coderingstechnieken die we bestuderen in onze technische syllabus (aangezien ik een student elektronica-engineering ben). De betekenis van 38 KHz is dat het de frequentie is waarop het signaal oscilleert wanneer het logisch hoog is, dwz dit is de draaggolffrequentie van het signaal. Bekijk de onderstaande afbeelding; dit is een voorbeeld van het NEC-protocol. Dit maakt uw concept duidelijker:
Dus hier is hoe deze IR Blaster werkt; een Android-telefoon met de op maat gemaakte Android-app stuurt het signaal naar het Arduino-circuit via Bluetooth, verder ontvangt de Arduino het signaal via de TSOP-IR-ontvanger (1838T) en analyseert het. Vervolgens geeft Arduino de IR-LED opdracht om in een bepaald patroon te knipperen, wat overeenkomt met de knop die op die Android-apparaat-app is ingedrukt. Dit knipperende patroon wordt opgevangen door de tv of de IR-ontvanger van de settopbox en volgt de instructies dienovereenkomstig, zoals het wijzigen van het kanaal of het verhogen van het volume.
Maar daarvoor moeten we de bestaande afstandsbedieningen decoderen. Zoals eerder vermeld, heb ik in dit project gebruik gemaakt van twee afstandsbedieningen, een die communiceert met de tv en een andere voor de settopbox die op de tv is aangesloten.
Schakelschema:
IR-afstandsbedieningssignalen decoderen met Arduino:
Het Arduino-bord werkt hier in twee fasen, een is wanneer u het gebruikt om IR-codes van de afstandsbediening te decoderen en een andere wanneer u het gebruikt als het IR-blaster-apparaat.
Laten we het hebben over de eerste fase. Om nu de IR- knopcodes te decoderen, heb ik gebruik gemaakt van het IRremote- headerbestand van Ken Shirriff . Dit header-bestand heeft veel voorgedefinieerde voorbeelden / codes om het ons gemakkelijker te maken om met IR-codes te werken:
- U moet eerst de IR-afstandsbedieningsbibliotheek downloaden en installeren vanaf hier
- Pak het uit en plaats het in de map Arduino 'Libraries'. Hernoem vervolgens de uitgepakte map naar IRremote.
- Brand vervolgens de onderstaande verstrekte code in Arduino, sluit het aangepaste schild aan zoals hierboven weergegeven en plaats een te decoderen afstandsbediening voor de TSOP IR-ontvanger. Open de seriële monitor die overeenkomt met deze Arduino en druk op een gewenste knop op de afstandsbediening. U ziet wat informatie over de terminal worden weergegeven, deze informatie heeft betrekking op het type code, de waarde en het aantal bits dat ermee gemoeid is. Zo ziet het eruit:
# omvatten
Als u klaar bent met het gewenste decoderingsgedeelte, noteert u alle decodeerwaarden en andere informatie met de bijbehorende knopnaam ingedrukt. Dit zal dienen als database voor de volgende fase van Arduino. Het bovenstaande programma is afkomstig uit de map 'voorbeelden' van de IRremote-bibliotheek. U kunt meer voorbeelden bekijken voor meer informatie over het gebruik van de IR-afstandsbediening. Dus zo hebben we de IR-afstandsbedieningsuitgang gedecodeerd.
Brand nu de code, die aan het einde in het codegedeelte wordt gegeven, op hetzelfde bord. Gefeliciteerd, je bent klaar met de eerste helft van dit project.
De Android-app voor IR Blaster bouwen:
Hier komt de tweede helft, het maken van de Android-app. Ik geef er gewoon de voorkeur aan om MIT's APP inventor-2 te gebruiken voor het maken van dergelijke apps. Als je een amateur bent in Android-codering, zal dit je tijd besparen en goede resultaten opleveren. De belangrijkste componenten die worden gebruikt bij het maken van deze app zijn niet veel, slechts een paar knoppen en een Bluetooth-clientpakket. Geef tijdens het coderen van de app de corresponderende tekst op die moet worden verzonden voor elke knop die op het scherm wordt ingedrukt, waardoor Arduino wordt gevraagd om de IR-LED te laten knipperen op dezelfde manier als zou zijn gedaan door de individuele afstandsbediening; Zorg er ook voor dat u het juiste adres van uw Bluetooth HC-05-module opgeeft. Dit is hoe de uiteindelijke app eruitziet op uw Android-smartphone:
Hier is het stapsgewijze proces om de app te bouwen:
STAP 1:
Log in op deze link: ai2.appinventor.mit.edu, of probeer MIT appinventor-2 op Google op te zoeken. Om in te loggen bij AI2 is een Google-account vereist, dus als u dat nog niet hebt gedaan, maakt u er een aan.
STAP 2:
Zodra u zich aanmeldt met uw Google-account, wordt u doorgestuurd naar de werkende webpagina van AI2, die er als volgt uitziet:
Start een nieuw project door bovenaan op het tabblad "Projecten" te klikken en "Nieuw project starten" te selecteren. Als u klaar bent met het benoemen van gedeelte en alles, wordt een leeg scherm weergegeven waarin u knoppen en tekst kunt plaatsen zoals hierboven weergegeven. Dit is het GUI-scherm, waarin u beslist hoe de app eruitziet voor een gebruiker.
Om een knoppenpakket te gebruiken, selecteert u het tabblad "Knop" aan de linkerkant van het scherm onder het gedeelte "Gebruikersinterface". Sleep gewoon een pakket uit het menu aan de linkerkant en zet het neer op het werkscherm. Maak op dezelfde manier gebruik van het "Label" -pakket om tekstgerelateerde zaken weer te geven.
STAP 3:
Nadat je al je knoppen en labels hebt gerangschikt, is het nu tijd om een code voor deze app te maken. Maar daarvoor moeten we ook een Bluetooth-pakket selecteren om met de Arduino te communiceren.
U zult merken dat dit pakket niet op het scherm wordt weergegeven, maar onder "Niet-zichtbare componenten" valt. Dit zijn de componenten die geen betekenis hebben in de GUI-make-up.
STAP 4:
Vervolgens komt het coderingsgedeelte, waarin u de functie definieert voor componenten die u hebt geselecteerd en waarmee u wilt werken.
Aan de linkerkant van het scherm zie je al die pakketten die je hebt geselecteerd in de GUI-sectie. De afbeelding hierboven laat zien welke componenten er in een bepaald pakket zitten waarvan je gebruik kunt maken. Merk ook op dat het adres van de Bluetooth-module in tekstformaat moet worden opgegeven.
INSTELLING 5:
Als je denkt dat de app klaar is voor gebruik en er zijn ook geen fouten, klik dan op het tabblad "Build" zoals hierboven weergegeven en selecteer de tweede optie. Hiermee wordt uw eigen gemaakte app naar de computer gedownload in ".apk" -formaat. Breng dit.apk-bestand vervolgens over naar een Android-apparaat en klik erop om het te installeren.
Dit is dus hoe u elk apparaat met IR-afstandsbediening kunt bedienen met uw smartphone, u hoeft alleen maar de afstandsbediening te decoderen van alle apparaten die u met uw telefoon wilt bedienen en de gedecodeerde HEX-code van afstandsbedieningen in de Arduino-code te vervangen.