Inhoudsopgave:

Domotica met Raspberry Pi Relay Board gebruiken - Ajarnpa
Domotica met Raspberry Pi Relay Board gebruiken - Ajarnpa

Video: Domotica met Raspberry Pi Relay Board gebruiken - Ajarnpa

Video: Domotica met Raspberry Pi Relay Board gebruiken - Ajarnpa
Video: explain "Home Automation Raspberry Pi Distribution Board" IOT Project 2024, November
Anonim
Domotica met Raspberry Pi met relaiskaart
Domotica met Raspberry Pi met relaiskaart

Een groot aantal mensen wil veel comfort, maar tegen redelijke prijzen. We voelen ons lui om de huizen elke avond te verlichten als de zon ondergaat en de volgende ochtend, de lichten weer uit te doen Of om de airconditioning/ventilator/verwarmers aan/uit te zetten, afhankelijk van het weer of de kamertemperatuur.

Een goedkope oplossing om dit extra werk van het uitschakelen van de apparaten wanneer nodig te voorkomen, is hier. Het is om uw huizen te automatiseren tegen relatief lage kosten met behulp van eenvoudige plug-and-play-producten. Het werkt alsof wanneer de temperatuur omhoog of omlaag gaat, het respectievelijk de airconditioner of verwarming aanzet. Ook helpt het, indien nodig, om de verlichting van uw huis in te schakelen zonder ze handmatig in te schakelen. En nog veel meer apparaten kunnen worden bediend. Automatiseer de wereld. Laat ons uw huis beginnen.

Stap 1: Benodigde hardware

Hardware vereist
Hardware vereist
Hardware vereist
Hardware vereist
Hardware vereist
Hardware vereist

We zullen gebruiken:

Raspberry Pi

De Raspberry Pi is een op Linux gebaseerde pc met een enkel bord. Deze kleine pc is krachtig in het registreren van kracht, gebruikt als een stuk elektronica, en pc-bewerkingen zoals spreadsheets, tekstverwerking, surfen op het web en e-mail en games

I2C-schild of I2C-koptekst

De INPI2 (I2C-adapter) biedt de Raspberry Pi 2/3 een I²C-poort voor gebruik met meerdere I2C-apparaten

I2C Relaiscontroller MCP23008

MCP23008 van Microchip is een geïntegreerde poortuitbreiding die acht relais bestuurt via de I²C-bus. U kunt meer relais, digitale I/O, analoog naar digitaal converters, sensoren en andere apparaten toevoegen met behulp van de geïntegreerde I²C-uitbreidingspoort

MCP9808 Temperatuursensor

De MCP9808 is een zeer nauwkeurige temperatuursensor die gekalibreerde, gelineariseerde sensorsignalen levert in digitaal I²C-formaat

TCS34903 luminantiesensor

TCS34903 is een product uit de kleurensensorfamilie dat de waarde van de RGB-component van licht en kleur biedt

I2C-verbindingskabel

I2C-aansluitkabel is een 4-aderige kabel die bedoeld is voor I2C-communicatie tussen twee I2C-apparaten die er via zijn aangesloten

Micro-USB-adapter

Om de Raspberry Pi op te starten, hebben we een micro-USB-kabel nodig

12V voedingsadapter voor relaisbord

MCP23008 Relaiscontroller werkt op 12V externe voeding en kan worden geleverd met een 12V Power Adapter

U kunt het product kopen door erop te klikken. Je kunt ook meer geweldig materiaal vinden bij Dcube Store.

Stap 2: Hardware-aansluiting

Hardware aansluiting
Hardware aansluiting
Hardware aansluiting
Hardware aansluiting
Hardware-aansluiting
Hardware-aansluiting
Hardware aansluiting
Hardware aansluiting

De benodigde aansluitingen (zie de afbeeldingen) zijn als volgt:

  1. Dit werkt via I2C. Neem een I2C-schild voor Raspberry Pi en sluit het voorzichtig aan op de GPIO-pinnen van Raspberry Pi.
  2. Sluit het ene uiteinde van de I2C-kabel aan op de in-poort van TCS34903 en het andere uiteinde op de I2C-afscherming.
  3. Sluit de in-pot van de MCP9808-sensor aan op de uitgang van de TCS34903 met behulp van een I2C-kabel.
  4. Sluit de in-pot van de MCP23008 aan op de uitgang van de MCP9808-sensor met behulp van een I2C-kabel.
  5. Sluit ook de Ethernet-kabel aan op de Raspberry Pi. Wi-Fi-router kan ook voor hetzelfde worden gebruikt.
  6. Voed vervolgens de Raspberry Pi met een micro-USB-adapter en MCP23008 relaiskaart met een 12V-adapter.
  7. Sluit tot slot de lamp aan met eerste relais en een ventilator of verwarming met tweede relais. Je kunt de module uitbreiden of meer apparaten aansluiten met de relais.

Stap 3: Communiceren met behulp van het I2C-protocol

Ga als volgt te werk om Raspberry Pi I2C aan te zetten:

  1. Typ in terminal de volgende opdracht om de configuratie-instellingen te openen: sudo raspi-config
  2. Selecteer hier "Geavanceerde opties".
  3. Selecteer "I2C" en klik op "Ja".
  4. Start het systeem opnieuw op om het in te stellen volgens de wijzigingen die zijn aangebracht met het commando reboot.

Stap 4: Programmeren van de module

De beloning van het gebruik van Raspberry Pi is dat het u de flexibiliteit biedt om de programmeertaal te kiezen waarin u wilt programmeren om het sensorapparaat met Raspberry Pi te koppelen. Gebruikmakend van dit voordeel van Raspberry Pi, demonstreren we hier de programmering ervan in Java.

Om de Java-omgeving in te stellen, installeert u de "pi4j libraby" van https://pi4j.com/1.2/index.html Pi4j is een Java Input/Output Library voor Raspberry Pi. Een gemakkelijke en meest geprefereerde methode om de "pi4j library" is om het onderstaande commando rechtstreeks in je Raspberry Pi uit te voeren:

curl -s get.pi4j.com | sudo bash

OF

curl -s get.pi4j.com

com.pi4j.io.i2c. I2CBus importeren;com.pi4j.io.i2c. I2CDevice importeren; importeer com.pi4j.io.i2c. I2CFactory; import java.io. IOException; class MCP23008 {public static void main (String args ) gooit Exception {int status, value, value1= 0x00; // Maak I2C-bus I2CBus-bus = I2CFactory.getInstance (I2CBus. BUS_1); // Haal I2C-apparaat op, MCP23008 I2C-adres is 0x20 (32) I2CDevice-apparaat = bus.getDevice (0x20); // Haal I2C-apparaat op, MCP9808 I2C-adres is 0x18 (24) I2CDevice MCP9808 = bus.getDevice (0x18); // Haal I2C-apparaat op, TCS34903 I2C-adres is 0x39 (55) I2CDevice TCS34903 = bus.getDevice (0x39); // Wachttijd register instellen = 0xff (255), wachttijd = 2,78 ms TCS34903.write (0x83, (byte) 0xFF); // Toegang tot IR-kanaal inschakelen TCS34903.write (0xC0, (byte) 0x80); // Stel Atime-register in op 0x00 (0), maximale tellingen = 65535 TCS34903.write (0x81, (byte) 0x00); // Inschakelen, ADC ingeschakeld, Wacht ingeschakeld TCS34903.write (0x80, (byte) 0x0B); Draad.slaap (250); // Lees 8 bytes aan data met clear/ir data LSB eerste byte data1 = nieuwe byte [8]; // Lees temperatuurgegevens byte data = nieuwe byte [2]; status = apparaat.lezen (0x09); // Alle pinnen geconfigureerd als OUTPUT device.write (0x00, (byte) 0x00); Draad.slaap(500); while(true){ MCP9808.read(0x05, data, 0, 2); // Converteer data int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF)); if(temp > 4096) {temp -= 8192; } dubbele cTemp = temp * 0,0625; System.out.printf(“Temperatuur in Celsius is: %.2f C %n”, cTemp); TCS34903.lezen (0x94, data1, 0, 8); dubbele ir = ((data1[1] & 0xFF) * 256) + (data1[0] & 0xFF) * 1.00; dubbel rood = ((data1[3] & 0xFF) * 256) + (data1[2] & 0xFF) * 1.00; dubbel groen = ((data1[5] & 0xFF) * 256) + (data1[4] & 0xFF) * 1.00; dubbel blauw = ((data1[7] & 0xFF) * 256) + (data1[6] & 0xFF) * 1.00; // Bereken verlichtingssterkte dubbele verlichtingssterkte = (-0.32466) * (rood) + (1.57837) * (groen) + (-0.73191) * (blauw); System.out.printf(“Verlichting is: %.2f lux%n“, verlichtingssterkte); if (verlichtingssterkte 30) { waarde = waarde1 | (0x01); } else { waarde = waarde1 & (0x02); } device.write(0x09, (byte)waarde); Draad.slaap(300); } } }

Stap 5: Bestand maken en de code uitvoeren

  1. Om een nieuw bestand te maken waarin de code kan worden geschreven/gekopieerd, wordt het volgende commando gebruikt: sudo nano FILE_NAME.javaEg. sudo nano MCP23008.java
  2. Nadat we het bestand hebben gemaakt, kunnen we de code hier invoeren.
  3. Kopieer de code die in de vorige stap is gegeven en plak deze hier in het venster.
  4. Druk op Ctrl+X en vervolgens op "y" om af te sluiten.
  5. Compileer vervolgens de code met het volgende commando: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
  6. Als er geen fouten zijn, voer het programma dan uit met het onderstaande commando: pi4j FILE_NAMEEg. pi4j MCP23008.java

Stap 6: Toepassingen

Met dit systeem kunt u de apparaten bedienen zonder naar de wandschakelaars te gaan. Dit heeft uitgebreide mogelijkheden omdat de tijden voor het in- of uitschakelen van de apparaten automatisch worden gepland. Er zijn een handvol toepassingen van deze module, van huizen tot industrieën, ziekenhuizen, treinstations en nog veel meer plaatsen die op een betaalbare en gemakkelijke manier kunnen worden geautomatiseerd door de plug-and-play-componenten.

Stap 7: Bronnen

Bekijk de onderstaande links voor meer informatie over TSL34903, MCP9808 MCP23008 relaiscontroller:

  • TSL34903 Gegevensblad
  • MCP9808-gegevensblad
  • MCP23008 Gegevensblad

Aanbevolen: