Daftar Isi:

Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak: 5 Langkah (dengan Gambar)
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak: 5 Langkah (dengan Gambar)

Video: Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak: 5 Langkah (dengan Gambar)

Video: Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak: 5 Langkah (dengan Gambar)
Video: Sensor Kecepatan Angin dengan Reed Switch / Hall Effect Sensor 3144 2024, November
Anonim
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall, dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall, dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall, dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak
Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Efek Hall, dan Beberapa Memo di Nodemcu - Bagian 2 - Perangkat Lunak

pengantar

Ini adalah lanjutan dari postingan pertama "Cara Membuat Anemometer Sendiri Menggunakan Reed Switch, Sensor Hall Effect dan Beberapa Memo di Nodemcu - Bagian 1 - Perangkat Keras" - di mana saya menunjukkan cara merakit perangkat pengukur kecepatan dan arah angin. Di sini kita akan mengeksploitasi perangkat lunak kontrol pengukuran yang dirancang untuk digunakan dalam Nodemcu menggunakan Arduino IDE.

Deskripsi Proyek

Pada postingan sebelumnya, perangkat yang dipersenjatai dan terhubung ke Nodemcu dapat mengukur kecepatan dan arah angin. Perangkat lunak kontrol dirancang untuk membaca rotasi anemometer untuk jangka waktu tertentu, menghitung kecepatan linier, membaca arah di mana baling-baling, menunjukkan hasil dalam OLED, mempublikasikan hasilnya di ThingSpeak dan tidur selama 15 menit sampai pengukuran berikutnya.

Penafian: Anemometer ini tidak boleh digunakan untuk tujuan profesional. Ini hanya untuk penggunaan akademis atau rumah.

Catatan: Bahasa Inggris bukan bahasa alami saya. Jika Anda menemukan kesalahan tata bahasa yang menghalangi Anda untuk memahami proyek ini, beri tahu saya untuk memperbaikinya. Terima kasih banyak.

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

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

Menginstal Arduino IDE dan Nodemcu

Jika Anda belum pernah menginstal IDE Arduino, silakan baca tutorial di tautan - Cara menginstal Arduino IDE - di mana Anda dapat menemukan petunjuk lengkapnya.

Langkah selanjutnya, untuk menginstal board Nodemcu gunakan tutorial ini dari Magesh Jayakumar Instructables yang sangat lengkap. Bagaimana cara menginstal Nodemcu no Arduino IDE

Menginstal Perpustakaan

Langkah selanjutnya Anda harus menginstal perpustakaan yang digunakan sketsa. Mereka umum dan Anda dapat mengikuti langkah-langkah yang ditunjukkan di bawah ini.

Perpustakaan ThingSpeak -

Perpustakaan ESP8266 -

Membuat Akun ThingSpeak

Untuk menggunakan ThingSpeak (https://thingspeak.com/) Anda harus membuat akun (masih gratis untuk sejumlah interaksi tertentu) di mana Anda dapat menyimpan data yang diukur di anemometer Anda dan memantau kondisi angin di rumah Anda, bahkan melalui ponsel. Dengan menggunakan ThingSpeak, Anda dapat memberikan akses publik ke data yang Anda kumpulkan kepada siapa pun yang tertarik. Itu adalah keuntungan yang baik dari ThingSpeak. Masuk ke beranda dan ikuti langkah-langkah untuk membuat akun Anda.

Setelah akun dibuat, masukkan tutorial ini - Memulai ThingSpeak - untuk membuat saluran Anda. Ini dijelaskan dengan cukup baik. Singkatnya, Anda harus membuat saluran tempat data akan disimpan. Saluran ini memiliki ID dan API Kunci yang harus dirujuk dalam sketsa setiap kali Anda ingin merekam data. ThingSpeak akan menyimpan semua data di bank dan akan menunjukkannya setiap kali Anda mengakses akun Anda, dengan cara yang telah Anda konfigurasikan.

Langkah 2: Menjelajahi Sketsa

Menjelajahi Sketsa
Menjelajahi Sketsa
Menjelajahi Sketsa
Menjelajahi Sketsa

Flow chart

Dalam diagram, Anda dapat memahami fluksogram sketsa. Ketika Anda membangunkan (link) Nodemcu, itu akan terhubung ke jaringan Wi-Fi Anda, yang parameternya telah Anda konfigurasikan dan mulai menghitung waktu 1 menit untuk melakukan pengukuran. Pertama, itu akan menghitung rotasi anemometer selama 25 detik, hitung kecepatan linier dan membaca arah angin. Hasilnya ditampilkan pada OLED. Lakukan langkah yang sama lagi dan untuk pembacaan kedua ini, ia akan mengirimkan ke ThingSpeak.

Kemudian Nodemcu tidur selama 15 menit untuk menghemat baterai. Karena saya menggunakan panel surya kecil, saya harus melakukannya. Jika Anda menggunakan sumber 5V, Anda dapat memodifikasi program agar tidak tidur dan terus mengukur data.

Struktur program

Dalam diagram, Anda dapat melihat struktur sketsa.

Anemometer_Instructables

Ini adalah program utama yang memuat perpustakaan, memulai variabel, mengontrol interupsi lampiran, memanggil semua fungsi, menghitung kecepatan angin, menentukan arahnya dan membuatnya tertidur.

komunikasi

Hubungkan WiFi dan kirim data ke ThingSpeak.

kredensial.h

Kunci jaringan WiFi Anda dan pengenal akun Anda di ThingSpeak. Di sinilah Anda akan mengubah ID dan API Kunci Anda.

mendefinisikan.h

Ini berisi semua variabel program. Di sinilah Anda dapat mengubah waktu membaca atau berapa lama nodemcu harus tidur.

fungsi

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

tampilan lama

Tampilkan hasil kecepatan dan arah angin di layar.

Langkah 3: Penjelasan Tentang…

Penjelasan Tentang…
Penjelasan Tentang…
Penjelasan Tentang…
Penjelasan Tentang…
Penjelasan Tentang…
Penjelasan Tentang…
Penjelasan Tentang…
Penjelasan Tentang…

Lampirkan Interupsi

Rotasi anemometer diukur dengan fungsi attachInterrupt () (dan detachInterrupt ()) di GPIO 12 (pin D6) dari Nodemcu (Ini memiliki fitur interupsi pada pin D0-D8).

Interupsi adalah kejadian atau kondisi yang menyebabkan mikrokontroler menghentikan eksekusi tugas yang sedang dilakukan, mengerjakan tugas yang berbeda untuk sementara dan kembali ke tugas awal.

Anda dapat membaca detail fungsinya di tautan untuk tutorial Arduino. Lihat attachInterrupt().

Sintaks: attachInterrupt(pin, fungsi callback, tipe/mode interupsi);

pin = D6

fungsi panggilan balik = rpm_anemometer - menghitung setiap pulsa pada suatu variabel.

tipe/mode interupsi = RISING - interupsi ketika pin berubah dari rendah ke tinggi.

Pada setiap pulsa yang dihasilkan oleh magneto di sensor Hall, pin bergerak dari rendah ke tinggi dan fungsi penghitungan diaktifkan dan pulsa dijumlahkan dalam variabel, selama 25 detik ditetapkan. Setelah waktu habis, penghitung terputus (detachInterrupt ()) dan rutin menghitung kecepatan saat terputus.

Menghitung Kecepatan Angin

Setelah ditentukan berapa banyak putaran yang diberikan anemometer dalam 25 detik, kami menghitung kecepatannya.

  • RADIO adalah pengukuran dari sumbu tengah anemometer ke ujung bola pingpong. Anda pasti telah mengukur Anda dengan sangat baik - (lihat diagram yang mengatakan 10 cm).
  • RPS (rotasi per detik) = rotasi / 25 detik
  • RPM (rotasi per menit) = RPS * 60
  • OMEGA (kecepatan sudut - radian per detik) = 2 * PI * RPS
  • Linear_Velocity (meter per detik) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km per jam) = 3,6 * Linear_Velocity dan inilah yang akan dikirim ke ThingSpeak.

Baca arah baling-baling angin

Untuk membaca posisi baling-baling angin untuk menentukan arah angin program mengirimkan sinyal rendah dan tinggi ke multiplexer dengan semua kombinasi parameter A, B, C (matriks muxABC) dan menunggu untuk menerima pada pin A0 hasilnya yang dapat berupa tegangan antara 0 dan 3.3V. Kombinasi ditunjukkan dalam diagram.

Misalnya, ketika C = 0 (rendah), B = 0 (rendah), A = 0 (rendah) multiplexer memberikan data pin 0 dan mengirimkan sinyal ke A0 yang dibaca oleh Nodemcu; jika C = 0 (rendah), B = 0 (rendah), A = 1 (tinggi) multiplexer akan mengirimkan data pin 1 dan seterusnya, sampai pembacaan 8 saluran selesai.

Karena sinyalnya analog, program berubah menjadi digital (0 atau 1), jika tegangannya kurang dari atau sama dengan 1.3V, sinyalnya adalah 0; jika lebih besar dari 1.3V sinyalnya adalah 1. Nilai 1.3V sewenang-wenang dan bagi saya, itu bekerja dengan sangat baik. Selalu ada kebocoran arus kecil dan ini melindungi bahwa tidak ada positif palsu.

Data ini disimpan dalam vektor val[8] yang akan dibandingkan dengan array alamat sebagai kompas. Lihat matriks dalam diagram. Misalnya, jika vektor yang diterima adalah [0, 0, 1, 0, 0, 0, 0, 0, 0] itu menunjukkan dalam matriks arah E dan sesuai dengan sudut 90 derajat; jika [0, 0, 0, 0, 0, 0, 1, 1] menunjukkan dalam matriks alamat WNW dan sesuai dengan sudut 292,5 derajat. N sesuai dengan [1, 0, 0, 0, 0, 0, 0, 0, 0] dan sudut 0 derajat.

Yang akan dikirim ke ThingSpeak adalah miring karena hanya menerima angka.

Langkah 4: Komunikasi

Komunikasi
Komunikasi
Komunikasi
Komunikasi

Bagaimana cara mengirim data ke ThingSpeak

Fungsi thingspeaksenddata() bertanggung jawab untuk mengirim data.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - Kirim data kecepatan ke field1 saluran saya

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

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - Kirim ke saluran saya myChannelNumber, dengan API myWriteAPIKey tertulis yang ditunjukkan oleh TS. Data ini dibuat oleh TS saat membuat akun dan saluran Anda.

Pada gambar di atas Anda dapat melihat bagaimana ThingSpeak menunjukkan data yang diterima.

Di tautan ini Anda dapat mengakses data proyek saya di saluran publik ThingSpeak.

Langkah 5: Variabel Utama

parameter baling-baling angin

  • MUX_A D5 - mux pi A ke Nodemcu pin D5
  • MUX_B D4 - mux pin B ke Nodemcu pin D4
  • MUX_C D3 - mux pin C ke Nodemcu pin D3
  • READPIN 0 - Input analog pada NodeMcu = A0
  • NO_PINS 8 - jumlah pin mux
  • val[NO_PINS] - port 0 hingga 7 mux
  • wind_Direction_Angle - Sudut arah angin
  • String windRose[16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - kardenal, agunan, 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] - kombinasi mux ABC

parameter anemometer

  • rpmcount - hitung berapa banyak putaran penuh yang dilakukan anemometer dalam waktu yang ditentukan
  • timemeasure = 25.00 - waktu durasi pengukuran dalam detik
  • timetoSleep = 1 - Waktu bangun Nodemcu dalam hitungan menit
  • sleepTime = 15 - waktu untuk tetap tidur dalam hitungan menit
  • rpm, rps - frekuensi rotasi (rotasi per menit, rotasi per detik)
  • radius - meter - ukuran panjang sayap anemometer
  • linear_velocity - kecepatan linier dalam m/seg
  • linear_velocity_kmh - kecepatan linier dalam km/j
  • omega - kecepatan radial dalam rad/seg

Di bawah ini Anda dapat menemukan sketsa lengkapnya. Buat folder baru di folder Arduino komputer Anda dengan nama yang sama dengan program utama (Anemometer_Instructables) dan gabungkan semuanya.

Masukkan data jaringan wifi Anda dan ThingSpeak ID dan API Writer Key di bagian Credentials.h dan simpan. Unggah ke Nodemcu dan itu saja.

Untuk menguji pengoperasian sistem, saya merekomendasikan kipas berputar yang baik.

Untuk mengakses data melalui ponsel, unduh aplikasi untuk iOS atau Android bernama ThingView yang untungnya masih gratis.

Konfigurasikan pengaturan akun Anda dan Anda akan siap untuk melihat kondisi angin rumah Anda di mana pun Anda berada.

Jika Anda tertarik, akses saluran ID Saluran ThingSpeak saya: 438851, yang bersifat publik dan di sana Anda akan menemukan pengukuran angin dan arah di rumah saya.

Saya sangat berharap Anda bersenang-senang.

Jika Anda memiliki keraguan jangan ragu untuk menghubungi saya.

Salam

Direkomendasikan: