Daftar Isi:

Cara Membangun Sistem Deteksi Gerakan Dengan Arduino: 7 Langkah
Cara Membangun Sistem Deteksi Gerakan Dengan Arduino: 7 Langkah

Video: Cara Membangun Sistem Deteksi Gerakan Dengan Arduino: 7 Langkah

Video: Cara Membangun Sistem Deteksi Gerakan Dengan Arduino: 7 Langkah
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, November
Anonim
Cara Membangun Sistem Deteksi Gerakan Dengan Arduino
Cara Membangun Sistem Deteksi Gerakan Dengan Arduino

Bangun penghitung produksi gerakan dan kehadiran menggunakan Feather HUZZAH yang diprogram dengan Arduino dan didukung oleh Ubidots.

Deteksi gerakan dan kehadiran fisik yang efektif di Smart Homes dan Smart Manufacturing bisa sangat berguna dalam aplikasi mulai dari solusi Ambient Assisted Living (AAL) lanjut usia atau Sistem Penghitungan Produksi yang memberi makan MES yang lebih besar. Aplikasi lain untuk Deteksi Gerakan dan Kehadiran termasuk tetapi tidak terbatas pada:

  1. Otomatisasi pintu dan gerbang
  2. Sensor parkir untuk menentukan tempat gratis
  3. Pemantauan level tangki jarak jauh
  4. Rumah pintar dan fasilitas untuk penerangan dan keamanan
  5. Deteksi dan penghitungan unit di jalur konveyor
  6. Deteksi tanda pada bahan cetak
  7. Deteksi cairan di dalam karton, plastik, dan kertas miring
  8. Deteksi jarak
  9. Penghitung orang

Meskipun ada banyak aplikasi untuk kehadiran dan gerakan, ada banyak sensor yang sama untuk mengumpulkan data, seperti sensor kapasitif, induktif, fotolistrik, dan ultrasonik. Tergantung pada biaya, kondisi lingkungan, dan persyaratan akurasi, seseorang harus memilih perangkat keras yang paling cocok untuk lingkungan dan persyaratan aplikasi.

Untuk tutorial ini, kita akan fokus membangun konter produksi waktu nyata; aplikasi akan menghitung setiap unit yang lewat di ban berjalan. Kami akan menggunakan Arduino IDE untuk memprogram Feather HUZZAH ESP8266, sensor ultrasonik, dan Ubidots untuk mengembangkan aplikasi kami dan menampilkan dasbor IoT kami.

Langkah 1: Persyaratan

  1. Bulu HUZZAH dengan ESP8266MB7389-100
  2. Sensor ultrasonik
  3. Arduino IDE 1.8.2 atau lebih tinggi
  4. Akun Ubidots -atau-Lisensi STEM

Langkah 2: Pengaturan

  • Saya Pengaturan Perangkat Keras
  • II. Pengaturan Firmware
  • AKU AKU AKU. Pengembangan Aplikasi Ubidots (acara, variabel, dan dasbor)

Langkah 3: Pengaturan Perangkat Keras

Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras

Sensor Ultrasonik MB7389-100 adalah opsi berbiaya rendah untuk aplikasi Industri dengan jangkauan luas dan persyaratan konsumsi daya rendah dalam kondisi cuaca yang menantang berkat peringkat IPv67-nya.

Untuk memulai, cerminkan diagram di bawah ini untuk memasang sensor ultrasonik ke Feather HUZZAH ESP8266.

CATATAN: Pembacaan sensor dapat berupa pembacaan analog atau PWM; di bawah ini kami akan menjelaskan pengaturan untuk pembacaan PWM, untuk informasi tambahan silakan lihat contoh yang ditunjukkan di atas.

[Opsional] tempatkan mikrokontroler dan sensor di dalam casing IP67 untuk melindunginya dari debu, air, dan faktor lingkungan lain yang mengancam. Kasing standar terlihat mirip dengan yang ditunjukkan pada foto di atas.

Langkah 4: Pengaturan Firmware

Pengaturan Firmware
Pengaturan Firmware
Pengaturan Firmware
Pengaturan Firmware

Pertama, Anda harus menginstal Feather Huzzah di Arduino IDE dan mengkompilasi kodenya. Ingatlah untuk memverifikasi pengaturan ini dengan melakukan tes berkedip sederhana. Untuk informasi lebih lanjut tentang menghubungkan perangkat Feather Anda, lihat panduan pengaturan perangkat keras yang bermanfaat ini.

Untuk mengirim data sensor ke Ubidots IoT Development Platform, salin dan tempel kode di bawah ini ke Arduino IDE. Ingatlah untuk menetapkan nama jaringan Wi-Fi, kata sandi, dan Token akun Ubidots Anda di tempat yang ditunjukkan dalam kode.

/********************************* Termasuk perpustakaan *************** ****************/#termasuk /****************************** ** Konstanta dan objek *******************************//* Ubidots */const char* SSID_NAME = "xxxxxxxx"; // Letakkan di sini karakter nama SSID Anda* SSID_PASS = "xxxxxxxx"; // Letakkan disini passwordconst char* TOKEN = "Assig_your_ubidots_token"; // Letakkan di sini TOKENconst char* DEVICE_LABEL = "motion-control"; // Perangkat Anda labelconst char* VARIABLE_LABEL = "distance"; // Variabel labelconst char* USER_AGENT = "ESP8266";const char* VERSION = "1.0";const char* HTTPSERVER = "industrial.api.ubidots.com";// Pengguna bisnis Ubidots//const char* HTTPSERVER = " hal.ubidots.com"; // Pengguna pendidikan Ubidotsint HTTPPORT = 80;/* Sensor Ultrasonik */const int pwPin1 = 5; // Pin PWM tempat sensor terhubungWiFiClient clientUbi;/********************************* Fungsi Tambahan *** ****************************//** Mendapatkan panjang tubuh @arg variabel tubuh tipe char @return dataLen panjang variabel*/int dataLen(char* variabel) { uint8_t dataLen = 0; for (int i = 0; i distance / 25.4 */ float distance = pulseIn(pwPin1, HIGH); sendToUbidots(DEVICE_LABEL, VARIABLE_LABEL, distance); delay(1000);}void sendToUbidots(const char* device_label, const char* variable_label, float sensor_value) { char* body = (char *) malloc(sizeof(char) * 150); char* data = (char *) malloc(sizeof(char) * 300); /* Spasi untuk menyimpan nilai yang akan dikirim * / char str_val[10]; /*---- Mengubah nilai sensor menjadi tipe karakter -----*/ /* 4 adalah lebar minimum, 2 adalah presisi; nilai float disalin ke str_val*/ dtostrf(sensor_value, 4, 2, str_val); /* Membangun body yang akan dikirim ke request*/ sprintf(body, "{"%s\":%s}", variable_label, str_val); /* Membangun HTTP permintaan menjadi POST */ sprintf(data, "POST /api/v1.6/devices/%s", device_label); sprintf(data, "%s HTTP/1.1\r\n", data); sprintf(data, "%sHost: things.ubidots.com\r\n", data); sprintf(data, "%sUser-Agent: %s/%s\r\n", data, USER_AGENT, VERSION); sprintf(data, "%sX-Auth-Token: %s\r\n", data, TOKEN); sprint f(data, "%sKoneksi: tutup\r\n", data); sprintf(data, "%sTipe-Konten: aplikasi/json\r\n", data); sprintf(data, "%sContent-Length: %d\r\n\r\n", data, dataLen(body)); sprintf(data, "%s%s\r\n\r\n", data, isi); /* Koneksi awal */ clientUbi.connect(HTTPSERVER, HTTPPORT); /* Verifikasi koneksi klien */ if (clientUbi.connect(HTTPSERVER, HTTPPORT)) { Serial.println(F("Memposting variabel Anda: ")); Serial.println(data); /* Kirim Permintaan HTTP */ clientUbi.print(data); } /* Saat klien tersedia, baca respons server */ while (clientUbi.available()) { char c = clientUbi.read(); Serial.tulis(c); } /* Bebaskan memori */ bebas(data); bebas (tubuh); /* Menghentikan klien */ clientUbi.stop();}

ProTip: Anda dapat memeriksa apakah perangkat Anda terhubung dengan benar dengan membuka monitor serial di Arduino IDE.

Anda dapat memverifikasi bahwa perangkat dibuat di backend Ubidots Anda dengan melihatnya di akun Anda Manajemen Perangkat -> Perangkat.

Dengan mengklik perangkat Anda, Anda akan menemukan variabel yang disebut "jarak" tempat pembacaan sensor disimpan. Nama ini ditetapkan dalam kode yang baru saja Anda tempel di Arduino IDE. Jika Anda ingin menyesuaikan variabel otomatis, lakukan dengan mengedit kartu Perangkat atau dengan mem-flash kode yang diperbarui dengan nomenklatur variabel yang benar untuk aplikasi Anda.

Dengan Feather HUZZAH ESP8266 yang terhubung dan melaporkan data ke Ubidots, sekarang saatnya untuk membangun aplikasi menggunakan Ubidots yang dirancang dengan hati-hati dengan konfigurasi aplikasi bebas kode.

Langkah 5: Pengembangan Aplikasi Ubidots

Pengembangan Aplikasi Ubidots
Pengembangan Aplikasi Ubidots
Pengembangan Aplikasi Ubidots
Pengembangan Aplikasi Ubidots
Pengembangan Aplikasi Ubidots
Pengembangan Aplikasi Ubidots

Konfigurasi Acara Ubidots

Pembacaan saat ini yang kami kirim ke Ubidots adalah input jarak. Untuk menerjemahkan pembacaan ini ke dalam output yang kita inginkan -counted units- kita harus membuat event dengan mengikuti langkah-langkah berikut:

  1. Di dalam perangkat saat ini "kontrol gerak" buat variabel default baru yang disebut "kotak", yang akan menerima 1 setiap kali unit baru dihitung.
  2. Buka Manajemen Perangkat -> Acara, dan klik ikon plus biru di sudut kanan atas halaman untuk menambahkan acara baru.
  3. Konfigurasikan acara Anda yang dimulai dengan "Jika pemicu":
  • Pilih variabel: "jarak"
  • Nilai: nilai (default)
  • Kurang dari atau sama dengan [jarak maksimum yang diharapkan} antara sensor dan kotak yang lewat*aplikasi kami meminta 500mm
  • Selama 0 menit
  • Menyimpan

4. Setelah pemicu dikonfigurasikan ke spesifikasi aplikasi Anda, klik ikon "plus" oranye di sudut kanan atas untuk menambahkan tindakan bersyarat.

5. Pilih “Set Variable” sebagai tindakan.

6. Selanjutnya, pilih variabel default yang dibuat sebelumnya "kotak" dan nilai "1".

7. Simpan perubahan. Jika acara diatur dengan benar, itu akan mengirim "1" setiap kali jarak antara sensor dan unit lebih panjang dari ambang batas yang ditunjukkan, yang menunjukkan bahwa tidak ada objek di dekat - dan harus menghitung unit baru yang baru saja lewat.

Dalam kartu Perangkat khusus Bulu, Anda akan menemukan bahwa variabel "kotak" di mana "1" dikirim setiap kali kehadiran unit dirasakan.

Terutama berguna untuk ban berjalan industri dan penghitungan unit, prototipe ini dapat disesuaikan agar sesuai dengan lingkungan atau perangkat keras yang berbeda hanya dalam pengkodean atau pengembangan aplikasi Anda.

8. Visualisasikan jumlah unit yang terdeteksi (atau berapa kali suatu objek terdeteksi) Sekarang, dengan menggunakan variabel "kotak", kita akan membuat variabel jendela bergulir baru untuk menjumlahkan jumlah total pembacaan yang diterima dari variabel "kotak" di spam yang ditentukan (menit, jam, hari, minggu, dll). Untuk menjalankan pengembangan ini, ikuti langkah-langkah sederhana ini:

Tetapkan kredensial berikut ke variabel jendela bergulir baru Anda

Pilih perangkat: kontrol gerak (atau nama perangkat yang Anda kirimi data)

Pilih variabel: kotak

Hitung: jumlah

Setiap: "1" jam (atau sesuai permintaan aplikasi Anda)

Sekarang tetapkan nama untuk variabel baru yang menunjukkan jumlah kotak (atau pergerakan) yang dihitung dalam satu jam, seperti "kotak/jam" atau "satuan/jam.

Langkah 6: Konfigurasi Dasbor

Konfigurasi Dasbor
Konfigurasi Dasbor

Terakhir, buat dasbor untuk menampilkan jumlah unit yang terdeteksi.

Buka Manajemen Perangkat -> Dasbor dan tambahkan widget baru. Widget ini akan menampilkan jumlah kotak yang dihitung hari ini dipecah menurut jam.

Tetapkan kredensial berikut ke widget baru Anda untuk memvisualisasikan hitungan Anda.

Bagaimana Anda ingin melihat data Anda?: Bagan

Pilih jenis widget: bagan garis

Tambahkan perangkat: kontrol gerak

Tambahkan variabel: kotak/jam

Menyelesaikan. Dan dengan pengembangan dasbor terakhir ini - aplikasi Anda selesai dan Anda sekarang memiliki sistem deteksi gerakan dan kehadiran yang efisien dan efektif. Berikut adalah tampilan akhir dari hasil kami.

Direkomendasikan: