Hoe een Arduino-gebaseerd huisautomatiseringssysteem te ontwerpen met behulp van de tv-afstandsbediening?
Domotica-systeem is het snelst groeiende concept van de moderne wereld. Slimme domotica is een concept waarbij een enkel apparaat wordt gebruikt om verschillende elektronische parameters van een huis te besturen, bijvoorbeeld het schakelen van huishoudelijke apparaten, het bewaken van beveiligingsalarmen, automatisering van garagedeuren, enz.
In dit project zullen we een eenvoudige tv-afstandsbediening gebruiken om een eenvoudig domoticasysteem te maken. Deze tv-afstandsbediening bedient alle apparaten die op de microcontroller-kaart zijn aangesloten.
Hoe gebruik je een tv-afstandsbediening om een domoticasysteem te maken?
Domotica-systemen die al op de markt verkrijgbaar zijn, zijn erg kostbaar. We kunnen een Arduino-bord gebruiken om verschillende huishoudelijke apparaten aan te sluiten en ze te bedienen met een tv-afstandsbediening. Dit zal erg goedkoop zijn en een efficiënte manier om het huis te automatiseren. Laten we nu een stap verder gaan en beginnen met het verzamelen van informatie om het project te starten.
Stap 1: de componenten verzamelen
De beste benadering om een project te starten, is door een lijst met componenten te maken en deze componenten kort te bestuderen, omdat niemand midden in een project wil blijven staan alleen omdat er een component ontbreekt. Een lijst met componenten die we in dit project gaan gebruiken, wordt hieronder gegeven:
Stap 2: de componenten bestuderen
Nu we weten welke componenten we gaan gebruiken, laten we ze kort bestuderen om een beter begrip te krijgen van hoe ons circuit werkt.
Arduino Nano is een microcontrollerbord dat verschillende bewerkingen in verschillende circuits uitvoert. Het vereist een C-code dat vertelt het bestuur welke taken het moet uitvoeren en hoe. Het heeft 13 digitale I / O-pinnen, wat betekent dat we 13 verschillende apparaten kunnen bedienen. Gebruik Arduino Mega als je meer dan 13 apparaten wilt bedienen.
TSOP 1738 is een IR-module voor afstandsbedieningen. Het heeft een draaggolffrequentie van 38 kHz. Het bestaat uit een fotodetector die het signaal detecteert en vervolgens demoduleert. De uitvoer wordt rechtstreeks gebruikt door Arduino of een ander microcontrollerbord.
Een relaismodule is een schakelapparaat. Het werkt in twee modi, Normaal open (NO) en Normaal gesproken Gesloten (NC). In de NO-modus is het circuit altijd verbroken, tenzij je via Arduino een HOOG signaal naar het relais stuurt. De NC-modus werkt andersom, het circuit is altijd compleet, tenzij je de relaismodule inschakelt. Zorg ervoor dat u de positieve draad van uw elektrisch apparaat op de relaismodule aansluit op de hieronder weergegeven manier.
Een standaard tv-afstandsbediening heeft een aan / uit-knop en alle numerieke toetsen erop. Deze cijfertoetsen worden gebruikt voor het schakelen van de elektrische apparaten.
Stap 3: Het circuit maken
Nu we weten hoe alle componenten werken, laten we doorgaan en beginnen met het maken van het circuit.
- Pak een breadboard en steek je Arduino Nano en TSOP 1738 erin.
- Schakel de TSOP 1738-module en de relaismodule in via Arduino. Verbind de UIT pin van TSOP1738 naar pin11 van Arduino en sluit ook de IN pinnen van de relaismodule naar Arduino. Ik bedien slechts twee elektrische apparaten, dus ik gebruik hier alleen relaismodules. Wil je meer toestellen aansturen, sluit dan op dezelfde manier meer relaismodules aan.
Stap 4: Aan de slag met Arduino
Als u nog niet eerder aan Arduino IDE hebt gewerkt, hoeft u zich geen zorgen te maken, want hieronder wordt stap voor stap weergegeven hoe u de Arduino IDE instelt.
- Verbind je Arduino-bord met de pc en open het Configuratiescherm. Klik op Hardware en geluid.Nu open Apparaten en printer en zoek de poort waarop je board is aangesloten. In mijn geval wel COM14maar het is anders op verschillende computers.
- Klik op het menu Tool en stel het bord in als Arduino Nano (AT Mega 328P).
- Klik opnieuw op het menu Tool en stel de poort in die u eerder in het configuratiescherm hebt waargenomen.
- Stel in hetzelfde toolmenu de processor in als ATmega328p (oude bootloader).
- Om de gegevens die door de afstandsbediening worden verzonden te decoderen, hebben we een speciale bibliotheek nodig voor A-code Arduino. Deze bibliotheek is bijgevoegd samen met de code in de onderstaande link. Om de bibliotheek toe te voegen, ga naar Schets> Bibliotheek opnemen> ZIP-bibliotheek toevoegen. Er verschijnt een vak. Zoek de ZIP-map op uw computer en klik op OK om de map op te nemen.
- Download de onderstaande code en klik op de uploadknop om de code op je Arduino Nano-bord te branden.
Klik op de downloadknop om de code te krijgen.
Stap 5: Code
De code is heel gemakkelijk te begrijpen, maar wordt hieronder toch kort beschreven.
1. leegte setup ()is een functie waarin we de INPUT- of OUTPUT-pinnen initialiseren. Deze functie stelt ook de baudrate in met Serial.begin () opdracht. Baudrate is de communicatiesnelheid van de microcontroller.
2. leegte lus ()is een functie die herhaaldelijk in een lus wordt uitgevoerd. In deze lus schrijven we een code die de microcontroller-kaart vertelt welke taken moeten worden uitgevoerd en hoe.
3. Als we gegevens verzenden vanaf de afstandsbediening van de tv, moet Arduino deze gegevens decoderen. Hiervoor hebben we een speciale bibliotheek opgenomen #inclusief
#inclusiefint RECV_PIN = 11; IRrecv irrecv (RECV_PIN); decode_results resultaten; leegte setup () {Serial.begin (9600); irrecv.enableIRIn (); } void loop () {if (irrecv.decode (& resultaten)) {Serial.println (results.value, HEX); irrecv.resume (); } vertraging (100); }
De bovenstaande code leest de waarden die vanaf de afstandsbediening zijn verzonden en decodeert deze naar de overeenkomstige HEX-waarde. Deze code is afkomstig uit de voorbeelden van de IRremote-bibliotheek in Arduino IDE. Deze code is ook met de naam bijgevoegd in de downloadlink test.ino hierboven vermeld. De output van deze functie, wanneer alle numerieke toetsen worden ingedrukt, zal zijn:
4. In het code.ino bijgevoegd in de bovenstaande downloadlink, worden de pinnen van Arduino die zullen worden gebruikt, geïnitialiseerd. In de leegte lus () functie, wanneer een knop op de afstandsbediening wordt ingedrukt, de aanvankelijk Vals toestand is veranderd Klopten het respectievelijke relais is ingeschakeld. Als dezelfde knop opnieuw wordt ingedrukt, wordt de booleaanse toestand omgeschakeld en wordt het relais uitgeschakeld. Met de aan / uit-knop worden alle relais in- of uitgeschakeld.
void loop () {if (irrecv.decode (& resultaten)) {Serial.println (results.value, HEX); vertraging (100); if (results.value == 0x40BD00FF) {i =! i; digitalWrite (IN1, i); } if (results.value == 0x40BD807F) {j =! j; digitalWrite (IN2, j); // vertraging (200); } if (results.value == 0x40BD28D7) {m =! m; digitalWrite (IN1, m); digitalWrite (IN2, m); digitalWrite (IN3, m); digitalWrite (IN4, m); // vertraging (200); } irrecv.resume (); // Ontvang de volgende waarde // delay (100); }}
Dit was de hele procedure om een eenvoudig huisautomatiseringssysteem te maken dat bestuurd werd door een tv-afstandsbediening. Nu kunt u relaismodules aansluiten op basis van het aantal toestellen en genieten van uw eigen Smart Home Automation System.