İçindekiler:
- Adım 1: Büyük Plan
- 2. Adım: Alışveriş Listesi
- 3. Adım: Raspberry Pi'nizi Kurun
- Adım 4: OpenCV Kurulumu
- Adım 5: TensorFlow'u Ayarlayın
- Adım 6: OpenCV Kullanarak Hareket Algılama
- 7. Adım: TensorFlow Kullanarak Nesneleri Algılayın
- 8. Adım: Raspberry Pi'de bir Web Sunucusu Kurun
- 9. Adım: Raspberry Pi'den IFTTT Kullanarak Mobil Bildirimler
- Adım 10: Raspberry Pi'ye Röle HAT ekleyin ve Solenoid Valfe Bağlayın
- Adım 11: Bir Su Seviyesi Sensörü Bağlayın
- Adım 12: Hepsini Bir Araya Bağlayacak Kod Yazın
Video: Pool Pi Guy - Raspberry Pi Kullanarak AI Tahrikli Alarm Sistemi ve Havuz İzleme: 12 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Evde havuza sahip olmak eğlencelidir, ancak büyük sorumluluk getirir. En büyük endişem, havuzun yakınında kimse olup olmadığını (özellikle küçük çocuklar) izlemek. En büyük sıkıntım, havuz suyu hattının asla pompa girişinin altına düşmediğinden emin olmak, bu da pompayı kuru çalıştıracak ve onarım maliyetini $$$'a düşürecek.
Kısa süre önce OpenCV ve TensorFlow ile bir Raspberry Pi'yi, su seviyesi sensörü ve solenoid valf ile birlikte her iki sorunu da çözmek için nasıl kullanacağımı buldum - ve bunu yaparken eğlenin!
Aynı zamanda harika bir alarm sistemi olduğu ortaya çıktı - hareketle etkinleştirildi, AI kontrollü, sonsuz özelleştirilebilir.
Hadi dalalım.
Adım 1: Büyük Plan
Bu talimatta nasıl yapılacağını göstereceğiz:
- OpenCV ve TensorFlow ile bir Raspberry Pi kurun
- Uzun bir USB kablosuyla bir Web Kamerası bağlayın
- Hareketi algılamak için bir OpenCV algoritması yazın
- Nesne algılama için TensorFlow kullanın
- İlginç görüntüleri göstermek için Raspberry Pi'de bir web sunucusu kurun
- Bir kişinin tespit edilmesi durumunda mobil uyarıları tetiklemek için IFTTT ile entegre edin
- Raspberry Pi'ye bir röle HAT takın ve havuza su ekleyecek bir solenoid valfe bağlayın.
- Raspberry Pi'ye bir su seviyesi sensörü takın ve Pi'nin GPIO'sunu kullanarak onunla arayüz oluşturun
- Hepsini birbirine yapıştırmak için bir kod yazın
2. Adım: Alışveriş Listesi
Tüm bileşenler Amazon'dan kolayca temin edilebilir. Bileşenleri denemekten ve değiştirmekten çekinmeyin - eğlencenin yarısı bu!
- Ahududu Pi
- Raspberry Pi Güç Kaynağı (burayı atlamayın)
- Hafıza Kartı (daha büyük daha iyidir)
- Kasa (bu, hem Pi'yi hem de HAT'ı barındıracak kadar büyüktür)
- USB Web Kamerası (herhangi bir web kamerası işe yarar, ancak iyi görüntüler alan ve aydınlatmayı iyi dengeleyen bir web kamerası istersiniz)
- USB uzatma kablosu (gerekirse - Pi ile kamerayı yerleştireceğiniz yer arasındaki mesafeyi ölçün)
- Röle kartı HAT (bunun 3 rölesi var ve sadece bir tanesine ihtiyacımız var, ancak diğerleri için çok yakında bir kullanım bulacaksınız!)
- solenoid
- Solenoid bağlantı parçası 1 ve Bağlantı 2 (bu gerçekten solenoidi neye taktığınıza bağlıdır, ancak bunlar benim için işe yaradı)
- Solenoid Güç Kaynağı (herhangi bir 24V AC yapar)
- Kablo (yine hemen hemen her 2 telli kablo bunu yapar - akım minimumdur)
- Su Seviyesi Şamandıra Anahtarı (bu sadece bir örnektir, havuzunuza nelerin kolayca bağlanabileceğini kontrol edin)
- Bazı Jumper kabloları ve Kablo konektörleri
3. Adım: Raspberry Pi'nizi Kurun
Raspberry Pi harika bir küçük bilgisayardır. Yalnızca 35 ABD dolarına mal olur, tutarlı çalışır ve birçok uyumlu yazılım ve donanıma sahiptir. Ayarlamak oldukça kolaydır:
- SD kartınızı biçimlendirin. Bu özel bir özen gerektirir - Raspberry Pi yalnızca FAT formatlı bir SD karttan önyüklenebilir. Bu talimatları izleyin.
- Raspberry Pi'yi bir USB klavye ve fareye ve ayrıca bir HDMI ekrana bağlayın ve Raspberry Pi NOOBS eğitimindeki talimatları izleyin. WiFi kurduğunuzdan ve SSH erişimini etkinleştirdiğinizden emin olun. Varsayılan pi hesabı için bir parola ayarlamayı unutmayın.
- Ev ağınızda Raspberry Pi için statik bir IP ayarlayın - bu, SSH'ye girmeyi çok daha kolay hale getirir.
- Masaüstünüzde/dizüstü bilgisayarınızda bir ssh istemcisinin kurulu olduğundan emin olun. PC için buradan yükleyebileceğiniz Putty'yi öneririm.
- USB ve HDMI'yı Raspberry Pi'den çıkarın, yeniden başlatın ve ssh'ye takın - hepsi işe yaradıysa, şöyle bir şey görmelisiniz:
Linux raspberrypi 4.14.98-v7+ #1200 SMP 12 Şubat Salı 20:27:48 GMT 2019 armv7l
Debian GNU/Linux sistemine dahil edilen programlar özgür yazılımlardır; her program için kesin dağıtım koşulları /usr/share/doc/*/copyright içindeki ayrı dosyalarda açıklanmıştır. Debian GNU/Linux, yürürlükteki yasaların izin verdiği ölçüde, KESİNLİKLE HİÇBİR GARANTİ ile birlikte gelir. Son giriş: 13 Mayıs 10:41:40 2019, 104.36.248.13 pi@raspberrypi:~ $
Adım 4: OpenCV Kurulumu
OpenCV, bilgisayarla görü için görüntü işleme işlevlerinin harika bir koleksiyonudur. Web kamerasından görüntüleri okumamıza, hareket alanlarını bulmak için onları manipüle etmemize, kaydetmemize ve daha pek çok şeye izin verecek. Raspberry Pi'de kurulum yapmak zor değil ama biraz dikkat gerektiriyor.
Virtaulenvwrapper'ı yükleyerek başlayın: tüm programlamamızı yapmak için python kullanacağız ve virtualenv, OpenCV ve TensorFlow ile Flask veya GPIO için bağımlılıkları ayrı tutmamıza yardımcı olacaktır:
pi@raspberrypi:~ $ sudo pip virtualenvwrapper yükleyin
Artık yeni bir ortam oluşturmak için "mkvirtualenv", üzerinde çalışmak için "workon" ve daha fazlasını çalıştırabilirsiniz.
Öyleyse, varsayılan yorumlayıcı olarak python 3 ile görüntü işlememiz için bir ortam oluşturalım (2019, eski python 2'ye bağlı kalmak için hiçbir neden yok):
pi@raspberrypi:~ $ mkvirtualenv cv -p python3
… (cv) pi@raspberrypi:~
Artık OpenCV'yi kurmaya hazırız. Çoğunlukla OpenCV Öğrenin'deki mükemmel öğreticiyi takip edeceğiz. Özellikle 1. ve 2. adımlarını izleyin:
sudo apt -y updatesudo apt -y yükseltme ## Bağımlılıkları yükleyin sudo apt-get -y kurulum inşa-temel checkinstall cmake pkg-config yasm sudo apt-get -y git gfortran yükleyin sudo apt-get -y install libjpeg8-dev libjasper- dev libpng12-dev sudo apt-get -y kurulumu libtiff5-dev sudo apt-get -y kurulumu libtiff-dev sudo apt-get -y kurulumu libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev sudo apt-get - libxine2-dev libv4l-dev cd /usr/include/linux sudo ln -s -f../libv4l1-videodev.h videodev.h sudo apt-get -y libgstreamer0.10-dev libgstreamer-plugins-base0'ı kurun. 10-dev sudo apt-get -y kurulum libgtk2.0-dev libtbb-dev qt5-varsayılan sudo apt-get -y kurulum libatlas-base-dev sudo apt-get -y kurulum libmp3lame-dev libtheora-dev sudo apt-get -y libvorbis-dev libxvidcore-dev libx264-dev kurulumu sudo apt-get -y libopencore-amrnb-dev libopencore-amrwb-dev sudo apt-get kurulumu -y libavresample-dev kurulumu sudo apt-get -y x264 v4l-utils kurulumu sudo apt-get -y kurulum libprotobuf -dev protobuf-derleyici sudo apt-get -y kurulum libgoogle-glog-dev libgflags-dev sudo apt-get -y kurulum libgphoto2-dev libeigen3-dev libhdf5-dev doxygen sudo apt-get kurulum libqtgui4 sudo apt-get kurulum libq Ölçek
Artık OpenCV'yi python bağlamaları ile cv virtualenv içine kurabiliriz (hala içindesiniz, değil mi?)
pip kurulumu opencv-katkı-python
Ve bu kadar! Raspberry Pi'mizde fotoğraf ve video çekmeye, onları manipüle etmeye ve havalı olmaya hazır OpenCV yüklü.
Bir python yorumlayıcısı açıp opencv'yi içe aktararak bunu kontrol edin ve herhangi bir hata olmadığını kontrol edin:
(cv) pi@raspberrypi:~ $ python
Python 3.5.3 (varsayılan, 27 Eylül 2018, 17:25:39) Linux'ta [GCC 6.3.0 20170516] Daha fazla bilgi için "yardım", "telif hakkı", "kredi" veya "lisans" yazın. >>> cv2'yi içe aktar >>>
Adım 5: TensorFlow'u Ayarlayın
TensorFlow, Google tarafından geliştirilen ve sürdürülen bir makine öğrenimi / AI çerçevesidir. Görüntülerde nesne algılama da dahil olmak üzere çeşitli görevler için derin öğrenme modelleri için kapsamlı bir desteğe sahiptir ve artık Raspberry Pi'ye kurulumu oldukça basittir. Hafif modellerinin minik Pi üzerindeki performansı saniyede yaklaşık 1 karedir ve bu bizimki gibi bir uygulama için mükemmel derecede yeterlidir.
Temel olarak, daha yeni TensorFlow dağıtımlarının mümkün kıldığı değişikliklerle Edje Electronics'in mükemmel öğreticisini takip edeceğiz:
pi@raspberrypi:~ $ workon cv
(cv) pi@raspberrypi:~ $ pip tensorflow kurulumu (cv) pi@raspberrypi:~ $ sudo apt-get kurulumu libxml2-dev libxslt-dev (cv) pi@raspberrypi:~ $ pip kurulum yastığı lxml jupyter matplotlib cython (cv)) pi@raspberrypi:~ $ sudo apt-get install python-tk
Şimdi Google'ın protobuf'unu derlememiz gerekiyor. Sadece aynı mükemmel öğreticinin 4. adımındaki talimatları izleyin
Son olarak, TensorFlow'un model tanımlarını klonlayın ve ayarlayın - Edje Electronics eğitimindeki 5. adımı izleyin
6. adımda da örneklerini takip etmekten çekinmeyin, Raspberry Pi'de nesne algılamaya harika bir giriş.
Adım 6: OpenCV Kullanarak Hareket Algılama
OpenCV'nin web kameramızla arayüz oluşturabileceğini test ederek başlayalım: Raspberry Pi'ye ssh, cv virtualenv'e (workon cv) gidin, bir python yorumlayıcı açın (sadece python yazın) ve aşağıdaki python komutlarını girin:
cv2'yi içe aktar
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('Çerçeve boyutunu okuyun: {}x{}'.format(çerçeve.şekil[1], kare.şekil[0])
Şansınız yaver giderse OpenCV'nin kameradan bir HD kare okuyabildiğini göreceksiniz.
Bu çerçeveyi diske yazmak için cv2.imwrite(yol, çerçeve) kullanabilirsiniz ve gerçek bir görünüm elde etmek için geri sftp yapabilirsiniz.
Hareketi algılama stratejisi oldukça basittir:
- Daha düşük çözünürlüklü kareler üzerinde çalışın - burada full HD'de çalışmaya gerek yok
- Ayrıca, mümkün olduğunca az gürültü sağlamak için görüntüleri bulanıklaştırın.
- Son N karenin çalışan bir ortalamasını tutun. Kare hızının 1 FPS civarında olduğu bu uygulama için (TensorFlow kare başına biraz zaman aldığından), N=60'ın iyi sonuçlar verdiğini gördüm. Ve dikkatli bir uygulama daha fazla çerçeve ile daha fazla CPU almadığından (daha fazla bellek gerektirir - ancak daha düşük çözünürlüklü çerçevelerle çalıştığımızda bu ihmal edilebilir)
- Mevcut görüntüyü değişen ortalamadan çıkarın (sadece yazarken dikkatli olun - pozitif ve negatif değerlere [-255..255] izin vermeniz gerekir, bu nedenle çerçevenin int'ye dönüştürülmesi gerekir)
- Çıkarmayı çerçevenin (ve ortalamanın) gri tonlamalı dönüşümünde gerçekleştirebilir veya bunu RGB kanallarının her biri için ayrı ayrı yapabilir ve ardından sonuçları birleştirebilirsiniz (seçtiğim strateji bu, renk değişikliklerine duyarlı hale getirir)
- Deltada bir eşik kullanın ve erozyon ve genişleme ile gürültüyü ortadan kaldırın
- Son olarak deltalı alanların dış hatlarını arayın - bu alanlar hareketin olduğu ve mevcut görüntünün önceki görüntülerin ortalamasından farklı olduğu alanlardır. Gerekirse bu konturlar için sınırlayıcı kutular da bulabiliriz.
Bunu yapmak için kodu, github'ımda bulabileceğiniz DeltaFinder python sınıfında kapsülledim.
7. Adım: TensorFlow Kullanarak Nesneleri Algılayın
TensorFlow kurulum prosedürünü izlediyseniz, TensorFlow'un kurulu olduğunu ve çalıştığını zaten test etmişsinizdir.
Genel bir dış mekan sahnesinde insanları tespit etmek amacıyla, COCO veri setinde önceden eğitilmiş modeller oldukça iyi performans gösterir - bu, tam olarak TensorFlow kurulumunun sonunda indirdiğimiz modeldir. Sadece çıkarım için kullanmamız gerekiyor!
Yine, burada bulabileceğiniz işleri kolaylaştırmak için TFClassify python sınıfında model yükleme ve çıkarımı kapsülledim.
8. Adım: Raspberry Pi'de bir Web Sunucusu Kurun
Nesne algılama sonuçlarına ulaşmanın en kolay yolu bir web tarayıcısıdır, bu yüzden Raspberry Pi üzerinde bir web sunucusu kuralım. Daha sonra belirli bir dizinden resimler sunacak şekilde ayarlayabiliriz.
Bir web sunucusu çerçevesi için birden çok seçenek vardır. Flask'ı seçtim. Son derece yapılandırılabilir ve Python ile genişletilmesi kolaydır. İhtiyacımız olan "ölçek" önemsiz olduğundan, fazlasıyla yeterliydi.
Yeni bir virtualenv'e yüklemenizi öneririm, yani:
pi@raspberrypi:~ $ mkvirtualenv webserv
(webserv)pi@raspberrypi: ~ $ pip Flask'ı kurun
Normal bir ağ kurulumuyla, yalnızca tarayıcınız Raspberry Pi'nizle aynı kablosuz LAN'dayken erişilebilir olacağını unutmayın. Harici erişime izin vermek için İnternet yönlendiricinizde bir bağlantı noktası eşleme / NAT yapılandırması oluşturabilirsiniz - ancak buna karşı öneriyorum. Yazdığım kod, Raspberry Pi'nize genel İnternet erişimine izin verirken ihtiyaç duyacağınız güvenliği sağlamaya çalışmıyor.
Flask hızlı başlangıç kılavuzunu izleyerek kurulumunuzu test edin
9. Adım: Raspberry Pi'den IFTTT Kullanarak Mobil Bildirimler
Olaylar meydana geldiğinde gerçekten mobil bildirimler almak istiyorum. Bu durumda bir kişi tespit edildiğinde ve su seviyesi düştüğünde. Özel bir mobil uygulama yazmak zorunda kalmadan bunu yapmanın en basit yolu IFTTT kullanmaktır. IFTTT, "Bu O Zaman O Olursa" anlamına gelir ve birçok olay türünün birçok eylem türünü tetiklemesine olanak tanır. Bizim durumumuzda, IFTTT Maker Webhook tetikleyicisiyle ilgileniyoruz. Bu, IFTTT sunucusuna, ne olduğunu belirten verilerle birlikte, hesabımıza atanmış özel bir anahtarla bir HTTP POST isteği yaparak bir IFTTT eylemini tetiklememizi sağlar. Yaptığımız işlem, IFTTT mobil uygulamasını kullanarak mobil cihazımızda bir bildirim oluşturmak kadar basit veya bundan daha karmaşık bir şey olabilir.
Bunu nasıl yapacağınız aşağıda açıklanmıştır:
- ifttt.com'da bir IFTTT hesabı oluşturun
- Giriş yaparken, Webhook hizmeti ayarları sayfasına gidin ve tarayıcınıza URL'yi girin (https://maker.ifttt.com/use/ gibi bir şey. Bu web sayfası size anahtarınızı ve eylemleri tetiklemek için kullanacağınız URL'yi gösterecektir..
-
Etkinliğin ayrıntılarıyla Web kancası tetiklendiğinde bir mobil bildirim oluşturacak bir IFTTT uygulaması oluşturun:
- "Uygulamalarım"ı ve ardından "Yeni Uygulama"yı tıklayın.
- "+bunu" tıklayın ve "web kancaları"nı seçin. Ayrıntılara gitmek için "Web isteği al"ı tıklayın
- Etkinliğinize bir ad verin, ör. "PoolEvent" ve "Tetikleyici oluştur" u tıklayın
- "+bunu" tıklayın ve "bildirimler"i seçin. Ardından "IFTTT uygulamasından zengin bir bildirim gönder"i seçin
- "Başlık" için "PoolPi" gibi bir şey seçin
- "Mesaj" için "Havuz Pi algılandı: " yazın ve "içerik ekle"ye tıklayın.."Değer1".
- 2. adımda kopyaladığınız URL'ye geri dönün. Yeni oluşturduğunuz uygulamanızı çağırmak için kullanılacak URL'yi gösterecektir. {event} yer tutucusunu etkinlik adıyla değiştirerek bu URL'yi kopyalayın (örnek PoolEvent'te)
- Mobil cihazınız için IFTTT uygulamasını indirin, kurun ve oturum açın
- Çalıştığını görmek için bu python betiğini Raspberry Pi'nizde çalıştırın (mobil cihazınızda tetiklenmesinin birkaç saniye veya dakika sürebileceğini unutmayın):
içe aktarma istekleri
request.post('https://maker.ifttt.com/trigger/PoolEvent/with/key/', json={"value1":"Merhaba Bildirimler"})
Adım 10: Raspberry Pi'ye Röle HAT ekleyin ve Solenoid Valfe Bağlayın
Bu adıma geçmeden önce Raspberry Pi'nizi KAPATIN: ona ssh ve "sudo kapatma şimdi" yazın, ardından güç bağlantısını kesin
Amacımız, bir güç kaynağından aldığı 24V AC güce dayalı olarak su kaynağını açıp kapatabilen bir solenoid valfe giden güç kaynağını açıp kapatmaktır. Röleler, Raspberry Pi'mizin sağlayabileceği dijital bir sinyale dayalı olarak bir devreyi açıp kapatabilen elektrik bileşenleridir. Burada yaptığımız, Raspberry Pi'nin bu dijital sinyal pinlerine bir röle bağlayıp 24V AC güç kaynağı ile solenoid valf arasındaki devreyi kapatmasını sağlamaktır.
Raspberry Pi üzerinde dijital giriş veya çıkış görevi görebilen pinlere GPIO - General Purpose Input/Output denir ve Pi'nin yan tarafında bulunan 40 pinlik sıradır. Pi kapalıyken ve HAT rölesini sıkıca içine sokun. Seçtiğim HAT'ın içinde 3 röle var ve bunlardan sadece birini kullanacağız. Diğer ikisiyle yapabileceğiniz her şeyi hayal edin:)
Şimdi Raspberry Pi'yi tekrar açın. HAT rölesindeki kırmızı "güç" LED'i, GPIO aracılığıyla Pi'den güç aldığını gösterecek şekilde yanmalıdır. Kontrol edebileceğimizi test edelim: Pi'ye tekrar ssh yazın, python girin ve şunu yazın:
gpiozero'yu içe aktar
dev = gpiozero. DigitalOutputDevice(26, initial_value = True) dev.off()
Rölenin devreye girdiğini belirten sesli bir "klik" sesi duymalı ve ilk rölenin bağlı konumda olduğunu gösteren bir LED'in yandığını görmelisiniz. şimdi yazabilirsiniz
dev.on()
Bu, röleyi "kapalı" konuma getirir (garip, biliyorum…) ve python'dan () çıkar.
Şimdi atlama kabloları ve daha uzun kablo kullanarak röleyi 24V güç kaynağı ile solenoid valf arasına bağlayın. Şemaya bakın. Son olarak, adaptörleri kullanarak solenoid valfi bir musluğa bağlayın ve yukarıdaki komutları tekrarlayarak hepsini test etmeye hazır olun - suyu açıp kapatmalıdırlar.
Solenoid valfe bir hortum bağlayın ve diğer ucunu havuzun derinliklerine yerleştirin. Artık bilgisayar kontrollü bir havuz doldurma sisteminiz var ve ne zaman çalışacağını söylemek için bir sensör bağlamanın zamanı geldi.
Adım 11: Bir Su Seviyesi Sensörü Bağlayın
Bir su seviyesi sensörü, şamandıra aşağı düştüğünde bir elektrik devresini bağlayan ve yukarı çıktığında onu kıran bir şamandıradır. Havuza doğru yükseklikte yerleştirirseniz, su seviyesi yeterli olduğunda şamandıra yükselir, yeterli su olmadığında aşağı düşer.
Raspberry Pi'nin su seviyesi sensörünün durumunu bilmesi için Pi'nin açık veya kapalı devre algılamasına ihtiyacımız var. Neyse ki bu çok basit: Röleleri kontrol etmek için dijital çıkış olarak kullandığımız aynı GPIO konektörleri giriş görevi görebilir (dolayısıyla GPIO'daki I). Spesifik olarak, sensörün bir kablosunu GPIO konnektöründeki +3.3V'a, diğer sensör kablosunu ise pull-down girişi olarak yapılandırdığımız (normalde GND voltaj seviyesinde olacağı anlamına gelir) bir pin'e bağlarsak, o pin ölçecektir. dijital "yüksek" veya "açık" voltaj, yalnızca su seviyesi sensörü devreyi kapattığında - su seviyesi düşük olduğunda. Yukarıdaki resimde işaretlediğim GPIO pin 16'yı giriş olarak kullandım.
Pini giriş olarak yapılandırmak ve mevcut durumunu test etmek için python kodu:
gpiozero'yu içe aktar
level_input = gpiozero. Button(16) water_low = level_input.is_pressed
Potansiyel bir zorluk, sensörün sadece durumunu değiştirdiğinde, açık ve kapalı durumlar arasında hızlı bir şekilde salınmasıdır. Bunun çözümü "geri dönme" olarak bilinir ve harekete geçmeden önce tutarlı bir durum değişikliği arar. GPIOZERO kitaplığında bunu yapmak için kod var, ancak nedense bu kod benim için iyi çalışmadı. Depomda bulabileceğiniz tutarlı bir durum değişikliği tespit edildiğinde IFTTT uyarılarını tetiklemek için basit bir döngü yazdım.
Adım 12: Hepsini Bir Araya Bağlayacak Kod Yazın
Bu kadar. Kurulumumuz tamamlandı. Her şeyi tam bir sisteme bağlamak için kendi kodunuzu yazabilir veya verdiğim kodu kullanabilirsiniz. Bunu yapmak için sadece dizin yapısını oluşturun ve depoyu şu şekilde klonlayın:
mkdir havuzpi
cd poolpi git klonu
Ardından, gizli anahtarınızla kendi IFTTT web kancanızın URL'sine sahip olmak için motion_alert ve water_level dizinlerinde ifttt_url.txt adlı dosyaları düzenleyin. Farklı eylemler için iki farklı web kancası kullanabilirsiniz.
Son olarak, bu kodun otomatik olarak çalışmasını istiyoruz. Bunu başarmanın en kolay yolu Linux crontab hizmetidir. İki ana görev için bazı crontab satırları ekleyebiliriz:
- Üç programımızı çalıştırın: her yeniden başlatmada nesne dedektörü, su seviyesi sensörü ve web sunucusu
- Çıktı dizinini temizleyin, eski resimleri ve eski video dosyalarını silin (1 günden eski dosyaları ve 7 günden eski resimleri silmeyi seçtim - denemekten çekinmeyin)
Bunu yapmak için, nano metin düzenleyicinizi açacak olan crontab -e yazın. Dosyanın altına aşağıdaki satırları ekleyin:
0 1 * * * bul /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
Son olarak, Raspberry Pi'nizi yeniden başlatın. Artık havuzunuzu dolu ve güvende tutmak için hazır.
Kurulumu, kodu düzeltin ve github depoma yıldız eklemeyi ve faydalı bulursanız talimat üzerine yorum yapmayı unutmayın. Her zaman daha fazlasını öğrenmenin peşindeyim.
Mutlu yapım!
IoT Challenge'da İkincilik
Önerilen:
Tarım Iot için LoRa Tabanlı Görsel İzleme Sistemi - Firebase ve Angular Kullanarak Ön Yüzlü Bir Uygulama Tasarlama: 10 Adım
Tarım IoT için LoRa Tabanlı Görsel İzleme Sistemi | Firebase & Angular Kullanarak Öne Çıkan Bir Uygulama Tasarlamak: Önceki bölümde, sensörlerin firebase Realtime veritabanını doldurmak için loRa modülüyle nasıl çalıştığından bahsettik ve tüm projemizin nasıl çalıştığını çok yüksek seviyeli bir diyagramı gördük. Bu bölümde nasıl yapabileceğimizden bahsedeceğiz
Jet Tahrikli Telsiz Kontrollü Ördek: 10 Adım (Resimli)
Jet Tahrikli Telsiz Kontrollü Ördek: 40 yılı aşkın bir süre önce bir radyo kontrollü tekne alıp yakındaki Park Gölü'nde kullanmak istedim, ancak Park Bekçisi hiçbir tekneye izin verilmeyeceğini açıkça belirtti. Ben de bir tekneyi ördek kılığına sokmak için bu planı yaptım. Hafif bir dezavantaj, fiyatı
Su Seviyesi İzleme Sistemi: 9 Adım (Resimli)
Su Seviyesi İzleme Sistemi: Bir Kendin Yap Üreticisi olarak, her zaman hayatımı ve başkalarının hayatını daha kolay ve daha güvenli hale getirmenin bir yolunu bulmaya çalışırım. 30 Mart 2013'te Mauritius Capital Port Louis'de ani yağmurun sele neden olması sonucu en az 11 kişi öldü. Aynı gün birkaç ev
ThingsBoard ile IoT Havuz İzleme: 8 Adım
ThingsBoard ile IoT Havuz İzleme: Bu talimat, bir havuzun veya spa'nın pH, ORP ve sıcaklığının nasıl izleneceğini ve verilerin ThingsBoard.io'nun görselleştirme ve depolama hizmetine nasıl yükleneceğini gösterecektir
Topraksız Sera İzleme ve Kontrol Sistemi: 5 Adım (Resimli)
Hidroponik Sera İzleme ve Kontrol Sistemi: Bu derste size hidroponik sera izleme ve kontrol sisteminin nasıl kurulacağını göstereceğim. Size seçilen bileşenleri, devrenin nasıl kurulduğuna dair bir bağlantı şemasını ve Seeed'i programlamak için kullanılan Arduino taslağını göstereceğim