
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:56



Salam! Bu yaxınlarda IoT (Əşyaların İnterneti) dünyası ilə tanış oldum, çünki bu sahədə ən populyar cihaz ESP8266 ilə rastlaşdım. Bu kiçik və ucuz cihazın açdığı son imkanlar məni heyrətləndirdi. Hal -hazırda bu işdə yeni olduğum üçün ondan istifadə edərək bir layihə hazırlamağı və yol boyu öyrənməyi qərara aldım. Beləliklə, İnternetdə layihələr və fikirlər axtarmağa başladım.
W. A. Smithin Arduino Cricket Score Ticker adlı inanılmaz bir layihəsi ilə rastlaşdım. Bu layihədə Arduino, Ethernet Shield və SD kartı ilə birlikdə Cricbuzz -dan canlı kriket skorlarını göstərmək üçün istifadə olunur. Bu layihə məni düşündürdü.
Mən Hindistandanam və Hindistanı eşitdikdən sonra ağlıma gələn ilk şey Kriketdir. Burada kriket dindir. Bütün matçı izləmək üçün bəzən televizorun qarşısında oturmaq çətinləşir. Odur ki, niyə seyr etməyi asan, simsiz və portativ edən bir şey etməyək. Yalnız bir baxışla sizi yeniləmək üçün kifayət qədər məlumat göstərən xüsusi kiçik bir cihaz.
Kriket fanatı deyilsən? Problem deyil! Kod, hər hansı bir XML faylından məlumat almaq üçün istifadə edilə bilən XML ayrıştırıcısını ehtiva edir. Verilənləri əldə etmək üçün yalnız düzgün funksiyaları istifadə edin.
Addım 1: Plan

Plan, İnternetə daxil olmaq və davam edən/qarşıdakı matçlar haqqında bütün məlumatları ehtiva edən Cricbuzz-dan XML kodunu istəmək üçün NodeMCU İnkişaf İdarə Heyətindən (ESP-12E modulu ilə) istifadə etməkdir. Bu kod SD kartda.xml faylı olaraq saxlanılır. Fayl daha sonra XML kodundan lazımi məlumatları təhlil etmək üçün SD kartdan oxunur. Məlumatı təhlil etmək üçün W. A. Smithin kodundan istifadə edəcəyəm. Səyləri sayəsində. Arduino və Ethernet Shield istifadə edərək eyni şeyi etmək istəyirsinizsə, onun layihəsinə baxın.
Fikrim, mümkün olduğu qədər kiçik etmək, xüsusi bir PCB və bunun üçün korpus qurmaqdır. Hələlik bir prototip hazırlayaq. Ancaq əvvəlcə bu layihədə istifadə olunan komponentlərlə tanış olaq.
Gəlin başlayaq
Addım 2: OLED Ekran


Kiçik ölçüsünə görə OLED displeylə getməyə qərar verdim və onlar ucuz satılır. 0.96 düymlük ekran istifadə edirəm ki, bu da uyğunluq məlumatlarını göstərmək üçün kifayət edəcək. Ekranın istənilən ölçüsündən istifadə edə bilərsiniz.
İstifadə etdiyim ekran SSD1306 sürücüsü və I2C (2 telli) interfeysi olan monoxromdur. Ekranın SPI versiyaları da mövcuddur. Onları idarə etmək asan bir işdir. Ekranları işə salmaq üçün lazım olan SSD1306 və GFX kitabxanalarını yükləyin. Bu kitabxanaları yazdığı üçün Adafruit -ə təşəkkür edirəm.
Bağlantılar çox sadədir.
- GND - GND
- VCC -dən 3.3V -ə qədər
- SCL -dən D1 -ə qədər
- SDA -dan D2 -ə qədər.
Addım 3: SD Kart və Adapter

SD kart, XML faylını Cricbuzz -dan bütün məlumatlar ayrılana qədər saxlayır. Lazımi məlumatlar göstərildikdən sonra fayl silinir. 10 - 20 kB XML faylını saxlamaq üçün bir SD kart istifadə etmək bir az çox işdir, ancaq təhlil etməyi daha asan və başa düşməyi asanlaşdırır.
İstənilən yaddaş kartı istifadə edilə bilər. Kiçik form faktoru üçün micro SD kartı seçdim. Telləri birbaşa SD karta lehimləyə bilərsiniz, ancaq bir kəsmə lövhəsi istifadə edərək işi asanlaşdırır. Qeyd etmək lazımdır ki, bütün SD kartlar 3.3V -də işləyəcək. Bu o deməkdir ki, təkcə 3.3V istifadə edilməməlidir, həm də mikro nəzarətçi ilə SD kart arasındakı əlaqə 3.3V məntiq səviyyəsində olmalıdır. 3.3V -dən yuxarı gərginlik onu öldürəcək! NodeMCU ilə əlaqədar olaraq narahat olmayacağıq, çünki NodeMCU özü 3.3V -də işləyir, bu yaxşıdır. 5V məntiq səviyyəsi olan başqa bir mikrokontrolördən istifadə etməyi planlaşdırırsınızsa, kəsmə lövhənizdə quraşdırılmış səviyyə dəyişdiricisinin olduğundan əmin olun (şəkildə göstərildiyi kimi). Əsasən 5V -ni mikro nəzarətçidən SD kart dostu 3.3V -ə çevirir və ya 'dəyişdirir'. Səviyyə dəyişdiricisini 3.3V ilə birlikdə istifadə etmək (etdiyim kimi) onun işinə təsir etmir.
SD kart ünsiyyət üçün SPI interfeysindən istifadə edir. CS və ya Chip Select pin hər hansı bir GPIO sancağına qoşula bilər. GPIO15 (D8) seçdim. GPIO15 -dən başqa bir pin istifadə etsəniz, kodda lazımi dəyişikliklər edin
- SC5 -dən D5 -ə qədər
- MISO - D6
- MOSI -dən D7 -ə qədər
- CS -dən D8 -ə qədər
- VCC -dən 3.3V -ə qədər
- GND - GND
SD kartınızı formatlayın
İstifadə edəcəyimiz kitabxana FAT16 və ya FAT32 fayl sistemlərini dəstəkləyir. SD kartı düzgün formatda formatladığınızdan əmin olun.
Addım 4: Klaviatura hazırlayın



Layihəni mümkün qədər kiçik etmək istəyirəm. Beləliklə, klaviatura üçün ayrıca bir lövhə düzəltmək və daha sonra ana lövhənin üstünə quraşdırmaq qərarına gəldim. Bu, bir az yer qənaət edəcək.
Hazır bir açar matrisi alına bilər, amma ətrafımda düymələr vardı. Həm də mümkün qədər kiçik etmək istədim. Satır və sütunları birləşdirən tipik bir tənzimləmə, 3 x 3 matris üçün cəmi 6 GPIO sancağına ehtiyac duyar. OLED ekran və SD kartın da bağlı olacağını nəzərə alsaq, bu çox şeydir.
Şübhə olduqda, Google -dan çıxarın! Etdiyim və bütün matrisi idarə etmək üçün yalnız 1 pin lazım olacaq bir yol tapdım. Bu, Voltaj Bölücü Matrisindən istifadə etməklə mümkündür. Rezistorlar hər satır və sütun arasında bağlanır. Bir düyməyə basıldıqda, müəyyən bir rezistor birləşməsi bir gərginlik bölücü yaradan ardıcıl olaraq bağlanır. Dövrə diaqramına baxın. Dəyişən gərginlik mikro nəzarətçi tərəfindən oxunacaq. Hər bir düymə fərqli bir gərginlik çıxaracaq və beləliklə matrisin çıxış gərginliyini oxuyaraq hansı düyməyə basıldığını asanlıqla tapmaq olar. Dəyişən gərginlik səviyyələrini oxumaq istədiyimiz üçün indi yalnız yüksək və aşağı bir Analog pininə ehtiyacımız olacaq. Xoşbəxtlikdən NodeMCU -da A0 olaraq etiketlənmiş bir analog pin var. Problem həll edildi!
Bir matris almaq istəyirsinizsə, diaqramda göstərilən daxili əlaqələri yoxlayın. İstənilən ölçüdə bir matris istifadə edilə bilər. Satırlar arasında 2.2kΩ və sütunlar arasında 680Ω rezistor istifadə etdiyinizə əmin olun.
Düymələri birləşdirmək
1 və 2 sancaqlar daxili olaraq bağlıdır. 3 və 4 sancaqlar ilə eyni. Düyməyə basıldıqda bütün sancaqlar bir -birinə bağlanır. Açarları bir taxtaya bağlamaq haqqında bir fikir əldə etmək üçün şəkilə baxın.
3 pinli bir kişi başlığı bağladım ki, daha sonra ana lövhəyə qoşula bilsin.
Addım 5: Hər şeyi bir yerə yığın



Komponentləri istədiyiniz yerə yerləşdirməyi planlaşdıra bilərsiniz. Bunun üçün heç bir məhdudiyyət yoxdur. Avuç içərisinə sığacaq bir şey istədiyim üçün kompakt etmək üçün bunu necə etdiyimi sizə göstərəcəyəm. Bir az qarışıq ola bilər, buna görə lehimləmə ilə rahatsınızsa mənim yolumu sınayın. İki qatlı bir PCB olduğu kimi lövhənin hər iki tərəfini doldurmağa qərar verdim. Bir tərəfdə NodeMCU və SD kart qırılma lövhəsi, digər tərəfdə OLED və klaviatura.
SD kartın qırılması, NodeMCU üçün olan iki qadın başlığı arasında uyğun gəlir. Qırılma lövhəsinin gəldiyi açılı kişi başlıqlarını sökdüm, döndərdim və yenidən lehim etdim ki, pinlər şəkildə göstərildiyi kimi dik olaraq aşağıya doğru getsin. SD kart yuvasına giriş asanlaşır.
Dörd pinli bir qadın başlığın sancaqlarını düzgün bir açı ilə bükdüm və şəkildəki kimi perfboardun mis tərəfinə lehimlədim.
Qısa dövrələrin qarşısını almaq üçün lehim birləşmələrini klaviatura altında örtün. Əlavə qorunma və sərtlik üçün klaviatura ilə anakartın arasına nazik bir sərt köpük parçası (təxminən 5 mm qalınlığında) əlavə edin. Nəhayət, əvvəllər etdiyimiz klaviaturanı lehimləyin. Sivri uclu bir lehimləmə dəmirinə sahib olmaq, şübhəsiz ki, işinizi asanlaşdıracaq. Mümkün qədər yığcam hala gətirmək çətin bir iş idi, amma nəhayət bunu bacardı.
Cihazı işə salmadan əvvəl bütün bağlantılarınızı hər hansı bir qısa dövrə yoxlayın
Addım 6: Klaviatura qurulması

Bütün əlaqələri yoxladıqdan sonra cihazınızı ilk dəfə işə salmağa hazırsınız. Barmaqlar keçdi! Sehrli tüstü yoxdur? Təbriklər!
İndi klaviatura qurmağa hazırıq. Klaviaturanın işini xatırlayın. Hər bir düymə NodeMCU -nun analoq pininə verilən fərqli bir gərginlik verəcəkdir. ESP-12E, 10 bitlik bir Analogdan Rəqəmsal Konvertora (ADC) malikdir. Gücə qaldırılan 2 1024 verəcək. Bu o deməkdir ki, hər basılan düymə üçün 0 ilə 1024 arasında bir oxu alacağıq. Görək hansı oxunuşları əldə edirik. Ancaq əvvəlcə bu dəyərləri əldə etmək üçün kiçik bir proqram yazmalıyıq. Arduino IDE -ni açın, aşağıdakı kodu kopyalayın və NodeMCU -ya yükləyin.
int keypadPin = A0;
void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }
- Serial monitoru açın. Baud sürətini 115200 olaraq təyin edin.
- İndi hər hansı bir düyməni basın. Serial monitorda daimi oxunuş almalısınız. Kiçik dalğalanmalar qaydasındadır. Bunlara əsas kodda baxılacaq. Hər düymə üçün eyni şeyi edin.
- Hər açarın fərqli oxunması olmalıdır.
- Bütün dəyərləri qeyd edin. Daha sonra onlara ehtiyacımız olacaq.
Addım 7: Kodlaşdıraq



Aşağıda göstərilən Scoreboard.ino faylını kompüterinizə yükləyin və Arduino IDE -dən istifadə edərək açın.
Yükləməzdən əvvəl
1) Hesab lövhəsi üçün yeniləmə vaxtını təyin edin. Məsələn, 15 saniyə üçün 15L.
2) Bağlanmaq istədiyiniz marşrutlaşdırıcının SSID və parolunu daxil edin.
3) SD kartın CS pinini GPIO15 -dən başqa bir pinə bağlamağı seçsəniz, lazımi dəyişiklikləri edin.
4) Bütün düymələr üçün qeyd etdiyimiz dəyərləri xatırlayırsınız? Hər bir dəyər üçün bir açar nömrəsi təyin etməliyik. Oxumaqdakı dalğalanmalardan da sizə xəbər vermişdim. Bunun səbəbi, keçid kontaktlarının mükəmməl olmamasıdır. Uzun müddətdə bu dəyər kontaktların yaşlanması səbəbindən cari dəyərdən kənara çıxa bilər və bu da dövrə əlavə müqavimət əlavə edir və bununla da gərginliyi dəyişir. Kodda bu problemi həll edə bilərik.
Dəyərin üst və alt həddini 5 marjası ilə əlavə edəcəyik. Məsələn, açar 1 üçün 617 oxudum.
- Ondan 5 çıxarın. 617 - 5 = 612. Bu, aşağı həddir.
- İndi 5 əlavə edin. 617 + 5 = 622. Bu yuxarı hədddir.
- Kodun sonuna gedin. Şəkildə göstərildiyi kimi koddakı iki dəyər üçün verilən yeri doldurun.
- Bunu hər 9 dəyər üçün edin.
əgər (r> 612 && r <622) {keyNumber = 1; }
Bu nə deməkdir?
Əgər oxu (r) 612 -dən böyük VƏ 622 -dən azdırsa, 1 düyməsinə basılır. 612 ilə 622 arasındakı hər hansı bir dəyər açar 1 olaraq qəbul ediləcək. Bu, dalğalanan oxu problemini həll edir.
Addım 8: Davanın qurulması




Bu tamamilə isteğe bağlıdır. Layihənin səliqəli və ətrafındakı bir vəziyyətlə tamamlanacağını düşündüm. Bu iş üçün uyğun vasitələr olmadığı üçün mənim üçün çox böyük bir iş olacaq. Kassa akril istifadə edərək hazırlanır.
Zımpara kağızı istifadə edərək kənarları hamarlaşdıraraq parçaları yapışdırmaq üçün hazırladı. Bütün parçaları birləşdirmək üçün Fevi Kwik (Super Glue) istifadə etdim. Super yapışqan müalicədən sonra ağ bir qalıq buraxır. Beləliklə, yalnız oynaqlar arasında tətbiq edin. Super yapışqan ilə işləyərkən tez və dəqiq olmalısınız, çünki tez quruyur. Akril sement bu iş üçün ən uyğun gəlir.
Bir fayl istifadə edərək USB portuna daxil olmaq üçün kiçik bir açılış etdi. USB kabelini daxil edəcək qədər böyük olmalıdır.
Düymələr üçün ön qapaqda 3x3 ızgara yaradıldı. Bu, düymələrə daxil olmağı çətinləşdirəcək. Bu problemi həll etmək üçün hər düymənin kvadrat hissələrini kəsdim ki, düymələri artıq səthə qədər uzadılsın.
Çox zımpara, kəsmə, düzəltmə və tənzimləmə işlərindən sonra nəhayət edildi!
Addım 9: Əylən

Nəhayət, bütün çətin işlər görülür. Mini hesab lövhənizi gücləndirin və oyunla yenilənin.
Gücləndirildikdən sonra əvvəlcə giriş nöqtəsinə qoşulur. SD kartı işə salır. SD kart işə salınmadıqda bir səhv göstərəcəkdir.
Bütün matçların siyahısı matç nömrəsi ilə birlikdə görünəcək.
Klaviatura istifadə edərək uyğunluq nömrəsini seçin.
Nəticələr göstəriləcək. Ekranda görmək istədiyiniz hər şeyi fərdiləşdirə bilərsiniz. Kodu izah etməkdə çox dərinə getməzdim. Ayrıştırmanın necə işlədiyinə dair ətraflı bir izahat tapa bilərsiniz.
Menyuya qayıtmaq üçün "Alınan Sayılar …" səhifəsi görünənə qədər BACK (8 düyməsini) düyməsini basıb saxlayın.
Gələcək Planlar
- ESP8266 12-E modulu ilə xüsusi bir PCB hazırlayın.
- Şarj edilə bilən bir batareya əlavə edin.
- Kodu yeni xüsusiyyətlərlə təkmilləşdirin.
İnşallah zövq aldınız. Bunu özünüz edin və əylənin! Təkmilləşdirmək üçün hər zaman bir yer var və öyrənmək üçün çox şey var. Öz fikirlərinizlə gəlin. Tikinti ilə bağlı hər hansı bir təklif verməkdən çekinmeyin. Sona qədər izlədiyiniz üçün təşəkkür edirəm.
Tövsiyə:
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım

Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım

Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
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
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım

Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə - 433mhz ilə HT12E və HT12D istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: 5 addım

HT12D HT12E istifadə edərək RF 433MHZ Radio İdarəetmə | HT12E və HT12D -dən 433mhz istifadə edərək Rf Uzaqdan İdarəetmə edilməsi: Bu təlimatda sizə HT12E kodlu 433mhz ötürücü qəbuledici modulu istifadə edərək RADIO uzaqdan idarə etməyi göstərəcəyəm. HT12D kod deşifratoru IC. Bu təlimatda çox ucuz komponentləri istifadə edərək məlumat göndərə və ala bilərsiniz: HT