Mündəricat:

Nodemcu üzərindəki Qamış Açarları, Zal Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Qurursunuz - 2 -ci hissə - Proqram: 5 addım (şəkillərlə)
Nodemcu üzərindəki Qamış Açarları, Zal Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Qurursunuz - 2 -ci hissə - Proqram: 5 addım (şəkillərlə)

Video: Nodemcu üzərindəki Qamış Açarları, Zal Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Qurursunuz - 2 -ci hissə - Proqram: 5 addım (şəkillərlə)

Video: Nodemcu üzərindəki Qamış Açarları, Zal Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Qurursunuz - 2 -ci hissə - Proqram: 5 addım (şəkillərlə)
Video: MAX6675 Температура термопары через WiFi с ESP8266 NodeMCU D1 Mini 2024, Noyabr
Anonim
Nodemcu -da Qamış Açarları, Hall Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Yaratmaq olar - 2 -ci hissə - Proqram təminatı
Nodemcu -da Qamış Açarları, Hall Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Yaratmaq olar - 2 -ci hissə - Proqram təminatı
Nodemcu -da Qamış Açarları, Hall Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Yaratmaq olar - 2 -ci hissə - Proqram təminatı
Nodemcu -da Qamış Açarları, Hall Təsiri Sensoru və Bəzi Hurda İstifadə edərək Öz Anemometrinizi Necə Yaratmaq olar - 2 -ci hissə - Proqram təminatı

Giriş

Küləyin sürətini və istiqamətini ölçmə cihazlarını necə yığacağımı göstərdiyim "Nodemcu üzərindəki qamış açarları, Hall effekti sensoru və bəzi hurdalardan istifadə edərək öz anemometrinizi necə qurmaq olar - 1 -ci hissə" adlı ilk yazının davamıdır. Burada Arduino IDE -dən istifadə edərək Nodemcu -da istifadə üçün nəzərdə tutulmuş ölçü nəzarət proqramından istifadə edəcəyik.

Layihənin təsviri

Əvvəlki yazıda silahlanmış və Nodemcu ilə əlaqəli qurğular küləyin sürətini və istiqamətini ölçə bilir. Nəzarət proqramı, anemometrin fırlanmasını bir müddət oxumaq, xətti sürəti hesablamaq, qanadın olduğu istiqaməti oxumaq, nəticələri OLED -də göstərmək, nəticələrini ThingSpeak -də dərc etmək və 15 dəqiqə yatmaq üçün hazırlanmışdır. növbəti ölçü.

İmtina: Bu anemometr peşəkar məqsədlər üçün istifadə edilməməlidir. Yalnız akademik və ya ev istifadəsi üçündür.

Qeyd: İngilis dili mənim təbii dilim deyil. Layihəni başa düşməyinizə mane olan qrammatik səhvlər tapsanız, onları düzəltmək üçün mənə bildirin. Çox sağ ol.

Addım 1: Arduino IDE, ESP8266 lövhələrini və kitabxanalarını və ThingSpeak hesabınızı quraşdırın

Arduino IDE, ESP8266 lövhələri və kitabxanalarını və ThingSpeak hesabınızı quraşdırın
Arduino IDE, ESP8266 lövhələri və kitabxanalarını və ThingSpeak hesabınızı quraşdırın
Arduino IDE, ESP8266 lövhələri və kitabxanalarını və ThingSpeak hesabınızı quraşdırın
Arduino IDE, ESP8266 lövhələri və kitabxanalarını və ThingSpeak hesabınızı quraşdırın

Arduino IDE və Nodemcu qurmaq

Arduino IDE -ni heç yükləməmisinizsə, zəhmət olmasa tam təlimatları tapa biləcəyiniz linkdəki Arduino IDE -ni necə qurmaq olar - oxuyun.

Növbəti addım, Nodemcu lövhəsini quraşdırmaq üçün bu dərsliyi Magesh Jayakumar Instructables -dən istifadə edərək tamamlayın. Nodemcu no Arduino IDE necə qurulacaq

Kitabxanaların quraşdırılması

Növbəti addım, eskizin istifadə etdiyi kitabxanaları quraşdırmalısınız. Bunlar çox yayılmışdır və aşağıda göstərilən addımları izləyə bilərsiniz.

ThingSpeak Kitabxanası -

ESP8266 Kitabxanası -

ThingSpeak Hesabı Yaratmaq

ThingSpeak (https://thingspeak.com/) istifadə etmək üçün anemometrinizdə ölçülən məlumatları saxlaya və evinizdəki külək şəraitini izləyə biləcəyiniz bir hesab yaratmalısınız (müəyyən sayda qarşılıqlı əlaqə üçün hələ də pulsuzdur), hətta cib telefonu vasitəsilə. ThingSpeak istifadə edərək, maraqlanan hər kəsə topladığınız məlumatlara ictimaiyyətə giriş imkanı verə bilərsiniz. ThingSpeak -in yaxşı bir üstünlüyü budur. Ana səhifəyə daxil olun və hesabınızı yaratmaq üçün addımları izləyin.

Hesab yaradıldıqdan sonra kanallarınızı yaratmaq üçün bu təlimatı - ThingSpeak Başlarken - daxil edin. Olduqca yaxşı izah olunub. Xülasə olaraq, məlumatların saxlanılacağı bir kanal yaratmalısınız. Bu kanalda, hər dəfə məlumat yazmaq istədiyiniz zaman eskizdə istinad edilməli olan bir ID və Açar API var. ThingSpeak bütün məlumatları bir bankda saxlayacaq və hesabınıza hər dəfə daxil olduğunuzda konfiqurasiya etdiyiniz şəkildə göstərəcək.

Addım 2: Eskizi araşdırın

Eskizi araşdırmaq
Eskizi araşdırmaq
Eskizi araşdırmaq
Eskizi araşdırmaq

Akış qrafiki

Diaqramda eskizin fluxoqramını başa düşə bilərsiniz. Nodemcu oyandığınızda (parametrləri) konfiqurasiya etdiyiniz Wi-Fi şəbəkənizə qoşulacaq və ölçüləri yerinə yetirmək üçün 1 dəqiqə vaxt saymağa başlayacaq. Birincisi, anemometrin fırlanmasını 25 saniyə hesablayacaq, hesablayacaq xətti sürəti və küləyin istiqamətini oxuyun. Nəticələr OLED -də göstərilir. Eyni addımları təkrarlayın və bu ikinci oxu üçün ThingSpeak -ə ötürüləcəkdir.

Sonra Nodemcu batareyanı saxlamaq üçün 15 dəqiqə yatır. Kiçik bir günəş paneli istifadə etdiyim üçün bunu etməyim vacibdir. 5V mənbəyindən istifadə edirsinizsə, proqramı yuxuya getməyəcək şəkildə dəyişə və məlumatları ölçməyə davam edə bilərsiniz.

Proqramların quruluşu

Diaqramda eskizin quruluşunu görə bilərsiniz.

Anemometr_ Təlimatlar

Kitabxanaları yükləyən, dəyişənləri işə salan, əlavənin kəsilməsini idarə edən, bütün funksiyaları çağıran, küləyin sürətini hesablayan, istiqamətini təyin edən və yuxuya qoyan əsas proqramdır.

rabitə

WiFi -ni qoşun və məlumatları ThingSpeak -a göndərin.

etimadnaməsi.h

ThingSpeak -də WiFi şəbəkənizin açarları və hesabınızın identifikatorları. Açar ID -lərinizi və API -lərinizi dəyişdirəcəyiniz yer budur.

müəyyən edir.h

Proqramın bütün dəyişənlərini ehtiva edir. Burada oxu vaxtlarını və ya nodemcu nə qədər yatmalı olduğunu dəyişə bilərsiniz.

funksiyalar

Parametrləri birləşdirmək və multipleksoru oxumaq funksiyalarını, həmçinin anemometrin fırlanmalarını oxumaq funksiyasını ehtiva edir.

oledDisplay

Küləyin sürəti və istiqamətinin nəticələrini ekranda göstərin.

Addım 3: Haqqında izahlar…

Haqqında izahlar…
Haqqında izahlar…
Haqqında izahlar…
Haqqında izahlar…
Haqqında izahlar…
Haqqında izahlar…
Haqqında izahlar…
Haqqında izahlar…

Kəsmə əlavə edin

Anemometrin fırlanması, Nodemcu-nun GPIO 12-də (pin D6) attachInterrupt () (və detachInterrupt ()) funksiyası ilə ölçülür (D0-D8 pinlərində kəsmə xüsusiyyətinə malikdir).

Fasillər, mikrokontrolörün yerinə yetirdiyi vəzifənin icrasını dayandırmasına, müvəqqəti olaraq fərqli bir işdə işləməsinə və ilkin işə qayıtmasına səbəb olan hadisələr və ya şərtlərdir.

Funksiyanın təfərrüatını Arduino dərsliyi üçün keçiddə oxuya bilərsiniz. Əlavə edinInterrupt ().

Sintaksis: attachInterrupt (pin, geri çağırma funksiyası, ara vermə növü/rejimi);

pin = D6

geri çağırma funksiyası = rpm_anemometer - dəyişənin hər nəbzini sayır.

fasilə növü/rejimi = QALDIRMA - pin aşağıdan yuxarıya doğru getdikdə kəsmək.

Magnetonun Hall sensorunda istehsal etdiyi hər nəbzdə, pin aşağıdan yuxarıya doğru gedir və hesablama funksiyası aktivləşdirilir və qurulan 25 saniyə ərzində nəbzi dəyişkən olaraq toplayır. Vaxt bitdikdən sonra sayğacın bağlantısı kəsilir (detachInterrupt ()) və rutin kəsildikdə sürəti hesablayır.

Külək Sürətinin Hesablanması

Anemometrin 25 saniyədə neçə dəfə fırlandığı müəyyən edildikdən sonra sürəti hesablayırıq.

  • RADIO, anemometrin mərkəz oxundan stolüstü tennis topunun ucuna qədər olan ölçüdür. Özünüzün ölçüsünü çox yaxşı ölçmüsünüz - (bax 10 sm -lik diaqramda).
  • RPS (saniyədə fırlanma) = fırlanma / 25 saniyə
  • RPM (dəqiqədə fırlanma) = RPS * 60
  • OMEGA (açısal sürət - saniyədə radian) = 2 * PI * RPS
  • Linear_Velocity (saniyədə metr) = OMEGA * RADIO
  • Linear_Velocity_kmh (Saatda km) = 3.6 * Linear_Velocity və ThingSpeak -ə göndəriləcək budur.

Külək qanadının istiqamətini oxuyun

Küləyin istiqamətini müəyyən etmək üçün külək qanadının mövqeyini oxumaq üçün proqram A, B, C (muxABC matrisi) parametrlərinin bütün birləşmələri ilə multiplekserə aşağı və yüksək siqnallar göndərir və nəticəni A0 pinində qəbul etməyi gözləyir. 0 ilə 3.3V arasında hər hansı bir gərginlik ola bilər. Kombinasiyalar diaqramda göstərilmişdir.

Məsələn, C = 0 (aşağı), B = 0 (aşağı), A = 0 (aşağı) olduqda, multipleksor ona 0 pin məlumatını verir və Nodemcu tərəfindən oxunan siqnalı A0 -a göndərir; C = 0 (aşağı), B = 0 (aşağı), A = 1 (yüksək) olduqda, multiplexer 8 kanalın oxunması tamamlanana qədər sizə pin 1 və sair məlumatları göndərəcək.

Siqnal analoq olduğu üçün, proqram rəqəmsala (0 və ya 1) çevrilir, əgər gərginlik 1.3V -dan az və ya ona bərabərdirsə, siqnal 0 -dır; 1.3V -dən böyüksə siqnal 1 -dir. 1.3V dəyəri ixtiyari və mənim üçün çox yaxşı işləyib. Həmişə kiçik cərəyanlar olur və bu, saxta pozitivlərin olmadığını qoruyur.

Bu məlumatlar, kompas olaraq ünvan silsiləsi ilə müqayisə ediləcək bir vektor valda [8] saxlanılır. Diaqramdakı matrisə baxın. Məsələn, alınan vektor [0, 0, 1, 0, 0, 0, 0, 0, 0] olarsa, matrisdə E istiqamətini göstərir və 90 dərəcə bucağa uyğundur; əgər [0, 0, 0, 0, 0, 0, 1, 1] matrisdə WNW ünvanını göstərirsə və 292.5 dərəcə bucağa uyğundur. N, [1, 0, 0, 0, 0, 0, 0, 0, 0] və 0 dərəcə bucağa uyğundur.

ThingSpeak -ə göndəriləcək şey bucaqdadır, çünki yalnız nömrələri qəbul edir.

Addım 4: Ünsiyyət

Ünsiyyət
Ünsiyyət
Ünsiyyət
Ünsiyyət

ThingSpeak -a məlumatları necə göndərmək olar

Thingspeaksenddata () funksiyası məlumatların göndərilməsindən məsuldur.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Sürət məlumatlarını kanalımın 1 sahəsinə göndər

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Ünvan məlumatlarını kanalımın 2 sahəsinə göndərin

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - TS tərəfindən göstərilən myWriteAPIKey API ilə myChannelNumber kanalıma göndərin. Bu məlumatlar hesabınızı və kanalınızı yaratarkən TS tərəfindən yaradılmışdır.

Yuxarıdakı şəkillərdə ThingSpeak -in alınan məlumatları necə göstərdiyini görə bilərsiniz.

Bu linkdə ThingSpeak -in ictimai kanalındakı layihəmin məlumatlarına daxil ola bilərsiniz.

Addım 5: Əsas dəyişənlər

külək qanadlarının parametrləri

  • MUX_A D5 - N55 pinindən D5 -ə qədər çoxlu əlaqə
  • MUX_B D4 - B pinindən N4 Nodemcu pininə qədər
  • MUX_C D3 - C pinindən Nodemcu pininə D3
  • READPIN 0 - NodeMcu = A0 -da analoq giriş
  • NO_PINS 8 - mux pinlərinin sayı
  • val [NO_PINS] - 0 -dan 7 -ə qədər mux
  • wind_Direction_Angle - Külək istiqaməti bucağı
  • Simli külək Rose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardenallar, girovlar və alt təminatlar
  • windAng [16] = {0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5} - hər istiqamətin açıları
  • Rəqəm [16] [NO_PINS] - İstiqamət Matrisi
  • muxABC [8] [3] - ABC müxbir birləşmələri

anemometr parametrləri

  • rpmcount - anemometrin ayrılmış vaxtda neçə tam fırlanma etdiyini sayın
  • zaman ölçüsü = 25.00 - saniyələrdə ölçmə müddəti
  • timetoSleep = 1 - Nodemcu dəqiqələrdə oyanma vaxtı
  • sleepTime = 15 - dəqiqə ərzində yatmağa davam etmək üçün vaxt
  • rpm, rps - fırlanma tezliyi (dəqiqədə fırlanma, saniyədə fırlanma)
  • radius - metr - anemometr qanadının uzunluğunun ölçüsü
  • lineer_velocity - m/seqramda xətti sürət
  • linear_velocity_kmh - km/saat xətti sürət
  • omega - rad/seqldə radial sürət

Aşağıda tam eskizlə tanış ola bilərsiniz. Kompüterinizin Arduino qovluğunda əsas proqramla eyni adda yeni bir qovluq yaradın (Anemometer_Instructables) və hamısını bir araya gətirin.

WiFi şəbəkənizin məlumatlarını və ThingSpeak ID və API Yazı Açarını Credentials.h hissəsinə daxil edin və qeyd edin. Nodemcu -ya yükləyin və hamısı budur.

Sistemin işini yoxlamaq üçün yaxşı fırlanan bir fan məsləhət görürəm.

Məlumatlara mobil telefonla daxil olmaq üçün, xoşbəxtlikdən hələ də pulsuz olan ThingView adlı IOS və ya Android tətbiqini yükləyin.

Hesab ayarlarınızı konfiqurasiya edin və harada olursunuzsa olun evinizin külək şəraitini görməyə hazır olacaqsınız.

Bir marağınız varsa, ümumi olan ThingSpeak Kanal ID kanalım 438851 -ə daxil olun və evimdə külək və istiqamət ölçülərini tapa bilərsiniz.

Həqiqətən əylənəcəyinizə ümid edirəm.

Hər hansı bir şübhəniz varsa, mənimlə əlaqə saxlamaqdan çəkinməyin.

Hörmətlə

Tövsiyə: