Inhoudsopgave:
- Benodigdheden
- Stap 1: Weten over DockerPi Series 4-kanaals relaiskaart
- Stap 2: Functies
- Stap 3: Apparaatadreskaart
- Stap 4: Sluit het relais aan op de lamphouder die wordt gevoed door de hoofdstroomvoorziening
- Stap 5: I2C configureren (Raspberry Pi)
- Stap 6: Directe controle zonder programmering (Raspberry Pi)
- Stap 7: Programmeer in taal C (Raspberry Pi)
- Stap 8: Programma in Python (Raspberry Pi)
- Stap 9: Programmeren in Java (Raspberry Pi)
Video: Lichtbesturingssysteem: 9 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Onlangs werkte ik aan het begrijpen van microcontrollers en op IOT gebaseerde apparaten voor beveiligingsonderzoeksdoeleinden. Dus dacht ik aan het bouwen van een klein domoticasysteem om te oefenen. Ik moet dit nog voltooien, maar voor het opstarten zal ik in dit bericht delen hoe ik Raspberry Pi 2 en enkele andere elektrische componenten heb gebruikt om de verlichting van mijn kamer te regelen. Ik zal het hier ook niet hebben over de initiële installatie voor Raspberry, daar kun je verschillende tutorials voor vinden.
Maar in dit project zal ik dit product uit de docker pi-serie aan u voorstellen.
Benodigdheden
Componentenlijst:
- 1 x Raspberry Pi 3B+/3B/Zero/Zero W/4B/
- 1 x 16GB Klasse 10 TF-kaart
- 1 x DockerPi-serie 4-kanaals relaiskaart (HAT)
- 1 x [email protected] voeding van 52Pi
- 4 x lichtstrip
- 1 x DC-connector
- 1 x 12V voeding voor de lichtstrips.
- meerdere draden.
Stap 1: Weten over DockerPi Series 4-kanaals relaiskaart
DockerPi 4 Channel Relay is een lid van de DockerPi-serie, die vaker wordt gebruikt in IOT-toepassingen.
DockerPi 4-kanaals relais kan AC/DC doorgeven in plaats van traditionele schakelaars om meer ideeën te realiseren. DockerPi 4-kanaals relais kan tot 4 worden gestapeld en kan worden gestapeld met andere DockerPi-uitbreidingskaarten. Als je lange tijd moet rennen, raden we je ook aan om ons DockerPi Power-uitbreidingsbord te gebruiken om meer vermogen te leveren.
OPMERKING VOOR VOORZICHTIG Voordat we verder gaan, wil ik u waarschuwen voor het GEVAAR van het experimenteren met de "netstroom". Als er iets misgaat, kan het ergste gevolg de dood zijn of op zijn minst uw eigen huis afbranden. PROBEER dus NIET om iets te doen dat in dit artikel wordt genoemd als u niet begrijpt wat u doet of neem de hulp in van een ervaren elektricien. Laten we beginnen.
Stap 2: Functies
- DockerPi-serie
- Programmeerbaar
- Direct aansturen (zonder programmeren)
- Verleng de GPIO-pinnen
- 4-kanaals relais
- 4 Alt I2C Addr-ondersteuning
- Ondersteuning voor relaisstatusleds
- 3A 250V AC-ondersteuning
- 3A 30V gelijkstroom
- Kan stapelen met ander stapelbord Onafhankelijk van de hardware van het moederbord (vereist I2C-ondersteuning)
Stap 3: Apparaatadreskaart
Dit bord heeft een apart registeradres en je kunt elk relais met één commando bedienen.
Andere vereisten:
Basiskennis van Python of C of shell of Java of een andere taal (ik gebruik C, python, shell en java)
- Basiskennis van Linux-systemen
- Tegenwoordigheid van geest
Voordat u verder gaat, moet u de elektrische componenten begrijpen die we zullen gebruiken:
1. Relais:
Een relais is een elektrisch apparaat dat over het algemeen wordt gebruikt om hoge spanningen te regelen met een zeer lage spanning als ingang. Deze bestaat uit een spoel die om een paal is gewikkeld en twee kleine metalen flappen (knooppunten) die worden gebruikt om het circuit te sluiten. Een van de knooppunten is vast en de andere is verplaatsbaar. Telkens wanneer een elektriciteit door de spoel wordt geleid, creëert het een magnetisch veld en trekt het het bewegende knooppunt naar het statische knooppunt en wordt het circuit voltooid. Dus, gewoon door een kleine spanning toe te passen om de spoel van stroom te voorzien, kunnen we het circuit voor de hoge spanning voltooien. Omdat het statische knooppunt niet fysiek met de spoel is verbonden, is er veel minder kans dat de microcontroller die de spoel aanstuurt, beschadigd raakt als er iets misgaat.
Stap 4: Sluit het relais aan op de lamphouder die wordt gevoed door de hoofdstroomvoorziening
Nu naar het lastige deel, we zullen het relais aansluiten op de lamphouder die wordt aangedreven door de hoofdstroomvoorziening. Maar eerst wil ik je een kort idee geven over hoe de lampen worden in- en uitgeschakeld via directe voeding.
Als de lamp nu is aangesloten op de hoofdvoeding, doen we dit meestal door twee draden op de lamp aan te sluiten. een van de draden is een "neutrale" draad en de andere is de "negatieve" draad die daadwerkelijk de stroom voert, ook is er een schakelaar toegevoegd aan het hele circuit om het AAN- en UIT-mechanisme te regelen. Dus wanneer de schakelaar is aangesloten (of AAN) vloeit, stroomt de stroom door de lamp en de neutrale draad, waardoor het circuit wordt voltooid. Hierdoor wordt de lamp AAN. Wanneer de schakelaar wordt uitgeschakeld, wordt het circuit onderbroken en gaat de lamp UIT. Hier is een klein schakelschema om dit uit te leggen:
Nu moeten we voor ons experiment de "negatieve draad" door ons relais laten gaan om het circuit te verbreken en de stroomstroom te regelen met behulp van relaisschakeling. Dus wanneer het relais AAN gaat, moet het het circuit voltooien en moet de gloeilamp AAN gaan en omgekeerd. Raadpleeg het onderstaande diagram voor Volledig circuit.
Stap 5: I2C configureren (Raspberry Pi)
Voer sudo raspi-config uit en volg de aanwijzingen om i2c-ondersteuning voor de ARM-kern en linux-kernel te installeren
Ga naar interface-opties
Stap 6: Directe controle zonder programmering (Raspberry Pi)
Schakel kanaal nr. 1 relais in
i2cset -y 1 0x10 0x01 0xFF
Schakel kanaal nr. 1 relais uit
i2cset -y 1 0x10 0x01 0x00
Schakel kanaal nr. 2 relais in
i2cset -y 1 0x10 0x02 0xFF
Schakel kanaal nr. 2 relais uit
i2cset -y 1 0x10 0x02 0x00
Schakel kanaal nr. 3 relais in
i2cset -y 1 0x10 0x03 0xFF
Schakel kanaal nr. 3 relais uit
i2cset -y 1 0x10 0x03 0x00
Schakel kanaal nr. 4 relais in
i2cset -y 1 0x10 0x04 0xFF
Schakel kanaal nr. 4 relais uit
i2cset -y 1 0x10 0x04 0x00
Stap 7: Programmeer in taal C (Raspberry Pi)
Maak de broncode en noem deze "relay.c"
#erbij betrekken
#erbij betrekken
#erbij betrekken
#define DEVCIE_ADDR 0x10
#define RELAY1 0x01
#define RELAY2 0x02
#define RELAY3 0x03
#definieer RELAY4 0x04
#define ON 0xFF
#define UIT 0x00
int hoofd(void)
{
printf("Schakel relais in in C\n");
int fd;
int ik = 0;
fd = bedradingPiI2CSetup(DEVICE_ADDR);
voor(;;){
voor (i=1; i<=4; i++)
{
printf ("schakel relais nr. $ d in", i);
bedradingPiI2CWriteReg8(fd, i, ON);
slaap(200);
printf ("schakel relais nr. $ d uit", i);
bedradingPiI2CWriteReg8(fd, i, UIT);
slaap(200);
}
}
retourneer 0;
}
Compileer het
gcc relais.c -lwiringPi -o relais
Voer het uit
./relais
Stap 8: Programma in Python (Raspberry Pi)
Het wordt aanbevolen om de volgende code uit te voeren met Python 3 en de smbus-bibliotheek te installeren:
Maak een bestand met de naam: "relay.py" en plak de volgende code:
importeer tijd als t
import smbus
import systeem
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
bus = smbus. SMBus(DEVICE_BUS)
terwijl waar:
proberen:
voor i in bereik (1, 5):
bus.write_byte_data(DEVICE_ADDR, i, 0xFF)
t.slaap(1)
bus.write_byte_data(DEVICE_ADDR, i, 0x00)
t.slaap(1)
behalve KeyboardInterrupt als e:
print("Stop de lus")
sys.exit()
* Sla het op en voer het uit als python3:
python3 relais.py
Stap 9: Programmeren in Java (Raspberry Pi)
Maak een nieuw bestand met de naam: I2CRelay.java en plak de volgende code:
import java.io. IOException;
java.util. Arrays importeren;
com.pi4j.io.i2c. I2CBus importeren;
com.pi4j.io.i2c. I2CDevice importeren;
importeer com.pi4j.io.i2c. I2CFactory;
import com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;
import com.pi4j.platform. PlatformAlreadyAssignedException;
com.pi4j.util. Console importeren;
openbare klasse I2CRelay {
// het registeradres van het relais.
openbare statische finale int DOCKER_PI_RELAY_ADDR = 0x10;
// kanaal van relais.
openbare statische laatste byte DOCKER_PI_RELAY_1 = (byte)0x01;
openbare statische laatste byte DOCKER_PI_RELAY_2 = (byte)0x02;
openbare statische laatste byte DOCKER_PI_RELAY_3 = (byte)0x03;
openbare statische laatste byte DOCKER_PI_RELAY_4 = (byte)0x04;
// Relaisstatus
openbare statische laatste byte DOCKER_PI_RELAY_ON = (byte)0xFF;
openbare statische laatste byte DOCKER_PI_RELAY_OFF = (byte)0x00;
public static void main (String args) gooit InterruptedException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {
laatste consoleconsole = nieuwe console();
I2CBus i2c = I2CFactory.getInstance(I2CBus. BUS_1);
I2CDevice-apparaat = i2c.getDevice (DOCKER_PI_RELAY_ADDR);
console.println("Zet relais aan!");
apparaat.write(DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);
Draad.slaap(500);
console.println("Schakel relais uit!");
device.write(DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);
}
}
Aanbevolen:
Game Design in Flick in 5 stappen: 5 stappen
Game-ontwerp in Flick in 5 stappen: Flick is een heel eenvoudige manier om een game te maken, vooral zoiets als een puzzel, visuele roman of avonturengame
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: 3 stappen
Gezichtsdetectie op Raspberry Pi 4B in 3 stappen: In deze Instructable gaan we gezichtsdetectie uitvoeren op Raspberry Pi 4 met Shunya O/S met behulp van de Shunyaface-bibliotheek. Shunyaface is een bibliotheek voor gezichtsherkenning/detectie. Het project streeft naar de hoogste detectie- en herkenningssnelheid met
Doe-het-zelfspiegel in eenvoudige stappen (met LED-stripverlichting): 4 stappen
DIY make-upspiegel in eenvoudige stappen (met behulp van LED-stripverlichting): In dit bericht heb ik een doe-het-zelfspiegel gemaakt met behulp van de LED-strips. Het is echt gaaf en je moet ze ook proberen
Hoe plug-ins in WordPress te installeren in 3 stappen: 3 stappen
Hoe plug-ins in WordPress te installeren in 3 stappen: In deze tutorial laat ik je de essentiële stappen zien om de WordPress-plug-in op je website te installeren. In principe kunt u plug-ins op twee verschillende manieren installeren. De eerste methode is via ftp of via cpanel. Maar ik zal het niet opsommen, want het is echt compl
Akoestische levitatie met Arduino Uno stap voor stap (8 stappen): 8 stappen
Akoestische levitatie met Arduino Uno Stap voor stap (8-stappen): ultrasone geluidstransducers L298N Vrouwelijke DC-adapter voeding met een mannelijke DC-pin Arduino UNOBreadboardHoe dit werkt: eerst upload je code naar Arduino Uno (het is een microcontroller uitgerust met digitale en analoge poorten om code te converteren (C++)