Inhaltsverzeichnis:

Heimautomatisierung mit Raspberry Pi mit Relaisplatine - Gunook
Heimautomatisierung mit Raspberry Pi mit Relaisplatine - Gunook

Video: Heimautomatisierung mit Raspberry Pi mit Relaisplatine - Gunook

Video: Heimautomatisierung mit Raspberry Pi mit Relaisplatine - Gunook
Video: Home Automation Raspberry Pi Distribution Board DIY | IOT Project 2023 2024, November
Anonim
Hausautomation mit Raspberry Pi mit Relaisplatine
Hausautomation mit Raspberry Pi mit Relaisplatine

Eine große Anzahl von Menschen möchte großen Komfort, aber zu vernünftigen Preisen. Wir fühlen uns faul, die Häuser jeden Abend zu beleuchten, wenn die Sonne untergeht und am nächsten Morgen das Licht wieder auszuschalten oder die Klimaanlage / den Ventilator / die Heizungen ein- / auszuschalten, wie das Wetter oder die Raumtemperatur waren.

Eine kostengünstige Lösung, um diese zusätzliche Arbeit des Ausschaltens der Geräte bei Bedarf zu vermeiden, finden Sie hier. Es geht darum, Ihre Häuser mit vergleichsweise sehr geringen Kosten mit einfachen Plug-and-Play-Produkten zu automatisieren. Es funktioniert so, als ob die Klimaanlage oder Heizung eingeschaltet wird, wenn die Temperatur steigt oder sinkt. Bei Bedarf hilft es auch, die Beleuchtung Ihres Hauses einzuschalten, ohne sie manuell einzuschalten. Und viele weitere Geräte lassen sich steuern. Automatisieren Sie die Welt. Lassen Sie uns Ihr Zuhause starten.

Schritt 1: Erforderliche Hardware

Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware
Erforderliche Hardware

Wir werden verwenden:

Himbeer-Pi

Der Raspberry Pi ist ein Linux-basierter Einzelplatinen-PC. Dieser kleine PC bietet einen Schlag in der Registrierungsleistung, die als Teil von Elektronikübungen und PC-Operationen wie Tabellenkalkulation, Textverarbeitung, Web-Surfen, E-Mail und Spielen verwendet wird

I2C-Shield oder I2C-Header

Der INPI2 (I2C-Adapter) bietet dem Raspberry Pi 2/3 einen I²C-Port zur Verwendung mit mehreren I2C-Geräten

I2C-Relais-Controller MCP23008

MCP23008 von Microchip ist ein integrierter Port-Expander, der acht Relais über den I²C-Bus steuert. Über den integrierten I²C-Erweiterungsport können Sie weitere Relais, digitale E/A, Analog-Digital-Wandler, Sensoren und andere Geräte hinzufügen

MCP9808 Temperatursensor

Der MCP9808 ist ein hochgenauer Temperatursensor, der kalibrierte, linearisierte Sensorsignale im digitalen I²C-Format liefert

TCS34903 Luminanzsensor

TCS34903 ist ein Produkt der Farbsensorfamilie, das den Wert der RGB-Komponenten von Licht und Farbe bietet

I2C-Verbindungskabel

Das I2C-Verbindungskabel ist ein 4-adriges Kabel, das für die I2C-Kommunikation zwischen zwei darüber angeschlossenen I2C-Geräten gedacht ist

Micro-USB-Adapter

Zum Einschalten des Raspberry Pi benötigen wir ein Micro-USB-Kabel

12V Netzteil für Relaisplatine

Der Relaiscontroller MCP23008 arbeitet mit einer externen 12-V-Stromversorgung und kann mit einem 12-V-Netzteil versorgt werden

Sie können das Produkt kaufen, indem Sie darauf klicken. Außerdem finden Sie weitere tolle Materialien im Dcube Store.

Schritt 2: Hardwareanschluss

Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss
Hardware-Anschluss

Die erforderlichen Anschlüsse (siehe Bilder) sind wie folgt:

  1. Dies funktioniert über I2C. Nehmen Sie ein I2C-Shield für Raspberry Pi und verbinden Sie es vorsichtig mit den GPIO-Pins des Raspberry Pi.
  2. Verbinden Sie das eine Ende des I2C-Kabels mit dem Eingang des TCS34903 und das andere Ende mit der I2C-Abschirmung.
  3. Verbinden Sie den In-Pot des MCP9808-Sensors mit dem TCS34903-Out mit einem I2C-Kabel.
  4. Verbinden Sie den In-Pot des MCP23008 über ein I2C-Kabel mit dem Ausgang des MCP9808-Sensors.
  5. Verbinden Sie auch das Ethernet-Kabel mit dem Raspberry Pi. Der Wi-Fi-Router kann auch dafür verwendet werden.
  6. Versorgen Sie dann den Raspberry Pi mit einem Micro-USB-Adapter und der MCP23008-Relaisplatine mit einem 12-V-Adapter.
  7. Schließen Sie schließlich das Licht mit dem ersten Relais und einen Lüfter oder eine Heizung mit dem zweiten Relais an. Sie können das Modul erweitern oder weitere Geräte mit den Relais verbinden.

Schritt 3: Kommunikation über das I2C-Protokoll

Um Raspberry Pi I2C zu aktivieren, gehen Sie wie folgt vor:

  1. Geben Sie im Terminal den folgenden Befehl ein, um die Konfigurationseinstellungen zu öffnen: sudo raspi-config
  2. Wählen Sie hier „Erweiterte Optionen“.
  3. Wählen Sie „I2C“und klicken Sie auf „Ja“.
  4. Starten Sie das System neu, um es gemäß den mit dem Befehl reboot vorgenommenen Änderungen einzurichten.

Schritt 4: Programmieren des Moduls

Die Belohnung für die Verwendung von Raspberry Pi besteht darin, dass Sie die Programmiersprache auswählen können, in der Sie programmieren möchten, um das Sensorgerät mit dem Raspberry Pi zu verbinden. Diesen Vorteil des Raspberry Pi nutzend, demonstrieren wir hier seine Programmierung in Java.

Um die Java-Umgebung einzurichten, installieren Sie die „pi4j libraby“von https://pi4j.com/1.2/index.html Pi4j ist eine Java Input/Output Library für Raspberry Pi. Eine einfache und am meisten bevorzugte Methode zur Installation von „pi4j Bibliothek“ist es, den unten genannten Befehl direkt in Ihrem Raspberry Pi auszuführen:

curl -s get.pi4j.com | sudo bash

ODER

curl -s get.pi4j.com

com.pi4j.io.i2c. I2CBus importieren; com.pi4j.io.i2c. I2CDevice importieren; com.pi4j.io.i2c. I2CFactory importieren; import java.io. IOException; Klasse MCP23008 { public static void main(String args) löst Ausnahme aus { int status, value, value1= 0x00; // I2C-Bus erstellen I2CBus-Bus = I2CFactory.getInstance(I2CBus. BUS_1); // I2C-Gerät abrufen, MCP23008 I2C-Adresse ist 0x20(32) I2CDevice-Gerät = bus.getDevice(0x20); // I2C-Gerät abrufen, MCP9808 I2C-Adresse ist 0x18(24) I2CDevice MCP9808 = bus.getDevice(0x18); // I2C-Gerät abrufen, TCS34903 I2C-Adresse ist 0x39(55) I2CDevice TCS34903 = bus.getDevice(0x39); // Wartezeitregister setzen = 0xff (255), Wartezeit = 2,78 ms TCS34903.write (0x83, (byte)0xFF); // Zugriff auf IR-Kanal aktivieren TCS34903.write (0xC0, (Byte) 0x80); // Atime-Register auf 0x00 (0) setzen, maximale Anzahl = 65535 TCS34903.write (0x81, (Byte) 0x00); // Einschalten, ADC aktiviert, Warten aktiviert TCS34903.write (0x80, (Byte) 0x0B); Thread.sleep(250); // 8 Byte Daten mit Clear/IR-Daten lesen LSB first byte data1 = new byte[8]; // Temperaturdaten lesen byte data = new byte[2]; status = device.read (0x09); // Konfigurierte alle Pins als OUTPUT device.write (0x00, (byte) 0x00); Thread.sleep(500); Während (wahr) { MCP9808.read (0x05, Daten, 0, 2); // Konvertieren von Daten int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF)); if (temp > 4096) {temp -= 8192; } doppeltes cTemp = temp * 0,0625; System.out.printf("Temperatur in Celsius ist: %.2f C %n", cTemp); TCS34903.read (0x94, Daten1, 0, 8); Doppel-IR = ((data1[1] & 0xFF) * 256) + (data1[0] & 0xFF) * 1,00; doppelt rot = ((data1[3] & 0xFF) * 256) + (data1[2] & 0xFF) * 1.00; doppelt grün = ((data1[5] & 0xFF) * 256) + (data1[4] & 0xFF) * 1.00; doppelt blau = ((data1[7] & 0xFF) * 256) + (data1[6] & 0xFF) * 1.00; // Berechnen Sie die Beleuchtungsstärke doppelte Beleuchtungsstärke = (-0,32466) * (rot) + (1,57837) * (grün) + (-0,73191) * (blau); System.out.printf(“Beleuchtungsstärke ist: %.2f lux%n“, Beleuchtungsstärke); if (Beleuchtungsstärke 30) { Wert = Wert1 | (0x01); aufrechtzuerhalten. Sonst { Wert = Wert1 & (0x02); } device.write(0x09, (Byte)Wert); Thread.sleep(300); } } }

Schritt 5: Datei erstellen und Code ausführen

  1. Um eine neue Datei zu erstellen, in die der Code geschrieben/kopiert werden kann, wird der folgende Befehl verwendet: sudo nano FILE_NAME.javaEg. sudo nano MCP23008.java
  2. Nachdem wir die Datei erstellt haben, können wir den Code hier eingeben.
  3. Kopieren Sie den im vorherigen Schritt angegebenen Code und fügen Sie ihn hier in das Fenster ein.
  4. Drücken Sie zum Beenden Strg+X und dann "y".
  5. Kompilieren Sie dann den Code mit dem folgenden Befehl: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
  6. Wenn keine Fehler vorliegen, führen Sie das Programm mit dem unten genannten Befehl aus: pi4j FILE_NAMEEg. pi4j MCP23008.java

Schritt 6: Anwendungen

Mit diesem System können Sie die Geräte steuern, ohne zu den Wandschaltern zu gehen. Dies hat umfangreiche Möglichkeiten, da die Zeiten des Ein- und Ausschaltens der Geräte automatisch geplant werden. Es gibt eine Handvoll Anwendungen dieses Moduls von Häusern bis hin zu Industrien, Krankenhäusern, Bahnhöfen und vielen anderen Orten, die durch seine Plug-and-Play-Komponenten kostengünstig und einfach automatisiert werden können.

Schritt 7: Ressourcen

Weitere Informationen zu TSL34903, MCP9808 MCP23008 Relaiscontroller finden Sie unter den folgenden Links:

  • TSL34903 Datenblatt
  • MCP9808 Datenblatt
  • MCP23008 Datenblatt

Empfohlen: