Inhoudsopgave:

Pool Pi Guy - AI-gestuurd alarmsysteem en zwembadbewaking met Raspberry Pi - Ajarnpa
Pool Pi Guy - AI-gestuurd alarmsysteem en zwembadbewaking met Raspberry Pi - Ajarnpa

Video: Pool Pi Guy - AI-gestuurd alarmsysteem en zwembadbewaking met Raspberry Pi - Ajarnpa

Video: Pool Pi Guy - AI-gestuurd alarmsysteem en zwembadbewaking met Raspberry Pi - Ajarnpa
Video: Detroit: Word mens (de film) 2024, November
Anonim
Pool Pi Guy - AI-gestuurd alarmsysteem en zwembadbewaking met Raspberry Pi
Pool Pi Guy - AI-gestuurd alarmsysteem en zwembadbewaking met Raspberry Pi

Thuis een zwembad hebben is leuk, maar brengt een grote verantwoordelijkheid met zich mee. Mijn grootste zorg is controleren of er iemand onbeheerd in de buurt van het zwembad is (vooral jongere kinderen). Mijn grootste ergernis is ervoor te zorgen dat de waterlijn van het zwembad nooit onder de ingang van de pomp komt, waardoor de pomp droog zou lopen en deze zou vernietigen, wat $ $ $ aan reparaties kost.

Ik heb onlangs ontdekt hoe ik een Raspberry Pi met OpenCV en TensorFlow kan gebruiken, samen met een waterniveausensor en een magneetventiel om beide problemen op te lossen - en veel plezier ermee!

Het blijkt ook een geweldig alarmsysteem te zijn - door beweging geactiveerd, AI-gestuurd, oneindig aanpasbaar.

Laten we erin duiken.

Stap 1: Groot plan

In deze instructable laten we zien hoe:

  1. Stel een Raspberry Pi in met OpenCV en TensorFlow
  2. Sluit een webcam aan via een lange USB-kabel
  3. Schrijf een OpenCV-algoritme om beweging te detecteren
  4. Gebruik TensorFlow voor objectdetectie
  5. Stel een webserver in op de Raspberry Pi om de interessante afbeeldingen te tonen
  6. Integreer met IFTTT om mobiele waarschuwingen te activeren in het geval dat een persoon wordt gedetecteerd
  7. Bevestig een relais-HOED aan de Raspberry Pi en sluit deze aan op een magneetventiel dat water aan het zwembad zou toevoegen
  8. Bevestig een waterniveausensor aan de Raspberry Pi en maak er een interface mee met behulp van de Pi's GPIO
  9. Schrijf wat code om alles aan elkaar te lijmen

Stap 2: Boodschappenlijstje

Boodschappenlijst
Boodschappenlijst

Alle componenten zijn direct verkrijgbaar bij Amazon. Voel je vrij om te experimenteren en componenten uit te wisselen - dat is de helft van het plezier!

  1. Raspberry Pi
  2. Raspberry Pi-voeding (beknibbel hier niet)
  3. Geheugenkaart (groter is beter)
  4. Behuizing (deze is groot genoeg voor zowel de Pi als de HAT)
  5. USB-webcam (elke webcam is voldoende, maar u wilt er een die goede beelden krijgt en de verlichting goed uitbalanceert)
  6. USB-verlengkabel (indien nodig - meet de afstand tussen de Pi en waar je de camera zou plaatsen)
  7. Relaiskaart HAT (deze heeft 3 relais en we hebben er maar één nodig, maar je zult snel genoeg een gebruik voor de andere vinden!)
  8. solenoïde
  9. Solenoïde fitting 1 en fitting 2 (dat hangt er echt van af waar je de solenoïde op monteert, maar deze werkten voor mij)
  10. Solenoïde voeding (elke 24V AC zou voldoende zijn)
  11. Kabel (nogmaals, bijna elke 2-aderige kabel zou voldoende zijn - de stroom is minimaal)
  12. Waterniveau vlotterschakelaar (dit is slechts een voorbeeld, kijk wat er eenvoudig op uw zwembad kan worden aangesloten)
  13. Sommige jumperdraden en draadconnectoren

Stap 3: Stel uw Raspberry Pi in

Stel je Raspberry Pi in
Stel je Raspberry Pi in

Raspberry Pi is een geweldige kleine computer. Het kost slechts $ 35, werkt consistent en heeft veel compatibele software en hardware. Het instellen is vrij eenvoudig:

  1. Formatteer je SD-kaart. Dit vereist speciale zorg - Raspberry Pi kan alleen opstarten vanaf een FAT-geformatteerde SD-kaart. Volg deze instructies.
  2. Sluit de Raspberry Pi aan op een USB-toetsenbord en -muis, plus een HDMI-scherm, en volg de instructies in de Raspberry Pi NOOBS-tutorial. Zorg ervoor dat u wifi instelt en SSH-toegang inschakelt. Vergeet niet een wachtwoord in te stellen voor het standaard pi-account.
  3. Stel op uw thuisnetwerk een statisch IP-adres in voor de Raspberry Pi - het zou het veel gemakkelijker maken om SSH naar binnen te gaan.
  4. Zorg ervoor dat je een ssh-client op je desktop/laptop hebt geïnstalleerd. Voor een pc zou ik Putty aanraden, die je hier kunt installeren.
  5. Koppel de USB en HDMI los van de Raspberry Pi, start hem opnieuw op en ssh erin - als het allemaal werkte, zou je zoiets als dit moeten zien:

Linux raspberrypi 4.14.98-v7+ #1200 SMP di 12 feb 20:27:48 GMT 2019 armv7l

De programma's die bij het Debian GNU/Linux-systeem worden geleverd, zijn gratis software; de exacte distributievoorwaarden voor elk programma worden beschreven in de individuele bestanden in /usr/share/doc/*/copyright. Debian GNU/Linux wordt geleverd met ABSOLUUT GEEN GARANTIE, voor zover toegestaan door de toepasselijke wetgeving. Laatste login: ma 13 mei 10:41:40 2019 van 104.36.248.13 pi@raspberrypi:~ $

Stap 4: OpenCV instellen

OpenCV instellen
OpenCV instellen

OpenCV is een verbazingwekkende verzameling beeldmanipulatiefuncties voor computervisie. Hiermee kunnen we beelden van de webcam lezen, ze manipuleren om bewegingsgebieden te vinden, ze op te slaan en meer. Setup op de Raspberry Pi is niet moeilijk maar vereist enige zorg.

Begin met het installeren van virtaulenvwrapper: we zullen python gebruiken om al onze programmering uit te voeren, en virtualenv zou ons helpen om afhankelijkheden gescheiden te houden voor OpenCV en TensorFlow vs. Flask of GPIO:

pi@raspberrypi:~ $ sudo pip install virtualenvwrapper

Nu kunt u "mkvirtualenv" uitvoeren om een nieuwe omgeving te creëren, "workon" om eraan te werken en meer.

Laten we dus een omgeving creëren voor onze beeldmanipulatie, met python 3 als de standaardinterpreter (het is 2019, er is geen reden om bij de oudere python 2 te blijven):

pi@raspberrypi:~ $ mkvirtualenv cv -p python3

… (cv) pi@raspberrypi:~

We zijn nu klaar om OpenCV te installeren. We zullen meestal de uitstekende tutorial in Learn OpenCV volgen. Volg specifiek hun stap 1 en 2:

sudo apt -y updatesudo apt -y upgrade ## Installatieafhankelijkheden sudo apt-get -y install build-essentiële checkinstall cmake pkg-config yasm sudo apt-get -y install git gfortran sudo apt-get -y install libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y install libtiff5-dev sudo apt-get -y install libtiff-dev sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get - y installeer libxine2-dev libv4l-dev cd /usr/include/linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y installeer libgstreamer0.10-dev libgstreamer-plugins-base0. 10-dev sudo apt-get -y install libgtk2.0-dev libtbb-dev qt5-default sudo apt-get -y install libatlas-base-dev sudo apt-get -y install libmp3lame-dev libtheora-dev sudo apt-get -y installeer libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y installeer libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y installeer libavresample-dev sudo apt-get -y installeer x264 v4l-utils sudo apt-get -y install libprotobuf -dev protobuf-compiler sudo apt-get -y install libgoogle-glog-dev libgflags-dev sudo apt-get -y install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libqtgui4 sudo apt-get install libqt4-get install libqt4- toets

Nu kunnen we OpenCV gewoon installeren met python-bindingen in de cv virtualenv (je zit er nog steeds in, toch?)

pip installeer opencv-contrib-python

En dat is het! We hebben OpenCV geïnstalleerd op onze Raspberry Pi, klaar om foto's en video's te maken, te manipuleren en cool te zijn.

Controleer dat door een python-interpreter te openen en opencv te importeren en te controleren of er geen fouten zijn:

(cv) pi@raspberrypi:~ $ python

Python 3.5.3 (standaard, 27 september 2018, 17:25:39) [GCC 6.3.0 20170516] op linux Typ "help", "copyright", "credits" of "license" voor meer informatie. >>> cv2 importeren >>>

Stap 5: TensorFlow instellen

TensorFlow instellen
TensorFlow instellen

TensorFlow is een machine learning / AI-framework dat is ontwikkeld en onderhouden door Google. Het heeft uitgebreide ondersteuning voor deep-learningmodellen voor een verscheidenheid aan taken, waaronder objectdetectie in afbeeldingen, en is nu vrij eenvoudig te installeren op Raspberry Pi. De prestaties van zijn lichtgewicht modellen op de kleine Pi zijn ongeveer 1 frame per seconde, wat perfect geschikt is voor een toepassing als de onze.

We zullen in principe de uitstekende tutorial van Edje Electronics volgen, met aanpassingen die mogelijk zijn gemaakt door recentere TensorFlow-distributies:

pi@raspberrypi:~ $ workon cv

(cv) pi@raspberrypi:~ $ pip install tensorflow (cv) pi@raspberrypi:~ $ sudo apt-get install libxml2-dev libxslt-dev (cv) pi@raspberrypi:~ $ pip install pillow lxml jupyter matplotlib cython (cv) pi@raspberrypi:~ $ sudo apt-get install python-tk

Nu moeten we de protobuf van Google compileren. Volg gewoon de instructies in stap 4 van dezelfde uitstekende tutorial

Kloon en stel ten slotte de modeldefinities van TensorFlow in - volg stap 5 in de Edje Electronics-tutorial

Voel je vrij om hun voorbeeld in stap 6 ook te volgen, het is een geweldige introductie tot objectdetectie op de Raspberry Pi.

Stap 6: Bewegingsdetectie met OpenCV

Laten we beginnen met testen of OpenCV kan communiceren met onze webcam: ssh naar de Raspberry Pi, ga naar de cv virtualenv (workon cv), open een python-interpreter (typ gewoon python) en voer de volgende python-commando's in:

import cv2

cap = cv2. VideoCapture(0) cap.set(cv2. CAP_PROP_FRAME_WIDTH, 1920) cap.set(cv2. CAP_PROP_FRAME_HEIGHT, 1080) ret, frame = cap.read() print('Lees framegrootte: {}x{}'.format(frame.vorm[1], frame.vorm[0])

Met een beetje geluk zul je zien dat OpenCV een HD-frame van de camera kon lezen.

Je kunt cv2.imwrite(pad, frame) gebruiken om dat frame naar schijf te schrijven en het terug te sftp om het echt te bekijken.

De strategie om beweging te detecteren is vrij eenvoudig:

  1. Werk aan frames met een lagere resolutie - het is hier niet nodig om op Full HD te werken
  2. Vervaag de afbeeldingen verder om zo min mogelijk ruis te hebben.
  3. Houd een lopend gemiddelde van de laatste N frames. Voor deze toepassing, waar de framesnelheid ongeveer 1 FPS is (alleen omdat TensorFlow wat tijd per frame kost), ontdekte ik dat N=60 goede resultaten oplevert. En aangezien een zorgvuldige implementatie niet meer CPU met meer frames kost, is dat OK (het kost wel meer geheugen - maar dat is te verwaarlozen als we werken met frames met een lagere resolutie)
  4. Trek de huidige afbeelding af van het lopende gemiddelde (wees voorzichtig met typen - u moet rekening houden met positieve en negatieve waarden [-255.. 255], dus het frame moet worden geconverteerd naar int)
  5. Je kunt de aftrekking uitvoeren op een grijsschaalconversie van het frame (en het gemiddelde), of het afzonderlijk doen voor elk van de RGB-kanalen en vervolgens de resultaten combineren (wat de strategie is die ik heb gekozen, waardoor het gevoelig is voor kleurveranderingen)
  6. Gebruik een drempel op de delta en verwijder ruis door erosie en dilatatie
  7. Zoek ten slotte naar contouren van gebieden met een delta - deze gebieden zijn waar beweging is opgetreden en het huidige beeld wijkt af van het gemiddelde van eerdere afbeeldingen. We kunnen indien nodig ook begrenzingskaders voor deze contouren vinden.

Ik heb de code om dit te doen ingekapseld in de DeltaFinder python-klasse die je hier in mijn github kunt vinden

Stap 7: Objecten detecteren met TensorFlow

Als je de installatieprocedure van TensorFlow hebt gevolgd, heb je al getest of je TensorFlow hebt geïnstalleerd en werkt.

Voor het detecteren van mensen in een algemene buitenscène presteren modellen die vooraf zijn getraind op de COCO-dataset redelijk goed - en dat is precies het model dat we hebben gedownload aan het einde van de TensorFlow-installatie. We hoeven het alleen maar te gebruiken voor gevolgtrekkingen!

Nogmaals, ik heb het laden en de inferentie van het model ingekapseld in de TFClassify python-klasse om dingen gemakkelijker te maken, die je hier kunt vinden.

Stap 8: Stel een webserver in op de Raspberry Pi

Een webserver instellen op de Raspberry Pi
Een webserver instellen op de Raspberry Pi

De eenvoudigste manier om toegang te krijgen tot de resultaten van objectdetectie is een webbrowser, dus laten we een webserver opzetten op de Raspberry Pi. We kunnen het dan instellen om afbeeldingen uit een bepaalde map weer te geven.

Er zijn meerdere opties voor een webserverframework. Ik koos voor Flask. Het is extreem configureerbaar en eenvoudig uit te breiden met Python. Omdat de "schaal" die we nodig hebben triviaal is, was het meer dan genoeg.

Ik raad aan om het in een nieuwe virtualenv te installeren, dus:

pi@raspberrypi:~ $ mkvirtualenv webserv

(webserv)pi@raspberrypi: ~ $ pip install Flask

Houd er rekening mee dat het met een normale netwerkconfiguratie alleen bereikbaar is als uw browser zich op hetzelfde draadloze LAN bevindt als uw Raspberry Pi. U kunt een poorttoewijzing / NAT-configuratie op uw internetrouter maken om externe toegang toe te staan, maar dat raad ik u af. De code die ik heb geschreven, probeert niet de beveiliging te bieden die je nodig hebt als je algemene internettoegang tot je Raspberry Pi toestaat.

Test uw installatie door de snelstartgids van Flask te volgen

Stap 9: Mobiele meldingen van Raspberry Pi met IFTTT

Mobiele meldingen van Raspberry Pi met IFTTT
Mobiele meldingen van Raspberry Pi met IFTTT

Ik wil echt mobiele meldingen ontvangen wanneer er gebeurtenissen plaatsvinden. In dit geval, wanneer een persoon wordt gedetecteerd en wanneer het waterpeil laag wordt. De eenvoudigste manier die ik heb gevonden om dat te doen, zonder een aangepaste mobiele app te hoeven schrijven, is door IFTTT te gebruiken. IFTTT staat voor "If This Then That" en stelt veel soorten gebeurtenissen in staat om veel soorten acties te activeren. In ons geval zijn we geïnteresseerd in de IFTTT Maker Webhook-trigger. Hierdoor kunnen we een IFTTT-actie activeren door een HTTP POST-verzoek in te dienen bij de IFTTT-server met een speciale sleutel die aan ons account is toegewezen, samen met gegevens die specificeren wat er is gebeurd. De actie die we ondernemen kan zo simpel zijn als het maken van een melding op ons mobiele apparaat met behulp van de IFTTT mobiele app, of iets complexer dan dat.

Hier is hoe dat te doen:

  1. Maak een IFTTT-account aan op ifttt.com
  2. Ga terwijl u bent ingelogd naar de instellingenpagina van de Webhook-service en voer de URL in uw browser in (zoiets als https://maker.ifttt.com/use/. Die webpagina toont u uw sleutel en de URL die u moet gebruiken om acties te activeren.
  3. Maak een IFTTT-applet die een mobiele melding genereert wanneer de webhook wordt geactiveerd met de details van de gebeurtenis:

    1. Klik op "Mijn applets" en vervolgens op "Nieuwe applet".
    2. Klik op "+this" en kies "webhooks". Klik op "Ontvang een webverzoek" om door te gaan naar de details
    3. Geef uw evenement een naam, b.v. "PoolEvent" en klik op "Trigger maken"
    4. Klik op "+dat" en kies "meldingen". Kies vervolgens "Stuur een uitgebreide melding vanuit de IFTTT-app"
    5. Kies voor "titel" iets als "PoolPi"
    6. Voor "bericht" schrijft u "Pool Pi gedetecteerd: " en klikt u op "ingrediënt toevoegen".."Waarde1".
    7. Ga terug naar de URL die u in stap 2 hebt gekopieerd. Het toont de URL die moet worden gebruikt om uw nieuw gemaakte applet op te roepen. Kopieer die URL en vervang de tijdelijke aanduiding {event} door de gebeurtenisnaam (in ons voorbeeld PoolEvent)
  4. Download, installeer en log in op de IFTTT-app voor uw mobiele apparaat
  5. Voer dit python-script uit op je Raspberry Pi om het te zien werken (let op: het kan een paar seconden of minuten duren voordat het op je mobiele apparaat wordt geactiveerd):

importverzoeken

verzoeken.post('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json={"value1":"Hallo meldingen"})

Stap 10: Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel

Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel
Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel
Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel
Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel
Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel
Voeg een relaishoed toe aan de Raspberry Pi en sluit deze aan op een magneetventiel

Voordat u doorgaat met deze stap SCHAKEL uw Raspberry Pi UIT: ssh ernaar en typ "sudo shutdown now" en koppel hem vervolgens los van de stroom

Ons doel is om de stroomtoevoer naar een magneetventiel in en uit te schakelen - een klep die de watertoevoer kan openen of sluiten op basis van 24V wisselstroom die het van een stroomvoorziening krijgt. Relais zijn de elektrische componenten die een circuit kunnen openen of sluiten op basis van een digitaal signaal dat onze Raspberry Pi kan leveren. Wat we hier doen, is een relais aansluiten op deze digitale signaalpinnen van de Raspberry Pi en deze het circuit tussen de 24V AC-voeding en de magneetklep laten sluiten.

De pinnen op de Raspberry Pi die als digitale invoer of uitvoer kunnen fungeren, worden GPIO - General Purpose Input/Output genoemd en zijn de rij van 40 pinnen aan de zijkant van de Pi. Zet de Pi uit en steek de relais-HOED er stevig in. De HAT die ik heb gekozen heeft 3 relais en we zullen er slechts één gebruiken. Stel je voor wat je allemaal kunt doen met de andere twee:)

Zet nu de Raspberry Pi weer aan. De rode "power"-LED op de relais-HAT moet gaan branden, wat aangeeft dat hij stroom krijgt van de Pi via de GPIO. Laten we testen of we het kunnen controleren: ssh opnieuw in de Pi, voer python in en typ:

import gpiozero

dev = gpiozero. DigitalOutputDevice(26, initial_value = True) dev.off()

U moet een hoorbare "klik" horen, wat aangeeft dat het relais is ingeschakeld, en een LED zien branden die aangeeft dat het eerste relais in de aangesloten positie staat. U kunt nu typen

dev.on()

Wat het relais in de "uit" -positie zou zetten (vreemd, ik weet het …) en exit() uit python.

Gebruik nu startkabels en de langere kabel om het relais tussen de 24V voeding en het magneetventiel aan te sluiten. Zie het schema. Sluit ten slotte de magneetklep aan op een kraan met behulp van de adapters en bereid u voor om alles te testen door de bovenstaande opdrachten te herhalen - ze moeten het water in- en uitschakelen.

Sluit een slang aan op het magneetventiel en leg het andere uiteinde diep in het zwembad. U hebt nu een computergestuurd systeem voor het bijvullen van het zwembad en het is tijd om een sensor aan te sluiten om te vertellen wanneer het moet draaien.

Stap 11: Sluit een waterniveausensor aan

Een waterniveausensor aansluiten
Een waterniveausensor aansluiten
Een waterniveausensor aansluiten
Een waterniveausensor aansluiten
Een waterniveausensor aansluiten
Een waterniveausensor aansluiten
Een waterniveausensor aansluiten
Een waterniveausensor aansluiten

Een waterniveausensor is gewoon een vlotter die een elektrisch circuit verbindt wanneer de vlotter naar beneden is, en verbreekt wanneer deze omhoog drijft. Als je hem op de juiste hoogte in het zwembad plaatst, zal de vlotter omhoog gaan als het waterniveau voldoende is, maar naar beneden vallen als er niet genoeg water is.

Om de Raspberry Pi de status van de waterniveausensor te laten weten, hebben we de Pi nodig om een open of gesloten circuit te detecteren. Gelukkig is dat heel eenvoudig: dezelfde GPIO-connectoren die we gebruiken als digitale uitgang om de relais aan te sturen, kunnen als ingangen fungeren (vandaar de I in GPIO). In het bijzonder, als we één draad van de sensor aansluiten op +3,3 V op de GPIO-connector en de andere sensordraad op een pin die we configureren als pull-down-ingang (wat betekent dat deze normaal op GND-spanningsniveau zal zijn), zal die pin meten een digitale "hoge" of "aan" spanning alleen wanneer de waterniveausensor het circuit sluit - wanneer het waterniveau laag is. Ik gebruikte GPIO-pin 16 als invoer, die ik in de bovenstaande afbeelding heb gemarkeerd.

De python-code om de pin als invoer te configureren en de huidige status te testen is:

import gpiozero

level_input = gpiozero. Button (16) water_low = level_input.is_pressed

Een mogelijke uitdaging is dat wanneer de sensor net van toestand verandert, deze snel zou oscilleren tussen aan en uit. De oplossing hiervoor staat bekend als "debouncing" en zoekt naar een consistente statusverandering voordat actie wordt ondernomen. De GPIOZERO-bibliotheek heeft code om dat te doen, maar om de een of andere reden werkte die code niet goed voor mij. Ik heb een eenvoudige lus geschreven om IFTTT-waarschuwingen te activeren wanneer een consistente statuswijziging wordt gedetecteerd, die u hier in mijn repository kunt vinden.

Stap 12: Schrijf code om alles samen te binden

Schrijf code om alles samen te binden
Schrijf code om alles samen te binden

Dat is het. Onze installatie is voltooid. Je kunt je eigen code schrijven om dingen samen te voegen tot een volledig systeem, of de code gebruiken die ik aanlever. Om dat te doen, maakt u gewoon de directorystructuur aan en kloont u de repository, zoals zo:

mkdir poolpi

cd poolpi git kloon

Bewerk vervolgens de bestanden met de naam ifttt_url.txt in de directory's motion_alert en water_level om de URL voor uw eigen IFTTT-webhook met uw geheime sleutel te hebben. U kunt twee verschillende webhaken gebruiken voor verschillende acties.

Ten slotte willen we dat deze code automatisch wordt uitgevoerd. De eenvoudigste manier om dat te bereiken is via de Linux crontab-service. We kunnen enkele crontab-regels toevoegen voor twee hoofdtaken:

  1. Voer onze drie programma's uit: de objectdetector, de waterniveausensor en webserver bij elke herstart
  2. Ruim de uitvoermap op, verwijder oude foto's en oude videobestanden (ik heb ervoor gekozen om bestanden ouder dan 1 dag en foto's ouder dan 7 dagen te verwijderen - experimenteer gerust)

Om dat te doen, typt u crontab -e waarmee uw nano-teksteditor wordt geopend. Voeg de volgende regels toe aan de onderkant van het bestand:

0 1 * * * find /home/pi/poolpi/output -type f -name "*.avi" -mtime +1 -delete

0 2 * * * find /home/pi/poolpi/output -type f -name "*.jpg" -mtime +7 -delete @reboot python3 /home/pi/poolpi/motion_alert/webserv/webserv.py @reboot python3 /home/pi/poolpi/motion_alert/motion_obj_alert.py @reboot python3 /home/pi/poolpi/water_level/test_water_level.py

Start ten slotte uw Raspberry Pi opnieuw op. Het is nu klaar om uw zwembad vol en veilig te houden.

Werk aan de setup, de code en vergeet niet om mijn github-repository een ster te geven en commentaar te geven op de instructable als je het nuttig vindt. Ik ben altijd op zoek om meer te leren.

Veel plezier met maken!

IoT-uitdaging
IoT-uitdaging
IoT-uitdaging
IoT-uitdaging

Tweede plaats in de IoT-uitdaging

Aanbevolen: