Inhoudsopgave:
- Stap 1: Benodigde hardware
- Stap 2: Hardware-aansluiting
- Stap 3: Communiceren met behulp van het I2C-protocol
- Stap 4: Programmeren van de module
- Stap 5: Bestand maken en de code uitvoeren
- Stap 6: Toepassingen
- Stap 7: Bronnen
Video: Domotica met Raspberry Pi Relay Board gebruiken - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
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
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
De benodigde aansluitingen (zie de afbeeldingen) zijn als volgt:
- Dit werkt via I2C. Neem een I2C-schild voor Raspberry Pi en sluit het voorzichtig aan op de GPIO-pinnen van Raspberry Pi.
- Sluit het ene uiteinde van de I2C-kabel aan op de in-poort van TCS34903 en het andere uiteinde op de I2C-afscherming.
- Sluit de in-pot van de MCP9808-sensor aan op de uitgang van de TCS34903 met behulp van een I2C-kabel.
- Sluit de in-pot van de MCP23008 aan op de uitgang van de MCP9808-sensor met behulp van een I2C-kabel.
- Sluit ook de Ethernet-kabel aan op de Raspberry Pi. Wi-Fi-router kan ook voor hetzelfde worden gebruikt.
- Voed vervolgens de Raspberry Pi met een micro-USB-adapter en MCP23008 relaiskaart met een 12V-adapter.
- 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:
- Typ in terminal de volgende opdracht om de configuratie-instellingen te openen: sudo raspi-config
- Selecteer hier "Geavanceerde opties".
- Selecteer "I2C" en klik op "Ja".
- 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
- 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
- Nadat we het bestand hebben gemaakt, kunnen we de code hier invoeren.
- Kopieer de code die in de vorige stap is gegeven en plak deze hier in het venster.
- Druk op Ctrl+X en vervolgens op "y" om af te sluiten.
- Compileer vervolgens de code met het volgende commando: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
- 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:
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
Hoe de GPIO-pinnen van een Raspberry Pi en Avrdude te gebruiken voor Bit-bang-programma DIMP 2 of DA PIMP 2: Dit zijn stapsgewijze instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude to bit-bang -programmeer een DIMP 2 of DA PIMP 2. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX-opdrachtregel. Je hoeft niet
LED-knipper met Raspberry Pi - Hoe GPIO-pinnen op Raspberry Pi te gebruiken: 4 stappen
LED-knipper met Raspberry Pi | Hoe GPIO-pinnen op Raspberry Pi te gebruiken: Hallo allemaal, in deze instructables zullen we leren hoe we GPIO's van Raspberry Pi kunnen gebruiken. Als je ooit Arduino hebt gebruikt, weet je waarschijnlijk dat we een LED-schakelaar enz. op de pinnen kunnen aansluiten en het zo kunnen laten werken. laat de LED knipperen of krijg input van de schakelaar zodat
Mac Terminal gebruiken en toetsfuncties gebruiken: 4 stappen
Mac Terminal gebruiken en toetsfuncties gebruiken: We laten u zien hoe u de MAC Terminal opent. We zullen u ook enkele functies binnen de Terminal laten zien, zoals ifconfig, mappen wijzigen, toegang tot bestanden en arp. Met Ifconfig kunt u uw IP-adres en uw MAC-advertentie controleren
Goedkope en effectieve domotica met Raspberry Pi 11 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Goedkope en effectieve domotica met Raspberry Pi: ik heb altijd al lampen draadloos willen kunnen bedienen, maar commerciële opties zijn meestal duur. Philips Hue-lampen kosten ongeveer $ 70, en met wifi verbonden lampen zijn ook duur. Deze tutorial zal je vertellen hoe je tot vijf lampen/l
Hoe IRC (Internet Relay Chat) te gebruiken: 5 stappen
Hoe IRC (Internet Relay Chat) te gebruiken: [EDIT] Dit is een Instructable bedoeld als een starter voor degenen die Internet Relay Chat of IRC nog niet begrijpen. Dit project is niet bedoeld om de volledige reikwijdte van IRC en de mogelijkheden van elke individuele klant te dekken, maar is gericht op het winnen