Mündəricat:
- Addım 1: Donanımı Qurun
- Addım 2: Dropbox qurun
- Addım 3: Dropbox Tətbiq Qovluğunuzu Hazırlayın
- Addım 4: Kodla işə başlayın
- Addım 5: Kodu daha dərindən qazın
- Addım 6: Dropbox Parametr Fayllarından istifadə
- Addım 7: Nəticə
Video: Dropbox ilə Raspberry Pi Ev Monitorinqi: 7 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Bu dərslik, bir Raspberry Pi, bir web kamerası, bir neçə elektrik komponenti və Dropbox hesabınızdan istifadə edərək sadə və genişləndirilə bilən ev monitorinq sisteminin necə yaradılacağını sizə göstərəcək. Bitmiş sistem, hamısı Dropbox istifadə edərək evinizin istiliyini internet üzərindən izləmək üçün hazır bir rəqəmsal temperatur sensoru istifadə edərkən veb kameranızdan görüntüləri uzaqdan istəyə və baxmağa imkan verəcəkdir.
Bu, Raspberry Pi 2 model B aldıqdan sonra düşündüyüm ilk layihə idi. Məqsədim internet üzərindən məlumatları idarə edə biləcəyim Python əsaslı bir izləmə sistemi yaratmaq idi. Bunun bir çox fərqli yolu olsa da, bir neçə sətirdən istifadə edərək müəyyən qovluqlarda faylları yükləməyə, dəyişdirməyə və axtarmağa imkan verən sadə Python API -yə malik olduqları üçün Dropbox -u Pi ilə internet arasındakı interfeys olaraq istifadə etmək qərarına gəldim. kod.
Həm də həllimin yüngül və sadə olmasını və Pi -ni lazımsız kitabxana və proqramlarla qarışdırmamaq istəyirdim. Bu layihənin proqram komponenti tək bir Python skriptindən ibarətdir, yəni monitorinq sistemi işləsə də Pi -nizi normal olaraq istifadə etməyə davam edə bilərsiniz.
Bu layihə üçün sizə lazım olacaq:
Bir Moruq Pi. Hər hansı bir model işləməlidir, hamısı bir arada bir başlanğıc dəsti istifadə etdim, amma bəlkə də yalnız mərkəzi qurğuya ehtiyacınız var
USB veb kamerası. Yaxşı işləyən ucuz bir ADVENT AWC72015 aldım. Pi ilə işlədiyi təsdiqlənmiş veb kameraların bu siyahısına müraciət etmək yaxşı bir fikir ola bilər. Unutmayın ki, bəziləri üçün güclü bir USB hub tələb olunur (mənimki olmadan işləyir)
Dropbox hesabı. Bu layihə çox saxlama sahəsi tələb etmədiyi üçün standart pulsuz hesabımı istifadə edirəm
DS18B20 rəqəmsal temperatur sensoru və 4.7k rezistor. Sensoru buradan əldə edə bilərsiniz və müxtəlif rezistorlar paketini də almağa dəyər ola bilər
Bəzi dövrə qurma aksesuarları. Dövrə qurma prosesini mümkün qədər asanlaşdırmaq üçün çörək taxtası və bəzi tullanan kabellərdən istifadə etməyi məsləhət görürəm
[Bu məhsullardan hər hansı birini almaq qərarına gəlsəniz, yuxarıdakı bağlantılardan istifadə edərək siyahılara daxil olsanız çox məmnun olaram - bu yolla mənfəətdən kiçik bir payı sizə heç bir əlavə xərc ödəmədən əldə edərəm!]
Addım 1: Donanımı Qurun
İlk addım Pi və əlaqəli ətraf qurğuların qurulmasını təmin etməkdir.
Əvvəlcə Pi -ni internetə qoşun. Bu, monitorinq proqramının istəklərinizi qəbul etməsini və məlumatları Dropbox -a yükləməsini təmin etmək üçün lazımdır. Etibarlılığı təmin etmək üçün bir Ethernet bağlantısı istifadə edirəm, ancaq Wi-Fi bağlantısı da yaxşı işləməlidir, eyni zamanda təkmilləşdirilmiş taşınabilirlik üstünlüyünə malikdir. Wi-Fi seçsəniz, Pi üçün bu USB kilidini tövsiyə edərdim.
Sonra, veb -kameranızı USB portlarından birinə qoşaraq Pi -yə qoşun. Advent veb kameramın təlimatlarında Linux ilə işləyəcəyi açıq şəkildə söylənməsə də, etməli olduğum tək şey onu qoşmaq və Pi -ni açmaq idi. Əlavə quraşdırma tələb olunmurdu. Digər veb kameralar fərqli ola bilər. Aşağıdakı əmri istifadə edərək veb kameranızın Linux tərəfindən aşkarlandığını yoxlaya bilərsiniz:
susmaq
Yuxarıdakı görüntüdə veb kameram '0c45: 6340 Microdia' olaraq göstərilmişdir
Nəhayət, DS18B20 temperatur sensörünüzü Pi'nin GPIO başlığına bağlaya bilərsiniz. Dövrə yaratmaq prosesini asanlaşdırmaq üçün çörək taxtamdan istifadə edirəm və eyni şeyi etmənizi məsləhət görürəm, xüsusən DS18B20 üç sancağından ikisinin arasına 4.7k müqavimət qoyulmasını tələb edir. Bu keçid, bu temperatur sensoruna qoşulmaq üçün bir çörək taxtasının necə istifadə olunacağını göstərən yaxşı bir kabel diaqramı təqdim edir.
Yuxarıdakı təlimatın növbəti səhifəsi DS18B20 -dən məlumatları oxumaq üçün lazım olan addımları da əhatə edir və bunun işlədiyini necə yoxlayacağınızı göstərir. Bu layihə üçün DS18B20 istifadə etməzdən əvvəl bu quraşdırma addımlarını yerinə yetirmək vacibdir. Dərslikdən nümunə Python skriptini izləmə proqramımıza inteqrasiya edəcəyik, buna görə də bu kodu tez bir zamanda yoxlamaq istəyə bilərsiniz.
Zəhmət olmasa DS18B20 unikal nömrənizi də qeyd edin. Quraşdırma təlimatında rast gəldiyiniz '28-'ilə başlayan rəqəmdir. İstilikdə oxumasını təmin etmək üçün onu qarşıdakı Python proqramına daxil etməlisiniz.
Addım 2: Dropbox qurun
Pi'nizin Dropbox ilə əlaqə qurması üçün yeni bir Dropbox tətbiqini qurmalısınız. Bu, Pi -nin Python istifadə edərək onlayn fayl idarə etməsi üçün lazım olan məlumatları təmin edəcək. Bir Dropbox hesabı yaratdığınızı və daxil olduğunuzu fərz etsəniz, 'Yaradıcılar' menyu seçimindən istifadə edərək yeni bir tətbiq yarada bilərsiniz. Vacib addımların xülasəsi üçün yuxarıdakı şəklə baxın.
'Yaradıcılar' menyusunda 'Tətbiqlərim' seçin, sonra 'Tətbiq Yarat' düyməsini basın. Yaranan formanı doldurmaq üçün 'Dropbox API' və sonra 'Tətbiq Qovluğu' seçin. Nəhayət, Dropbox daxilində tətbiqiniz üçün unikal bir ad seçə bilərsiniz. 'Tətbiq yarat' düyməsini basın.
Daha sonra Dropbox daxilində tətbiqinizin parametrlər səhifəsinə aparılacaqsınız. Burada etməniz lazım olan daha bir şey var - özünüzə bir giriş nişanı yaradın. Bunu etmək üçün 'OAuth 2' bölməsinə gedin və 'Yaradılmış giriş nişanı' altında 'Yarat' düyməsini basın.
Bu, Python istifadə edərək Dropbox hesabınıza daxil olmaq üçün lazım olan uzun bir simvol simvolu təqdim edəcək. Daha sonra kodunuzda bunu göstərməyiniz lazım olduğu üçün bu Giriş Tokenini qeyd edin. İşarəni itirsəniz, Dropbox 'Yaradıcılar' bölməsindəki 'Tətbiqlərim' düyməsini basaraq tətbiqinizin parametrlərinə qayıda və yeni bir möcüzə yarada bilərsiniz.
Digər parametrləri olduğu kimi tərk edə bilərsiniz. Tətbiqinizin Dropbox hesabınızda lazımi qovluqları yaratdığını təsdiqləmək üçün saxlama ana səhifənizə gedin və 'Tətbiqlər' qovluğunu axtarın. Bu qovluqda yeni tətbiqiniz üçün seçdiyiniz adı olan bir alt qovluq olmalıdır. İzləmə sisteminiz üçün bütün faylların yerləşdiriləcəyi yer budur.
Addım 3: Dropbox Tətbiq Qovluğunuzu Hazırlayın
Dropbox tətbiqinizi qurduqdan sonra, Pi ilə qarşılıqlı əlaqə yaratmaq üçün Dropbox hesabınızdakı qovluğu necə istifadə edəcəyinizi düşünməyin vaxtı gəldi. Bu olduqca sadə şəkildə həyata keçirilir. Pi üzərində işləyəcək Python skripti, tətbiq qovluğunuzdakı bəzi boş, uzantısız faylların adlarını axtarmaq və dəyişdirmək üçün Dropbox API-nin bir sıra əmrlərindən istifadə edəcək. Bu faylları 'parametr faylları' adlandıracağıq, çünki hər biri monitorinq sisteminin davranışının fərqli bir aspektini idarə etməyə imkan verəcəkdir. Yuxarıdakı şəkil, bu layihə üçün Dropbox tətbiq qovluğunda olması lazım olan dörd parametr faylını göstərir. Onları yaratmaq çox sadədir:
Tətbiq qovluğunuz tamamilə boş olduğundan başlayaraq kompüterinizdə bir mətn redaktoru proqramı açın. Bu Pi ilə edilə bilsə də, bu quraşdırma mərhələsi üçün Windows dizüstü kompüterimi istifadə etməyi daha asan tapdım. Mətn redaktoru açıldıqdan sonra (Windows 7 -də Notepad istifadə etdim), etməniz lazım olan şey, kompüterinizin hər hansı bir yerində tamamilə boş bir mətn faylını saxlamaqdır. İlk nümunəmiz olaraq, başlıq şəklindəki ilk parametri yaradacağıq. Fayl saxladığınız zaman 'delay = 10' adlandırın.
Xülasə etmək üçün indi kompüterinizdə 'gecikmə = 10' adı ilə boş bir mətn faylı olmalıdır. Faylın görünməyən və ya görünməyən '.txt' uzantısı da olacaq.
Növbəti addım bu faylı Dropbox tətbiq qovluğuna yükləməkdir. Bu, digər Dropbox yükləmələri kimidir. Tətbiqinizin qovluğuna gedin və 'Yüklə' düyməsini basın və 'gecikmə = 10' faylını seçin.
Bu fayl yükləndikdə, indi fayl adında görünməli olan '.txt' uzantısını silməlisiniz. Bunu etmək üçün faylı sağ vurun və 'Yenidən Adlandır' seçin. Fayl adının '.txt' hissəsini çıxarın. Başlıq şəklində göstərildiyi kimi, indi heç bir fayl uzantısı olmayan 'delay = 10' adlı bir fayl qalmalısınız.
'Gecikmə' parametri faylı, monitorinq proqramı tərəfindən istifadə ediləcək dörddən biridir. Başqalarını yaratmaq üçün 'gecikmə' faylını sağ tıklayaraq kopyalaya və adını dəyişə bilərsiniz. Üç nüsxə yaratdıqdan sonra, onları tətbiq şəkliniz bu addımın əvvəlində göstərilənlə eyni olması üçün başlıq şəklində göstərildiyi kimi adlandırın.
Addım 4: Kodla işə başlayın
Müzakirə edildiyi kimi, izləmə sistemimizin əsası Dropbox ilə əlaqə quracaq tək bir Python skriptindən ibarət olacaq. Monitorinq proqramının aktiv olması üçün bu skript Pi -də arxa planda işləməlidir. Güman edirəm ki, ən dəqiq şəkildə 'daemon' skripti olaraq təsvir edilmişdir, yəni onu işlək vəziyyətdə qoyub unuda bilərsiniz. Ssenari bu addıma bağlıdır, buna görə də kodu burada təkrarlamağın mənası yoxdur. İndi onu yükləmək və onunla tanış olmaq üçün yaxşı bir vaxt ola bilər.
Ssenarini işə salmadan əvvəl, müvafiq Python kitabxanalarının quraşdırıldığından əmin olmaq vacibdir. Lazım olanlar skriptin yuxarı hissəsində verilmişdir. Onlar:
idxal qutusu
idxal pygame.camera idxal zamanı id
Pi -dəki Python qurğusuna artıq pygame, os və vaxt daxil idi, buna görə yükləməli olduğum tək şey Dropbox idi. Bunu pip ilə çox sadə quraşdırma təlimatlarını istifadə edərək etdim.
Kitabxanalarınız qurulduqdan sonra, əlavə edilmiş skriptin üst iki sətrini Dropbox Giriş Tokeninizə və DS18B20 temperatur sensörünüzün bənzərsiz identifikatoruna uyğun olaraq düzəltməlisiniz. Düzəliş edilməli olan iki sətir bunlardır:
APP_ACCESS_TOKEN = '**********'
THERMOMETER_FILE = '/sys/bus/w1/cihazlar/28-**********/w1_slave'
Yalnız **** -ları düzgün dəyərlərlə əvəz edin. Bu nöqtədə, həqiqətən, izləmə proqramından istifadə etməyə hazırsınız! Yalnız daxil olmaq əvəzinə, kodun ümumi görünüşü üçün növbəti addıma davam etməyi məsləhət görürəm.
ƏHƏMİYYƏTLİ: Bu skripti işlədərkən arxa planda işləməsini istəyirsiniz ki, a) Pi -dən istifadə etməyə davam edə biləsiniz və b) SSH sessiyanızı bağladığınız zaman skript işləməyə davam etsin. Skript işlədərkən istifadə etdiyim əmr budur:
nohup python DropCamTherm.py &
Bu üç şeyi yerinə yetirir: Ssenarini işlədəcək ('python DropCamTherm.py'), nəzarəti dərhal əmr satırına qaytaracaq, beləliklə Pi ('&') istifadə etməyə davam edə bilərsiniz və Python çıxışlarını göndərəcək. adətən əmr satırında 'nohup.out' adlı bir fayl şəklində göstərilir. Bunu Linux mətn redaktoru (oxuduğum nano) istifadə edərək oxumaq olar və skriptin işlədiyi qovluqda avtomatik olaraq yaradılacaq.
Addım 5: Kodu daha dərindən qazın
Skript açıldıqda, skript işlədikdə bu funksiyaları həyata keçirən bir kod bloku ilə birlikdə üç funksiyadan ibarət olduğunu görəcəksiniz. Funksiyalar Dropbox API -dən istifadə edir və Dropbox -dan əmrləri dinləmək və ən son temperatur oxunuşunu yükləmək üçün DS18B20 -nin temperatur qeyd sənədinə daxil olur. Aşağıda funksiyaların nə etdiyinə və monitorinq sisteminin işləməsi üçün necə istifadə edildiyinə ümumi bir baxış var:
- poll_parametr ():
Bu funksiya 3 -cü addımda yaratdığımız Dropbox parametr fayllarının məqsədini göstərir. Dropbox tətbiq qovluğunda 'param =' mətni olan bir fayl axtarır. Daha sonra '=' işarəsindən sonra mətni çıxarır və onu tamsayıya çevirməyə çalışır. Parametr sənədlərinin sonuna əl ilə müvafiq nömrələr əlavə edərək proqramı idarə etməyimizə imkan verdiyini görə bilərsiniz. Növbəti addım, proqramın bir aspektini idarə etmək üçün hər bir parametr faylının necə istifadə olunacağını göstərən qısa bir təlimat kitabçası olacaq.
- set_parametr ():
Bu funksiya proqrama Python daxilindən bir parametr faylının adını dəyişməyə imkan verir. Əsasən sənədlərin həddən artıq əl ilə dəyişdirilməsi ehtiyacını azaltmaq üçün bunu bir neçə dəfə edir.
- set_latest_temp ():
Bu funksiya, son temperaturu 'temperatur' parametr faylına əlavə edərək Dropbox tətbiq qovluğuna yükləmək üçün set_parameter () istifadə edir. Funksiya, DS18B20 -nin qeyd sənədindən ən son temperaturu oxuyur (Linuxda THERMOMETER_FILE dəyişəninin göstərdiyi yolda mövcuddur).
Proqramın son hissəsi, skript işlədildikdə icra ediləcək kodu ehtiva edir. DS18B20 sensoru üçün lazım olan bəzi quraşdırma addımlarından sonra Access Tokeninizi istifadə edərək bir Dropbox sessiyası açır və veb kameranızı axtarmaq üçün pygame istifadə edir. Bir veb kamera tapılarsa, Dropbox -dan məlumat çıxarmaq və hərəkət etmək üçün poll_parameter () istifadə etdiyi bir döngəyə girəcək.
Vacib: Aşağıdakı kod xəttini görəcəksiniz:
cam = pygame.camera. Camera (cam_list [0], (864, 480))
… bu, pygame -in aşkarladığı ilk veb kameradan istifadə edilə bilən bir kamera interfeysi yaratmağa çalışır. Veb kameranıza uyğun olaraq qətnamənin dəyişdirilməsi lazım ola bilər. Ən yaxşı nəyin işlədiyini tapmaq üçün bir sıra dəyərlərlə sınayın.
Addım 6: Dropbox Parametr Fayllarından istifadə
Beləliklə, indi 4 -cü addımdakı təlimatları istifadə edərkən Pi -nin girişləriniz üçün tətbiq qovluğunu izləməyə başlamasına imkan verən işləyən bir skriptiniz olmalıdır. İlk işinizdə tətbiq qovluğunda aşağıdakı parametr faylları olmalıdır:
gecikmə = 10
exitprogram = 0 görüntü tələbi = 0 temperatur = 0
Proqramla qarşılıqlı əlaqə, parametr fayllarının Dropbox vasitəsilə əl ilə dəyişdirilməsi ilə əldə edilir. Bunu etmək üçün fayllardan birini sağ vurun və 'Yenidən adlandır' seçin. Hər bir parametr faylının fərqli bir funksiyası var:
- gecikmə:
Bu fayl, izləmə proqramının hər bir təkrarlanması arasında neçə saniyə gözləmək lazım olduğunu bildirir. Proqramla çox əlaqə qurmayacağımı bildiyim zaman bunu 60 və ya 120 -yə qoydum. Pi -dən tez -tez məlumat istəmək istədiyimi bildiyim zaman onu 10 -a qoydum.
- çıxış proqramı:
Bu 1 və ya 0 olaraq təyin olunmalıdır. Proqram 1 olaraq təyin edildiyini algılarsa, skriptə son qoyacaq. 1 olaraq təyin etsəniz və skript çıxarsa, onu yenidən işə salmaq üçün Pi -yə yenidən daxil olmalısınız. Bu parametr, artıq işləməyinizə ehtiyac olmadıqda (məsələn, evə qayıtmısınızsa və veb kameranı uzaqdan izləmək istəmirsinizsə) izləmə proqramını gözəl bir şəkildə sonlandıra bilərsiniz.
- görüntü tələbi:
Bu bəlkə də ən vacib parametrdir. Bu 1 və ya 0 olaraq təyin olunmalıdır. Proqram 1 -ə təyin olunduğunu algılarsa, veb kameradan bir şəkil istəyəcək və tətbiq qovluğuna yükləyəcək ('image.jpg' adı ilə). Başqa bir 'image.jpg' varsa, onu yazar.
- temperatur:
Bu set_latest_temp () funksiyası tərəfindən təyin olunan DS18B20 temperatur oxunuşudur. Bu parametr faylını heç vaxt redaktə etməməlisiniz - proqram tərəfindən avtomatik olaraq təyin olunur.
Unutmayın ki, 'exitprogram' və ya 'imagerequest' i 1 olaraq təyin etsəniz, proqram müvafiq kodu icra etməzdən əvvəl avtomatik olaraq onları 0 -a qaytaracaq. Bu rahatlıq üçündür. Kodun bir çox kritik funksiyanı əhatə edən bir çox 'cəhd' və 'istisna olmaqla' blokları da olduğunu görə bilərsiniz. Bu, bir şey səhv olarsa (məsələn, Dropbox girişini maneə törədən internet bağlantısı problemi), skriptin istisnalar yaratmamasını (və buna görə də işləməyi dayandırmasını) təmin etmək üçündür.
Addım 7: Nəticə
Bu layihə Python və Dropbox istifadə edərək bir Raspberry Pi idarə etmək üçün bir yol təqdim etdi. Bu layihədə istifadə olunan avadanlıq bir temperatur sensoru və bir USB veb kamerası olsa da, Pi -ni idarə etmək üçün bu üsul üçün bir çox başqa tətbiq var. Əslində, GPIO vasitəsilə əldə edilə bilən hər hansı bir hardware komponenti, oxşar bir proqram quruluşu istifadə edərək idarə oluna bilər ki, bu da sistemi genişləndirməyi çox asanlaşdırır.
Növbəti addım olaraq, Dropbox -a daxil olmadan belə parametr fayllarını dəyişdirməyə imkan verən bir müştəri proqramı yaratmaq üçün Dropbox API ilə birlikdə Tkinter kimi bir GUI kitabxanasından da istifadə edə bilərsiniz.
Ümid edirəm bu dərslik aydın oldu və hər hansı bir sualınız varsa və ya bir şeyə aydınlıq gətirmək istəsəniz, şərh yazın!
Tövsiyə:
Intel Edison: 4 addım ilə Cardíacos -un monitorinqi
Card Edition: Intel Edison: IoT Roadshow 2015 və 2015 -ci il tarixləri arasında Gedeane Kenshima, Rodrigo Bittenbinder, Gilvan Nunes, Ant & Folkran və Jefferson Farias tərəfindən təqdim olunan sistemlərin monitorinqini həyata keçirir. ac
Sigfox vasitəsi ilə elektrik istehlakı və ətraf mühitin monitorinqi: 8 addım
Sigfox vasitəsi ilə elektrik istehlakı və ətraf mühitin monitorinqi: Təsvir Bu layihə, üç fazalı bir enerji paylamasında bir otağın elektrik istehlakını necə əldə edəcəyinizi və sonra hər 10 dəqiqədə Sigfox şəbəkəsini istifadə edərək bir serverə göndərməyi sizə göstərəcək. Gücü necə ölçmək olar?
IOT ilə Yaşıl Evin Monitorinqi: 5 addım
IOT ilə Green House Monitorinqi: Kənd təsərrüfatına gəldikdə, temperaturun & Bitkilərin rütubəti onların yaşaması üçün vacib amildir. Hal -hazırda, insanlar bir istixana bağlanan termometrlərdən istifadə edirlər ki, fermerlər temperaturu ölçə bilsinlər. Bununla birlikdə, bu əl tətbiq
Nokia LCD ilə DSM501A ilə hava keyfiyyətinin monitorinqi: 7 addım
Nokia LCD ilə DSM501A ilə Hava Keyfiyyətinin Monitorinqi: Salam dostlar! Bu qısa təlimatda sizə evinizdə və ya hər yerdə hava qulluğunu necə izləyə biləcəyinizi göstərəcəyəm
Pool Pi Guy - AI ilə idarə olunan siqnalizasiya sistemi və Raspberry Pi istifadə edərək hovuz monitorinqi: 12 addım (şəkillərlə)
Pool Pi Guy - AI ilə idarə olunan siqnalizasiya sistemi və Raspberry Pi istifadə edərək hovuz monitorinqi: Evdə bir hovuza sahib olmaq əyləncəli olsa da böyük məsuliyyətlə gəlir. Ən böyük narahatlığım, kimsə hovuzun yanında (xüsusən kiçik uşaqlar) yanında olub -olmadığını yoxlamaqdır. Ən böyük narahatçılığım, hovuz su xəttinin heç vaxt nasosun altına düşməməsini təmin etməkdir