Mündəricat:

Arduino və İşləmə ilə İstilik və Rütubətin Göstərilməsi və Məlumat Toplanması: 13 Addım (Şəkillərlə)
Arduino və İşləmə ilə İstilik və Rütubətin Göstərilməsi və Məlumat Toplanması: 13 Addım (Şəkillərlə)

Video: Arduino və İşləmə ilə İstilik və Rütubətin Göstərilməsi və Məlumat Toplanması: 13 Addım (Şəkillərlə)

Video: Arduino və İşləmə ilə İstilik və Rütubətin Göstərilməsi və Məlumat Toplanması: 13 Addım (Şəkillərlə)
Video: Radarlar avtomobilinizin sürətini neçə metrdən ölçə bilir - Sirləri öyrənin! 2024, Iyul
Anonim
Arduino və İşləmə ilə İstilik və Nəmlik Göstərişi və Məlumat Toplanması
Arduino və İşləmə ilə İstilik və Nəmlik Göstərişi və Məlumat Toplanması

Giriş: Bu, Arduino lövhəsi, Sensor (DHT11), Windows kompüteri və İşləmə (pulsuz yüklənə bilən) proqramından istifadə edərək İstilik, Rütubət məlumatlarını rəqəmsal və bar qrafik şəklində göstərmək, vaxt və tarixi göstərmək və saymaq üçün bir layihədir. Proqramı bağladıqda bütün proqramları.csv formatında qeyd edin.

İlham:

Əvvəlcə tam bir başlanğıc olduğumu söyləməliyəm və bu layihədən çox şey öyrənmişəm. Beləliklə, yeni başlayanlar tərəfindən oxumaq və başa düşmək üçün bu Təlimatı yazmağa çalışıram.

İstilik və rütubəti ölçmək üçün müxtəlif Arduino layihələrini görmüşdüm, amma belə bir proqram istədim:

1) Ölçülmüş temperatur və rütubət

2) Məlumatları həm qrafikdə (bar qrafiki seçdim), həm də rəqəmsal formada göstərdi

3) Saat funksiyası var

4) "İşləmə vaxtı" sayğacına malikdir

5) Bu məlumatları.csv (excel) fayl formatına saxlayır.

Sowmith Mandadi, R-B və aaakash3 tərəfindən yaradılan proqramlardan ilham aldım, amma bunların heç biri istədiyim kimi olmadı. Beləliklə, bir neçə əsas kod yazmağı öyrəndim və istədiyimi etdim.

Addım 1: Nə lazımdır:

Nə lazımdır
Nə lazımdır
Nə lazımdır
Nə lazımdır

Parçalar və Materiallar:*Kompüter - Windows kompüteri Windows 10 əməliyyat sistemindən istifadə etmişəm

(Əminəm ki, Linux və ya Mac -dan istifadə oluna bilər, sadəcə məndə yoxdur və buna görə də bu əməliyyat sistemlərindən necə istifadə edəcəyimi izah etməyəcəyəm)

*Arduino Board - Bir Arduino Uno Board istifadə etdim, ancaq USB ilə hər hansı bir Arduino kartı bunu edəcək

*USB Kabel -USB A/B kabeli -köhnə tipli "printer kabeli" ilə eynidir (ümumiyyətlə Arduino lövhəsi ilə gəlir)

*DHT 11 Temperatur /Rütubət sensoru- ucuz 4-8 dollar

(Qeyd: 3 pinli versiyanı istifadə etdiyim 2 versiya var, 4 pinli versiyada çörək taxtası və 10K rezistorun istifadəsi tələb olunacaq, 3 pində 10K rezistoru özündə birləşdirən çap lövhəsi var) növbəti addımlarda Fritzing diaqramlarına baxın.

*Bağlantı telləri

3 pinli DHT11 -ə çörək taxtası olmadan qoşulduqda Dupont telləri (cüt dişi ucları)

4 pinli DHT11 bağlamaq üçün standart tullanan M/F telləri (bir ucu kişi bir ucu qadın) və M/M tullanan tellər (hər iki ucu kişi) - daha çox məlumat üçün 2 -ci addıma baxın.

*Arduino IDE - Arduino proqramlarını yazmaq üçün bir proqram (eskizlər adlanır) pulsuz @

www.arduino.cc/en/Main/Software

*Qenerasiya - emal eskizlərini pulsuz yazmaq üçün bir proqram @

processing.org/download/

* "DHTLib" faylı -bir kitabxana faylı (bu, "Kitabxana" adlı qovluq altında Arduino IDE proqramına daxil olan bir sənəddir, Arduino DHT11 -dən məlumatları oxuya bilməsi üçün Arduino eskizinə əlavə edilməlidir. Fayl və təlimatları yükləmək üçün addım 5

Addım 2: Arduino'yu DHT11 -ə qoşun

Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun
Arduino'yu DHT11 -ə qoşun

Əvvəlcə hansı DHT11 -ə sahib olduğunuzu müəyyənləşdirin

3 pin istifadə etdim, çünki artıq lazım olan 10K rezistora malikdir.

4 pin varsa, 10K müqavimət və çörək taxtasına ehtiyacınız olacaq

DHT11 -i Arduino Board -a qoşun. Bu proqram DHT 11 siqnal pininin 7 nömrəli Arduino pininə, Arduino üzərindəki 5V-ə qoşulan Pos (+) pininə və Arduinodakı GND-yə Neg-(-) qoşulmasını tələb edir.

Diaqramlara və Fritzing Diaqramlarına baxın

Addım 3: Arduino IDE yükləyin

Arduino IDE proqramını yükləyin
Arduino IDE proqramını yükləyin

Arduino IDE -ni yükləyin və kompüterə quraşdırın

www.arduino.cc/en/Main/Software

Addım 4: Arduino'yu kompüterə qoşun

Arduino'yu kompüterə qoşun
Arduino'yu kompüterə qoşun

Əvvəlcə Arduino USB bağlantısı üçün sürücüləri olan Arduino IDE -ni quraşdırın.

USB vasitəsilə kompüterə Arduino qoşun.

Kompüterin Arduino lövhəsini tanımasını və bütün sürücüləri quraşdırmasını gözləyin.

IDE proqramını açın və serial bağlantısını yoxlayın.

Arduino lövhəsi Alətlər> portda (qırmızı dairə) görünmürsə, IDE -ni bağlayın və yenidən açın.

IDE açıldıqdan və Arduino lövhəsi USB ilə bağlandıqdan sonra* vacib*. Arduino lövhəsi düzgün serial portuna qoşulmalıdır. Windows kompüterlərində buna COM Portu deyilir. Bunu IDE -də etmək üçün Alətlər> Liman:> Serial portlara gedin. Diaqramda göründüyü kimi seriyalı port (qırmızı dairə) IDE proqramının sağ alt küncündə (sarı dairə) göstərilən portla uyğun olmalıdır.

Addım 5: Kitabxananı yükləyin

Kitabxananı yükləyin
Kitabxananı yükləyin
Kitabxananı yükləyin
Kitabxananı yükləyin
Kitabxananı yükləyin
Kitabxananı yükləyin
Kitabxananı yükləyin
Kitabxananı yükləyin

DHT11 üçün kitabxananı yükləyin. Bu, əvvəlcə mənim üçün çaşqınlıq yaratdı, amma həqiqətən çox sadədir.

"DHTLib" adlı faylı yükləyin və açın. Açılmamış "DHTLib" faylını kopyalayın.

Bu kitabxana haqqında arayışa buradan daxil ola bilərsiniz:

playground.arduino.cc/Main/DHTLib

(Rob Tillaart tərəfindən başqalarının əsərləri əsasında yazılmışdır)

Kompüterinizdə Arduino qovluğunu tapın və açın. (IDE -ni yükləyib kompüterə quraşdırdığınız yerdə olacaq)

Diaqrama baxın

"Kitabxanalar" adlı faylı tapın və açın və "DHTLib" qovluğunu "kitabxanalar" faylına yapışdırın. Bağlayın və sonra IDE -ni yenidən başladın.

Diaqrama baxın

IDE yenidən açıldıqdan sonra DHT kitabxanasının quraşdırıldığını yoxlaya bilərsiniz. Eskiz> Kitabxana daxil edin.

Diaqrama baxın

Qeyd "Kitabxana daxil et" sekmesinde DHTLib düyməsini basmaq, kitabxananı Arduino koduna "#include dht.h" olaraq yerləşdirəcək.

Bunu etmək lazım deyil, çünki növbəti addımda yükləyəcəyiniz kod artıq var.

Addım 6: Arduino Kodunu əldə edin

Arduino Kodunu əldə edin
Arduino Kodunu əldə edin

Temp_Hum_Instructable.zip faylını yükləyin və açın. Arduino IDE ilə Temp_Hum_Instructable.ino açın.

Alternativ olaraq aşağıdakı kodu nəzərdən keçirin və Arduino IDE -yə kopyalayın və yapışdırın və ya yazın:

#daxil edin

DHT ilə; #define DHT11PIN 7 // DHT11 siqnal bağlantısı boşluğu qurmaq üçün pin 7 təyin edir () {Serial.begin (9600); // serial açır} void loop () {int chk = DHT.read11 (DHT11PIN); // DHT11 Serial.print (DHT.temperature, 0) oxuyur; // Serial.print -də tempi yazdırır (","); // serialda Serial.print (DHT.humidity, 0) vergül yazdırır; // Serial.println (); // carriage return delay (2000); // 2 saniyə gözləyin}

İşiniz bitdikdə yuxarıdakı Diaqrama bənzəməlidir

Addım 7: Kodu Arduinoya yükləyin

Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin
Kodu Arduinoya yükləyin

Əvvəlcə eskizi yerdə və yadda saxlayacağınız bir adla saxlayın, Məsələn: Temp_Hum.

Sonra, sağdakı ox düyməsini (yükləmə) basaraq eskizi Arduino lövhəsinə yükləməlisiniz.

Diaqrama baxın

Bu bir neçə saniyə çəkəcək; sağ altda bir irəliləyiş çubuğu görəcəksiniz.

Sonra görəcəksiniz: IDE -nin sol alt hissəsində və mətnin alt hissəsində sizə yaddaş haqqında məlumat verən mesaj yüklənmə tamamlandı.

Diaqrama baxın

Bir səhv kodu alsanız (IDE -nin altındakı narıncı mətn), aşağıdakılardan biri olmalıdır

  1. "DHTlib" kitabxanası düzgün kopyalanmadı
  2. COM portu düzgün qurulmayıb
  3. Sensor düzgün bağlanmayıb
  4. Kod IDE -yə düzgün yüklənmədi. Narıncı mətnə keçmək olar və nəyin səhv olduğuna dair bir ipucu verəcəkdir. Geri qayıdın və yəqin ki, sadə bir səhv olduğunu yoxlayın.

Bunu etdikdən sonra Arduino lövhənizə yaxından baxın. Hər iki saniyədə "TX" hərflərinin yanındakı kiçik LED yanıb -sönəcək. Bu məlumatı kompüterə geri göndərən Arduino. Bunu yoxlamaq üçün IDE -nin sağ üst küncündəki kiçik böyüdücü şüşə simgesini vurun.

Diaqrama baxın

Bu serial monitoru açacaq və vergüllə ayrılmış temperatur və rütubət məlumatlarını göstərəcək. İstilik məlumatlarının Celsiusda verildiyini qeyd edəcəksiniz. Yaxşı olar ki, daha sonra Fahrenheit -ə çevirək (ya da seçməsəniz).

Diaqrama baxın

Sonra serial monitoru bağlayın və sonra IDE -ni bağlayın. (Yadda saxlamağı unutmayın, elə deyilmi?). İndi yenidən Arduino lövhəsinə baxın (onu güc aldığı USB -dən ayırmayın və məlumatı kompüterdəki serial portuna göndərməyin). Hələ yanıb -sönür? Bəli, əla. Proqram Arduinoya yükləndikdən sonra gücü olduğu müddətdə işləyəcək.

Kod haqqında qeyd: "void loop ();" ilə başlayan Arduino koduna baxsanız. Növbəti 5 sətir kodu Arduino -ya DHT -dən məlumatları oxumağı və vergüllə ayrılmış serial avtobusuna çap etməyi bildirir. Növbəti sətir "gecikmə (2000);" Arduinoya 2 saniyə (2000 milisaniyə) gözləməsini söyləyir, buna görə məlumatlar hər 2 saniyədə bir alınır. Daha sonra "void loop ();" - Arduinoya bunu təkrar etməsini əmr edən bir əmrə qayıdır. Gecikmə xəttindəki dəyərin dəyişdirilməsi məlumatların alınma tezliyini dəyişəcək. Məsələn: (600000) olaraq dəyişəcək 10 dəqiqəyə qədər (600000 milisaniyə = 10 dəqiqə). Hər 2 saniyədə bir məlumat almaq bir çox məlumatla nəticələnir, buna görə də indi məlumatların nə qədər tez oxunacağını necə dəyişəcəyinizi bilirsiniz. Yalnız sonra dəyəri dəyişdirsəniz unutmayın yeni proqramı yükləməlisiniz.

Tamam arxaya otur və bir az nəfəs al, yarıdan çox yoldasan. Bəli !!

Addım 8: İşlənməni yükləyin və quraşdırın

Yükləyin və Quraşdırın
Yükləyin və Quraşdırın
Yükləyin və Quraşdırın
Yükləyin və Quraşdırın

processing.org/download/

Windows 64bit və 32 bit üçün kompüterinizə uyğun proqramı seçin. Bilmirsinizsə, kompüterinizdəki İdarəetmə panelini açın (nişan görünüşü kateqoriya görünüşü deyil) və orada siyahıya alınacaq sistemə keçin.

Diaqrama baxın

Proqramı yükləyin və sonra quraşdırın.

İlk dəfə emalı açıb işə salanda ehtimal ki, Java təhlükəsizlik mesajı alacaqsınız. Şəxsi şəbəkələr üçün "icazə ver" düyməsini basın. Java, Processing (və Arduino IDE) tərəfindən istifadə olunan kompüter dilidir. Maraqlıdır ki, Arduino IDE ilə heç vaxt təhlükəsizlik mesajı almamışam, sadəcə İşləmə.

Addım 9: Kodun işlənməsi

Kod emal olunur
Kod emal olunur

İşləmə kodu üçün indi tamam.

Bu mənim üçün ən çətin, eyni zamanda öyrənmək üçün ən böyük fürsət idi. Arduino kodu 20-yə yaxın sətir olsa da, bu kodun əsas kodunda +/- 270, siniflərdə isə başqa 70 + sətir var.

İndi soruşmalı olduğunuz ilk şey "Dərslər nədir?". Yaxşı sual. Bu, obyekt yönümlü proqramlaşdırmaya aiddir. Bir sözlə, əsas kodda bir çox işlər gedir: ekranın ölçüsünü və rəngini, saatı, taymeri, kursorun yerini göstərən kodu, məlumatları.csv faylına saxlamaq üçün kodu və bir neçə sətri bar qrafiklərini göstərən kodla məşğul olur. Arduino IDE -də bütün kodlar bir səhifədə olsa da, bu işləmə kodunun üç nişanı var. Birincisi, əsas kod, sonrakı ikisi isə bar qrafiklərini göstərən koddur. (Bu kod əslində İşləmə kodu qovluğunda üç ayrı faylda saxlanılır.) Ayrı nişanlar "siniflər" adlanır və 48 və 56-cı sətirlərdə təyin olunur və sonra əsas kodun 179-182 sətirləri ilə göstərilir. Emal proqramı yazan insanlar bu obyekt yönümlü proqramlaşdırma adlandırırlar. (bax: https://processing.org/tutorials/objects/ qısa təsvir üçün).

Əsasən bu koddakı siniflər (Recta1, Recta2), DHT11 -dən serial vasitəsilə alınan məlumatlara əsasən yuxarı və aşağı hərəkət edən düzbucaqlılar yaratmaqdır. Köhnə termometr hesab edin ki, civə nə qədər yüksək olarsa, o qədər isti olur, amma bu, civə ilə deyil, məlumatlarla aparılır. Əslində siniflər dörd düzbucaq, termometrin fonunu təmsil edən iki statik düzbucaq və məlumatlara cavab verən və yuxarı və aşağı hərəkət edən iki dinamik düzbucaq yaradır. Kod, düzbucaqlıları hərəkət etdirməklə yanaşı, serial tərəfindən alınan məlumatlara əsaslanaraq dinamik düzbucaqlı rəngini və Temp və Rütubətin rəqəmsal ekran rəngini dəyişir.

Addım 10: Kod sənədlərinin işlənməsi

Kod emalına dair bir neçə əsas məlumat:

Oxumağı məsləhət görürəm: İşlənmənin qurucuları Casey Reas və Ben Fry tərəfindən İşlənməyə Başlayın.

processing.org/books/#reasfry2

Qenerasiya və ya emal üçün kod yazmağın bütün aspektlərini izah etməyə çalışmayacağam. Daha əvvəl dediyim kimi, yeni başlayanlaram və düşünürəm ki, öyrənmək üçün daha yaxşı insanlar var. Yazdığım kodu başa düşürəm (sınaq və səhv yaxşı müəllimlərdir).

1. İlk növbədə kitabxanalar (Arduino kimi) daxil edilməli və dəyişənlər elan edilməlidir (1-25-ci sətirlər)

2. Sonra ekran lövhəsini qurun (Satırlar 27-63)

3. Kodun təkrarlanan bir hissəsini işə salın- demək istədiyim odur ki, proqram işləyərkən kodun bu hissəsi təkrarlanacaq. Arduino'da "void loop ();" xatırlayacaqsınız. (Addım 6). İşlənərkən bu indi "void draw ();" (65-184-cü sətirlər)

4. Sonrakı, serial portundan məlumat almaq və dəyişənlərə (int, float, String) təyin etməkdir.

int-

sal-

Simli-

(185-245-ci sətirlər)

4. Nəhayət proqramı bağlamaq və məlumatları saxlamaq üçün bir yol (246-271-ci sətirlər)

Tamam: Temp_Hum_F_3_2 faylını yükləyin (Fahrenheit üçün)

Və ya Temp_Hum_C_3_1 (Centigrade üçün)

və faylı açın. Qenerasiya ilə açın.

Addım 11: İşlənən Yazı Tipi

Emalda Şrift
Emalda Şrift

Mühüm: Diqqətinizi 36-37-ci sətirlərə yönəldirəm

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // məlumatlarda saxlanılan şriftləri yükləyir

qovluq 37 textFont (şrift);

Bu yazı kitabxanası "SourceCodePro-Bold-48.vlw", faylların yüklənməsi prosesinə daxildir və işləməsi üçün dəyişdirilməsinə ehtiyac yoxdur.

Ancaq yazı tipini başqa bir şeyə dəyişdirmək üçün yeni şriftin İşlənmə eskizinə yükləməli və "SourceCodePro-Bold-48.vlw" ni yeni şriftlə əvəz etməlisiniz.

. Xoşbəxtlikdən emal birinci hissəni çox asanlaşdırdı.

Əvvəlcə eskizi açın, sonra vurun:

Alətlər> Şrift yaradın

bu bir pəncərə açır

Diaqrama baxın

İstədiyiniz yeni şriftə gedin, üzərinə vurun və sonra OK düyməsini basın. Şrift indi eskiz qovluğuna yükləndi.

Sonra "SourceCodePro-Bold-48.vlw" mətnini yeni şriftin tam adı ilə əvəz edin (.vlw fayl formatı daxil olmaqla)

Bu edilmədikdə, yeni yazı tipi koda yüklənməyəcək və kod səhvlər verəcəkdir (Eynilə proqramın altındakı qara qutuda Arduino-dakı səhvlər kimi).

Addım 12: Bitirmə

Bitirmə
Bitirmə
Bitirmə
Bitirmə
Bitirmə
Bitirmə
Bitirmə
Bitirmə

İşləmə proqramını başlatmaq üçün oxu vurun, Java xəbərdarlığı ala bilərsiniz, Basın: Girişə icazə verin.

Diaqrama baxın

Yaxşı, proqram işləyib? Əgər belədirsə, diaqramda göründüyü kimi bir ekran alacaqsınız.

(Xeyr? Növbəti addımda problemlərin həllinə baxın)

Bəli? İndi DHT11 -ni qapalı ovucunuzda tutmağa və ya saç qurutma maşınının isti hava axınının altına qoymağa çalışın. Nömrələr dəyişməlidir. Bəli? Əla. Yəni hər şey yaxşı işləyir.

Proqramı bağlamaq və məlumatları saxlamaq üçün "Veriləri bağlamaq və saxlamaq üçün bura vurun" yazan qutuyu vurun.

İndi saxlanılan məlumatları tapmaq üçün Temp_Hum_F_3_1 və ya Temp_Hum_C_3_1 Qenerasiya qovluğuna gedin (indiyə qədər bunu özünüz tapa biləcəksiniz) açın və Məlumat qovluğunu tapın. Bunu açın və proqramı bağladığınız tarix və saata görə bir.csv faylı görməlisiniz (Misal 1-10-18--22-30-16.csv 10 Yanvar 2018 10:30:16 PM deməkdir). Bunu Excel (və ya Açıq ofis yayma vərəqi ekvivalenti) ilə açın. Diaqram kimi bir şey görməlisiniz. Tarix, Saat, iş vaxtı, temp və rütubət məlumatları olan sütunlar. İndi məlumatları excel və ya onunla etmək istədiyiniz hər şeyi qrafikləşdirə bilərsiniz. (Qeyd: ilk məlumat girişinə baxsanız, Temp və Rütubət məlumatları düzgün deyil, bu normaldır və proqram ilk dəfə işə salındıqda yalnız bir səhvdir)

Tamam bəli !!!!!

Sən bunu etdin

Hər hansı bir sualınız varsa, yazın və cavablandırmaq və kömək etmək üçün əlimdən gələni edəcəyəm.

Bununla qaldığınız üçün təşəkkürlər və uğurlar. Ümid edirəm bu yalnız bir başlanğıcdır ….

Sonrakı mənim üçün Bluetooth və bəlkə də Android ….

Addım 13: Problemlərin aradan qaldırılması

Giderme
Giderme
Giderme
Giderme

Arduino problemləri

Bir səhv kodu alsanız (IDE -nin altındakı narıncı mətn), aşağıdakılardan biri olmalıdır "DHTlib" kitabxanası düzgün kopyalanmadı

COM portu düzgün qurulmayıb

Sensor düzgün bağlanmayıb

Kod IDE -yə düzgün yüklənmədi

Əgər bütün Arduino yaxşı görünərsə, Serial Monitoru açmağı və məlumatların göstəriləcəyini yoxlamağı unutmayın

Doğru məlumat görürsünüzsə, bu, Arduino tərəfinin hər şeyin işlədiyini göstərir- İşləməyə başlamazdan əvvəl Serial Monitoru bağlamağı unutmayın, Serial Monitor açıqdırsa, İşləmə məlumatları oxuya bilmir.

Emal problemləri:

Bunlar Emal proqramının aşağı hissəsində göstəriləcək.

"Şrift" ı izah edərkən bir səhv alsanız, 11 -ci addıma qayıdın və yazı tipini təsvir edildiyi kimi yükləyin.

Bənzər bir səhv alsanız: Xəta, COM4 null üçün serialEvent () -i deaktiv edin- 12-ci addımdakı oxu tıklayaraq İşləmə eskizini yenidən başladın.

Aşağıdakıları bildirən bir səhv alsanız: Serial portu açarkən səhv, 32-34-cü sətirləri "COM4" -ün Arduino eskizinizdəki COM portuna uyğun olduğu kimi dəyişdirməyə çalışın.

myPort = newSerial (bu, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // serialın məlumatları olana qədər gözləyin

Tövsiyə: