INHOUDSOPGAWE:

Pool Pi Guy - AI -aangedrewe alarmstelsel en swembadmonitering met behulp van Framboos Pi: 12 stappe (met foto's)
Pool Pi Guy - AI -aangedrewe alarmstelsel en swembadmonitering met behulp van Framboos Pi: 12 stappe (met foto's)

Video: Pool Pi Guy - AI -aangedrewe alarmstelsel en swembadmonitering met behulp van Framboos Pi: 12 stappe (met foto's)

Video: Pool Pi Guy - AI -aangedrewe alarmstelsel en swembadmonitering met behulp van Framboos Pi: 12 stappe (met foto's)
Video: Апокалиптическое зрелище! - Разрушающийся заброшенный дом врача в Португалии 2024, Julie
Anonim
Pool Pi Guy - AI -aangedrewe alarmstelsel en swembadmonitering met behulp van Framboos Pi
Pool Pi Guy - AI -aangedrewe alarmstelsel en swembadmonitering met behulp van Framboos Pi

Dit is lekker om 'n swembad by die huis te hê, maar dit is verantwoordelik. My grootste bekommernis is om te kyk of iemand sonder toesig naby die swembad is (veral jonger kinders). My grootste ergernis is om seker te maak dat die swembadwaterleiding nooit onder die ingang van die pomp val nie, wat die pomp sou laat opdroog en dit kos $ $ 000 aan herstelwerk.

Ek het onlangs uitgevind hoe om 'n Raspberry Pi met OpenCV en TensorFlow te gebruik, tesame met 'n watervlak sensor en 'n solenoïde klep om albei probleme op te los - en om pret te hê!

Dit blyk ook 'n uitstekende alarmstelsel te wees - bewegings geaktiveer, AI -beheerde, oneindig aanpasbaar.

Kom ons duik in.

Stap 1: Groot plan

In hierdie instruksies sal ons wys hoe om:

  1. Stel 'n Raspberry Pi op met OpenCV en TensorFlow
  2. Koppel 'n webkamera deur 'n lang USB -kabel
  3. Skryf 'n OpenCV -algoritme om beweging op te spoor
  4. Gebruik TensorFlow vir opsporing van voorwerpe
  5. Stel 'n webbediener op die Raspberry Pi op om die interessante beelde te wys
  6. Integreer met IFTTT om mobiele waarskuwings te aktiveer as 'n persoon opgespoor word
  7. Koppel 'n relais -hoed aan die Raspberry Pi en koppel dit aan 'n magneetklep wat water by die swembad kan voeg
  8. Koppel 'n watervlak sensor aan die Raspberry Pi en koppel dit met die GPIO van die Pi
  9. Skryf 'n kode om dit aanmekaar te plak

Stap 2: Inkopielys

Inkopielys
Inkopielys

Al die komponente is geredelik beskikbaar by Amazon. Eksperimenteer en ruil komponente uit - dit is die helfte van die plesier!

  1. Framboos Pi
  2. Raspberry Pi -kragtoevoer (moenie hier skimp nie)
  3. Geheue kaart (groter is beter)
  4. Omhulsel (hierdie een is groot genoeg om beide die Pi en die hoed te huisves)
  5. USB -webkamera (enige webkamera kan dit doen, maar u wil een hê wat goeie beelde kry en die beligting goed balanseer)
  6. USB -verlengkabel (meet indien nodig - die afstand tussen die Pi en die plek waar u die kamera sou plaas)
  7. Relay board HAT (hierdie een het 3 relais en ons benodig net een, maar u sal die ander gou vind!)
  8. Solenoïde
  9. Magnetiese passtuk 1 en passtuk 2 (dit hang regtig af van waarby u die solenoïde pas, maar dit werk vir my)
  10. Magneetvoeding (enige 24V wisselstroom sal werk)
  11. Kabel (weereens, byna elke 2 -draadskabel sou doen - die stroom is minimaal)
  12. Watervlak -vlotskakelaar (dit is slegs 'n voorbeeld, kyk wat maklik aan u swembad gekoppel kan word)
  13. Sommige springdrade en draadverbindings

Stap 3: Stel u Raspberry Pi op

Stel u Framboos Pi op
Stel u Framboos Pi op

Raspberry Pi is 'n wonderlike klein rekenaar. Dit kos slegs $ 35, werk konsekwent en bevat baie versoenbare sagteware en hardeware. Dit is redelik maklik om dit op te stel:

  1. Formateer u SD -kaart. Dit verg spesiale sorg - Raspberry Pi kan slegs vanaf 'n FAT -geformateerde SD -kaart opstart. Volg hierdie instruksies.
  2. Koppel die Raspberry Pi aan 'n USB -sleutelbord en muis, plus 'n HDMI -skerm, en volg die instruksies in die Raspberry Pi NOOBS -tutoriaal. Maak seker dat u WiFi opstel en SSH -toegang moontlik maak. Moenie vergeet om 'n wagwoord vir die standaard pi -rekening op te stel nie.
  3. Op u tuisnetwerk kan u 'n statiese IP vir die Raspberry Pi opstel - dit sal dit baie makliker maak om na SSH te gaan.
  4. Maak seker dat u 'n ssh -kliënt op u lessenaar/skootrekenaar geïnstalleer het. Vir 'n rekenaar sal ek Putty aanbeveel, wat u hier kan installeer.
  5. Haal die USB en HDMI van die Raspberry Pi af, herlaai dit en ssh daarin - as dit alles werk, moet u so iets sien:

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

Die programme wat by die Debian GNU/Linux -stelsel ingesluit is, is gratis sagteware; die presiese verspreidingsterme vir elke program word beskryf in die individuele lêers in/usr/share/doc/*/copyright. Debian GNU/Linux kom absoluut GEEN GARANTIE in die mate wat die toepaslike wetgewing dit toelaat nie. Laaste aanmelding: Ma 13 Mei 10:41:40 2019 vanaf 104.36.248.13 pi@raspberrypi: ~ $

Stap 4: Stel OpenCV op

Stel OpenCV op
Stel OpenCV op

OpenCV is 'n wonderlike versameling funksies vir beeldmanipulasie vir rekenaarvisie. Dit sal ons toelaat om beelde van die webkamera te lees, dit te manipuleer om bewegingsgebiede te vind, dit te stoor en meer. Die installering op die Raspberry Pi is nie moeilik nie, maar dit verg 'n bietjie sorg.

Begin met die installering van virtaulenvwrapper: ons sal python gebruik om al ons programme te doen, en virtualenv sal ons help om afhanklikheid van OpenCV en TensorFlow vs. Flask of GPIO apart te hou:

pi@raspberrypi: ~ $ sudo pip installeer virtualenvwrapper

Nou kan u 'mkvirtualenv' uitvoer om 'n nuwe omgewing te skep, 'workon' om daaraan te werk, en meer.

Laat ons dus 'n omgewing skep vir ons beeldmanipulasie, met python 3 as die standaard tolk (dit is 2019, daar is geen rede om by die ouer python 2 te bly nie):

pi@raspberrypi: ~ $ mkvirtualenv cv -p python3

… (cv) pi@raspberrypi: ~

Ons is nou gereed om OpenCV te installeer. Ons sal meestal die uitstekende tutoriaal in Learn OpenCV volg. Volg spesifiek hul stap 1 en 2:

sudo apt -y updatesudo apt -y upgrade ## Installeer afhanklikhede sudo apt-get -y installeer build-essential checkinstall cmake pkg-config yasm sudo apt-get -y installeer git gfortran sudo apt-get -y installeer libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y installeer libtiff5-dev sudo apt-get -y installeer libtiff-dev sudo apt-get -y installeer 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 installeer libprotobuf -dev protobuf-samesteller sudo apt-get -y installeer libgoogle-glog-dev libgflags-dev sudo apt-get -y installeer libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get install libqtgui4 sudo apt-get install libqt4- toets

Nou kan ons OpenCV net installeer met pythonbindings binne die cv virtualenv (u is nog steeds daarin, reg?)

pip installeer opencv-contrib-python

En dit is dit! Ons het OpenCV geïnstalleer op ons Raspberry Pi, gereed om foto's en video's op te neem, te manipuleer en cool te wees.

Kontroleer dit deur 'n luislang -tolk oop te maak en opencv in te voer en te kontroleer dat daar geen foute is nie:

(cv) pi@raspberrypi: ~ $ python

Python 3.5.3 (standaard 27 September 2018, 17:25:39) [GCC 6.3.0 20170516] op Linux Tik "help", "kopiereg", "krediete" of "lisensie" vir meer inligting. >>> invoer cv2 >>>

Stap 5: Stel TensorFlow op

Stel TensorFlow op
Stel TensorFlow op

TensorFlow is 'n raamwerk vir masjienleer / AI wat deur Google ontwikkel en onderhou is. Dit het uitgebreide ondersteuning vir diepgaande modelle vir 'n verskeidenheid take, insluitend voorwerpopsporing in beelde, en is nou redelik eenvoudig om op Raspberry Pi te installeer. Die prestasie van sy liggewigmodelle op die klein Pi is ongeveer 1 raam per sekonde, wat heeltemal voldoende is vir 'n toepassing soos ons s'n.

Ons sal basies die uitstekende tutoriaal van Edje Electronics volg, met aanpassings wat moontlik gemaak is deur meer onlangse TensorFlow -verspreidings:

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 installeer kussing lxml jupyter matplotlib cython (cv) pi@raspberrypi: ~ $ sudo apt-get install python-tk

Nou moet ons Google se protobuf saamstel. Volg net die instruksies in stap 4 van dieselfde uitstekende tutoriaal

Laastens, kloon en stel TensorFlow se modeldefinisies op - volg stap 5 in Edje Electronics -tutoriaal

Volg gerus ook hul voorbeeld in stap 6, dit is 'n uitstekende inleiding tot die opsporing van voorwerpe op die Raspberry Pi.

Stap 6: Bewegingsopsporing met behulp van OpenCV

Kom ons begin deur te toets dat OpenCV met ons webcam kan koppel: ssh in die Raspberry Pi, gaan na die cv virtualenv (workon cv), maak 'n luislang -tolk oop (tik net python) en voer die volgende luislangopdragte in:

voer cv2 in

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 raamgrootte: {} x {}'.formaat (frame.shape [1], frame.shape [0])

Met enige geluk sal u sien dat OpenCV 'n HD -raam van die kamera af kon lees.

U kan cv2.imwrite (pad, raam) gebruik om die raam op die skyf te skryf en dit terug te sftp om werklik te kyk.

Die strategie om beweging op te spoor is redelik eenvoudig:

  1. Werk op rame met 'n laer resolusie - hier hoef u nie op volle HD te werk nie
  2. Vervaag ook die beelde om so min as moontlik geraas te verseker.
  3. Hou 'n lopende gemiddelde van die laaste N -rame. Vir hierdie toepassing, waar die raamkoers ongeveer 1 FPS is (net omdat TensorFlow tyd per raam neem), het ek gevind dat N = 60 goeie resultate lewer. En aangesien 'n noukeurige implementering nie meer CPU benodig nie, is dit meer ok (dit verg meer geheue - maar dit is onbeduidend as ons met die rame met 'n laer resolusie werk)
  4. Trek die huidige beeld van die lopende gemiddelde af (wees versigtig met tik - u moet positiewe en negatiewe waardes [-255.. 255] toelaat, dus die raam moet omgeskakel word na int)
  5. U kan die aftrekking uitvoer op 'n grysskaalomskakeling van die raam (en die gemiddelde), of dit afsonderlik doen vir elk van die RGB-kanale en dan die resultate kombineer (dit is die strategie wat ek gekies het, wat dit sensitief maak vir kleurveranderings)
  6. Gebruik 'n drempel op die delta en verwyder geraas deur erosie en verwyding
  7. Uiteindelik soek u die kontoere van gebiede met 'n delta - dit is waar bewegings plaasgevind het en die huidige beeld verskil van die gemiddelde van vorige beelde. Ons kan verder afgrendeldose vir hierdie kontoere vind indien nodig.

Ek het die kode om dit te doen in die DeltaFinder -python -klas opgesluit wat u in my github hier kan vind

Stap 7: Ontdek voorwerpe met behulp van TensorFlow

As u die TensorFlow -installasieprosedure gevolg het, het u reeds getoets dat TensorFlow geïnstalleer en werk.

Om mense in 'n algemene buitelug -toneel op te spoor, presteer modelle wat vooraf opgelei is op die COCO -datastel, redelik goed - dit is presies die model wat ons afgelaai het aan die einde van die TensorFlow -installasie. Ons moet dit net vir afleiding gebruik!

Ek het weer die laai en afleiding van die model in die TFClassify -python -klas ingesluit om dinge makliker te maak, wat u hier kan vind.

Stap 8: Stel 'n webbediener op die Raspberry Pi op

Stel 'n webbediener op die Raspberry Pi op
Stel 'n webbediener op die Raspberry Pi op

Die maklikste manier om toegang tot die objekopsporingsresultate te verkry, is 'n webblaaier, dus laat ons 'n webbediener op die Raspberry Pi opstel. Ons kan dit dan opstel om foto's uit 'n gegewe gids te vertoon.

Daar is verskeie opsies vir 'n webbedienerraamwerk. Ek het Flask gekies. Dit is uiters konfigureerbaar en maklik om uit te brei met Python. Aangesien die 'skaal' wat ons nodig het triviaal is, was dit meer as genoeg.

Ek stel voor dat u dit in 'n nuwe virtualenv installeer, dus:

pi@raspberrypi: ~ $ mkvirtualenv webserv

(webserv) pi@raspberrypi: ~ $ pip installeer fles

Let daarop dat dit met 'n normale netwerkopstelling slegs bereikbaar is as u blaaier op dieselfde draadlose LAN as u Raspberry Pi is. U kan 'n poortkartering / NAT -konfigurasie op u internetrouter maak om eksterne toegang toe te laat - maar ek beveel dit aan. Die kode wat ek geskryf het, poog nie om die beveiliging te bied wat u benodig as u algemene internettoegang tot u Raspberry Pi toelaat nie.

Toets u installasie deur die vinnige gids vir flesse te volg

Stap 9: Mobiele kennisgewings van Raspberry Pi met behulp van IFTTT

Mobiele kennisgewings van Raspberry Pi met behulp van IFTTT
Mobiele kennisgewings van Raspberry Pi met behulp van IFTTT

Ek wil regtig mobiele kennisgewings kry wanneer gebeure plaasvind. In hierdie geval, wanneer 'n persoon opgespoor word en die watervlak laag is. Die eenvoudigste manier om dit te doen, sonder om 'n aangepaste foon te hoef te skryf, is om IFTTT te gebruik. IFTTT staan vir "If This Then That" en stel baie soorte gebeurtenisse in staat om baie soorte aksies te veroorsaak. In ons geval is ons geïnteresseerd in die IFTTT Maker Webhook -sneller. Dit stel ons in staat om 'n IFTTT -aksie te aktiveer deur 'n HTTP POST -versoek aan die IFTTT -bediener te rig, met 'n spesiale sleutel wat aan ons rekening toegewys is, tesame met data wat spesifiseer wat gebeur het. Die aksie wat ons onderneem, kan so eenvoudig wees as om 'n kennisgewing op ons mobiele toestel te maak met behulp van die IFTTT -mobiele app, of enigiets meer ingewikkeld as dit.

Hier is hoe u dit moet doen:

  1. Skep 'n IFTTT -rekening op ifttt.com
  2. Terwyl u aangemeld is, gaan na die Webhook -diensinstellingsbladsy en voer die URL in u blaaier in (iets soos https://maker.ifttt.com/use/. Die webbladsy wys u u sleutel en die URL wat u moet gebruik om aksies te aktiveer.
  3. Skep 'n IFTTT -applet wat 'n mobiele kennisgewing sal genereer wanneer die Webhook geaktiveer word met die besonderhede van die gebeurtenis:

    1. Klik op "My applets" en dan op "New Applet".
    2. Klik op "+dit" en kies "webhooks". Klik op 'Ontvang 'n webversoek' om na die besonderhede te gaan
    3. Gee jou geleentheid 'n naam, bv. "PoolEvent" en klik op "Create trigger"
    4. Klik op "+dit" en kies "kennisgewings". Kies dan 'Stuur 'n ryk kennisgewing vanaf die IFTTT -app'
    5. Vir 'titel', kies iets soos 'PoolPi'
    6. Vir "boodskap" skryf "Pool Pi bespeur:" en klik op "voeg bestanddeel by".. "Waarde1".
    7. Gaan terug na die URL wat u in stap 2. gekopieer het. Dit sal die URL wys wat u moet gebruik om u nuutgeskepte applet aan te roep. Kopieer die URL en vervang die plekhouer {event} met die gebeurtenisnaam (byvoorbeeld PoolEvent)
  4. Laai, installeer en meld aan by die IFTTT -app vir u mobiele toestel
  5. Begin hierdie python -script op u Raspberry Pi om te sien hoe dit werk (let op dat dit 'n paar sekondes of minute kan neem om op u mobiele toestel te aktiveer):

invoer versoeke

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

Stap 10: Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep

Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep
Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep
Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep
Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep
Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep
Voeg 'n Relay HAT by die Raspberry Pi en koppel dit aan 'n magneetklep

SKAKEL u Raspberry Pi uit: ssh voordat u met hierdie stap voortgaan: tik 'sudo shutdown now' en koppel dit dan van die krag af

Ons doel is om die kragtoevoer na 'n magneetklep aan en af te skakel - 'n klep wat die watertoevoer kan oop- of toemaak op grond van 24V wisselstroom wat dit van 'n kragtoevoer kry. Relais is die elektriese komponente wat 'n stroombaan kan oopmaak of toemaak op grond van 'n digitale sein wat ons Raspberry Pi kan lewer. Wat ons hier doen, is om 'n relais aan te sluit op hierdie digitale seinpenne van die Raspberry Pi, en dit te laat sluit die stroombaan tussen die 24V wisselstroombron en die magneetklep.

Die penne op die Raspberry Pi wat as digitale invoer of uitset kan dien, word GPIO genoem - Input/Output vir algemene doeleindes, en dit is die ry van 40 penne aan die kant van die Pi. Met die Pi afgeskakel en steek die relais -hoed stewig daarin. Die HAT wat ek gekies het, bevat drie aflosse, en ons sal slegs een daarvan gebruik. Stel jou voor wat jy met die ander twee kan doen:)

Skakel nou die Raspberry Pi weer aan. Die rooi "krag" -LED op die relais -HAT moet aanskakel, wat aandui dat dit krag kry van die Pi deur die GPIO. Kom ons toets of ons dit kan beheer: ssh weer in die Pi, voer python in en tik:

invoer gpiozero

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

U moet 'n hoorbare 'klik' hoor wat aandui dat die relais ingeskakel is, en 'n LED aanskakel wat wys dat die eerste relais in die gekoppelde posisie is. U kan nou tik

dev.on ()

Dit sal die aflos na die "af" -posisie draai (vreemd, ek weet …) en die pyton verlaat ().

Verbind nou die relais tussen die 24V -kragtoevoer en die magneetklep met behulp van springkabels en die langer kabel. Sien die diagram. Sluit laastens die magneetklep aan op 'n kraan met behulp van die adapters en maak gereed om dit alles te toets deur die opdragte hierbo te herhaal - dit moet die water aan en af skakel.

Heg 'n slang aan die magneetklep en sit die ander kant diep in die swembad. U het nou 'n rekenaar-beheerde swembad-aflaai-stelsel, en dit is tyd om 'n sensor aan te sluit om aan te dui wanneer dit moet werk.

Stap 11: Koppel 'n watervlak sensor

Koppel 'n watervlak sensor
Koppel 'n watervlak sensor
Koppel 'n watervlak sensor
Koppel 'n watervlak sensor
Koppel 'n watervlak sensor
Koppel 'n watervlak sensor
Koppel 'n watervlak sensor
Koppel 'n watervlak sensor

'N Watervlak sensor is bloot 'n vlotter wat 'n elektriese stroombaan verbind wanneer die vlot af is, en dit breek wanneer dit dryf. As u dit op die regte hoogte in die swembad plaas, sal die vlot styg as die watervlak voldoende is, maar daal as daar nie genoeg water is nie.

Vir die Raspberry Pi om die status van die watervlaksensor te ken, benodig ons die Pi om 'n oop of geslote stroombaan te voel. Gelukkig is dit baie eenvoudig: dieselfde GPIO -verbindings wat ons as digitale uitset gebruik om die relais te beheer, kan as insette dien (vandaar die I in GPIO). As ons spesifiek een draad van die sensor aansluit op +3.3V op die GPIO-aansluiting en die ander sensordraad op 'n pen wat ons as aftrekinvoer instel (wat beteken dat dit normaalweg op GND-spanningsvlak sal wees), sal die pen meet 'n digitale "hoë" of "aan" spanning slegs wanneer die watervlak sensor die stroombaan sluit - as die watervlak laag is. Ek het GPIO -pen 16 as invoer gebruik, wat ek in die prent hierbo gemerk het.

Die luislangkode om die pen as invoer op te stel en die huidige toestand daarvan te toets, is:

invoer gpiozero

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

Een moontlike uitdaging is dat wanneer die sensor net van toestand verander, dit vinnig tussen die aan- en af -toestande sal ossilleer. Die oplossing hiervoor staan bekend as 'debouncing' en soek 'n konstante staatsverandering voordat daar opgetree word. Die GPIOZERO -biblioteek het kode om dit te doen, maar die kode het om een of ander rede nie goed vir my gewerk nie. Ek het 'n eenvoudige lus geskryf om IFTTT -waarskuwings te aktiveer wanneer 'n konstante toestandverandering opgespoor word, wat u hier in my bewaarplek kan vind.

Stap 12: Skryf kode om dit saam te bind

Skryf kode om alles saam te bind
Skryf kode om alles saam te bind

Dis dit. Ons opstelling is voltooi. U kan u eie kode skryf om dinge saam te voeg tot 'n volledige stelsel, of die kode wat ek verskaf, gebruik. Om dit te doen, skep net die gidsstruktuur en kloon die bewaarplek, soos volg:

mkdir poolpi

cd poolpi git kloon

Wysig vervolgens die lêers met die naam ifttt_url.txt in die gidse motion_alert en water_level om die URL van u eie IFTTT -webhaak met u geheime sleutel te hê. U kan twee verskillende webhake gebruik vir verskillende aksies.

Uiteindelik wil ons hê dat hierdie kode outomaties moet werk. Die maklikste manier om dit te bereik, is deur die Linux crontab -diens. Ons kan 'n paar kruislyne byvoeg vir twee hooftake:

  1. Begin ons drie programme: die objekdetektor, die watervlak sensor en die webbediener by elke herlaai
  2. Maak die uitvoergids skoon, verwyder ou foto's en ou videolêers (ek het besluit om lêers ouer as 1 dag en foto's ouer as 7 dae uit te vee - eksperimenteer gerus)

Om dit te doen, tik crontab -e wat u nano -teksredakteur oopmaak. Voeg die volgende reëls onderaan die lêer by:

0 1 * * * vind/home/pi/poolpi/output -tipe f -naam " *.avi" -mtime +1 -delete

0 2 * * * vind/home/pi/poolpi/output -tipe f -naam " *.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

Herlaai uiteindelik u Raspberry Pi. Dit is nou gereed om u swembad vol en veilig te hou.

Raadpleeg die opstelling, die kode en moenie vergeet om my github -bewaarplek te sien nie en kommentaar te lewer op die instruksies as u dit nuttig vind. Ek is altyd op soek na meer.

Lekker maak!

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

Naaswenner in die IoT -uitdaging

Aanbeveel: