Inhoudsopgave:
- Stap 1: Benodigdheden
- Stap 2: Bedrading
- Stap 3: dingen instellen
- Stap 4: Coderen en hardlopen
- Stap 5: Testen
- Stap 6: Montage
Video: Raspberry Pi Door Notifier - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
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
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
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
- 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
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
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:
IoT Notifier met ESP-12E: 7 stappen (met afbeeldingen)
IoT Notifier met ESP-12E: Zit u thuis weg van uw geliefde? In deze moeilijke tijd zal dit leuke kleine project zeker proberen een glimlach op je gezicht te toveren. In deze Instructable laat ik je zien hoe je meldingen van je mobiele telefoon kunt weergeven in de vorm van
Bouw een Easy ISS Notifier: 5 stappen
Bouw een eenvoudige ISS-melding: door TokyLabs | Benodigde tijd: 1-3 uur | Moeilijkheidsgraad: Gemakkelijk | Prijs: $ 60- $ 70 U kunt eenvoudig een hardware-melding maken die een papieren astronaut OMHOOG tilt om u te waarschuwen telkens wanneer het internationale ruimtestation uw locatie passeert. Veel leuker dan
Waterniveau-indicator Cum Notifier: 4 stappen
Waterniveau-indicator Cum Notifier: Waterniveau-indicator cum Notifier is een apparaat dat continu het waterniveau in de watertank bewaakt en u indien nodig op de hoogte stelt. Het waarschuwt u als de tank vol of leeg is, zodat u de pomp kunt in- of uitschakelen om verspilling van water te stoppen
YouTube Desktop Notifier: 11 stappen (met afbeeldingen)
YouTube Desktop Notifier: krijg je nachtmerries van het verliezen van je YouTube-abonnees? Als je dat doet, ben je niet de enige. Gelukkig heb ik deze "YouTube Desktop Notifier" om me op de hoogte te houden van mijn kanalen Abonnee en weergavetellingen. Dit zeer eenvoudige doe-het-zelf project
Arduino Christmas Notifier: 5 stappen (met afbeeldingen)
Arduino Christmas Notifier: Kerstmis staat voor de deur nu, en ik heb geconcludeerd dat ik het niet zal laten gaan door gewoon mijn DIY Arduino Christmas Lights te hebben. Wat zou een perfect project zijn met een kerstmelodie? Ja, juist! Mensen laten weten dat het kerst is