Cuprins:

Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi: 12 pași (cu imagini)
Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi: 12 pași (cu imagini)

Video: Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi: 12 pași (cu imagini)

Video: Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi: 12 pași (cu imagini)
Video: Ce înseamnă rezistența la antibiotice dupa 100 de ani de luptă cu bacteriile 2024, Noiembrie
Anonim
Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi
Pool Pi Guy - Sistem de alarmă controlat de AI și monitorizarea piscinei folosind Raspberry Pi

A avea piscină acasă este distractiv, dar vine cu o mare responsabilitate. Cea mai mare îngrijorare a mea este monitorizarea dacă cineva este lângă nesupravegheat (mai ales copiii mai mici). Cea mai mare enervare a mea este să mă asigur că linia de apă a piscinei nu intră niciodată sub intrarea pompei, ceea ce ar face pompa uscată și ar distruge-o costând $ $ $ în reparații.

Recent am aflat cum să folosesc un Raspberry Pi cu OpenCV și TensorFlow, împreună cu un senzor de nivel al apei și o electrovalvă pentru a rezolva ambele probleme - și distrează-te făcând asta!

Se pare că este și un sistem de alarmă excelent - activat prin mișcare, controlat de AI, infinit personalizabil.

Hai să ne scufundăm.

Pasul 1: Marele Plan

În acest instructable vom arăta cum să:

  1. Configurați un Raspberry Pi cu OpenCV și TensorFlow
  2. Conectați o cameră web printr-un cablu USB lung
  3. Scrieți un algoritm OpenCV pentru a detecta mișcarea
  4. Utilizați TensorFlow pentru detectarea obiectelor
  5. Configurați un server web pe Raspberry Pi pentru a afișa imaginile interesante
  6. Integrarea cu IFTTT pentru a declanșa alerte mobile în cazul în care o persoană este detectată
  7. Atașați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă care ar adăuga apă în piscină
  8. Atașați un senzor de nivel de apă la Raspberry Pi și interfațați cu acesta utilizând GPIO-ul Pi
  9. Scrieți un cod pentru a-l lipi împreună

Pasul 2: Lista de cumpărături

Lista de cumparaturi
Lista de cumparaturi

Toate componentele sunt disponibile de la Amazon. Simțiți-vă liber să experimentați și să schimbați componente - asta este jumătate din distracție!

  1. Raspberry Pi
  2. Sursă de alimentare Raspberry Pi (nu economisiți aici)
  3. Card de memorie (mai mare este mai bine)
  4. Carcasă (acesta este suficient de mare pentru a găzdui atât Pi, cât și HAT)
  5. Cameră web USB (orice cameră web va funcționa, dar doriți una care să obțină imagini bune și să echilibreze bine iluminarea)
  6. Cablu prelungitor USB (dacă este necesar - măsurați distanța dintre Pi și locul în care ați plasa camera)
  7. Placă de releu HAT (acesta are 3 relee și avem nevoie doar de unul, dar veți găsi o utilizare pentru celelalte în curând!)
  8. Solenoid
  9. Racordul solenoid 1 și racordul 2 (depinde într-adevăr de ceea ce vă potriviți solenoidul, dar acestea au funcționat pentru mine)
  10. Sursa de alimentare cu solenoid (orice 24V AC ar face)
  11. Cablu (din nou, aproape orice cablu cu 2 fire ar face - curentul este minim)
  12. Comutator plutitor la nivel de apă (acesta este doar un exemplu, verificați ce poate fi ușor conectat la piscina dvs.)
  13. Unele fire Jumper și conectori Wire

Pasul 3: Configurați Raspberry Pi

Configurați Raspberry Pi
Configurați Raspberry Pi

Raspberry Pi este un mic computer excelent. Costă doar 35 USD, rulează constant și are o mulțime de software și hardware compatibile. Configurarea este destul de ușoară:

  1. Formatați cardul SD. Acest lucru necesită o îngrijire specială - Raspberry Pi poate porni doar de pe un card SD formatat FAT. Urmați aceste instrucțiuni.
  2. Conectați Raspberry Pi la o tastatură și un mouse USB, plus un afișaj HDMI și urmați instrucțiunile din tutorialul Raspberry Pi NOOBS. Asigurați-vă că configurați WiFi și activați accesul SSH. Nu uitați să configurați o parolă pentru contul implicit pi.
  3. În configurarea rețelei dvs. de domiciliu, un IP static pentru Raspberry Pi - ar face mult mai ușor accesul la SSH.
  4. Asigurați-vă că aveți un client ssh instalat pe desktop / laptop. Pentru un PC aș recomanda Putty, pe care îl puteți instala de aici.
  5. Deconectați USB-ul și HDMI-ul de la Raspberry Pi, reporniți-l și conectați-l - dacă totul a funcționat, ar trebui să vedeți așa ceva:

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

Programele incluse în sistemul Debian GNU / Linux sunt programe gratuite; termenii exacți de distribuție pentru fiecare program sunt descriși în fișierele individuale din / usr / share / doc / * / copyright. Debian GNU / Linux vine cu ABSOLUT FĂRĂ GARANȚIE, în măsura permisă de legea aplicabilă. Ultima autentificare: luni 13 mai 10:41:40 2019 de la 104.36.248.13 pi @ raspberrypi: ~ $

Pasul 4: Configurați OpenCV

Configurați OpenCV
Configurați OpenCV

OpenCV este o colecție uimitoare de funcții de manipulare a imaginii pentru viziunea computerizată. Ne va permite să citim imagini de pe camera web, să le manipulăm pentru a găsi zone de mișcare, să le salvăm și multe altele. Configurarea pe Raspberry Pi nu este dificilă, dar necesită o îngrijire.

Începeți prin instalarea virtaulenvwrapper: vom folosi python pentru a face toate programările noastre, iar virtualenv ne va ajuta să păstrăm dependențele separate pentru OpenCV și TensorFlow vs. Flask sau GPIO:

pi @ raspberrypi: ~ $ sudo pip instala virtualenvwrapper

Acum puteți executa „mkvirtualenv” pentru a crea un mediu nou, „workon” pentru a lucra la acesta și multe altele.

Deci, să creăm un mediu pentru manipularea imaginii noastre, cu python 3 ca interpret implicit (este anul 2019, nu există niciun motiv să rămânem cu python 2 mai vechi):

pi @ raspberrypi: ~ $ mkvirtualenv cv -p python3

… (Cv) pi @ raspberrypi: ~

Acum suntem gata să instalăm OpenCV. Vom urmări în cea mai mare parte tutorialul excelent din Learn OpenCV. Urmați în mod specific pașii 1 și 2:

sudo apt -y updatesudo apt -y upgrade ## Instalare dependențe sudo apt-get -y install build-essential 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 instalați libxine2-dev libv4l-dev cd / usr / include / linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y install 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 install libvorbis-dev libxvidcore-dev libx264-dev sudo apt-get -y install libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get -y install libavresample-dev sudo apt-get -y install x264 v4l-utils sudo apt-get -y instalați libprotobuf -dev protobuf-compilator 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- Test

Acum putem instala doar OpenCV cu legături python în interiorul cv virtualenv (sunteți încă în el, nu?) Folosind

pip instalează opencv-contrib-python

Si asta e! Avem instalat OpenCV pe Raspberry Pi, gata să surprindă fotografii și videoclipuri, să le manipuleze și să fie cool.

Verificați acest lucru deschizând un interpret python și importând opencv și verificați dacă nu există erori:

(cv) pi @ raspberrypi: ~ $ python

Python 3.5.3 (implicit, 27 septembrie 2018, 17:25:39) [GCC 6.3.0 20170516] pe linux Tastați „ajutor”, „drepturi de autor”, „credite” sau „licență” pentru mai multe informații. >>> import cv2 >>>

Pasul 5: Configurați TensorFlow

Configurare TensorFlow
Configurare TensorFlow

TensorFlow este un cadru de învățare automată / AI dezvoltat și întreținut de Google. Are un suport extins pentru modele de învățare profundă pentru o varietate de sarcini, inclusiv detectarea obiectelor în imagini, iar acum este destul de simplu de instalat pe Raspberry Pi. Performanța modelelor sale ușoare pe micul Pi este de aproximativ 1 cadru pe secundă, ceea ce este perfect adecvat pentru o aplicație ca a noastră.

Vom urma practic tutorialul excelent de la Edje Electronics, cu modificări făcute posibile de distribuțiile mai recente TensorFlow:

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

Acum trebuie să compilăm protobuful Google. Doar urmați instrucțiunile din pasul 4 al aceluiași tutorial excelent

În cele din urmă, clonați și configurați definițiile modelului TensorFlow - urmați pasul 5 din tutorialul Edje Electronics

Nu ezitați să urmați exemplul lor și la pasul 6, este o introducere excelentă pentru detectarea obiectelor pe Raspberry Pi.

Pasul 6: Detectarea mișcării folosind OpenCV

Să începem prin a testa că OpenCV se poate interfața cu camera noastră web: ssh în Raspberry Pi, treceți la cv virtualenv (workon cv), deschideți un interpret python (introduceți doar python) și introduceți următoarele comenzi python:

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 ('Citește dimensiunea cadrului: {} x {}'.format (frame.shape [1], frame.shape [0])

Cu puțin noroc, veți vedea că OpenCV a reușit să citească un cadru HD de pe cameră.

Puteți utiliza cv2.imwrite (cale, cadru) pentru a scrie acel cadru pe disc și sftp-l înapoi pentru a avea un aspect real.

Strategia de detectare a mișcării este destul de simplă:

  1. Lucrați pe cadre cu rezoluție mai mică - nu este nevoie să operați pe full HD aici
  2. Mai mult, estompați imaginile pentru a asigura cât mai puțin zgomot posibil.
  3. Păstrați o medie de rulare a ultimelor N cadre. Pentru această aplicație, unde rata de cadre este de aproximativ 1 FPS (doar pentru că TensorFlow durează ceva timp pe cadru), am constatat că N = 60 dă rezultate bune. Și întrucât o implementare atentă nu necesită mai mult CPU cu mai multe cadre care este OK (necesită mai multă memorie - dar acest lucru este neglijabil atunci când lucrăm cu cadre cu rezoluție mai mică)
  4. Scadeți imaginea curentă din media de rulare (trebuie doar să aveți grijă la tastare - trebuie să permiteți valori pozitive și negative [-255.. 255], deci cadrul trebuie convertit în int)
  5. Puteți efectua scăderea pe o conversie la scară de gri a cadrului (și a mediei) sau o puteți face separat pentru fiecare dintre canalele RGB și apoi puteți combina rezultatele (care este strategia pe care am ales-o, făcându-l sensibil la schimbările de culoare)
  6. Folosiți un prag pe deltă și eliminați zgomotul prin eroziune și dilatare
  7. În cele din urmă, căutați contururile zonelor cu o deltă - aceste zone sunt locul în care s-a întâmplat mișcarea, iar imaginea actuală este diferită de media imaginilor anterioare. Dacă mai este nevoie, putem găsi cutii de delimitare pentru aceste contururi.

Am încapsulat codul pentru a face acest lucru în clasa python DeltaFinder pe care o puteți găsi în github-ul meu aici

Pasul 7: Detectați obiecte folosind TensorFlow

Dacă ați urmat procedura de instalare TensorFlow, ați testat deja că aveți TensorFlow instalat și funcțional.

În scopul detectării oamenilor într-o scenă generală în aer liber, modelele care sunt pregătite în prealabil pe setul de date COCO au performanțe destul de bune - care este exact modelul pe care l-am descărcat la sfârșitul instalării TensorFlow. Trebuie doar să-l folosim pentru deducere!

Din nou, am încapsulat încărcarea și inferența modelului în clasa python TFClassify pentru a ușura lucrurile, pe care le puteți găsi aici.

Pasul 8: configurați un server web pe Raspberry Pi

Configurați un server web pe Raspberry Pi
Configurați un server web pe Raspberry Pi

Cel mai simplu mod de a accesa rezultatele detectării obiectelor este un browser web, așa că haideți să configurăm un server web pe Raspberry Pi. Apoi îl putem configura pentru a difuza imagini dintr-un anumit director.

Există mai multe opțiuni pentru un cadru de server web. Am ales Flask. Este extrem de configurabil și ușor de extins cu Python. Întrucât „scara” de care avem nevoie este banală, a fost mai mult decât suficientă.

Vă sugerez să îl instalați într-un nou virtualenv, deci:

pi @ raspberrypi: ~ $ mkvirtualenv webserv

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

Rețineți că, cu o configurare normală a rețelei, acesta va fi accesibil numai atunci când browserul dvs. se află pe aceeași rețea LAN wireless ca Raspberry Pi. Ați putea crea o configurație de cartografiere a porturilor / NAT pe routerul dvs. de internet pentru a permite accesul extern - dar vă recomand să nu faceți acest lucru. Codul pe care l-am scris nu încearcă să ofere securitatea de care ați avea nevoie atunci când permiteți accesul general la Internet la Raspberry Pi.

Testați-vă instalarea urmând ghidul de pornire rapidă Flask

Pasul 9: notificări mobile de la Raspberry Pi folosind IFTTT

Notificări mobile de la Raspberry Pi folosind IFTTT
Notificări mobile de la Raspberry Pi folosind IFTTT

Îmi doresc foarte mult să primesc notificări mobile atunci când apar evenimente. În acest caz, când este detectată o persoană și când nivelul apei scade. Cea mai simplă modalitate pe care am găsit-o să fac asta, fără a fi nevoie să scriu o aplicație mobilă personalizată, este folosirea IFTTT. IFTTT înseamnă „If This Then That” și permite multor tipuri de evenimente să declanșeze mai multe tipuri de acțiuni. În cazul nostru, suntem interesați de declanșatorul IFTTT Maker Webhook. Acest lucru ne permite să declanșăm o acțiune IFTTT făcând o cerere HTTP POST către serverul IFTTT cu o cheie specială atribuită contului nostru, împreună cu date care specifică ce s-a întâmplat. Acțiunea pe care o luăm poate fi la fel de simplă precum crearea unei notificări pe dispozitivul nostru mobil utilizând aplicația mobilă IFTTT sau orice altceva mai complex decât acesta.

Iată cum puteți face acest lucru:

  1. Creați un cont IFTTT pe ifttt.com
  2. În timp ce sunteți conectat, accesați pagina de setări a serviciului Webhook și introduceți adresa URL în browserul dvs. (ceva de genul https://maker.ifttt.com/use/. Această pagină web vă va arăta cheia și adresa URL de utilizat pentru a declanșa acțiuni.
  3. Creați un applet IFTTT care va genera o notificare mobilă atunci când Webhook-ul este declanșat cu detaliile evenimentului:

    1. Faceți clic pe „Appletele mele” și apoi pe „Applet nou”.
    2. Faceți clic pe „+ acest lucru” și alegeți „webhooks”. Faceți clic pe „Primiți o solicitare web” pentru a accesa detaliile
    3. Dă-i evenimentului un nume, de ex. „PoolEvent” și faceți clic pe „Creați declanșatorul”
    4. Faceți clic pe „+ că” și alegeți „notificări”. Apoi alegeți „Trimiteți o notificare bogată din aplicația IFTTT”
    5. Pentru „titlu” alegeți ceva de genul „PoolPi”
    6. Pentru „mesaj” scrieți „Pool Pi detectat:” și faceți clic pe „adăugați ingredient”.. „Valoare1”.
    7. Reveniți la URL-ul pe care l-ați copiat la pasul 2. Acesta va afișa adresa URL de utilizat pentru a invoca applet-ul nou creat. Copiați adresa URL respectivă, înlocuind substituentul {event} cu numele evenimentului (în exemplu PoolEvent)
  4. Descărcați, instalați și conectați-vă la aplicația IFTTT pentru dispozitivul dvs. mobil
  5. Rulați acest script python pe Raspberry Pi pentru a-l vedea funcționând (rețineți că poate dura câteva secunde sau minute să se declanșeze pe dispozitivul dvs. mobil):

solicitări de import

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

Pasul 10: Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă

Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă
Adăugați un releu HAT la Raspberry Pi și conectați-l la o electrovalvă

Înainte de a continua cu acest pas OPRIȚI Raspberry Pi: ssh la acesta și tastați „sudo shutdown now”, apoi deconectați-l de la alimentare

Scopul nostru este să pornim și să oprim sursa de alimentare a unei electrovalve - o supapă care poate deschide sau închide alimentarea cu apă pe baza unei curent de 24V CA pe care o obține de la o sursă de alimentare. Releele sunt componentele electrice care pot deschide sau închide un circuit pe baza unui semnal digital pe care Raspberry Pi îl poate furniza. Ceea ce facem aici este să conectați un releu la acești pini de semnal digitali ai Raspberry Pi și să-l puneți să închidă circuitul dintre sursa de alimentare de 24V AC și electrovalva.

Pinii de pe Raspberry Pi care pot acționa ca intrare sau ieșire digitală se numesc GPIO - General Purpose Input / Output și sunt rândul de 40 de pini de pe partea laterală a Pi. Cu Pi oprit și introduceți releul HAT ferm în el. HAT-ul pe care l-am ales are 3 relee în el și vom folosi doar unul dintre ele. Imaginați-vă tot ce puteți face cu celelalte două:)

Acum reporniți Raspberry Pi. LED-ul roșu „putere” al releului HAT ar trebui să se aprindă, indicând faptul că primește energie de la Pi prin GPIO. Să testăm că îl putem controla: ssh din nou în Pi, introduceți python și tastați:

import gpiozero

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

Ar trebui să auziți un „clic” audibil, care să indice faptul că releul este activat și să vedeți un LED aprins care arată că primul releu este în poziția conectată. Acum puteți tasta

dev.on ()

Ceea ce ar transforma releul în poziția „off” (ciudat, știu …) și ar ieși () din python.

Acum, folosind cabluri jumper și cablul mai lung conectați releul între sursa de alimentare de 24V și electrovalva. Vezi diagrama. În cele din urmă, conectați electrovalva la un robinet folosind adaptoarele și pregătiți-vă să testați totul repetând comenzile de mai sus - acestea ar trebui să pornească și să oprească apa.

Atașați un furtun la electrovalvă și puneți celălalt capăt adânc în piscină. Acum aveți un sistem top-off pentru piscină controlat de computer și este timpul să conectați un senzor pentru a-i spune când să ruleze.

Pasul 11: Conectați un senzor de nivel al apei

Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei
Conectați un senzor de nivel al apei

Un senzor de nivel al apei este pur și simplu un plutitor care conectează un circuit electric când plutitorul este în jos și îl rupe atunci când pluteste în sus. Dacă îl introduceți în piscină la înălțimea potrivită, plutitorul va fi ridicat atunci când nivelul apei este adecvat, dar va cădea atunci când nu există suficientă apă.

Pentru ca Raspberry Pi să cunoască starea senzorului de nivel al apei, avem nevoie ca Pi să simtă un circuit deschis sau închis. Din fericire, acest lucru este foarte simplu: aceiași conectori GPIO pe care îi folosim ca ieșire digitală pentru a controla releele pot acționa ca intrări (de unde I în GPIO). Mai exact, dacă conectăm un fir al senzorului la + 3,3V pe conectorul GPIO și celălalt fir al senzorului la un pin pe care îl configurăm ca intrare pull-down (ceea ce înseamnă că va fi în mod normal la nivelul de tensiune GND), acel pin va măsura o tensiune digitală „ridicată” sau „pornită” numai atunci când senzorul de nivel al apei închide circuitul - când nivelul apei este scăzut. Am folosit pinul GPIO 16 ca intrare, pe care l-am marcat în imaginea de mai sus.

Codul python pentru a configura pinul ca intrare și pentru a testa starea sa curentă este:

import gpiozero

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

O potențială provocare este că atunci când senzorul doar schimbă starea, acesta va oscila rapid între stările de pornire și oprire. Soluția la aceasta este cunoscută sub denumirea de „denunțare” și caută o schimbare consecventă a stării înainte de a lua măsuri. Biblioteca GPIOZERO are cod pentru a face acest lucru, dar din anumite motive acel cod nu a funcționat bine pentru mine. Am scris o buclă simplă pentru a declanșa alerte IFTTT atunci când este detectată o modificare de stare consecventă, pe care o puteți găsi în depozitul meu aici.

Pasul 12: Scrieți codul pentru a-l lega împreună

Scrieți cod pentru a le lega împreună
Scrieți cod pentru a le lega împreună

Asta e. Configurarea noastră este completă. Puteți scrie propriul cod pentru a lega lucrurile într-un sistem complet sau puteți utiliza codul pe care îl ofer. Pentru a face acest lucru, creați structura de directoare și clonați depozitul, astfel:

mkdir poolpi

cd poolpi git clone

Apoi, editați fișierele numite ifttt_url.txt în directoarele motion_alert și water_level pentru a avea adresa URL pentru propriul dvs. cârlig web IFTTT cu cheia dvs. secretă. Puteți utiliza două cârlige web diferite pentru acțiuni diferite.

În cele din urmă, dorim ca acest cod să ruleze automat. Cel mai simplu mod de a realiza acest lucru este prin serviciul Linux crontab. Putem adăuga câteva linii crontab pentru două sarcini principale:

  1. Rulați cele trei programe: detectorul de obiecte, senzorul de nivel al apei și serverul web la fiecare repornire
  2. Curățați directorul de ieșire, ștergând imagini vechi și fișiere video vechi (am ales să șterg fișiere mai vechi de 1 zi și imagini mai vechi de 7 zile - nu ezitați să experimentați)

Pentru a face acest tip, crontab -e care vă va deschide editorul de text nano. Adăugați următoarele linii în partea de jos a fișierului:

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

În cele din urmă, reporniți Raspberry Pi. Acum este gata să vă mențineți piscina plină și în siguranță.

Fă-ți de treabă cu configurarea, codul și nu uita să stochezi depozitul meu github și să comentezi instrucțiunile dacă ți se pare util. Întotdeauna caut să aflu mai multe.

Fericire fericită!

Provocarea IoT
Provocarea IoT
Provocarea IoT
Provocarea IoT

Runner Up în IoT Challenge

Recomandat: