Inhoudsopgave:

Raspberry Pi Door Notifier - Ajarnpa
Raspberry Pi Door Notifier - Ajarnpa

Video: Raspberry Pi Door Notifier - Ajarnpa

Video: Raspberry Pi Door Notifier - Ajarnpa
Video: Raspberry Pi Door Sensor Demo 2024, September
Anonim
Raspberry Pi-deurmelder
Raspberry Pi-deurmelder

Heb je je ooit afgevraagd of en wanneer mensen toegang krijgen tot deuren? Wilt u een discrete, goedkope en snelle manier om de beweging van de deur in de gaten te houden… en misschien een klein projectje? Zoek niet verder! Dit simplistische apparaat volgt trillingen die worden afgegeven door bewegende deuren en rapporteert aan de gebruiker met een e-mail naar een opgegeven e-mailadres.

Dit project geeft je wat oefening met Flask, Raspberry Pis, GPIO-sensoren en de Mandrill API! Het is niet alleen leuk om te bouwen, maar het heeft ook veel nut. Indringers opgelet…

Stap 1: Benodigdheden

Benodigdheden
Benodigdheden

Ben je nog steeds van plan om dit apparaat te bouwen? Dit is wat je nodig hebt:

  • Raspberry Pi 3
  • Micro SD kaart
  • 3 vrouw-naar-vrouw draden
  • 1 trillingssensor
  • Een powerbank
  • Opdrachtstroken

Als je van plan bent om dit project voor meerdere deuren te bouwen, vermenigvuldig dan elk van de benodigdheden met het aantal apparaten dat je nodig hebt.

Als je bezig bent met het bouwen/testen van dit apparaat, is het niet nodig om het volgende te hebben… het zou echter zeker erg nuttig zijn.

  • Een computermonitor
  • Een USB-toetsenbord
  • Micro-USB-oplaadkit

Stap 2: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading

Hoewel de Raspberry Pi een handig apparaat is dat wordt geleverd met veel verschillende sensoren en randapparatuur, moeten we de hoofdsensor toevoegen aan de bedrading van de Pi, zodat deze de metingen kan uitvoeren die we nodig hebben. De hoofdsensor die in dit project wordt gebruikt, is te zien in de afbeelding hierboven - het is een trillingssensor met een hoge gevoeligheid. Hoewel we een breadboard of een ander montageapparaat zouden kunnen gebruiken om deze sensor op te plaatsen en onze draden door te voeren, hebben we hem eenvoudig via vrouwelijke naar vrouwelijke draden rechtstreeks op de pinnen op het Raspberry Pi-apparaat aangesloten.

Een bedradingsschema is hierboven te vinden (afkomstig van https://www.piddlerintheroot.com/vibration-sensor/). Sluit eenvoudig alle draden aan zoals weergegeven in deze afbeelding en uw trillingssensor zou goed moeten zijn om te gaan. Houd er ook rekening mee dat je uiteindelijk een batterijpakket nodig hebt voor dit project, maar als je aan het testen bent, is het waarschijnlijk handig om het apparaat op een stopcontact aan te sluiten.

Stap 3: dingen instellen

Proficiat! Je hebt het zo ver gebracht. Laten we door gaan!

We gaan nu direct met de Pi aan de slag. Al het volgende kan op het apparaat worden gedaan met een toetsenbord en monitor (of via SSH als u dat prettig vindt).

Er is veel voorbereidend werk gedaan om elke GPIO-sensor te laten werken met een Pi en Flask. Geduld is een schone zaak. Er zijn nogal wat Python-bibliotheken die u eerst moet installeren. Dit kan met Pip, een bibliotheek/pakketbeheerder voor Python. Typ `pip install` om te gebruiken. Om enkele bibliotheken een naam te geven, hebt u het volgende nodig:

  • verzoeken
  • RPi. GPIO
  • kolf
  • flask_rustig
  • flask_wtf
  • wtforms
  • e-mail
  • mandril

Misschien wilt u een kopje koffie drinken terwijl u wacht tot deze zijn geïnstalleerd - het kan even duren.

Nu al uw bibliotheken zijn geïnstalleerd, bent u klaar om uw Flask-project te starten. Flask is een lichtgewicht framework dat pagina's serveert vanaf het apparaat waarop het draait. In dit geval wordt de Raspberry Pi een server. Best wel handig, hè? U kunt hier leren hoe u een zeer eenvoudige Flask-toepassing kunt opzetten. Doe dit voordat u een van de instructies hierna probeert.

Stap 4: Coderen en hardlopen

Zodra u dit hebt voltooid, bent u klaar om te beginnen met het uitbouwen van de projectbestanden. Ik heb alle bestanden die je nodig hebt hieronder bijgevoegd - je moet de code waarschijnlijk echter herschrijven en niet alleen de bestanden kopiëren (JE ZULT MEER LEZEN!).

Zo zouden de directory-organisaties eruit moeten zien:

+-- iotapp | +-- appMap | +-- sjablonen | +-- index.html | +-- _init_.py | +-- formulieren.py | +-- mcemail.py | +-- routes.py | +-- iotapp.py | +-- vibes.py

Plaats al deze bestanden in deze juiste volgorde en u zou uw project in een mum van tijd aan de gang moeten kunnen krijgen. Om vervolgens uw Flask-server te laten draaien, moet u naar de hoofdmap navigeren. U moet dan typen:

$ export FLASK_APP=iotapp.py

$ python -m kolf run --host 0.0.0.0

Hiermee zou u een bericht moeten krijgen dat aangeeft dat uw server actief is en dat u de pagina van het apparaat naar een ander apparaat op het netwerk moet kunnen serveren.

Dit zou een goed moment zijn om door uw bestanden te kijken en echt te proberen een overzicht te krijgen van wat de code doet. Natuurlijk is geen van de code in steen gebeiteld … het kan allemaal worden bijgewerkt / gewijzigd om aan projectspecifieke behoeften te voldoen. Bijvoorbeeld, vanaf nu, wanneer het apparaat POST na ontvangst van invoer van de trillingssensor, verzendt het de tijdstempel van wanneer de invoer plaatsvond. De server slaat deze gegevens echter niet op. Dit zou kunnen als de gebruiker historische informatie liever wilde bewaren en ergens wilde laten zien.

Een ding dat je waarschijnlijk zal opvallen, is dat DE CODE NIET VOLLEDIG IS. Dit project maakt gebruik van een externe API voor het versturen van notificatie-e-mails bij trillingen (deuropening). Om dit in te stellen, moet u een Mandrill-account maken en een API-sleutel maken.

Zodra u uw verzendende domein heeft geverifieerd en een API-sleutel heeft, kunt u uw sleutel in het `mcemail.py`-bestand (waar aanwezig) plaatsen en de verzendinformatie aanpassen (door de standaardparameter in hetzelfde bestand te wijzigen of door in een andere e-mail in het bestand `routes.py` Als je meer documentatie over Mandrill wilt en hoe je het moet gebruiken, kun je dat hier vinden.

Stap 5: Testen

Testen
Testen

Voordat u het apparaat op zijn vaste locatie monteert, is het waarschijnlijk een goed idee om alles te testen wat het doet. Hier is hoe je het spul uitvoert.

Het apparaat draait eigenlijk twee programma's: `vibes.py` en de Flask-server. De eerste moet eerst op de achtergrond worden uitgevoerd en vervolgens kan de Flask-server worden uitgevoerd. `vibes.py` is gewoon POST naar de server en de server interpreteert het POST-verzoek.

$ python vibes.py &

$ python -m kolf run --host 0.0.0.0

U zou dan naar de juiste URI/IP moeten kunnen navigeren en het e-mailadres kunnen instellen waarnaar u al uw meldingen wilt verzenden. U moet op de trillingssensor tikken om enkele test-e-mails te verzenden en ervoor te zorgen dat het project werkt.

Ziet alles er goed uit? Oké, we zijn klaar voor zaken!

Stap 6: Montage

Montage
Montage

Het monteren van het apparaat is vrij vanzelfsprekend. In principe hoeft u alleen maar ervoor te zorgen dat het apparaat is aangesloten op het accupack en u gebruik opdrachtstrips om het apparaat op de deur te bevestigen.

Opmerking: het apparaat moet worden geplaatst met de trillingssensor loodrecht op de deur zodat de sensor de beweging van de deur kan opvangen

Zodra dit is voltooid, zou u in staat moeten zijn om SSH naar het apparaat te sturen en de programma's uit te voeren zoals vermeld in de vorige stap en te wachten op indringers!

Probeer voor extra punten de draden/het apparaat te verbergen zodat indringers uw slimme apparaat niet wantrouwen!…of plaats het gewoon niet op een glazen deur. ¯\_(ツ)_/¯

Aanbevolen: