Mündəricat:
- Təchizat
- Addım 1: Raspberry Pi qurun
- Addım 2: Avadanlıqlarınızı bağlamaq
- Addım 3: Kodu əlavə edin
- Addım 4: Şəkil verin
- Addım 5: Hata Ayıklama və RxTx.py Fayl
- Addım 6: Zövq alın
Video: Bir Moruq Pi istifadə edərək satış nöqtələrini necə idarə etmək olar: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Bu Təlimat kitabında, sizə bir Raspberry Pi istifadə edərək evinizdəki satış nöqtələrini idarə etmək üçün bir veb interfeysi necə yaradacağınızı sizə göstərəcəyəm. Sensorlar yarışmasını görəndə bu layihəni yazmağı seçdim və bu layihə, satın aldığınız prizlərlə təchiz edilmiş pultun kodlarını oxumaq üçün bir sensordan istifadə etməyi nəzərdə tutduğundan bu layihənin mükəmməl uyğun olacağını düşündüm.
Bunu mümkün qədər yüksək səviyyədə saxlamağa çalışacağam və bütün bunların işləməsi üçün kod təqdim edəcəyəm. Hamınız oradakı meymunları kodlaşdırdığınız üçün, kodu araşdırmaqdan çəkinməyin və şərhlərdə məni diqqətlə araşdırın! Həmişə yaxşılaşmağa çalışıram. Bu işdə kifayət qədər işlər gedir, buna görə də hər hansı bir addımla bağlı suallarınız olarsa, şərh yazın ki, Təlimatçını lazım olan detallarla yeniləyim.
Bu layihə, moruq pi -yə qoşulmuş bir RF ötürücü ilə birlikdə 433MHz -də radio tezliyi idarə olunan prizlərdən istifadə edir. Çıxış yerləri prizləri aça/söndürə bilən uzaqdan idarəetmə cihazları ilə gəlir, amma bu əyləncəli deyil! Bunun əvəzinə, şəbəkəyə qoşulan hər kəsin müəyyən satış nöqtələrini açmasına və ya söndürməsinə imkan verən moruq pi üzərində işləyən bir veb serverdən istifadə edəcəyik. Bu layihənin veb ön ucu idealdır, çünki şəbəkənizdəki hər hansı bir vebə qoşulmuş cihaz pult olaraq istifadə edilə bilər.
İllərdir tamamlamağı xəyal etdiyim bir layihədir və hələ də əlavələr üçün yer olsa da, aşağıda təsvir olunan layihə funksional bir sistemdir.
Təchizat
- Raspberry Pi (RPi 3 Model B+istifadə etdim)
- 433MHz Verici və Alıcı (mən bunu istifadə etdim)
- 433MHz çıxışları (bundan istifadə etdim)
- Qadın-Qadın Atlayanlar (bu dəstəni aldım)
- İnternetə çıxa bilən kompüter və ya əl cihazı
Addım 1: Raspberry Pi qurun
Yeni Raspberry Pi -yə ən son Raspbian versiyasını quraşdıraraq başlayın. Mövcud bir Pi istifadə etməyi planlaşdırırsınızsa (bunu tamamilə edə bilərsiniz), ehtiyac duyduğunuz tək şey Pi -də Python 3 -ün olduğundan əmin olmaqdır, çünki təmin etdiyim bütün mənbə kodunun yazıldığı budur. Bunu etmək üçün., növü
python3
əmr satırına daxil edin. Python 3 varsa, python terminalının açıq olduğunu görməlisiniz. Bağlayaraq və ya yazaraq terminaldan çıxın
çıxmaq ()
Bunu təsdiqlədikdən sonra Pi -yə bir şüşə quraşdırmalısınız. Flask veb serverimizi yaratmağa imkan verir. Pi əmr satırından yazın
sudo pip3 qabı quraşdırın
Pi -də pip quraşdırılmamışsa, yazmalısınız
sudo apt-get python3-pip quraşdırın
Raspberry Pi -də masaüstü kompüterimin rahatlığından inkişaf etməyi üstün tuturam. Əgər siz də bu seçimi üstün tutursanız, Pi -yə SSH üçün bir növ mühit qurmalısınız. PuTTY işləyəcək, amma GUI (qrafik istifadəçi interfeysi) olmağı üstün tuturam ki, bu da birbaşa Pi -də olduğunuzu göstərir. GUI seçimi üçün, işləməyi planlaşdırdığınız kompüterə VNC Viewer qurmaq istəyəcəksiniz. Pi -də tənzimləməyiniz lazım olan parametrlər də var. Parametrləri dəyişdirmək üçün təlimatları burada tapa bilərsiniz.
Addım 2: Avadanlıqlarınızı bağlamaq
Bu nöqtədə, bu layihə üçün mənbə kodunu qurmağa hazırlaşmaq üçün lazım olan bütün fiziki əlaqələri qurmağın vaxtı gəldi. Vericinin və alıcının sancaqlarını Pi -nin GPIO pinlərinə bağlayacaqsınız. GPIO pinlərinin pinout diaqramına dini olaraq istinad etmək istəyəcəksiniz. Bunu etmək üçün Pi cihazınızın terminalını açın və yazın
pinout
Etdiyim əlaqələr aşağıdakılardır. Girişdə göstərdiyimdən fərqli bir ötürücü/qəbuledici qurğu satın alsanız fərqli bir konfiqurasiyaya sahib ola bilərsiniz. Aşağıda göstərdiyim nömrələrdən fərqli pin nömrələri seçməyə qərar verərsənsə, qorxma! Mənbə kodunu yüklədiyiniz zaman, RxTx.py faylında lazım olduğu kimi pin nömrələrini dəyişdirin.
Alıcı (böyük çip):
- GND - Hər hansı bir təyin edilmiş torpaq pin
- DATA - Pin 11
- DER - Bağlı deyil
- +5V - İstənilən təyin edilmiş +5V pin
- ------
- +5V - İstənilən təyin edilmiş +5V pin
- GND - Hər hansı bir təyin edilmiş torpaq pimi
- GND - Bağlı deyil
- ANT - Bağlı deyil
Qeyd: Lazım gələrsə bir anten bağlaya bilərsiniz, amma ehtiyacım olmadığını gördüm. Bu kiçik çip təəccüblü dərəcədə həssas idi və oturduğu yerdən ən azı 50 fut məsafədə və ən azı iki divardan siqnalları sadiq şəkildə algılar.
Verici:
- P - 3.3V pin
- DA - Pin 7
- G - Hər hansı bir təyin edilmiş torpaq pimi
- AN - bağlı deyil
Qeyd: Yenə də lazım olduqda antena vericiyə qoşa bilərsiniz, amma lazım olmadığını gördüm. Aralığı kifayət qədərdir (50+ft).
Addım 3: Kodu əlavə edin
Bu layihəni hazırlayarkən vaxtımın çox hissəsini keçirdiyim hissədir. Mümkün olduğunca şərh verməyə çalışıram, amma çox güman ki, hər biriniz bunu başa düşmək üçün vaxt sərf etsəniz izahat tələb edə biləcək boşluqlar buraxmışam. Bu sizinlə baş verərsə, zəhmət olmasa bir şərh yazın!
Burada iştirak edən dillər bunlardır:
- Python
- CSS
- Javascript
- HTML
- JQuery/Ajax
Python, şüşə serverində və
RxTx.py
kod ötürülməsi və alınması ilə məşğul olan fayl. CSS veb səhifəsinin üslubunu yaratmaq üçün istifadə olunur. Kim cansıxıcı bir sayt istəyir !? Javascript hər hansı bir hadisənin idarə edilməsində istifadə olunur (düyməni basmaq və s.). HTML, veb səhifənin əsas bina blokudur. Nəhayət, JQuery/Ajax veb səhifəsi ilə Python arxa tərəfi arasında ünsiyyət qurmaq üçün istifadə olunur.
Bütün bu dillər qorxuducu səslənirsə, narahat olmayın! Python -un ən az kodlaşdırma dilinə sahib olan bu layihəyə girdiyini bilirdim, rəqəmə keçin … Bunu etməyi seçdiyiniz təqdirdə, kodu taramağa vaxt ayırın. İstəmirsənsə, etməzsən!
Aşağıda bu veb səhifədə istifadə etməyi seçdiyim kataloq quruluşu var. Bu addıma əlavə edilmiş qovluq aşağıdakı quruluşdakı bütün mənbə kodunu ehtiva edir.
Çıxış açarı-> comm-- DataRW.py-- keys.py-- RxTx.py-> veb səhifəsi-statik ----- favicon.ico ----- style.css-- şablonlar ----- index.html ----- cədvəl.html-- app.py-- data.file
Çıxış Keçid qovluğunu Pi -nin istənilən yerinə qoya bilərsiniz. Veb serverinizi işə salmağa hazır olduğunuzda, Pi üzərindəki terminalı açın və
cd
(qovluğu dəyişdirin) veb səhifəsi qovluğuna. Sonra yazın
python3 app.py
terminala daxil olur. Səhvlər olmasaydı, getməyiniz yaxşı olardı!
P. S. Hər hansı bir səhvlə qarşılaşsanız, səbr edin. Yükləməzdən əvvəl hamısını sıxışdırmağa çalışdım.
Addım 4: Şəkil verin
İndi kodu işə saldığınız üçün veb interfeysini parmaklarınızın ucunda hiss edə bilərsiniz. Sistemin idarə edilməsi çox sadədir:
- Veb interfeysindən istifadə edərək istədiyiniz qədər satış nöqtəsi əlavə edə bilərsiniz.
- Silmək, redaktə etmə, silmək istədiyiniz çıxışları seçmək və silmək düyməsini basmaq qədər sadədir.
Yuxarıdakı YouTube videosu, siyahınıza yeni bir çıxış əlavə etmək üçün necə getmək lazım olduğunu göstərir. Göstərdiklərini ümumiləşdirmək üçün:
- Əvvəlcə Başlıq sahəsindəki çıxışın adını daxil edin
- Proqramın başlığın mövcud olmadığını yoxlamasına icazə vermək üçün Başlıq sahəsinin kənarına vurun və ya toxunun. Eyni adda başlıqlara sahib ola bilməzsiniz
- Təsdiq edildikdən sonra ON kodu və OFF kodu düymələri aktivdir.
- Təmin etdiyiniz pultdakı ON düyməsini basıb saxlayın və interfeysdəki ON Kodu düyməsini tez bir zamanda basın. İkili kodunuz bitişik sahəni doldurana qədər pultdakı düyməni basıb saxlayın.
- OFF kodu üçün əvvəlki addımı təkrarlayın.
- OK düyməsini basın və indi bu çıxışı dəyişdirməyə hazırsınız!
Girişdə qeyd edildiyi kimi, layihə mənim istifadəm üçün 100% tamamlanmayıb. Hələ tamamlamadığım və tətbiq etmədiyim ən böyük komponent, planlaşdırma qabiliyyətidir. İstifadəçiyə, satış nöqtələrinin avtomatik olaraq təyin olunan vaxtlarda açılıb söndürülməsinə imkan verən bir cədvəl qurmasına icazə verməyi planlaşdırıram.
Addım 5: Hata Ayıklama və RxTx.py Fayl
Sistemin bilinən yeganə məhdudiyyəti, fərqli satıcıların satış nöqtələri arasında uyğunsuzluq şansının olmasıdır. Açma və söndürmə kod mesajları sistemim üçün 25 bitdir və bir sistemin fərqli bir mesaj uzunluğu varsa, bu layihə ilə dərhal uyğun gəlmir. Təlimatları tam olaraq yerinə yetirmiş olsanız və hələ də bu problemi həll etməkdə çətinlik çəkirsinizsə, aşağıdakılar problemi həll etməyin ən yaxşı yolu olardı.
-
Pi -də matplotlib quraşdırdığınızdan əmin olun. Bunu Pi terminalına aşağıdakıları yazaraq edə bilərsiniz:
-
python3
-
matplotlib idxal edin
- Bir səhv alsanız, matplotlib quraşdırmalısınız.
-
İstifadə edərək python qabığından çıxın
çıxmaq ()
-
-
Matplotlib qurmaq üçün yazın
sudo pip3 matplotlib quraşdırın
- terminala daxil olur
- Əlavə edilmiş test.py faylını yükləyin və Pi -də RxTx.py faylının yanında yerləşdirin
- Python terminalını açın və qovluğu comm qovluğuna dəyişdirin.
-
Yazın
python3 test.py
- "** Yazmağa Başlandı **" deyildikdə, pultunuzdakı ON və ya OFF düyməsini qeyd bitənə qədər basıb saxlayın.
- Proqram yuxarıdakılara bənzəyən matplotlib rəqəmi yükləyəcək. Yuxarıdakı fotoşəkillərdə göstərildiyi kimi təkrarlanan siqnalı görənə qədər yaxınlaşdırın.
- Hər bir mesaj üçün ümumi məntiqi 1 və məntiqi 0 sayın, burada bir mesaj yuxarıda görünən təkrarlanan siqnalın bir təkrarlanmasıdır. Cəmi 25 olarsa, RxTx.py faylının günahı yoxdur. 25-dən başqa bir şeylə qarşılaşsanız, aşağıda şərh yazdığınızdan əmin olun və mən RxTx.py faylını daha açıq tipli etmək üçün yenidən hazırlayacağam (və ya əlinizi sınamaqdan çekinmeyin).
Təkrarlanan bir siqnal görmürəmsə nə etməli?
Təkrarlanan bir siqnal görmürsənsə, iki şeydən biri səhvdir. Əvvəlcə bütün tullanan tel əlaqələrinizin düzgün qurulduğunu yoxlayın. Hər şey yaxşı görünsə, pis bir alıcı ola bilər. Təklif etdiyimi aldınızmı? İlk alıcı çipimi alanda çox səs -küylü idi. O qədər səs -küylü idi ki, aydın bir siqnal ala bilmədim. Sonra həmin çipi geri qaytardım və bağladığım birini götürdüm və daha yaxşı işləyə bilməzdi.
Addım 6: Zövq alın
Telefonunuzdan, planşetinizdən, kompüterinizdən və ya digər veb aktiv cihazdan prizləri açmaq/söndürmək qabiliyyətiniz olduğunu bilirsiniz! Şərhlərdə nə düşündüyünüzü mənə bildirin!
Tövsiyə:
Raspberry Pi və Relay istifadə edərək bir cihazı necə idarə etmək olar - ƏSASLARI: 6 addım
Raspberry Pi və Röleyi istifadə edərək bir cihazı necə idarə etmək olar - ƏSASLARI: Bu, IoT Layihələri hazırlamaq üçün faydalı olan Raspberry Pi və Relay istifadə edərək cihazı idarə etmək üçün əsas və düz bir dərsdir. Bu dərs yeni başlayanlar üçündür, Moruqdan istifadə haqqında sıfır biliyiniz olsa belə davam edin
Visuino LED kimi şeyləri idarə etmək üçün bir düyməni necə istifadə etmək olar: 6 addım
Visuino LED kimi şeyləri idarə etmək üçün bir düyməni necə istifadə etməli: Bu təlimatda sadə bir düymə və Visuino istifadə edərək LED -i AÇMA və SÖKMƏNİ öyrənəcəyik
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Esp8266: 5 addımlarından istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT cihazı necə etmək olar
Esp8266 istifadə edərək cihazları idarə etmək və havanı izləmək üçün bir IoT Cihazı Necə Hazırlanır: Əşyaların İnterneti (IoT) fiziki cihazların ("əlaqəli qurğular" və "ağıllı qurğular" olaraq da adlandırılır), binaların, və elektronika, proqram təminatı, sensorlar, aktuatorlar və
Bir Mosfet istifadə edərək bir toxunuş açarı necə etmək olar: 4 addım (şəkillərlə)
Bir Mosfetdən istifadə edərək Dokunmatik Anahtarı Necə Etmək olar: TƏK BİR MOSFET TRANSİSTORU İSTİFADƏ EDƏCƏK NECƏ OLACAQ Bir çox cəhətdən, MOSFET -lər adi tranzistorlardan daha üstündür və bu günün tranzistor proyektində biz onu əvəz edəcək sadə bir toxunuş açarı necə edəcəyimizi göstərəcəyik. h ilə normal keçid