Mündəricat:
- Təchizat
- Addım 1: Avadanlıq
- Addım 2: Raspberry Pi OS Proqram Quraşdırması
- Addım 3: Uzaqdan Girməyə İzin Veriləcək Məlumatlılığı Qurun
- Addım 4: Sensorları yoxlayın
- Addım 5: UFW Firewall
- Addım 6: İstilik Məlumatlarını JSON olaraq bitirin
- Addım 7: Hər iki Sensordan Məlumat Göndərin
- Addım 8: Avtomatik Başlat
- Addım 9: Məlumatları Freeboard.io -da göstərin (1)
- Addım 10: Məlumatları Freeboard.io -da göstərin (2)
- Addım 11: Layihəni bir qutuya yığın
- Addım 12: Bitdi
Video: IoT Dual Temperatur Data Server: 12 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
Bu, Təlimatlandırıcı yazmaq üçün ilk cəhdimdir və lütfən mənimlə rahat olun! Bunun çox da pis olmadığını düşünürsənsə, zəhmət olmasa İlk dəfə Müəllif Müsabiqəsində mənə səs ver.
Bu, istixanada biri mərtəbə səviyyəsində, biri də damın altındakı 2 temperaturu uzaqdan izləmək üçün Lock-Down layihəmdir. Daha əvvəl Raspberry Pi -dən (RPi) istifadə etsəm də, bu layihədə istifadə etmədiyim bir neçə element var idi və yol boyu köhnəlmiş və ya səhv olan bir neçə dərslik tapdım. Yol boyu əldə edilmiş bir Pi Zero & 2 DS18B20+ Bir Telli Rəqəmsal Temperatur Sensorlarından işləyən ikili uzaqdan temperatur monitoru etmək üçün biliklər toplusumdur.
Öyrəndiyim şeylər:
- Əşyaların İnterneti (IoT) çərçivəsində bir cihazdan məlumat əldə etmək
- 2 cihazlı 1 telli interfeys
- Məlumat
- JSON məlumatları
- UFW təhlükəsizlik divarının qurulması
- Məlumatları göstərmək üçün Freeboard.io istifadə edin
- Proqramı avtomatik işə salmaq üçün RPi -nin konfiqurasiyası
Bütün bu mövzularda sadə bir axtarışla tapıla bilən çox miqdarda məlumat var, amma bu qədər aydın olmayan şey bütün bu ayrı elementləri necə birləşdirməkdir.
Təchizat
- Raspberry Pi -yə ehtiyacınız olacaq (qurmaq üçün monitor, siçan və klaviatura ilə, lakin bitmiş layihəni işləyərkən deyil)
- İşləyən internet bağlantısı.
- Mikro USB konnektoru olan PSU
- DS18B20+ Bir Telli Rəqəmsal Temperatur Sensorlarından 2 -si. Amazonun ən ucuz olduğunu tapdım
- 4K7 ohm müqavimət və ya 2 10K ohm rezistor istifadə etdim.
- Kiçik çörək taxtası və dəzgahda sınaq üçün bir neçə kişi/qadın tel
- Son montaj üçün kiçik bir zolaq parçası
- Lehimləmə və telin soyulması üçün sadə alətlər.
- Bitmiş dizaynı yerləşdirmək üçün kiçik plastik qutu
Addım 1: Avadanlıq
Artıq bir Raspberry Pi Zero W (simsiz) var idi, amma əminəm ki, bu sadə layihə hər hansı bir RPI -də yaxşı işləyəcək. Seminarımdakı qəribə elektron bit qutusunda başqa hər şey var idi (çörək taxtası, tel, PSU və s.) Və buna görə Amazon -dan 2 ədəd 2 x DS18B20 sensoru almalı oldum. Bunlar suya davamlı bir korpusa və 3 metrlik bir kabelə asanlıqla quraşdırılmış normal DS18B20 çipləridir. Kabeldən 3 tel var:
- Qırmızı - güc - 3.3v pin 1 -ə qoşulun
- Qara - qayıt - 6 -cı torpaq pininə qoşulun
- Sarı - məlumatlar - GPIO4 pin 7 -ə qoşulun
Sensorlar 1-Wire interfeysindən istifadə edir və qoşulmaq və məlumat əldə etmək çox asandır. İnternetdə 1 cihazın əlaqəsi ilə bağlı təfərrüatları olan bir neçə səhifə var, ancaq 2 -ni (və ya daha çoxunu) bağlamaqda çox azdır.
Dəzgahda test etmək üçün dövrə bir çörək taxtası istifadə edərək yığılmışdır. Tapdığım dərslərdə, məlumat xəttini təhrif etmək üçün 4K7 rezistorundan istifadə edildiyi ifadə edildi, amma birini tapa bilmədim və buna görə paralel olaraq 2* 10K istifadə etdim və çox yaxşı işləyirdi. İnternetdə RPi sxemlərini yığmaq üçün bir çörək taxtasından istifadə etmək üçün çoxlu mənbələr var və buna görə də onları burada təkrarlamayacağam.
Dövrə Şeması istifadə edərək yaradılan diaqram
Addım 2: Raspberry Pi OS Proqram Quraşdırması
Daha əvvəl bu RPi -dən istifadə etdiyim üçün OS -nin təmiz bir quruluşu ilə başlamağa qərar verdim, SD kartı yenidən formatladım və NOOBS -un təmiz bir versiyasını quraşdırdım. Daha sonra Raspianın tam masa üstü versiyasını (ən yaxşı seçim) quraşdırdım, çünki bu da Lite versiyasında olmayan PIP & GIT quracaq. Layihə üçün Qrafik İstifadəçi İnterfeysinə (GUI) ehtiyacım olmasa da, bütün variantları qurmağın asan bir yoludur və 16 gb SD kartı ilə yer çatışmazlığı yox idi.
WI-FI girişini qurdum, sonra tam quraşdırma və sonra sihirbazı yeniləmələr və təkmilləşdirmələr və s. GUI istifadə edərək, GUI-ni istifadə etmək Komanda Satırı İnterfeysindən (CLI) daha sadə olduğu üçün lazım olduğu kimi RPI qururam. Menyudan konfiqurasiya pəncərəsinə getdim və sonra:
- Sistem sekmesinde, parolumu dəyişdirdim, CLI -ə yükləməyi təyin etdim və Avtomatik Giriş yoxlanılmadı
- İnterfeyslər sekmesinde 1 telli aktiv etdim
- Tamam düyməsini basın və yenidən yükləyin
İstənilən vaxt GUI -yə qayıtmaq lazımdırsa, CLI -də startx yazın
startx
Addım 3: Uzaqdan Girməyə İzin Veriləcək Məlumatlılığı Qurun
Https://blog.dataplicity.com/how-to-build-a-raspb… ünvanındakı Dataplicity saytında həqiqətən faydalı bir blog girişi tapdım və bunun bir neçə hissəsini istifadə etdim. Bloqun 3 -cü bölməsi, RPi -yə uzaqdan giriş üçün Dataplicity qurmağı təsvir edir. Daha əvvəl heç vaxt Dataplicity istifadə etməmişəm, amma demək lazımdır ki, çox sadə bir uzaqdan giriş vasitəsi olaraq tövsiyə edirəm. Ekran görüntüləri (yuxarıdakı bloqda) bir qədər köhnə olsa da, prinsip qaydasındadır.
Kompüterinizdə Dataplicity.com saytına daxil olun və bir hesab yaradın (brauzeri GUI -də istifadə edə bilərsiniz, ancaq RPi Sıfırda daha yavaş). Sonra "yeni cihaz əlavə et" düyməsini basın və açılan pəncərədə bir kod xətti görünür. Sonra RPi -də CLI -ə gedin və mətn sətrinə yazın. Hər şey qaydasındadırsa, Dataplicity loqotipi görünəcək və quraşdırma proqramı işləyəcək.
Kompüterinizə qayıdın, yeni cihaz artıq Dataplicity veb saytında görünməlidir. Cihazı vurun və RPi üçün bir terminal ekranı görməlisiniz.
Burada bir neçə məqama diqqət yetirmək lazımdır:
- Daxil olmaq üçün "su pi" yazın (super istifadəçi girişi üçün) və sizdən parol istənəcək (əvvəllər təyin olunduğu kimi)
- Wormhole'u aktiv etməlisiniz (daha sonra istifadə ediləcək)
- Veriləri daha sonra göstərmək üçün Wormhole ünvanına ehtiyacınız olacaq (lazım olduqda kopyalamaq üçün sağ klikləyin)
Bu uzaqdan girişi aşağıdakı bütün addımlar üçün istifadə edə bilərsiniz və məlumatları, proqramları və s. Kopyalamaq birbaşa RPi üzərində olduğundan daha asandır.
Addım 4: Sensorları yoxlayın
İndi bütün sonrakı hissələr üçün Dataplicity -dən RPI -ə uzaqdan girişdən istifadə edə bilərsiniz.
İndi hər şey qaydasındadırsa, temperaturun DS18B20 -dən qaytarıldığını görə bilməlisiniz. Pi Hut dərsliyində işlədim, amma bunun çoxu lazım deyildi. Tam məlumat almaq istəyirsinizsə, burada tapa bilərsiniz:
Cihazlar qovluğuna keçmək və 2 fərqli sensorun göstərilməsini təmin etmək vacibdir.
cd/sys/bus/w1/cihazlar/
Bu, 28 ilə başlayan 2 cihazı və avtobus ustasını göstərməlidir. Mənim şoularım:
28-011453ebfdaa 28-0114543d5daa w1_bus_master1
Bu 2 şəxsiyyət nömrəsi vacibdir və daha sonra lazım olacaq! Sonra sensor qovluqlarından birinə keçin:
cd 28-011453ebfdaa
(məsələn) və sonra sensordan dəyəri oxumaq üçün
pişik w1_slave
Göstərilən 2 sətir mətn olmalıdır:
53 01 4b 46 7f ff 0c 10 2d: crc = 2d VAR
53 01 4b 46 7f ff 0c 10 2d t = 21187
Bəli, sensorun düzgün oxuduğunu göstərir və 21187 21.187 -də Selsi temperaturunu göstərir (1000 -ə bölün) İkinci sensoru yoxlamaq üçün bunu təkrarlayın. Hər ikisi də yaxşı oxuyursa, Python3 ilə məlumatları oxumağa davam edə bilərik.
İnternetdə tapdığım, amma haradan olduğunu xatırlaya bilmədiyim aşağıdakı kodu kopyaladım və uyğunlaşdırdım. Bu kodunuza bənzəyirsə, heç bir plagiat nəzərdə tutulmadığı üçün üzr istəyirəm; zəhmət olmasa mənə bildirin və işinizi qəbul edəcəyəm.
Layihələr adlı bir kataloq yaradın və bu qovluğa keçin.
mkdir ~/layihələr
cd ~/layihələr
Bu qovluqda, thermo-test.py adlı bir fayl yaratmaq və redaktə etmək üçün mətn redaktorundan (nano) istifadə edin
sudo nano thermo-test.py
Bu redaktoru açmalı idi və Dataplicity-dən istifadə edərkən aşağıdakı kodu (thermo-test.py) kopyalayıb redaktora yapışdıra bilərsiniz. 2 cihaz adını (28- dən başlayaraq) yuxarıda qeyd olunanlara dəyişdirməlisiniz. Hər şey düzgün göründükdə, başa çatdırmaq üçün ctrl+X düymələrinə, saxlamaq və mövcud addan istifadə etmək üçün Y düymələrinə basın. GUI istifadə etmək istəsəniz, Thonny də eyni şeyi edəcək.
Test proqramını işə salmaq üçün:
sudo python3 thermo-test.py
Hər şey yaxşıdır, bu, python 3 istifadə edərək faylı icra etməli və hər 10 saniyədə 2 temperaturu ekrana çap etməlidir. Buzlu suya 1 sensor qoyaraq və ya saç qurutma maşını ilə yumşaq bir şəkildə istiləşdirərək hər şeyin yaxşı olduğunu sınaya bilərsiniz. Hər şey qaydasındadırsa, davam edə bilərik!
Addım 5: UFW Firewall
Bu RPi daimi olaraq internetə qoşulmaq niyyətində olduğu üçün bir Firewall -ın yaxşı bir fikir olacağına qərar verdim və istifadə etmək üçün sadə bir Kompleks Firewall (ufw). Burada çox sadə bir dərs var
Dərinliyə getməyəcəyəm, çünki bu Təlimatın məqsədi deyil, qısacası:
Təhlükəsizlik divarını aşağıdakılarla quraşdırın:
sudo apt-get ufw yükləyin
Varsayılan qaydaları təyin edin:
sudo ufw default gedənlərə icazə verir
sudo ufw default daxil olanı inkar edir
Məlumat üçün 80 portunu açın
sudo ufw icazə 80
Təhlükəsizlik divarını aktiv edin
sudo ufw imkan verir
Vəziyyəti yoxlayın və hər şeyin işlədiyinə əmin olun
sudo ufw statusu
Addım 6: İstilik Məlumatlarını JSON olaraq bitirin
Tim Fernandonun bloguna və 5 -ci hissəsinə qayıdın.
Bildirildiyi kimi addımları izləyin (layihələr kataloqunu yaratmağımız istisna olmaqla) və hamısı yaxşı işləməlidir. GIT -dən istifadə edərək Tim -in tətbiq fayllarını yükləyəcəksiniz və PIP bütün lazımi proqramların RPi -yə quraşdırıldığından əmin olacaq. Sonra paketlərin düzgün qurulduğundan əmin olmaq üçün yenidən yükləməli olduğumu gördüm.
Sonra Tim proqramını işə salın və RPi sonra ilk sensor üçün JSON məlumatlarını təqdim etməlidir.
cd ev/pi/layihələr/temperatur-xidmət-pi
sudo gunicorn temperaturu: tətbiq -b 0.0.0.0:80
Blogdan keçərək 6 hissəyə keçə bilərsiniz, burada sensorlardan 1 -i üçün məlumat verilir.
Verilənləri görmək üçün JSON Viewer -dən də istifadə edə bilərsiniz https://codebeautify.org/jsonviewer "URL yüklə" düyməsini basın və əvvəl qeyd etdiyimiz Wormhole ünvanına yapışdırın. Sol bölmədə, biri Selsi üçün, biri də Fahrenheit üçün iki giriş görməlisiniz.
Addım 7: Hər iki Sensordan Məlumat Göndərin
Temperatur.py və thermo-test.py kodlarına əsaslanaraq, 2temps.py kodunu əvvəlki kimi /projects /temperatur-xidmət-pi qovluğunda düzəltdim, kodu yapışdırıb saxladım. Sonra qaçdım
sudo gunicorn 2temps: app -b 0.0.0.0:80
İndi JSON Viewer-ı yenidən işlədərkən temp1 və temp2 üçün dəyərlər aldım
Uğurlar:)
Addım 8: Avtomatik Başlat
İstixana enerjisi zaman -zaman söndüyü üçün, RPi -nin proqramı avtomatik olaraq yükləməsini və məlumatları sübut etməyə başlamasını istədim. Ən sadə yol, rc.local faylını redaktə etmək və 0 nömrəli çıxışın üstündən aşağıya lazım olan kodu əlavə etməkdir.
cd və s
sudo nan rc.local
sonra əlavə edin
yatmaq 10
cd ev/pi/layihələr/temperatur-xidmət-pi sudo gunicorn temp04: app -b 0.0.0.0:80 &
- & Sonunda kompüterə skriptin alt qabıqda işləməsini bildirir ki, kompüteriniz funksiyanın bitməsini gözləməsin və açılışa davam etsin.
- Yuxu 10 [saniyə], xidmətə başlamazdan əvvəl əvvəlki bütün əməliyyatların tamamlandığından əmin olur.
Çıx və əvvəlki kimi saxla. Sonra hər şeyi yoxlamaq üçün JSON Viewer-ı yenidən başladın və yenidən başladın.
Avtomatik işləyən proqramlar haqqında daha çox məlumat əldə etmək istəyirsinizsə, burada əla bir dərs var
Addım 9: Məlumatları Freeboard.io -da göstərin (1)
Timin blogundakı addımlar, ümumilikdə, yaxşı işləyir; www.freeboard.io saytında bir hesab yaradın və sonra yeni bir Freeboard yaradın, mənim üçün ŞƏDDƏTLƏRİ çağırdım.
Birincisi, bir məlumat mənbəyi əlavə edin, sağ üstdəki ADD düyməsini basın və pop-updan JSON-u növ olaraq seçin, məlumat mənbəyinə NAME verin, URL kimi əvvəlki qurd deliği ünvanını əlavə edin və TRING THINGPROXY üçün NO düyməsini basın. Temperatur çox yavaş dəyişir və buna görə də hər 15 saniyədə bir yeniləyin. QAYDET düyməsini basın.
Addım 10: Məlumatları Freeboard.io -da göstərin (2)
İlk vidceti əlavə etmək üçün ADD PANE və sonra + düyməsini basın. Müxtəlif növləri seçə və oynaya bilərsiniz, amma Gauge -nin yaxşı olduğunu gördüm. Müraciətinizə uyğun uyğun TITLE, UNITS (C), MINIMUM və MAXIMUM verin. DATASOURCE üçün + düyməsini basın və yuxarıda yaradılan mənbə görünəcək.
Açılan açılışda əvvəllər qurulmuş 2 JSON məlumat mənbəyi (temp2 & temp2) göstərilməlidir. Müvafiq mənbəni seçin və Saxla düyməsini basın.
İkinci göstərici üçün bunu təkrarlayın və hamımız hazırıq.
Məlumatlar indi 2 ölçü cihazında göstərilməlidir və hələ də bir monitora PRI bağlıdırsa, Freeboard.io -dan gələn istəkləri gəldikcə görməlisiniz.
Addım 11: Layihəni bir qutuya yığın
Bu vaxta qədər, RPi və digər komponentlər hamısı çörək taxtası istifadə edərək skamyada yığılmışdı. Çörək taxtasının yerini dəyişdirmək üçün kiçik bir şerit taxtası istifadə olundu və tellər hamısı yerinə lehimləndi.
Çox yer tutan və RPI -nin çox qızmayacağı parlaq çəhrayı kiçik Lego saxlama qutusu tapıldı. qutunun kənarlarına deliklər qazılmış və RPi və şeridi taxmaq üçün 3 mm neylon montaj dirəklərindən istifadə edilmişdir.
GPIO, 3.3v, GND və məlumatlardan yalnız 3 əlaqə tələb olunur.
- 3.3vdc pin 1
- GND pin 6
- Məlumat (GPIO4) pin 7
İstilik sensörlərinə USB gücü və kabellər üçün qutuya deliklər əlavə edildi. Hər şey yerinə qoyulduqdan sonra, hörümçəklərin qışı keçirmək üçün yaxşı bir isti yer olduğunu düşünməmələri üçün az miqdarda silikon mastik əlavə edildi!
Addım 12: Bitdi
Qutu istixana qoyuldu və USB şarj cihazından güc aldı. Fidanların gecə nə qədər soyuduğunu yoxlamaq üçün iki sensoru biri istixananın üstünə, digəri isə bitki qabına qoyuldu.
Bu mənim ilk Təlimatçımdır və ümid edirəm ki, hər şey qaydasındadır. Hər hansı bir səhv taparsanız, mənə bildirin və lazım olduqda düzəliş edəcəyəm. Növbəti addım hər 60 saniyədə bir məlumatı qeyd etmək ola bilər, ancaq bu daha sonra gələcək.
Tövsiyə:
Dual Band WiFi Analizatoru: 6 Addım (Şəkillərlə birlikdə)
Dual Band WiFi Analizatoru: Bu təlimatlar, 2.4 GHz və 5 GHz cüt bantlı WiFi analizatoru hazırlamaq üçün Seeedstudio Wio Terminalından necə istifadə olunacağını göstərir
Ən sadə IoT Temperatur və Rütubət Ölçən: 5 Addım (Şəkillərlə birlikdə)
Ən sadə IoT Temperatur və Rütubət Ölçən: Ən sadə IoT temperatur və rütubətölçən, temperatur, rütubət və istilik indeksini toplamağa imkan verir. Sonra onları Adafruit IO -ya göndərin
ESP8266 ilə IoT Temperatur Sensoru: 6 Addım (Şəkillərlə birlikdə)
ESP8266 ilə IoT Temperatur Sensoru: WiFi üzərindən izləyə biləcəyim bir temperatur sensoru yaratmağımdan ilham aldım. Bu layihə yeni deyil, amma təhlükəsizlik üçün ara qatın olması və routerinizdə portu IoT cihazınıza açmamaq fikrini bəyənirəm
Dual Axis Tracker V2.0: 15 Addım (Şəkillərlə birlikdə)
Dual Axis Tracker V2.0: 2015 -ci ildə, əyləncəli bir tələbə və ya hobbi layihəsi olaraq istifadə etmək üçün Sadə İkili Eksen İzləyicisi hazırladıq. Kiçik, səs -küylü, bir az mürəkkəb idi və bir çox həqiqətən qəribə cəmiyyət şərhlərinə səbəb oldu. Deyilənə görə, üç il yarım sonra
IoT Simsiz Temperatur və Hərəkət Sensoru: 11 Addım (Şəkillərlə birlikdə)
IoT Simsiz Temperatur və Hərəkət Sensoru: Təlimat verilənlərində olan bir çox IoT layihəsindən ilham aldım, buna görə də öyrənmə prosesində əlaqəli bəzi faydalı tətbiqləri birləşdirməyə çalışıram. IoT Temperatur sensoru ilə bağlı əvvəlki Təlimatlarımın uzantısı olaraq, indi