Obsah:

Pool Pi Guy - poplašný systém riadený AI a monitorovanie bazéna pomocou Raspberry Pi: 12 krokov (s obrázkami)
Pool Pi Guy - poplašný systém riadený AI a monitorovanie bazéna pomocou Raspberry Pi: 12 krokov (s obrázkami)

Video: Pool Pi Guy - poplašný systém riadený AI a monitorovanie bazéna pomocou Raspberry Pi: 12 krokov (s obrázkami)

Video: Pool Pi Guy - poplašný systém riadený AI a monitorovanie bazéna pomocou Raspberry Pi: 12 krokov (s obrázkami)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #6 2024, Júl
Anonim
Pool Pi Guy - poplašný systém riadený AI a monitorovanie bazéna pomocou Raspberry Pi
Pool Pi Guy - poplašný systém riadený AI a monitorovanie bazéna pomocou Raspberry Pi

Mať doma bazén je zábava, ale prináša aj veľkú zodpovednosť. Mojou najväčšou starosťou je sledovanie, či je niekto v blízkosti bazéna bez dozoru (najmä mladšie deti). Mojou najväčšou nepríjemnosťou je zaistiť, aby potrubie vody v bazéne nikdy nekleslo pod vstup čerpadla, čo by čerpadlo spustilo na sucho a zničilo ho, čo stojí opravy $$$.

Nedávno som prišiel na to, ako používať Raspberry Pi s OpenCV a TensorFlow spolu so snímačom hladiny vody a solenoidovým ventilom na vyriešenie oboch problémov - a zabaviť sa pri tom!

Ukázalo sa, že je to tiež skvelý poplašný systém - aktivovaný pohybom, ovládaný AI, nekonečne prispôsobiteľný.

Poďme sa ponoriť

Krok 1: Veľký plán

V tomto návode ukážeme, ako:

  1. Nastavte si Raspberry Pi s OpenCV a TensorFlow
  2. Pripojte webovú kameru pomocou dlhého kábla USB
  3. Napíšte algoritmus OpenCV na detekciu pohybu
  4. Na detekciu objektov použite TensorFlow
  5. Nastavte si na Raspberry Pi webový server, aby zobrazoval zaujímavé obrázky
  6. Integrovaním s IFTTT spustíte mobilné upozornenia v prípade zistenia osoby
  7. Pripojte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu, ktorý by pridal vodu do bazéna
  8. Pripojte snímač hladiny vody k Raspberry Pi a prepojte ho s ním pomocou GPIO Pi
  9. Napíšte nejaký kód, aby ste to všetko spojili

Krok 2: Nákupný zoznam

Nákupný zoznam
Nákupný zoznam

Všetky komponenty sú ľahko dostupné z Amazonu. Nebojte sa experimentovať a vymieňať si súčiastky - to je polovica zábavy!

  1. Malinový koláč
  2. Napájací zdroj Raspberry Pi (tu nešetrite)
  3. Pamäťová karta (čím väčšia, tým lepšia)
  4. Puzdro (toto je dostatočne veľké na umiestnenie Pi aj HAT)
  5. Webová kamera USB (postačí akákoľvek webová kamera, ale chcete takú, ktorá poskytuje dobré obrázky a dobre vyváži osvetlenie)
  6. Predlžovací kábel USB (v prípade potreby - zmerajte vzdialenosť medzi Pi a miestom, kde by ste umiestnili kameru)
  7. Reléová doska HAT (táto má 3 relé a my potrebujeme iba jedno, ale čoskoro nájdete využitie aj pre ostatné!)
  8. Solenoid
  9. Solenoidová armatúra 1 a armatúra 2 (to skutočne závisí od toho, na čo solenoid namontujete, ale tieto fungovali pre mňa)
  10. Solenoidový napájací zdroj (postačí akýkoľvek 24V AC)
  11. Kábel (opäť by stačil takmer akýkoľvek dvojžilový kábel - prúd je minimálny)
  12. Plavákový spínač hladiny vody (to je len príklad, skontrolujte, čo je možné ľahko pripojiť k vášmu bazénu)
  13. Niektoré prepojovacie vodiče a drôtové konektory

Krok 3: Nastavte si Raspberry Pi

Nastavte si Raspberry Pi
Nastavte si Raspberry Pi

Raspberry Pi je malý počítač. Stojí to len 35 dolárov, beží konzistentne a má veľa kompatibilného softvéru a hardvéru. Nastavenie je veľmi jednoduché:

  1. Naformátujte kartu SD. Vyžaduje si to špeciálnu starostlivosť - Raspberry Pi je možné zavádzať iba z karty SD naformátovanej vo formáte FAT. Postupujte podľa týchto pokynov.
  2. Pripojte Raspberry Pi k USB klávesnici a myši, plus HDMI displeji a postupujte podľa pokynov v návode na Raspberry Pi NOOBS. Nezabudnite nastaviť WiFi a povoliť prístup SSH. Nezabudnite nastaviť heslo pre predvolený účet pi.
  3. Vo vašej domácej sieti nastavte statickú IP adresu pre Raspberry Pi - SSH by bolo oveľa jednoduchšie.
  4. Uistite sa, že máte na počítači/prenosnom počítači nainštalovaného klienta ssh. Pre počítač by som odporučil Putty, ktorý môžete nainštalovať odtiaľto.
  5. Odpojte USB a HDMI z Raspberry Pi, reštartujte ho a zapojte ssh - ak to všetko fungovalo, malo by to vyzerať takto:

Linux raspberrypi 4.14.98-v7+ #1200 SMP Ut 12. februára 20:27:48 GMT 2019 armv7l

Programy zahrnuté v systéme Debian GNU/Linux sú bezplatný softvér; presné distribučné podmienky pre každý program sú popísané v jednotlivých súboroch v priečinku/usr/share/doc/*/copyright. Debian GNU/Linux neposkytuje ÚPLNE ŽIADNU ZÁRUKU, v rozsahu povolenom platnými zákonmi. Posledné prihlásenie: 13. mája 10:41:40 2019 od 104.36.248.13 pi@raspberrypi: ~ $

Krok 4: Nastavte OpenCV

Nastavte OpenCV
Nastavte OpenCV

OpenCV je úžasná zbierka funkcií na úpravu obrazu pre počítačové videnie. Umožní nám to čítať obrázky z webovej kamery, manipulovať s nimi, aby nachádzali oblasti pohybu, ukladali ich a ďalšie. Inštalácia na Raspberry Pi nie je náročná, ale vyžaduje určitú starostlivosť.

Začnite inštaláciou virtaulenvwrapper: na všetky naše programovanie použijeme python a virtualenv nám pomôže udržať oddelené závislosti pre OpenCV a TensorFlow vs. Flask alebo GPIO:

pi@raspberrypi: ~ $ sudo pip install virtualenvwrapper

Teraz môžete spustiť „mkvirtualenv“, aby ste vytvorili nové prostredie, „workon“, na ktorom budete pracovať, a ďalšie.

Vytvorme teda prostredie pre našu manipuláciu s obrázkami, pričom predvoleným interpretom je python 3 (je rok 2019, nie je dôvod držať sa staršieho pythonu 2):

pi@raspberrypi: ~ $ mkvirtualenv cv -p python3

… (Cv) pi@raspberrypi: ~

Teraz sme pripravení nainštalovať OpenCV. V Learn OpenCV budeme väčšinou sledovať vynikajúci návod. Konkrétne postupujte podľa ich kroku 1 a 2:

sudo apt -y aktualizácieudo apt -y upgrade ## Inštalácia závislostí sudo apt-get -y inštalovať 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 nainštalujte 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 install libprotobuf -dev protobuf-kompilátor 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

Teraz môžeme nainštalovať OpenCV s väzbami pythonu do cv virtualenv (stále ste v ňom, však?) Pomocou

pip install opencv-contrib-python

A je to! Na našom Raspberry Pi máme nainštalovaný OpenCV, pripravený zachytávať fotografie a videá, manipulovať s nimi a byť v pohode.

Skontrolujte to otvorením interpreta pythonu a importovaním súboru opencv a skontrolujte, či nie sú žiadne chyby:

(cv) pi@raspberrypi: ~ $ python

Python 3.5.3 (predvolené, 27. september 2018, 17:25:39) [GCC 6.3.0 20170516] na linuxe Pre ďalšie informácie zadajte „pomoc“, „autorské právo“, „kredity“alebo „licencia“. >>> import cv2 >>>

Krok 5: Nastavte TensorFlow

Nastavte TensorFlow
Nastavte TensorFlow

TensorFlow je rámec strojového učenia / AI vyvinutý a spravovaný spoločnosťou Google. Má rozsiahlu podporu pre modely hlbokého učenia pre rôzne úlohy vrátane detekcie objektov v obrázkoch a teraz je jeho inštalácia na Raspberry Pi pomerne jednoduchá. Výkon jeho ľahkých modelov na malom Pi je okolo 1 snímok za sekundu, čo je úplne dostatočné pre aplikáciu, ako je tá naša.

V zásade sa budeme riadiť vynikajúcim tutoriálom spoločnosti Edje Electronics s úpravami, ktoré umožňujú novšie distribúcie 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 vankúš lxml jupyter matplotlib cython (cv) pi@raspberrypi: ~ $ sudo apt-get install python-tk

Teraz musíme zostaviť protobuf spoločnosti Google. Postupujte podľa pokynov v kroku 4 rovnakého vynikajúceho tutoriálu

Nakoniec klonujte a nastavte definície modelu TensorFlow - postupujte podľa kroku 5 v návode Edje Electronics

Neváhajte a nasledujte ich príklad aj v kroku 6, je to skvelý úvod do detekcie objektov na Raspberry Pi.

Krok 6: Detekcia pohybu pomocou OpenCV

Začnime testovaním, že OpenCV môže komunikovať s našou webovou kamerou: ssh do Raspberry Pi, presuňte sa na cv virtualenv (workon cv), otvorte prekladač pythonu (stačí napísať python) a zadajte nasledujúce príkazy 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 ('Read frame size: {} x {}'.format (frame.shape [1], frame.shape [0])

Pri troche šťastia uvidíte, že OpenCV dokázal z kamery prečítať rámček HD.

Môžete použiť cv2.imwrite (cesta, rámec) na zápis tohto rámca na disk a sftp späť na získanie skutočného vzhľadu.

Stratégia na detekciu pohybu je pomerne jednoduchá:

  1. Pracujte na rámoch s nižším rozlíšením - tu nie je potrebné pracovať s plným HD
  2. Ďalej rozmazajte obrázky, aby bol šum čo najmenší.
  3. Udržujte kĺzavý priemer posledných N snímok. Pri tejto aplikácii, kde sa snímková frekvencia pohybuje okolo 1 FPS (len preto, že TensorFlow trvá určitý čas na snímku), som zistil, že N = 60 prináša dobré výsledky. A pretože starostlivá implementácia nezaberie viac CPU s viacerými snímkami, je to v poriadku (zaberie to viac pamäte - ale to je zanedbateľné, keď pracujeme s rámcami s nižším rozlíšením)
  4. Odpočítajte aktuálny obrázok od priebežného priemeru (pri písaní buďte opatrní - musíte povoliť kladné a záporné hodnoty [-255.. 255], takže rámček je potrebné previesť na int)
  5. Odčítanie môžete vykonať pri konverzii rámca (a priemeru) v odtieňoch sivej, alebo to urobíte oddelene pre každý z kanálov RGB a potom skombinujete výsledky (čo je stratégia, ktorú som zvolil, takže je citlivý na zmeny farieb)
  6. Na delte použite prah a odstráňte hluk eróziou a dilatáciou
  7. Nakoniec vyhľadajte kontúry oblastí s deltou - v týchto oblastiach došlo k pohybu a aktuálny obrázok sa líši od priemeru predchádzajúcich obrázkov. V prípade potreby môžeme pre tieto obrysy ďalej nájsť ohraničujúce boxy.

Zapouzdril som kód, aby som to urobil v triede python DeltaFinder, ktorú nájdete v mojom github tu

Krok 7: Detekujte objekty pomocou TensorFlow

Ak ste dodržali postup inštalácie TensorFlow, už ste vyskúšali, či máte TensorFlow nainštalovaný a funkčný.

Na účely detekcie ľudí vo všeobecnej vonkajšej scéne fungujú modely, ktoré sú vopred vyškolené v súbore údajov COCO, celkom dobre - presne to je model, ktorý sme stiahli na konci inštalácie TensorFlow. Musíme to len použiť na odvodenie!

Aby som to zjednodušil, znova som zapuzdril načítanie a odvodenie modelu do triedy python TFClassify, ktoré nájdete tu.

Krok 8: Nastavte webový server na Raspberry Pi

Nastavte webový server na Raspberry Pi
Nastavte webový server na Raspberry Pi

Najľahší spôsob, ako získať prístup k výsledkom detekcie objektov, je webový prehliadač, takže si na Raspberry Pi nastavíme webový server. Potom ho môžeme nastaviť tak, aby slúžil obrázkom z daného adresára.

Existuje niekoľko možností pre rámec webového servera. Vybral som si Flask. Je extrémne konfigurovateľný a je ľahké ho rozšíriť o Python. Pretože „mierka“, ktorú potrebujeme, je triviálna, bolo jej viac než dosť.

Navrhujem nainštalovať ho do nového virtuálneho prostredia, takže:

pi@raspberrypi: ~ $ mkvirtualenv webserv

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

Upozorňujeme, že s normálnym nastavením siete bude prístupné iba vtedy, ak je váš prehliadač v rovnakej bezdrôtovej sieti LAN ako váš Raspberry Pi. Na svojom internetovom smerovači môžete vytvoriť konfiguráciu mapovania portov / NAT a povoliť externý prístup - ale neodporúčam to. Kód, ktorý som napísal, sa nepokúša poskytnúť zabezpečenie, ktoré by ste potrebovali pri povolení všeobecného prístupu na internet k vášmu Raspberry Pi.

Vyskúšajte svoju inštaláciu podľa stručného sprievodcu bankou

Krok 9: Mobilné oznámenia z Raspberry Pi pomocou IFTTT

Mobilné oznámenia z Raspberry Pi pomocou IFTTT
Mobilné oznámenia z Raspberry Pi pomocou IFTTT

Naozaj chcem dostávať mobilné oznámenia o udalostiach. V tomto prípade, keď je zistená osoba a keď hladina vody klesne. Najjednoduchší spôsob, ako som to zistil, bez toho, aby som musel písať vlastnú mobilnú aplikáciu, je používať IFTTT. IFTTT je skratka pre „If This Then That“a umožňuje mnohým typom udalostí spustiť mnoho typov akcií. V našom prípade nás zaujíma spúšťač IFTTT Maker Webhook. To nám umožňuje spustiť akciu IFTTT odoslaním požiadavky HTTP POST na server IFTTT so špeciálnym kľúčom priradeným k nášmu účtu spolu s údajmi, ktoré určujú, čo sa stalo. Akcia, ktorú vykonáme, môže byť jednoduchá, ako napríklad vytvorenie oznámenia na našom mobilnom zariadení pomocou mobilnej aplikácie IFTTT, alebo čokoľvek zložitejšie.

Tu je postup, ako to urobiť:

  1. Vytvorte si účet IFTTT na ifttt.com
  2. Keď ste prihlásení, prejdite na stránku nastavení služby Webhook a zadajte adresu URL do svojho prehliadača (niečo ako https://maker.ifttt.com/use/. Na tejto webovej stránke sa vám zobrazí váš kľúč a adresa URL, ktoré sa majú použiť na spustenie akcií.
  3. Vytvorte aplet IFTTT, ktorý bude generovať mobilné upozornenie pri spustení Webhooku s podrobnosťami o udalosti:

    1. Kliknite na „Moje aplety“a potom na „Nový aplet“.
    2. Kliknite na „+toto“a zvoľte „webhooky“. Kliknutím na „Prijať webovú žiadosť“prejdite na podrobnosti
    3. Pomenujte svoju udalosť, napr. „PoolEvent“a kliknite na „Vytvoriť spúšťač“
    4. Kliknite na „+to“a vyberte „upozornenia“. Potom zvoľte „Odoslať rozsiahle upozornenie z aplikácie IFTTT“
    5. Ako „názov“vyberte niečo ako „PoolPi“
    6. Do "správy" napíšte "Pool Pi detekovaná:" a kliknite na "pridať prísadu".. "Hodnota1".
    7. Vráťte sa na adresu URL, ktorú ste skopírovali v kroku 2. Ukáže adresu URL, ktorá sa má použiť na vyvolanie vášho novo vytvoreného apletu. Skopírujte túto adresu URL a nahraďte zástupný symbol {event} názvom udalosti (v príklade PoolEvent)
  4. Stiahnite si, nainštalujte a prihláste sa do aplikácie IFTTT pre svoje mobilné zariadenie
  5. Spustite tento skript pythonu na svojom Raspberry Pi, aby fungoval (spustenie vo vašom mobilnom zariadení môže trvať niekoľko sekúnd alebo minút):

žiadosti o import

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

Krok 10: Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu

Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu
Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu
Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu
Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu
Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu
Pridajte k Raspberry Pi relé HAT a pripojte ho k solenoidovému ventilu

Predtým, ako budete pokračovať týmto krokom, VYPNITE na ňom svoj Raspberry Pi: ssh a napíšte „sudo shutdown now“, potom ho odpojte od napájania

Našim cieľom je zapnúť a vypnúť napájanie solenoidového ventilu - ventilu, ktorý môže otvárať alebo zatvárať prívod vody na základe 24 V striedavého prúdu, ktorý získava zo zdroja. Relé sú elektrické komponenty, ktoré môžu otvoriť alebo zatvoriť obvod na základe digitálneho signálu, ktorý môže poskytnúť náš Raspberry Pi. Čo tu robíme, je zapojenie relé na tieto digitálne signálne kolíky Raspberry Pi a jeho uzavretie obvodu medzi napájaním 24 V AC a solenoidovým ventilom.

Kolíky na Raspberry Pi, ktoré môžu fungovať ako digitálny vstup alebo výstup, sa nazývajú GPIO - univerzálny vstup/výstup a predstavujú rad 40 pinov na boku Pi. S vypnutým Pi a pevne doňho zasuňte relé HAT. Klobúk, ktorý som si vybral, obsahuje tri relé a použijeme iba jedno z nich. Predstavte si, čo všetko môžete urobiť s ďalšími dvoma:)

Teraz znova zapnite Raspberry Pi. Červená dióda LED „napájania“na relé HAT by sa mala rozsvietiť, čo znamená, že získava energiu z Pi cez GPIO. Vyskúšajme, či to dokážeme ovládať: ssh do Pi, zadajte python a napíšte:

import gpiozero

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

Mali by ste počuť počuteľné „kliknutie“, čo znamená, že relé je zapojené, a rozsvietiť sa dióda LED, ktorá ukazuje, že prvé relé je v pripojenej polohe. Teraz môžete písať

dev.on ()

Ktoré by relé preplo do polohy „vypnuté“(nepárne, viem …) a ukončilo () z pythonu.

Teraz pomocou prepojovacích káblov a dlhšieho kábla prepojte relé medzi napájaním 24 V a solenoidovým ventilom. Pozri diagram. Nakoniec pomocou adaptérov pripojte elektromagnetický ventil k faucetu a pripravte sa na to, že to všetko vyskúšate opakovaním vyššie uvedených príkazov - mali by zapínať a vypínať vodu.

Pripojte hadicu k solenoidovému ventilu a druhý koniec vložte hlboko do bazéna. Teraz máte počítačom riadený systém dopĺňania bazéna a je načase pripojiť senzor, ktorý vám povie, kedy sa má spustiť.

Krok 11: Pripojte snímač hladiny vody

Pripojte snímač hladiny vody
Pripojte snímač hladiny vody
Pripojte snímač hladiny vody
Pripojte snímač hladiny vody
Pripojte snímač hladiny vody
Pripojte snímač hladiny vody
Pripojte snímač hladiny vody
Pripojte snímač hladiny vody

Senzor hladiny vody je jednoducho plavák, ktorý spája elektrický obvod, keď je plavák dole, a rozbije ho, keď sa vznáša. Ak ho vložíte do bazéna v správnej výške, plavák bude hore, keď je hladina vody adekvátna, ale spadne, keď nebude dostatok vody.

Aby Raspberry Pi poznal stav senzora hladiny vody, potrebujeme Pi na snímanie otvoreného alebo uzavretého okruhu. Našťastie je to veľmi jednoduché: rovnaké GPIO konektory, ktoré používame ako digitálny výstup na ovládanie relé, môžu fungovať ako vstupy (preto I v GPIO). Konkrétne, ak pripojíme jeden vodič senzora k +3,3 V na konektore GPIO a druhý vodič senzora na pin, ktorý nakonfigurujeme ako rozbaľovací vstup (to znamená, že bude normálne na úrovni napätia GND), tento pin bude merať digitálne „vysoké“alebo „zapnuté“napätie iba vtedy, keď snímač hladiny vody uzavrie obvod - keď je hladina vody nízka. Ako vstup som použil GPIO pin 16, ktorý som označil na obrázku vyššie.

Kód pythonu na konfiguráciu pinu ako vstupu a testovanie jeho aktuálneho stavu je:

import gpiozero

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

Jednou z potenciálnych výziev je, že keď senzor len zmení stav, bude rýchlo oscilovať medzi stavmi zapnutia a vypnutia. Riešenie je známe ako „odbúranie“a pred prijatím opatrenia hľadá konzistentnú zmenu stavu. Knižnica GPIOZERO má na to kód, ale z nejakého dôvodu mi tento kód nefungoval dobre. Napísal som jednoduchú slučku na spustenie výstrah IFTTT v prípade zistenia konzistentnej zmeny stavu, ktorú nájdete v mojom úložisku tu.

Krok 12: Napíšte kód, aby ste všetko spojili

Napíšte kód, aby ste to spojili
Napíšte kód, aby ste to spojili

To je všetko. Naše nastavenie je dokončené. Môžete napísať svoj vlastný kód a spojiť veci do úplného systému alebo použiť kód, ktorý poskytnem. Za týmto účelom vytvorte adresárovú štruktúru a klonujte úložisko takto:

mkdir poolpi

cd poolpi git klon

Ďalej upravte súbory s názvom ifttt_url.txt v adresároch motion_alert a water_level, aby mali adresu URL pre váš vlastný webový hák IFTTT s vašim tajným kľúčom. Na rôzne akcie môžete použiť dva rôzne webové háčiky.

Nakoniec chceme, aby sa tento kód spustil automaticky. Najľahší spôsob, ako to dosiahnuť, je prostredníctvom služby Linux crontab. Môžeme pridať niekoľko riadkov crontab pre dve hlavné úlohy:

  1. Pri každom reštarte spustite naše tri programy: detektor objektov, snímač hladiny vody a webový server
  2. Vyčistite výstupný adresár, vymažte staré obrázky a staré video súbory (rozhodol som sa odstrániť súbory staršie ako 1 deň a obrázky staršie ako 7 dní - neváhajte experimentovať)

Ak to chcete urobiť, zadajte príkaz crontab -e, ktorý otvorí váš nano textový editor. Do spodnej časti súboru pridajte nasledujúce riadky:

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

Nakoniec reštartujte počítač Raspberry Pi. Teraz je pripravený udržať váš bazén plný a bezpečný.

Pohrajte sa s nastavením, kódom a nezabudnite označiť hviezdičkou moje úložisko github a komentovať pokyny, ak to považujete za užitočné. Vždy sa snažím dozvedieť sa viac.

Šťastnú výrobu!

IoT výzva
IoT výzva
IoT výzva
IoT výzva

Druhý vo výzve IoT

Odporúča: