Inhoudsopgave:

Een relaiskaart besturen vanaf Octoprint op een Raspberry Pi - Ajarnpa
Een relaiskaart besturen vanaf Octoprint op een Raspberry Pi - Ajarnpa

Video: Een relaiskaart besturen vanaf Octoprint op een Raspberry Pi - Ajarnpa

Video: Een relaiskaart besturen vanaf Octoprint op een Raspberry Pi - Ajarnpa
Video: 3D Printer,Automatisch Uit en Aan 2024, November
Anonim
Een relaiskaart besturen vanaf Octoprint op een Raspberry Pi
Een relaiskaart besturen vanaf Octoprint op een Raspberry Pi

Zo heb je een Raspberry pi met Octoprint en zelfs een camera setup. Het laatste dat u nodig hebt, is een manier om uw 3D-printer aan en uit te zetten en misschien een lampje te bedienen. Dit instructable is voor jou!

Dit is geïnspireerd en vereenvoudigd van:

Zorg ervoor dat je mijn vorige instructable controleert waar ik een behuizingsdoos / zuurkast voor mijn 3D-printer heb gebouwd, want dit is het vervolg.

Getest met:

Linux octopi 4.14.79-v7+ #1159 SMP zo 4 nov 17:50:20 GMT 2018 armv7l GNU/Linux

OctoPrint-versie: 1.3.11OctoPi-versie: 0.16.0

Disclaimer: ik neem geen enkele verantwoordelijkheid voor wat er ook zou kunnen gebeuren als u deze instructies volgt.

Benodigdheden

  • 5V relaisbord met optocoupler (ebay)
  • Sommige jumperdraden
  • Een elektriciteitskast met stopcontacten (optioneel)

Stap 1: Het relaisbord aansluiten op uw Raspberry Pi

Het relaisbord aansluiten op uw Raspberry Pi
Het relaisbord aansluiten op uw Raspberry Pi

Hoewel relaiskaarten zijn gemaakt voor 5V-logica, worden ze correct geactiveerd bij 3,3V. Dit wetende, kon ik elke wijziging aan het originele bord vermijden.

Relais schild Framboos

------------ --------- Spoelen: JD-VCC - 5V VCC - Niet aangesloten GND - GND Logica: GND - Niet aangesloten IN1 - GPIO #23 IN2 - GPIO # 18 VCC - 3.3V

Het is belangrijk om de jumper tussen JD-VCC en VCC te verwijderen als je die hebt. Hierdoor kan 5V worden gevoed voor de spoelen terwijl 3,3V wordt gevoed voor de logische ingangen. En aangezien beide GND intern met elkaar zijn verbonden, verbinden we er maar één.

Stap 2: SSH naar uw Raspberry Pi en configureren

SSH naar uw Raspberry Pi en configureer het
SSH naar uw Raspberry Pi en configureer het

Gebruik putty of uw favoriete ssh-client om verbinding te maken met uw raspberry pi met hetzelfde ip-adres dat u gebruikt om toegang te krijgen tot Octoprint. De standaard gebruikersnaam is pi en het wachtwoord is raspberry.

Het eerste wat ik zou doen, is controleren of de relais correct reageren. Om dit te doen, geef je deze commando's:

gpio -g modus 18 uit

gpio -g modus 23 uit gpio -g schrijven 18 0 gpio -g schrijven 23 0 gpio -g schrijven 18 1 gpio -g schrijven 23 1

Met de eerste 2 regels kan de GPIO als uitgang worden ingesteld. Vervolgens zet je de uitgangen aan en uit. Dat zou het relais moeten laten klikken. Als de ingangen laag (0) zijn, moet het relais inschakelen en als de ingangen hoog zijn (1) moeten ze uitschakelen. Dus ja, dit is een beetje contra-intuïtief, maar zo is het!

Stap 3: Voeg nieuwe menu-opties toe aan Octoprint om uw relais te bedienen

Voeg nieuwe menu-opties toe aan Octoprint om uw relais te bedienen
Voeg nieuwe menu-opties toe aan Octoprint om uw relais te bedienen
Voeg nieuwe menu-opties toe aan Octoprint om uw relais te bedienen
Voeg nieuwe menu-opties toe aan Octoprint om uw relais te bedienen

U moet het bestand config.yaml bewerken:

sudo nano.octoprint/config.yaml

Zoek in dat bestand de sectie "systeem" en voeg het volgende toe:

systeem:

acties: - actie: printer aan opdracht: gpio -g schrijf 18 0 naam: zet de printer aan - actie: printer uit opdracht: gpio -g schrijf 18 1 bevestigen: u staat op het punt de printer uit te zetten. naam: Zet de printer uit - actie: lon opdracht: gpio -g schrijf 23 0 naam: LightOn - actie: loff opdracht: gpio -g schrijf 23 1 naam: LightOff

Na het opslaan van het bestand (ctrl+x), herstart de raspberry pi:

sudo reboot

U zou nu de relais moeten kunnen bedienen vanuit de Octoprint-webinterface!

Stap 4: Hoogspanningsbedrading (wees voorzichtig)

Hoogspanningsbedrading (wees voorzichtig)
Hoogspanningsbedrading (wees voorzichtig)

Een relais werkt als een schakelaar, alleen wordt het geactiveerd door een controller, in dit geval een raspberry pi. De schakelaar bestaat uit een elektromagneet die pinnen met elkaar verbindt, dat is de klik die je hoort.

Voor de bedrading heb je twee keuzes. Of je knipt een van de draden van je 3D-printervoeding door en je sluit de uiteinden aan op het relais, of je maakt daarvoor een stopcontact. Ik geef de voorkeur aan de tweede manier, omdat hierdoor de printer gemakkelijker kan worden verplaatst. Ik zal ook het tweede stopcontact gebruiken om mijn uitlaatventilator aan te sluiten (zie mijn andere instructable: Easy and Cheap 3D Printer zuurkast).

Nu moet het andere relais een licht aansturen. Het is hetzelfde principe, maar in dit geval raad ik aan om gewoon een van de draden van de voedingskabel door te knippen en de uiteinden op het relais aan te sluiten, hoogstwaarschijnlijk hoeft deze niet te worden verplaatst.

Stap 5: Configureer GPIO-uitgangen en voorkom dat uw relais worden ingeschakeld wanneer de Raspberry Pi opnieuw wordt opgestart

Om het probleem samen te vatten: GPIO is laag ingesteld wanneer raspbian opnieuw wordt opgestart (tenminste voor bepaalde kernelversies). Blijkbaar kunnen we niet veel doen… ach! Dus het idee is om een script aan te roepen dat dat terugzet zodra het klaar is met opstarten door de outputs hoog in te stellen.

Zie deze forumthread voor meer info:

Maar het belangrijkste is dat dit script de GPIO's als uitvoer instelt, anders werken de menu-items niet in Octoprint.

Maak een script met nano:

nano /home/pi/setupgpio.sh

Plak deze code in en sla het bestand op.

#!/bin/sh

echo 18 > /sys/class/gpio/export echo 23 > /sys/class/gpio/export udevadm settlement echo high > /sys/class/gpio/gpio18/direction echo high > /sys/class/gpio/gpio23/direction

Maak het bestand uitvoerbaar:

chmod +x /home/pi/setupgpio.sh

Bewerk het rc.local-bestand:

sudo nano /etc/rc.local

En bel het script dat je zojuist hebt gemaakt door deze regels toe te voegen:

# stel de gpio-pinnen in voor poortbesturing

/home/pi/setupgpio.sh

Start uw Raspberry opnieuw op en controleer of deze goed werkt.

Aanbevolen: