Isi kandungan:

Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian: 5 Langkah (dengan Gambar)
Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian: 5 Langkah (dengan Gambar)

Video: Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian: 5 Langkah (dengan Gambar)

Video: Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian: 5 Langkah (dengan Gambar)
Video: Why it's impossible to predict the weather 2024, Jun
Anonim
Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian
Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian
Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian
Cara Membangun Anemometer Anda Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap pada Nodemcu - Bahagian 2 - Perisian

Pengenalan

Ini adalah sekuel dari posting pertama "Cara Membangun Anemometer Sendiri Menggunakan Suis Reed, Sensor Kesan Hall dan Beberapa Skrap di Nodemcu - Bahagian 1 - Perkakasan" - di mana saya menunjukkan cara memasang peranti pengukuran kelajuan dan arah angin. Di sini kita akan memanfaatkan perisian kawalan pengukuran yang dirancang untuk digunakan di Nodemcu menggunakan Arduino IDE.

Huraian Projek

Dalam catatan sebelumnya, peranti yang bersenjata dan disambungkan ke Nodemcu dapat mengukur kelajuan dan arah angin. Perisian kawalan dirancang untuk membaca putaran anemometer untuk jangka masa, mengira halaju linier, membaca arah di mana baling-baling berada, menunjukkan hasilnya di OLED, menerbitkan hasilnya di ThingSpeak dan tidur selama 15 minit sehingga pengukuran seterusnya.

Penafian: Anemometer ini tidak boleh digunakan untuk tujuan profesional. Ia hanya untuk kegunaan akademik atau rumah.

Catatan: Bahasa Inggeris bukan bahasa semula jadi saya. Sekiranya anda menemui kesalahan tatabahasa yang menghalang anda memahami projek ini, beritahu saya untuk membetulkannya. Terima kasih banyak-banyak.

Langkah 1: Memasang Arduino IDE, Papan dan Perpustakaan ESP8266 dan Akaun ThingSpeak Anda

Memasang Papan dan Perpustakaan Arduino IDE, ESP8266 dan Akaun ThingSpeak Anda
Memasang Papan dan Perpustakaan Arduino IDE, ESP8266 dan Akaun ThingSpeak Anda
Memasang Papan dan Perpustakaan Arduino IDE, ESP8266 dan Akaun ThingSpeak Anda
Memasang Papan dan Perpustakaan Arduino IDE, ESP8266 dan Akaun ThingSpeak Anda

Memasang Arduino IDE dan Nodemcu

Sekiranya anda belum pernah memasang IDE, Arduino sila baca tutorial di pautan - Cara memasang Arduino IDE - di mana anda boleh mendapatkan petunjuk lengkapnya.

Langkah seterusnya, untuk memasang papan Nodemcu gunakan tutorial ini dari Magesh Jayakumar Instructables yang sangat lengkap. Cara memasang Nodemcu no Arduino IDE

Memasang Perpustakaan

Langkah seterusnya anda mesti memasang perpustakaan yang digunakan lakaran. Ini adalah perkara biasa dan anda boleh mengikuti langkah-langkah yang ditunjukkan di bawah.

Perpustakaan ThingSpeak -

Perpustakaan ESP8266 -

Membuat Akaun ThingSpeak

Untuk menggunakan ThingSpeak (https://thingspeak.com/) anda mesti membuat akaun (masih bebas untuk sebilangan interaksi) di mana anda dapat menyimpan data yang diukur dalam anemometer anda dan memantau keadaan angin di rumah anda, walaupun melalui telefon bimbit. Dengan menggunakan ThingSpeak, anda dapat memberikan akses kepada orang ramai ke data yang anda kumpulkan kepada sesiapa yang berminat. Itulah kelebihan ThingSpeak. Masukkan laman utama dan ikuti langkah-langkah untuk membuat akaun anda.

Setelah akaun dibuat, masukkan tutorial ini - ThingSpeak Bermula - untuk membuat saluran anda. Ia dijelaskan dengan baik. Ringkasnya, anda mesti membuat saluran di mana data akan disimpan. Saluran ini mempunyai ID dan API Kunci yang harus dirujuk dalam lakaran setiap kali anda ingin merakam data. ThingSpeak akan menyimpan semua data di bank dan akan menunjukkannya setiap kali anda mengakses akaun anda, dengan cara yang telah anda konfigurasikan.

Langkah 2: Meneroka Lakaran

Meneroka Lakaran
Meneroka Lakaran
Meneroka Lakaran
Meneroka Lakaran

Carta alir

Dalam rajah, anda dapat memahami fluksogram lakaran tersebut. Apabila anda bangun (pautkan) Nodemcu, ia akan menyambung ke rangkaian Wi-Fi anda, yang parameternya telah anda konfigurasikan dan mula menghitung 1 minit waktu untuk melakukan pengukuran. Pertama, ia akan mengira putaran anemometer selama 25 saat, hitung halaju linear dan membaca arah angin. Hasilnya ditunjukkan di OLED. Lakukan langkah yang sama sekali lagi dan untuk bacaan kedua ini, ia akan dihantar ke ThingSpeak.

Kemudian Nodemcu tidur selama 15 minit untuk menjimatkan bateri. Oleh kerana saya menggunakan panel suria kecil, saya mesti melakukannya. Sekiranya anda menggunakan sumber 5V, anda boleh mengubah suai program agar tidak tidur dan terus mengukur data.

Struktur program

Dalam rajah, anda dapat melihat struktur lakaran.

Anemometer_Tidak dapat dipahami

Ini adalah program utama yang memuatkan perpustakaan, memulakan pemboleh ubah, mengawal selang pemasangan, memanggil semua fungsi, mengira kelajuan angin, menentukan arahnya dan mematikannya.

komunikasi

Sambungkan WiFi dan hantar data ke ThingSpeak.

tauliah.h

Kunci rangkaian WiFi anda dan pengecam akaun anda di ThingSpeak. Di sinilah anda akan menukar ID Kunci dan API anda.

mentakrifkan.h

Ia mengandungi semua pemboleh ubah program. Di sinilah anda boleh mengubah masa membaca atau berapa lama nodemcu tidur.

fungsi

Ini berisi fungsi untuk menggabungkan parameter dan membaca multiplexer serta fungsi untuk membaca putaran anemometer.

paparan

Tunjukkan hasil kelajuan dan arah angin di skrin.

Langkah 3: Penjelasan Mengenai…

Penjelasan Mengenai…
Penjelasan Mengenai…
Penjelasan Mengenai…
Penjelasan Mengenai…
Penjelasan Mengenai…
Penjelasan Mengenai…
Penjelasan Mengenai…
Penjelasan Mengenai…

Lampirkan Selang

Putaran anemometer diukur dengan fungsi attachInterrupt () (dan detachInterrupt ()) di GPIO 12 (pin D6) Nodemcu (Ia mempunyai ciri gangguan pada pin D0-D8).

Gangguan adalah peristiwa atau keadaan yang menyebabkan mikrokontroler menghentikan pelaksanaan tugas yang sedang dilakukannya, bekerja dalam tugas lain untuk sementara waktu dan kembali ke tugas awal.

Anda boleh membaca perincian fungsi di pautan untuk tutorial Arduino. Lihat lampiranInterrupt ().

Sintaks: attachInterrupt (pin, fungsi panggilan balik, jenis / mod gangguan);

pin = D6

fungsi panggil balik = rpm_anemometer - mengira setiap nadi pada pemboleh ubah.

jenis / mod interrupt = RISING - mengganggu ketika pin naik dari rendah ke tinggi.

Pada setiap nadi yang dihasilkan oleh magneto di sensor Hall, pin bergerak dari rendah ke tinggi dan fungsi penghitungan diaktifkan dan menjumlahkan nadi dalam pemboleh ubah, selama 25 saat ditetapkan. Setelah masa tamat, kaunter terputus (detachInterrupt ()) dan rutin mengira kelajuan semasa terputus.

Mengira Kelajuan Angin

Setelah ditentukan berapa putaran anemometer yang diberikan dalam 25 saat, kami mengira kelajuannya.

  • RADIO adalah pengukuran dari paksi tengah anemometer ke hujung bola ping pong. Anda mesti mengukur sendiri dengan baik - (lihat dalam rajah yang mengatakan 10 cm).
  • RPS (putaran sesaat) = putaran / 25 saat
  • RPM (putaran seminit) = RPS * 60
  • OMEGA (halaju sudut - radian sesaat) = 2 * PI * RPS
  • Linear_Velocity (meter sesaat) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km per jam) = 3.6 * Linear_Velocity dan inilah yang akan dihantar ke ThingSpeak.

Baca arah baling-baling angin

Untuk membaca kedudukan baling-baling angin untuk menentukan arah angin program menghantar isyarat rendah dan tinggi ke multiplexer dengan semua kombinasi parameter A, B, C (matriks muxABC) dan tunggu untuk menerima hasilnya pada pin A0 yang boleh menjadi voltan antara 0 dan 3.3V. Gabungan ditunjukkan dalam rajah.

Sebagai contoh, apabila C = 0 (rendah), B = 0 (rendah), A = 0 (rendah) multiplexer memberikannya data pin 0 dan menghantar isyarat ke A0 yang dibaca oleh Nodemcu; jika C = 0 (rendah), B = 0 (rendah), A = 1 (tinggi) multiplexer akan menghantar data pin 1 dan seterusnya kepada anda, sehingga pembacaan 8 saluran selesai.

Oleh kerana isyaratnya analog, program berubah menjadi digital (0 atau 1), jika voltan kurang dari atau sama dengan 1.3V, isyaratnya adalah 0; jika lebih besar daripada 1.3V, isyaratnya adalah 1. Nilai 1.3V sewenang-wenangnya dan bagi saya, ia berfungsi dengan baik. Selalu ada kebocoran arus yang kecil dan ini melindungi bahawa tidak ada positif palsu.

Data ini disimpan dalam vektor val [8] yang akan dibandingkan dengan array alamat sebagai kompas. Lihat matriks dalam rajah. Sebagai contoh, jika vektor yang diterima adalah [0, 0, 1, 0, 0, 0, 0, 0, 0] ini menunjukkan dalam matriks arah E dan sepadan dengan sudut 90 darjah; jika [0, 0, 0, 0, 0, 0, 1, 1] menunjukkan dalam matriks alamat WNW dan sepadan dengan sudut 292.5 darjah. N sepadan dengan [1, 0, 0, 0, 0, 0, 0, 0, 0] dan sudut 0 darjah.

Apa yang akan dihantar ke ThingSpeak adalah pada sudut kerana ia hanya menerima nombor.

Langkah 4: Komunikasi

Komunikasi
Komunikasi
Komunikasi
Komunikasi

Cara menghantar data ke ThingSpeak

Fungsi thingspeaksenddata () bertanggungjawab untuk menghantar data.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Hantar data halaju ke medan1 saluran saya

ThingSpeak.setField (2, float (wind_Direction_Angle)) - Kirim data alamat ke bidang2 saluran saya

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Kirim ke saluran saya myChannelNumber, dengan API myWriteAPIKey bertulis yang ditunjukkan oleh TS. Data ini dihasilkan oleh TS semasa membuat akaun dan saluran anda.

Dalam gambar di atas anda dapat melihat bagaimana ThingSpeak menunjukkan data yang diterima.

Dalam pautan ini, anda boleh mengakses data projek saya di saluran umum ThingSpeak.

Langkah 5: Pemboleh ubah Utama

parameter baling-baling angin

  • MUX_A D5 - mux pi A hingga Nodemcu pin D5
  • MUX_B D4 - pin mux B ke pin Nodemcu D4
  • MUX_C D3 - pin mux C hingga pin Nodemcu D3
  • READPIN 0 - Input analog pada NodeMcu = A0
  • NO_PINS 8 - bilangan pin mux
  • val [NO_PINS] - port 0 hingga 7 mux
  • angin_ Arah_Angle - Sudut arah angin
  • String windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardinal, cagaran dan sub-jaminan
  • 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} - sudut setiap arah
  • Digit [16] [NO_PINS] - Matriks Arah
  • muxABC [8] [3] - Gabungan mux ABC

parameter anemometer

  • jumlah rpm - hitung berapa banyak putaran penuh yang dilakukan anemometer dalam masa yang diperuntukkan
  • timemeasure = 25.00 - masa jangka masa pengukuran dalam beberapa saat
  • timetoSleep = 1 - Nodemcu terjaga dalam beberapa minit
  • sleepTime = 15 - masa untuk terus tidur dalam beberapa minit
  • rpm, rps - frekuensi putaran (putaran seminit, putaran sesaat)
  • jejari - meter - ukuran panjang sayap anemometer
  • linear_velocity - halaju garis dalam m / seg
  • linear_velocity_kmh - halaju garis dalam km / j
  • omega - halaju radial dalam rad / seg

Di bawah ini anda dapat mencari lakaran lengkap. Buat folder baru di folder Arduino komputer anda dengan nama yang sama dengan program utama (Anemometer_Instructables) dan satukan semuanya.

Masukkan data rangkaian wifi anda dan ThingSpeak ID dan API Writer Key di bahagian Credentials.h dan simpan. Muat naik ke Nodemcu dan itu sahaja.

Untuk menguji operasi sistem, saya mengesyorkan kipas berputar yang baik.

Untuk mengakses data melalui telefon bimbit, muat turun aplikasi untuk IOS atau Android yang disebut ThingView, yang, untungnya, masih percuma.

Konfigurasikan tetapan akaun anda dan anda akan bersedia untuk melihat keadaan angin kediaman anda di mana sahaja anda berada.

Sekiranya anda mempunyai minat, akses saluran ID ThingSpeak Channel saya: 438851, yang merupakan tempat umum dan di sana anda akan menemui ukuran angin dan arah di rumah saya.

Saya sangat berharap anda berseronok.

Sekiranya anda mempunyai keraguan, jangan ragu untuk menghubungi saya.

Salam

Disyorkan: