Kazalo:

Pool Pi Guy - Alarmni sistem, ki ga poganja AI, in nadzor bazena z uporabo Raspberry Pi: 12 korakov (s slikami)
Pool Pi Guy - Alarmni sistem, ki ga poganja AI, in nadzor bazena z uporabo Raspberry Pi: 12 korakov (s slikami)

Video: Pool Pi Guy - Alarmni sistem, ki ga poganja AI, in nadzor bazena z uporabo Raspberry Pi: 12 korakov (s slikami)

Video: Pool Pi Guy - Alarmni sistem, ki ga poganja AI, in nadzor bazena z uporabo Raspberry Pi: 12 korakov (s slikami)
Video: Высокая плотность 2022 2024, November
Anonim
Pool Pi Guy - Alarmni sistem, ki ga poganja AI, in spremljanje bazena z uporabo Raspberry Pi
Pool Pi Guy - Alarmni sistem, ki ga poganja AI, in spremljanje bazena z uporabo Raspberry Pi

Bazen doma je zabavno, vendar prinaša veliko odgovornost. Največ me skrbi, če je kdo v bližini bazena brez nadzora (zlasti mlajši otroci). Moja največja nadloga je, da vodni vod v bazenu nikoli ne pade pod vstop črpalke, kar bi črpalko izsušilo in uničilo, kar stane $$$ popravila.

Pred kratkim sem ugotovil, kako uporabljati Raspberry Pi z OpenCV in TensorFlow, skupaj s senzorjem nivoja vode in elektromagnetnim ventilom za rešitev obeh težav - in pri tem se zabavajte!

Izkazalo se je tudi za odličen alarmni sistem - aktiviran z gibanjem, nadzorovan z AI, neskončno prilagodljiv.

Potopimo se.

Korak: Veliki načrt

V tem navodilu bomo pokazali, kako:

  1. Nastavite Raspberry Pi z OpenCV in TensorFlow
  2. Spletno kamero povežite z dolgim kablom USB
  3. Napišite algoritem OpenCV za zaznavanje gibanja
  4. Za zaznavanje predmetov uporabite TensorFlow
  5. Na Raspberry Pi nastavite spletni strežnik za prikaz zanimivih slik
  6. Integrirajte se z IFTTT, da sprožite mobilna opozorila, če odkrijete osebo
  7. Na Raspberry Pi priključite rele HAT in ga priključite na elektromagnetni ventil, ki bi v bazen dodal vodo
  8. Na Raspberry Pi priključite senzor nivoja vode in ga povežite z uporabo Pi -jevega GPIO
  9. Napišite kodo, da vse skupaj zlepite

2. korak: Seznam nakupov

Nakupovalni seznam
Nakupovalni seznam

Vse komponente so na voljo pri Amazonu. Prosto eksperimentirajte in zamenjajte komponente - to je pol zabave!

  1. Malina Pi
  2. Napajanje Raspberry Pi (ne varčujte tukaj)
  3. Pomnilniška kartica (večja je boljša)
  4. Ohišje (ta je dovolj velik, da lahko namesti tako Pi kot HAT)
  5. Spletna kamera USB (vsaka spletna kamera bo delovala, vendar želite tisto, ki dobi dobre slike in dobro uravnava osvetlitev)
  6. USB podaljšek (če je potrebno - izmerite razdaljo med Pi in mestom, kjer bi kamero postavili)
  7. Relejna plošča HAT (ta ima 3 releje in potrebujemo le enega, vendar boste kmalu našli uporabo drugim!)
  8. Solenoid
  9. Elektromagnetni vložek 1 in vgradni vložek 2 (to je res odvisno od tega, na kaj pritrdite elektromagnet, vendar so mi to delovale)
  10. Elektromagnetni napajalnik (primeren je kateri koli 24V AC)
  11. Kabel (spet skoraj vsak dvožični kabel - tok je minimalen)
  12. Plavajoče stikalo za vodno gladino (to je samo primer, preverite, kaj je mogoče enostavno povezati z bazenom)
  13. Nekaj mostičnih žic in žičnih priključkov

3. korak: Nastavite svoj Raspberry Pi

Nastavite svoj Raspberry Pi
Nastavite svoj Raspberry Pi

Raspberry Pi je odličen mali računalnik. Stane le 35 USD, deluje dosledno in ima veliko združljive programske in strojne opreme. Nastavitev je precej preprosta:

  1. Formatirajte kartico SD. To zahteva posebno nego - Raspberry Pi se lahko zažene samo s kartice SD, oblikovane v FAT. Sledite tem navodilom.
  2. Priključite Raspberry Pi na tipkovnico in miško USB ter zaslon HDMI in sledite navodilom v vadnici Raspberry Pi NOOBS. Nastavite WiFi in omogočite dostop SSH. Ne pozabite nastaviti gesla za privzeti račun pi.
  3. Pri nastavitvi domačega omrežja za statični IP za Raspberry Pi - bi bilo veliko lažje vstopiti v SSH.
  4. Prepričajte se, da imate na namizju/prenosnem računalniku nameščen odjemalec ssh. Za osebni računalnik bi priporočal Putty, ki ga lahko namestite od tukaj.
  5. Odklopite USB in HDMI iz Raspberry Pi, ga znova zaženite in ssh vanj - če je vse delovalo, bi morali videti nekaj takega:

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

Programi, vključeni v sistem Debian GNU/Linux, so brezplačna programska oprema; natančni pogoji distribucije za vsak program so opisani v posameznih datotekah v/usr/share/doc/*/copyright. Debian GNU/Linux ima ABSOLUTNO BREZ GARANCIJE, kolikor to dovoljuje veljavna zakonodaja. Zadnja prijava: ponedeljek, 13. maj 10:41:40 2019 s 104.36.248.13 pi@raspberrypi: ~ $

4. korak: Namestite OpenCV

Namestite OpenCV
Namestite OpenCV

OpenCV je neverjetna zbirka funkcij za obdelavo slik za računalniški vid. Omogočal nam bo branje slik s spletne kamere, upravljanje z njimi, da bi našli področja gibanja, jih shranili in še več. Namestitev na Raspberry Pi ni težka, vendar zahteva nekaj pozornosti.

Začnite z namestitvijo virtaulenvwrapper: za vse naše programiranje bomo uporabili python, virtualenv pa bi nam pomagal, da odvisnosti ločimo za OpenCV in TensorFlow vs Flask ali GPIO:

pi@raspberrypi: ~ $ sudo pip namestite virtualenvwrapper

Zdaj lahko izvedete "mkvirtualenv", da ustvarite novo okolje, "workon", da delate na njem, in še več.

Ustvarimo torej okolje za manipulacijo slik s privzetim tolmačem python 3 (leto 2019 je, ni razloga, da bi se držali starejšega pythona 2):

pi@raspberrypi: ~ $ mkvirtualenv cv -p python3

… (Cv) pi@raspberrypi: ~

Zdaj smo pripravljeni namestiti OpenCV. Večinoma bomo sledili odlični vadnici v Learn OpenCV. Natančno sledite korakom 1 in 2:

sudo apt -y posodobitve sudo apt -y nadgradnja ## Odvisnosti namestitve sudo apt-get -y namestitev build-bistvena preverjanje namestitve cmake pkg-config yasm sudo apt-get -y namestitev git gfortran sudo apt-get -y namestitev libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y namestite libtiff5-dev sudo apt-get -y namestite libtiff-dev sudo apt-get -y namestite libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get- y namestite libxine2-dev libv4l-dev cd/usr/include/linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y namestite 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 namestite libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y namestite libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y namestite libavresample-dev sudo apt-get -y namestite x264 v4l-utils sudo apt -get -y namestite 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 preskus

Zdaj lahko preprosto namestimo OpenCV z vezmi python znotraj cv virtualenv (še vedno ste v njem, kajne?) Z uporabo

pip namestite opencv-contrib-python

In to je to! Na našem Raspberry Pi imamo nameščen OpenCV, ki je pripravljen zajemati fotografije in videoposnetke, z njimi upravljati in biti kul.

To preverite tako, da odprete tolmač python in uvozite opencv ter preverite, ali ni napak:

(cv) pi@raspberrypi: ~ $ python

Python 3.5.3 (privzeto, 27. september 2018, 17:25:39) [GCC 6.3.0 20170516] v linuxu Za več informacij vnesite "pomoč", "avtorske pravice", "kredite" ali "licenco". >>> uvoz cv2 >>>

5. korak: Nastavite TensorFlow

Nastavitev TensorFlow
Nastavitev TensorFlow

TensorFlow je okvir za strojno učenje / AI, ki ga je razvil in vzdrževal Google. Ima obsežno podporo za modele poglobljenega učenja za različna opravila, vključno z odkrivanjem predmetov na slikah, in je zdaj dokaj preprosta za namestitev na Raspberry Pi. Učinkovitost njegovih lahkih modelov na majhnem Pi znaša približno 1 sličico na sekundo, kar je popolnoma primerno za uporabo, kot je naša.

V bistvu bomo sledili odlični vadnici Edje Electronics, s spremembami, ki so jih omogočile novejše distribucije TensorFlow:

pi@raspberrypi: ~ $ workon cv

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

Zdaj moramo sestaviti Googlov protobuf. Samo sledite navodilom v koraku 4 iste odlične vadnice

Končno klonirajte in nastavite definicije modela TensorFlow - sledite 5. koraku v vadnici Edje Electronics

Sledite njihovemu zgledu tudi v 6. koraku, to je odličen uvod v odkrivanje predmetov na Raspberry Pi.

6. korak: Zaznavanje gibanja z uporabo OpenCV

Začnimo s preizkušanjem, ali se OpenCV lahko poveže z našo spletno kamero: ssh v Raspberry Pi, premaknite se na cv virtualenv (workon cv), odprite tolmač python (samo vnesite python) in vnesite naslednje ukaze python:

uvoz 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 ('Preberi velikost okvirja: {} x {}'.format (frame.shape [1], frame.shape [0])

Če boste imeli srečo, boste videli, da je OpenCV lahko prebral HD okvir iz kamere.

Za zapis tega okvirja na disk lahko uporabite cv2.imwrite (pot, okvir) in ga sftp nazaj, da si ga ogledate.

Strategija zaznavanja gibanja je precej jasna:

  1. Delajte na okvirjih z nižjo ločljivostjo - tukaj vam ni treba uporabljati polne HD
  2. Poleg tega zameglite slike, da zagotovite čim manj šuma.
  3. Ohranite tekoče povprečje zadnjih N sličic. Za to aplikacijo, kjer je hitrost sličic okrog 1 FPS (samo zato, ker TensorFlow traja nekaj časa na okvir), sem ugotovil, da N = 60 daje dobre rezultate. In ker skrbno izvajanje ne vzame več procesorja z več okvirji, kar je v redu (potrebuje več pomnilnika - vendar je to zanemarljivo, če delamo z okvirji z nižjo ločljivostjo)
  4. Od trenutnega povprečja odštejte trenutno sliko (bodite previdni pri tipkanju - omogočiti morate pozitivne in negativne vrednosti [-255.. 255], zato je treba okvir pretvoriti v int)
  5. Odštevanje lahko izvedete pri pretvorbi okvirja v sivi lestvici (in povprečja) ali pa to storite ločeno za vsak kanal RGB in nato združite rezultate (to je strategija, ki sem jo izbral, zaradi česar je občutljiva na spremembe barve)
  6. Uporabite prag na delti in odstranite hrup z erozijo in širitvijo
  7. Na koncu poiščite obrise območij z delto - na teh območjih je prišlo do gibanja in trenutna slika se razlikuje od povprečja prejšnjih slik. Po potrebi lahko najdemo tudi omejevalne škatle za te konture.

Kodo za to sem inkapsuliral v razredu python DeltaFinder, ki ga najdete v mojem githubu tukaj

Korak 7: Odkrijte predmete z uporabo programa TensorFlow

Če ste sledili postopku namestitve programa TensorFlow, ste že preizkusili, da imate nameščen in deluje TensorFlow.

Za odkrivanje ljudi na splošni sceni na prostem se modeli, ki so predhodno usposobljeni na nizu podatkov COCO, dobro obnesejo - to je ravno model, ki smo ga prenesli na koncu namestitve programa TensorFlow. Uporabiti ga moramo le za sklepanje!

Spet sem za lažje stvari inkapsuliral nalaganje in sklepanje modela v razredu TFClassify python, ki ga najdete tukaj.

8. korak: Nastavite spletni strežnik na Raspberry Pi

Nastavite spletni strežnik na Raspberry Pi
Nastavite spletni strežnik na Raspberry Pi

Najlažji način dostopa do rezultatov odkrivanja objektov je spletni brskalnik, zato nastavimo spletni strežnik na Raspberry Pi. Nato ga lahko nastavimo za prikazovanje slik iz danega imenika.

Za ogrodje spletnega strežnika obstaja več možnosti. Izbral sem Flask. Je izjemno nastavljiv in ga je enostavno razširiti s Pythonom. Ker je "obseg", ki ga potrebujemo, nepomemben, je bilo več kot dovolj.

Predlagam, da ga namestite v nov virtualenv, tako da:

pi@raspberrypi: ~ $ mkvirtualenv webserv

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

Upoštevajte, da bo pri običajni nastavitvi omrežja dosegljiv le, če je vaš brskalnik v istem brezžičnem omrežju LAN kot vaš Raspberry Pi. Na svojem internetnem usmerjevalniku lahko ustvarite preslikavo vrat / konfiguracijo vrat, da omogočite zunanji dostop - vendar to priporočam. Koda, ki sem jo napisal, ne poskuša zagotoviti varnosti, ki bi jo potrebovali pri omogočanju splošnega dostopa do interneta do vašega Raspberry Pi.

Preizkusite svojo namestitev, tako da sledite priročniku za hiter začetek delovanja Flask

9. korak: Mobilna obvestila iz Raspberry Pi z uporabo IFTTT

Mobilna obvestila iz Raspberry Pi z uporabo IFTTT
Mobilna obvestila iz Raspberry Pi z uporabo IFTTT

Resnično želim prejemati obvestila v mobilnih napravah, ko se zgodijo dogodki. V tem primeru, ko je oseba zaznana in ko se nivo vode zniža. Najlažji način, da to storim, ne da bi mi bilo treba napisati mobilno aplikacijo po meri, je uporaba IFTTT. IFTTT pomeni "Če je to potem tisto" in omogoča, da številne vrste dogodkov sprožijo številne vrste dejanj. V našem primeru nas zanima sprožilec IFTTT Maker Webhook. To nam omogoča, da sprožimo dejanje IFTTT tako, da pošljemo zahtevo HTTP POST strežniku IFTTT s posebnim ključem, dodeljenim našemu računu, skupaj s podatki, ki določajo, kaj se je zgodilo. Ukrep, ki ga izvedemo, je lahko tako preprost, kot je ustvarjanje obvestila v mobilni napravi z mobilno aplikacijo IFTTT ali karkoli bolj zapletenega od tega.

Evo, kako to storiti:

  1. Ustvarite račun IFTTT na spletnem mestu ifttt.com
  2. Ko ste prijavljeni, pojdite na stran z nastavitvami storitve Webhook in v brskalnik vnesite URL (na primer https://maker.ifttt.com/use/. Ta spletna stran vam bo pokazala vaš ključ in URL, ki ju želite uporabiti za sprožitev dejanj.
  3. Ustvarite programček IFTTT, ki bo ustvaril mobilno obvestilo, ko se sproži Webhook s podrobnostmi o dogodku:

    1. Kliknite »Moji jabolki« in nato »Nov programček«.
    2. Kliknite "+to" in izberite "webhooks". Če želite nadaljevati s podrobnostmi, kliknite »Prejemi spletno zahtevo«
    3. Dajte svojemu dogodku ime, npr. "PoolEvent" in kliknite "Ustvari sprožilec"
    4. Kliknite "+to" in izberite "obvestila". Nato izberite "Pošlji bogato obvestilo iz aplikacije IFTTT"
    5. Za "naslov" izberite nekaj takega kot "PoolPi"
    6. Za "sporočilo" napišite "Zaznan Pool Pi:" in kliknite "dodaj sestavino".. "Vrednost1".
    7. Vrnite se na URL, ki ste ga kopirali v 2. koraku. Prikazal bo URL, ki ga želite uporabiti za priklic na novo ustvarjenega programčka. Kopirajte ta URL in nadomestni znak {event} zamenjajte z imenom dogodka (v našem primeru PoolEvent)
  4. Prenesite, namestite in se prijavite v aplikacijo IFTTT za svojo mobilno napravo
  5. Zaženite ta skript python na svojem Raspberry Pi, da vidite, da deluje (upoštevajte, da lahko traja nekaj sekund ali minut, da se sproži na vaši mobilni napravi):

uvozne zahteve

requests.post ('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json = {"value1": "Pozdravljena obvestila"})

10. korak: Dodajte rele HAT v Raspberry Pi in ga povežite z elektromagnetnim ventilom

Dodajte rele HAT v Raspberry Pi in ga priključite na elektromagnetni ventil
Dodajte rele HAT v Raspberry Pi in ga priključite na elektromagnetni ventil
Dodajte rele HAT v Raspberry Pi in ga priključite na elektromagnetni ventil
Dodajte rele HAT v Raspberry Pi in ga priključite na elektromagnetni ventil
Dodajte rele HAT v Raspberry Pi in ga priključite na elektromagnetni ventil
Dodajte rele HAT v Raspberry Pi in ga priključite na elektromagnetni ventil

Preden nadaljujete s tem korakom IZKLOPITE svoj Raspberry Pi: ssh vanj in vnesite "sudo shutdown now", nato pa ga odklopite iz napajanja

Naš cilj je vklopiti in izklopiti napajanje elektromagnetnega ventila - ventila, ki lahko odpre ali zapre vodovod na podlagi 24V izmenične napetosti, ki jo dobi iz napajalnika. Releji so električne komponente, ki lahko odprejo ali zaprejo vezje na podlagi digitalnega signala, ki ga lahko zagotovi naša Raspberry Pi. Tukaj povežemo rele s temi digitalnimi signalnimi zatiči Raspberry Pi in ga zapremo v vezje med 24V AC napajanjem in elektromagnetnim ventilom.

Zatiči na Raspberry Pi, ki lahko delujejo kot digitalni vhod ali izhod, se imenujejo GPIO - splošni vhod/izhod za splošno uporabo in so vrsta 40 zatičev na strani Pi. Ko je Pi izklopljen, vanj trdno vstavite rele HAT. HAT, ki sem ga izbral, ima v njem 3 releje in uporabili bomo le enega. Predstavljajte si, kaj vse lahko storite z drugimi dvema:)

Zdaj znova vklopite Raspberry Pi. Rdeča LED "napajanje" na releju HAT bi morala vklopiti, kar kaže, da napaja Pi prek GPIO. Preizkusimo, ali ga lahko nadzorujemo: spet ssh v Pi, vnesite python in vnesite:

uvoz gpiozero

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

Slišati je treba zvočni "klik", ki označuje, da je rele vklopljen, in videti, da sveti LED, ki kaže, da je prvi rele v priključenem položaju. Zdaj lahko tipkate

dev.on ()

Kar bi obrnilo rele v položaj "izklop" (čudno, vem …) in izstop () iz pythona.

Zdaj z uporabo mostičnih kablov in daljšega kabla povežite rele med 24V napajanjem in elektromagnetnim ventilom. Oglejte si diagram. Na koncu priključite elektromagnetni ventil na pipo z adapterji in se pripravite, da vse preizkusite tako, da ponovite zgornje ukaze - vklopiti in izklopiti vodo.

Na elektromagnetni ventil pritrdite cev in drugi konec postavite globoko v bazen. Zdaj imate računalniško vodeni sistem za dolivanje bazena in čas je, da povežete senzor, ki mu pove, kdaj naj teče.

11. korak: Priključite senzor nivoja vode

Priključite senzor nivoja vode
Priključite senzor nivoja vode
Priključite senzor nivoja vode
Priključite senzor nivoja vode
Priključite senzor nivoja vode
Priključite senzor nivoja vode
Priključite senzor nivoja vode
Priključite senzor nivoja vode

Senzor nivoja vode je preprosto plovec, ki poveže električno vezje, ko je plovec spuščen, in ga prekine, ko plava navzgor. Če ga vstavite v bazen na pravi višini, se bo plovec dvignil, ko bo ustrezen nivo vode, vendar bo padel, ko bo premalo vode.

Da Raspberry Pi pozna stanje senzorja nivoja vode, potrebujemo Pi, da zazna odprt ali zaprt krog. Na srečo je to zelo preprosto: isti priključki GPIO, ki jih uporabljamo kot digitalni izhod za krmiljenje relejev, lahko delujejo kot vhodi (od tod tudi jaz v GPIO). Natančneje, če eno žico senzorja priključimo na +3,3 V na priključku GPIO, drugo žico senzorja pa na zatič, ki ga konfiguriramo kot spustni vhod (kar pomeni, da bo običajno na ravni napetosti GND), bo ta pin meril digitalno "visoko" ali "vklopljeno" napetost le, ko senzor nivoja vode zapre vezje - ko je nivo vode nizek. Kot vhod sem uporabil GPIO pin 16, ki sem ga označil na zgornji sliki.

Koda python za konfiguriranje pin -ja kot vhoda in testiranje njegovega trenutnega stanja je:

uvoz gpiozero

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

Eden od možnih izzivov je, da bi senzor, ko samo spremeni stanje, hitro nihal med stanji vklopa in izklopa. Rešitev tega je znana kot "odvračanje" in išče dosledno spremembo stanja, preden ukrepa. Knjižnica GPIOZERO ima to kodo, vendar mi iz nekega razloga ta koda ni delovala dobro. Napisal sem preprosto zanko za sprožitev opozoril IFTTT ob zaznavi dosledne spremembe stanja, ki jo najdete v mojem skladišču tukaj.

12. korak: Napišite kodo, da vse skupaj povežete

Napišite kodo, da vse skupaj povežete
Napišite kodo, da vse skupaj povežete

To je to. Naša nastavitev je končana. Lahko napišete svojo kodo, da povežete stvari v celoten sistem, ali uporabite kodo, ki jo posredujem. Če želite to narediti, preprosto ustvarite imeniško strukturo in klonirajte skladišče, na primer:

mkdir poolpi

cd poolpi git clone

Nato v imenikih motion_alert in water_level uredite datoteke z imenom ifttt_url.txt, da bodo imele URL za vašo spletno kljuko IFTTT s svojim tajnim ključem. Za različna dejanja lahko uporabite dva različna spletna kljuka.

Končno želimo, da se ta koda zažene samodejno. To najlažje dosežete s storitvijo Linux crontab. Dodamo lahko nekaj vrstic crontab za dve glavni nalogi:

  1. Zaženite naše tri programe: detektor predmetov, senzor nivoja vode in spletni strežnik pri vsakem ponovnem zagonu
  2. Počistite izhodni imenik, izbrišite stare slike in stare video datoteke (izbral sem brisanje datotek, starejših od 1 dneva, in slik, starejših od 7 dni - poskusite)

Če želite to narediti, vnesite crontab -e, ki bo odprl vaš urejevalnik besedila nano. Na dno datoteke dodajte naslednje vrstice:

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

Na koncu znova zaženite Raspberry Pi. Zdaj je pripravljen, da bo vaš bazen poln in varen.

Premislite o nastavitvi, kodi in ne pozabite označiti mojega skladišča github z zvezdico in komentirati navodila, če se vam to zdi koristno. Vedno se želim naučiti več.

Veselo izdelavo!

IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

Drugo mesto na IoT Challenge

Priporočena: