Hoe automatische toegangslichten te bouwen met een Raspberry Pi
HoeTerug naar huis gaan in een donker huis kan deprimerend zijn. Laten we een paar kant-en-klare componenten gebruiken om een helder welkom thuisproject te bouwen met de Raspberry Pi.
Je zal nodig hebben:
- Elke Raspberry Pi Zero, A +, B +, Raspberry Pi 2 of Raspberry Pi 3
- Het nieuwste Raspbian OS
- Energenie stopcontacten en Pi Remote
- Een reed-schakelaar
- Verbindingsdraden
- magneten
- Alle code is hier te vinden
Het project
Eerst moeten we de Energenie aan de eerste 26 pinnen van de GPIO bevestigen op uw uitgevallen Raspberry Pi. (Ter referentie, pin 1 is de pin die zich het dichtst bij de SD-kaartsleuf bevindt.) Het bord past netjes over de Raspberry Pi zonder dat er delen aan hangen.
Bevestig nu een vrouwelijke naar vrouwelijke jumperkabel aan GPIO20 en GND via de ongebruikte GPIO-pinnen. (Als u de startkabels wilt verlengen, gebruikt u eenvoudig mannelijke naar vrouwelijke kabels tot de gewenste lengte is bereikt.) Aan het ene uiteinde van de vrouwelijke jumperkabel bevestigt u de reedschakelaar en vervolgens de andere.
De ontvanger in de Energenie-eenheid herbergt een relais om de netspanning in en uit te schakelenGebruik plastic met kleverige rug en bevestig de schakelaar aan een deurframe en bevestig magneten op dezelfde hoogte als de schakelaar, maar op de deur zelf, zodat de schakelaar gesloten is wanneer de deur gesloten is.
Start je Raspberry Pi op en open een terminal. Om de Energenie-bibliotheek voor gebruik met Python 3 te installeren $ sudo pip-3.2 installeer energenie.
Na installatie opent u een nieuwe Python 3-sessie via het programmeermenu. Om onze Energenie-eenheden aan onze Raspberry Pi te koppelen, open je de IDLE-shell en -type van energenie importeren switch_on, switch_off. Sluit nu uw Energenie aan en druk zes seconden op de groene knop.
De eenheid van Energenie past netjes over de eerste 26 pinnen van de Pi 2 of over alle GPIO-pinnen van een oudere Raspberry PiDit dwingt het om naar een nieuwe zender te zoeken. Terug in je IDLE shell, type switch_on (1). Dit koppelt je Raspberry Pi aan het apparaat en duidt het '1' aan en het proces kan voor vier eenheden worden herhaald. Met IDLE open klikt u op Bestand> Nieuw venster en slaat u uw werk op als entrylight.py.
We beginnen met het importeren van de bibliotheken voor dit project:
van energenie importeren switch_on, switch_off
import tijd
importeer RPi.GPIO als GPIO
De Energenie-bibliotheek beheert de eenheden voor onze lichten en de tijd wordt gebruikt om te bepalen hoe lang de apparaten worden gevoed en RPi. GPIO is de bibliotheek die wordt gebruikt voor het werken met de GPIO.
GPIO.setmode (GPIO.BCM)
GPIO.setup (20, GPIO.IN, GPIO.PUD_UP)
Uitzetten()
Vervolgens stellen we de GPIO in om de Broadcom pin mapping te gebruiken en instellen dat GPIO20 een input is waarvan de interne weerstand hoog wordt getrokken, waardoor de stroom op die pin wordt gezet. Ten slotte schakelen we de Energenie-eenheden uit om te zorgen dat ze klaar zijn.
De hoofdcode gebruikt een try ... behalve structuur om een oneindige lus te wikkelen. Dit deel van de code vereist dat u de inspringingen nauwkeurig voor elke regel plaatst, dus zorg ervoor dat deze op de volgende afbeelding lijkt.
Binnen de lus gebruiken we een voorwaardelijke verklaring om te controleren of de ingang is geactiveerd, dat wil zeggen de deur is geopend. Als dit waar is, worden de eenheden gedurende 30 seconden ingeschakeld en weer uitgeschakeld.
We maken de voorwaardelijke verklaring af met een andere voorwaarde. Hiermee worden de eenheden uitgeschakeld en continu herhaald. We sluiten het proberen ... met uitzondering van de structuur met een methode om het project te sluiten, drukt u op CTRL + C om het project te beëindigen en de eenheden uit te schakelen indien nodig.
Als de code is voltooid, sla je je werk op en klik je op Uitvoeren> Module uitvoeren om de code te testen.
EnerGenie
Het besturen van hoogspanningsapparatuur is een project voor degenen die hun spullen kennen, maar met Energenie kunnen we het risico aanzienlijk verminderen.
Energenie-eenheden in hun kern zijn eenvoudig 433 MHz-ontvangers die een relais besturen; een component die een lage spanning gebruikt om een magnetische schakelaar in een hoogspanningscircuit te regelen. Op de Raspberry Pi hebben we een zender waarmee de ontvangers kunnen worden in- en uitgeschakeld.
Energenie-units zijn een veilige manier om elektriciteit op het lichtnet te regelen. De standaard Python-bibliotheek voor Energenie is nogal omslachtig, waardoor de gebruiker de GPIO-pinnen moet bedienen die door de zender worden gebruikt om verbinding te maken met elk apparaat en de juiste instructie te geven.
Deze bibliotheek is een stuk eenvoudiger gemaakt dankzij Ben Nuttal, een lid van het Education-team van Raspberry Pi Foundation, en Amy Mather, bekend van Mini Girl Geek, een hacker en maker van tieners. Deze verbeterde bibliotheek, die we in deze zelfstudie hebben gebruikt, vereist dat we het nummer van elke eenheid kennen en een instructie kunnen geven aan één of alle eenheden tegelijk.
De bibliotheek is te vinden op GitHub, mocht je de code willen inzien en meer willen weten over hoe het werkt.
- Genoten van dit artikel? Breid uw kennis van Linux uit, haal meer uit uw code en ontdek de nieuwste open source-ontwikkelingen binnen Linux Format. Lees vandaag nog onze sampler en profiteer van de aanbieding binnen.