İçindekiler:
- Adım 1: Arduino IDE, ESP8266 Boards and Libraries ve ThingSpeak Hesabınızı Kurma
- Adım 2: Sketch'i Keşfetmek
- Adım 3: Hakkında Açıklamalar…
- 4. Adım: İletişim
- Adım 5: Ana Değişkenler
Video: Nodemcu Üzerinde Reed Anahtarlar, Hall Etki Sensörü ve Bazı Hurdalar Kullanarak Kendi Anemometrenizi Nasıl Yapabilirsiniz - Bölüm 2 - Yazılım: 5 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Tanıtım
Bu, rüzgar hızı ve yön ölçüm cihazlarının nasıl monte edileceğini gösterdiğim ilk yazı olan "Nodemcu'da Reed Anahtarlar, Hall Etki Sensörü ve Bazı Hurdalar - Bölüm 1 - Donanım Kullanarak Kendi Anemometrenizi Nasıl Oluşturursunuz"un devamı niteliğindedir. Burada Arduino IDE kullanarak bir Nodemcu'da kullanılmak üzere tasarlanmış ölçüm kontrol yazılımından yararlanacağız.
Proje Açıklaması
Bir önceki gönderide, Nodemcu'ya silahlı ve bağlı cihazlar, rüzgarın hızını ve yönünü ölçebiliyor. Kontrol yazılımı, anemometrenin belirli bir süre dönüşünü okumak, doğrusal hızı hesaplamak, kanadın yönünü okumak, sonuçları OLED'de göstermek, sonuçları ThingSpeak'te yayınlamak ve 15 dakika boyunca uyumak için tasarlanmıştır. sonraki ölçüm.
Sorumluluk Reddi: Bu anemometre profesyonel amaçlar için kullanılmamalıdır. Sadece akademik veya ev kullanımı içindir.
Not: İngilizce benim doğal dilim değil. Projeyi anlamanıza engel olan dilbilgisi hataları bulursanız, düzeltmem için lütfen bana bildirin. Çok teşekkür ederim.
Adım 1: Arduino IDE, ESP8266 Boards and Libraries ve ThingSpeak Hesabınızı Kurma
Arduino IDE ve Nodemcu Kurulumu
Arduino IDE'sini hiç yüklemediyseniz, lütfen tüm talimatları bulabileceğiniz - Arduino IDE nasıl kurulur - bağlantısındaki öğreticiyi okuyun.
Sonraki adım, Nodemcu panosunu kurmak için çok eksiksiz olan Magesh Jayakumar Instructables'taki bu öğreticiyi kullanın. Nodemcu no Arduino IDE nasıl kurulur
Kitaplıkları Yükleme
Sonraki adımda, eskizin kullandığı kitaplıkları yüklemelisiniz. Bunlar yaygındır ve aşağıda gösterilen adımları takip edebilirsiniz.
ThingSpeak Kütüphanesi -
ESP8266 Kütüphanesi -
ThingSpeak Hesabı Oluşturma
ThingSpeak'i (https://thingspeak.com/) kullanmak için, anemometrenizde ölçülen verileri kaydedebileceğiniz ve evinizdeki rüzgar koşullarını izleyebileceğiniz bir hesap (belirli sayıda etkileşim için hala ücretsizdir) oluşturmalısınız, hatta cep telefonu ile. ThingSpeak'i kullanarak, ilgilenen herkese toplanan verilerinize herkesin erişmesini sağlayabilirsiniz. Bu, ThingSpeak'in iyi bir avantajı. Ana sayfaya girin ve hesabınızı oluşturmak için adımları izleyin.
Hesap oluşturulduktan sonra, kanallarınızı oluşturmak için bu eğiticiye - ThingSpeak Başlarken - girin. Oldukça iyi anlatılmış. Özetle, verilerin saklanacağı bir kanal oluşturmalısınız. Bu kanalın, her veri kaydetmek istediğinizde çizimde referans alınması gereken bir ID ve bir Anahtar API'si vardır. ThingSpeak, tüm verileri bir bankada saklayacak ve yapılandırdığınız şekilde hesabınıza her eriştiğinizde bunları gösterecektir.
Adım 2: Sketch'i Keşfetmek
Akış çizelgesi
Diyagramda, eskizin fluksogramını anlayabilirsiniz. Nodemcu'yu uyandırdığınızda (bağladığınızda) parametrelerini yapılandırmış olduğunuz Wi-Fi ağınıza bağlanacak ve ölçümleri gerçekleştirmek için 1 dakikalık süreyi saymaya başlayacaktır. İlk olarak, anemometre dönüşlerini 25 saniye boyunca sayacak, hesaplayacaktır. doğrusal hız ve rüzgarın yönünü okuyun. Sonuçlar OLED'de gösterilir. Aynı adımları tekrar yapın ve bu ikinci okuma için ThingSpeak'e iletilecektir.
Ardından Nodemcu pilden tasarruf etmek için 15 dakika uyur. Küçük bir güneş paneli kullandığım için bunu yapmam şart. 5V'luk bir kaynak kullanıyorsanız, programı, uyumaması ve verileri ölçmeye devam etmesi için değiştirebilirsiniz.
Programların yapısı
Şemada, eskizin yapısını görebilirsiniz.
Anemometer_Instructables
Kütüphaneleri yükleyen, değişkenleri başlatan, ekleme kesmesini kontrol eden, tüm fonksiyonları çağıran, rüzgar hızını hesaplayan, yönünü belirleyen ve uyku moduna geçiren ana programdır.
iletişim
WiFi'yi bağlayın ve verileri ThingSpeak'e gönderin.
kimlik bilgileri.h
WiFi ağınızın anahtarları ve ThingSpeak'teki hesabınızın tanımlayıcıları. Anahtar Kimliklerinizi ve API'lerinizi değiştireceğiniz yer burasıdır.
tanımlar.h
Programın tüm değişkenlerini içerir. Buradan okuma sürelerini veya nodemcu'nun ne kadar uyuması gerektiğini değiştirebilirsiniz.
fonksiyonlar
Parametreleri birleştirme ve çoklayıcıyı okuma işlevlerinin yanı sıra anemometrenin dönüşlerini okuma işlevini içerir.
oledEkran
Rüzgar hızı ve yönünün ekrandaki sonuçlarını göster.
Adım 3: Hakkında Açıklamalar…
Kesinti Ekle
Anemometrenin dönüşü, Nodemcu'nun GPIO 12'sinde (pin D6) (D0-D8 pinlerinde interrupt özelliği vardır) bulunan AttachInterrupt() (ve detachInterrupt()) fonksiyonu ile ölçülür.
Kesintiler, mikrodenetleyicinin gerçekleştirmekte olduğu görevin yürütülmesini durdurmasına, geçici olarak farklı bir görevde çalışmasına ve ilk göreve geri dönmesine neden olan olay veya koşullardır.
Arduino öğreticisi için linkte fonksiyonun detayını okuyabilirsiniz. EkInterrupt()'a bakın.
Sözdizimi: AttachInterrupt(pin, geri arama işlevi, kesme türü/mod);
pim = D6
geri arama işlevi = rpm_anemometer - bir değişkendeki her darbeyi sayar.
kesme tipi/modu = YÜKSELEN - pin düşükten yükseğe gittiğinde kesinti.
Hall sensöründe manyeto tarafından üretilen her darbede, pin düşükten yükseğe gider ve sayma işlevi etkinleştirilir ve belirlenen 25 saniye boyunca bir değişkende darbe toplanır. Süre sona erdiğinde, sayacın bağlantısı kesilir (detachInterrupt ()) ve rutin bağlantı kesildiğinde hızı hesaplar.
Rüzgar Hızının Hesaplanması
Anemometrenin 25 saniyede kaç tur verdiği belirlendikten sonra hızı hesaplıyoruz.
- RADYO, anemometrenin merkez ekseninden pinpon topunun ucuna kadar olan ölçümdür. Sizinkini çok iyi ölçmüş olmalısınız - (şemada 10 cm yazan yere bakın).
- RPS (saniyedeki dönüş sayısı) = dönüş / 25 saniye
- RPM (dakikadaki devir sayısı) = RPS * 60
- OMEGA (açısal hız - radyan/saniye) = 2 * PI * RPS
- Linear_Velocity (saniyede metre) = OMEGA * RADIO
- Linear_Velocity_kmh (saatte Km) = 3.6 * Linear_Velocity ve ThingSpeak'e gönderilecek olan budur.
Rüzgar gülü yönünü oku
Rüzgar yönünü belirlemek için rüzgar gülü konumunu okumak için program, A, B, C (muxABC matrisi) parametrelerinin tüm kombinasyonları ile çoklayıcıya düşük ve yüksek sinyaller gönderir ve sonucu pin A0'da almayı bekler. 0 ile 3.3V arasında herhangi bir voltaj olabilir. Kombinasyonlar şemada gösterilmiştir.
Örneğin, C = 0 (düşük), B = 0 (düşük), A = 0 (düşük) olduğunda çoklayıcı ona pin 0'ın verilerini verir ve Nodemcu tarafından okunan sinyali A0'a gönderir; C = 0 (düşük), B = 0 (düşük), A = 1 (yüksek) ise, çoklayıcı, 8 kanalın okunması tamamlanana kadar size pin 1 ve benzeri verileri gönderir.
Sinyal analog olduğu için program dijitale (0 veya 1) dönüşür, voltaj 1,3V'den düşük veya ona eşitse sinyal 0 olur; 1.3V'den büyükse sinyal 1'dir. 1.3V değeri isteğe bağlıdır ve benim için çok iyi çalıştı. Her zaman küçük akım kaçakları vardır ve bu, yanlış pozitiflerin olmamasını sağlar.
Bu veriler, pusula olarak adres dizisiyle karşılaştırılacak olan bir val[8] vektöründe saklanır. Diyagramdaki matrise bakın. Örneğin, alınan vektör [0, 0, 1, 0, 0, 0, 0, 0, 0] ise, matriste E yönünü belirtir ve 90 derecelik bir açıya karşılık gelir; [0, 0, 0, 0, 0, 0, 1, 1] matriste WNW adresini gösteriyorsa ve 292,5 derecelik bir açıya karşılık geliyorsa. N, [1, 0, 0, 0, 0, 0, 0, 0, 0] ve 0 derecelik açıya karşılık gelir.
ThingSpeak'e gönderilecek olan şey açıdadır çünkü yalnızca sayıları kabul eder.
4. Adım: İletişim
ThingSpeak'e nasıl veri gönderilir?
Thingsspeaksenddata() işlevi verilerin gönderilmesinden sorumludur.
ThingSpeak.setField (1, float (linear_velocity_kmh)) - Hız verilerini kanalımın 1. alanına gönder
ThingSpeak.setField (2, float (wind_Direction_Angle)) - Adres verilerini kanalımın 2. alanına gönder
ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - TS tarafından belirtilen yazılı myWriteAPIKey API ile kanalıma myChannelNumber gönder. Bu veriler, hesabınızı ve kanalınızı oluştururken TS tarafından oluşturulmuştur.
Yukarıdaki resimlerde ThingSpeak'in alınan verileri nasıl gösterdiğini görebilirsiniz.
Bu linkte ThingSpeak'in genel kanalındaki projemin verilerine ulaşabilirsiniz.
Adım 5: Ana Değişkenler
rüzgar gülü parametreleri
- MUX_A D5 - mux pi A'dan Nodemcu pin D5'e
- MUX_B D4 - mux pin B'den Nodemcu pin D4'e
- MUX_C D3 - mux pin C'den Nodemcu pin D3'e
- READPIN 0 - NodeMcu'da analog giriş = A0
- NO_PINS 8 - mux pin sayısı
- val[NO_PINS] - mux'ın 0 ila 7 arasındaki bağlantı noktaları
- wind_Direction_Angle - Rüzgar yönü açısı
- String windRose[16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "BNW", "NW", "NNW"} - kardenaller, teminatlar ve alt teminatlar
- 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} - her yöndeki açılar
- Basamak [16] [NO_PINS] - Yol Tarifi Matrisi
- muxABC[8] [3] - ABC çoklayıcı kombinasyonları
anemometre parametreleri
- rpmcount - anemometrenin ayrılan sürede kaç tam dönüş yaptığını sayın
- timemeasure = 25.00 - saniye cinsinden ölçüm bekleme süresi
- timetoSleep = 1 - Dakika cinsinden Nodemcu uyanıklık süresi
- sleepTime = 15 - dakikalar içinde uyumaya devam etme zamanı
- rpm, rpm - dönüş frekansları (dakikadaki devir sayısı, saniyedeki devir sayısı)
- yarıçap - metre - anemometre kanadının uzunluğunun ölçüsü
- lineer_velocity - m/seg cinsinden lineer hız
- linear_velocity_kmh - km/h cinsinden çizgisel hız
- omega - rad/seg cinsinden radyal hız
Aşağıda tam taslağı bulabilirsiniz. Bilgisayarınızın Arduino klasöründe ana program ile aynı isimde (Anemometer_Instructables) yeni bir klasör oluşturun ve hepsini bir araya getirin.
Wifi ağınızın verilerini ve ThingSpeak ID ve API Writer Key'i Credentials.h bölümüne girin ve kaydedin. Nodemcu'ya yükleyin ve hepsi bu.
Sistemin çalışmasını test etmek için iyi bir döner fan öneririm.
Verilere cep telefonu ile erişmek için, neyse ki hala ücretsiz olan ThingView adlı IOS veya Android uygulamasını indirin.
Hesap ayarlarınızı yapılandırın ve nerede olursanız olun ana rüzgar koşullarınızı görmeye hazır olacaksınız.
Bir ilginiz varsa, herkese açık olan ThingSpeak Kanal Kimliği kanalıma erişin: 438851 ve orada evimde rüzgar ve yön ölçümlerini bulacaksınız.
Umarım gerçekten eğlenirsiniz.
Herhangi bir şüpheniz varsa benimle iletişime geçmekten çekinmeyin.
Saygılarımızla
Önerilen:
Kendi Gece Görüş Cihazınızı Nasıl Yapabilirsiniz!: 5 Adımda (Resimlerle)
Kendi Gece Görüş Cihazınızı Nasıl Yaparsınız!: Bu projede size gece görüş cihazının nasıl oluşturulacağını göstereceğim. Esas olarak bir güvenlik kamerası, küçük bir ekran ve IR LED'leri ve bir LED sürücüsü içeren özel bir PCB'den oluşur. Cihaza USB Type-C PD powerbank ile güç verdikten sonra şunları yapabilirsiniz:
Fidget Spinner Kullanan Arduino Üzerinde Hall Etkisi Sensörü: 3 Adım (Resimlerle)
Fidget Spinner Kullanarak Arduino Üzerindeki Hall Effect Sensörü: Özet Bu projede arduino board ile fidget spinner hızını ölçerek hall efekt sensörünün nasıl çalıştığını anlatıyorum. çalışma: -A Hall etkisi sensörü, bir manyetik alana tepki olarak çıkış voltajını değiştiren bir dönüştürücüdür. Salon etkisi
USB Üzerinden Şarj Olan Herhangi Bir IPod veya Diğer Cihazlar için Kendi USB Araç Şarj Cihazınızı Nasıl Yapabilirsiniz: 10 Adım (Resimlerle)
USB Üzerinden Şarj Olan Herhangi Bir IPod veya Diğer Cihazlar için Kendi USB Araç Şarj Cihazınızı Nasıl Yapabilirsiniz: 5v ve USB Dişi fiş çıkışlı bir araç adaptörünü birleştirerek herhangi bir iPod veya USB ile Şarj Olan Diğer Cihazlar için bir USB araç şarj cihazı oluşturun. Bu projenin en önemli kısmı, seçtiğiniz araç adaptörünün çıktısının bahis olduğundan emin olmaktır
Kendi Çizilebilir Tablonuzu Nasıl Yapabilirsiniz: 5 Adım (Resimlerle)
Kendi Kazıma Tablonuzu Nasıl Yapabilirsiniz: Bir pizza kutusu ve bir optik fare kullanarak kendi Not Defterinizi/Döner Tablanızı nasıl yaparsınız!************Genel bakış için videoyu izleyin
Kendi LED Ampullerinizi Nasıl Yapabilirsiniz: 10 Adım (Resimlerle)
Kendi LED Ampullerinizi Nasıl Yapabilirsiniz: ticari görünümlü LED ampuller yapmak için bir eğitim. Her türlü LED dönüşümünü yapmaya yönelik birçok denemeden sonra, sonunda basit ve verimli bir çözüm buldum. Tabii ki, bunu yapmak için çok fazla sabra ihtiyacınız var ama ne zaman